Skip to content

feat: load WoT configurations and complete M2 acceptance - #113

Merged
gavinying merged 6 commits into
develop/v2from
codex/wot-model-foundation
Oct 28, 2026
Merged

gavinying merged 6 commits into
develop/v2from
codex/wot-model-foundation

Conversation

@gavinying

@gavinying gavinying commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

Replace the 2.x CSV configuration runtime with validated WoT TM/TD loading, reusing the existing Modpoll poll/decode/output engine. The versioned shared interpreter preserves block boundaries, literals, byte/word order, property names, multipliers and access metadata. It bundles official TD/TM schemas and a project acquisition schema and rejects invalid/unsupported execution semantics.

M2 adds a per-model modv:unitID default (explicit --unit-id still overrides it), so one process can read different Unit IDs. A recording proxy verifies real Unit IDs 2 and 7. Authored simulator TM/TD fixtures preserve four blocks and 37 properties; request/output equivalence against pinned 1.x and modsim checkouts remains in CI.

Acceptance now covers independently struct-encoded numeric types with all four byte/word orders, large integer precision, register bits, odd strings, multipliers, units, real HTTP/local model loading, multiple devices, timestamps, invalid configuration rejection, and Modbus exception/null handling.

MQTT tests run actual 1.x CSV and 2.x TM/TD CLIs on unique UUID topics: MQTT 3.1.1/5.0, QoS0/1 grouped JSON and QoS1 individual topics, diagnostics, retained-command rejection and FC5/6/16 commands directed only to a temporary local modsim. CI uses private Mosquitto and also tests broker restart/subscription recovery, authentication rejection and full queues.

Validation:

  • Full opt-in local acceptance: 109 passed, zero skipped.
  • broker.emqx.io: four grouped-JSON protocol/QoS cases passed, including local simulator command round trips.
  • A separate public single-topic 1.x probe received 65 publisher PUBACKs but the subscriber saw only 15 distinct topics, with no publisher disconnect. This is recorded in docs; the complete single-topic matrix passed on the isolated broker.
  • make check, Sphinx build and standalone shared-package wheel installation/Unit ID validation passed.

See docs/validation.rst for reproduction and limitations. This remains development code: no release tag/package/image was published, and the application's local shared-package path must become an exact registry version before public distribution. Serial hardware, MQTT TLS/QoS2 and remaining M3/M4 work are not claimed complete.

@gavinying gavinying changed the title feat: start experimental WoT acquisition model feat: load WoT configurations and verify modsim equivalence Oct 28, 2026
@gavinying gavinying changed the title feat: load WoT configurations and verify modsim equivalence feat: load WoT configurations and complete M2 acceptance Oct 28, 2026
@gavinying
gavinying marked this pull request as ready for review October 28, 2026 10:52
@gavinying
gavinying merged commit 16e2c2e into develop/v2 Oct 28, 2026
7 checks passed
@gavinying
gavinying deleted the codex/wot-model-foundation branch October 28, 2026 11:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants