Phase 3 PR 48 -- DL205 CDAB float word order end-to-end test #47

Merged
dohertj2 merged 1 commits from phase-3-pr48-dl205-cdab-float into v2 2026-04-18 22:13:40 -04:00
Owner

Summary

Stacked on PR 47. Integration-test-only PR: validates ModbusByteOrder.WordSwap (CDAB) for Float32 end-to-end against the pymodbus dl205 profile. The word-swap code path has existed since PR 24; this locks it in against a realistic PLC payload so future codec refactors can't silently break DL205/DL260 floats.

  • HR[1056..1057] stores IEEE-754 1.5f as CDAB (low word 0x0000 first, high word 0x3FC0 second).
  • With WordSwap the read returns 1.5f; with BigEndian it returns a tiny denormal.
  • Test asserts both to prove the flag is not a no-op.

Validation

  • No driver code changes
  • 6/6 DL205 integration tests pass

Test plan

  • WordSwap decodes 1.5f
  • BigEndian decode on same wire != 1.5f
  • Regression safety net for DL205/DL260 CDAB codec
## Summary Stacked on PR 47. Integration-test-only PR: validates `ModbusByteOrder.WordSwap` (CDAB) for `Float32` end-to-end against the pymodbus dl205 profile. The word-swap code path has existed since PR 24; this locks it in against a realistic PLC payload so future codec refactors can't silently break DL205/DL260 floats. - HR[1056..1057] stores IEEE-754 `1.5f` as CDAB (low word `0x0000` first, high word `0x3FC0` second). - With `WordSwap` the read returns `1.5f`; with `BigEndian` it returns a tiny denormal. - Test asserts both to prove the flag is not a no-op. ## Validation - No driver code changes - 6/6 DL205 integration tests pass ## Test plan - [x] WordSwap decodes 1.5f - [x] BigEndian decode on same wire != 1.5f - [x] Regression safety net for DL205/DL260 CDAB codec
dohertj2 added 1 commit 2026-04-18 22:13:36 -04:00
dohertj2 merged commit f306793e36 into v2 2026-04-18 22:13:40 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/lmxopcua#47