Skip to content

Add Ion ModuleStatus vendor message - #82

Open
joop7109-creator wants to merge 1 commit into
dronecan:masterfrom
joop7109-creator:ion-ctrl-vendor-dsdl
Open

Add Ion ModuleStatus vendor message#82
joop7109-creator wants to merge 1 commit into
dronecan:masterfrom
joop7109-creator:ion-ctrl-vendor-dsdl

Conversation

@joop7109-creator

Copy link
Copy Markdown

Summary

This pull request adds the following Ion Controls vendor-specific DroneCAN data type:

  • 20540 ion.ModuleStatus

The message reports the module supply voltage, operating state, and elapsed timer value.

Vendor message-ID request

Ion Controls Ltd would also like to request the following vendor-specific message-ID allocation:

  • 20540–20549, inclusive

ID 20540 is assigned by this pull request to ion.ModuleStatus.

IDs 20541–20549 are requested for future Ion Controls vendor-specific DroneCAN messages. No placeholder DSDL definitions have been created for these unused IDs.

Please could the maintainers confirm whether the complete 20540–20549 block can be recognised as reserved for Ion Controls Ltd.

Thank you.

Testing

The ion.ModuleStatus definition has been successfully compiled using dronecan_dsdlc and is in use on an STM32H7 DroneCAN node.

@fallenmi fallenmi left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reviewed the single-file vendor-type addition from exact base b4653c7abc3c47cb31b16efa24ea755232774756 to exact head 5c71f4e70c4752ab89a9e3a84f92519255296f09.

Loading the new namespace explicitly produces ion.ModuleStatus as broadcast DTID 20540 with signature 21e90cfff3e505d3 and a fixed 56-bit/7-byte layout. I generated the C codec with the current dronecan_dsdlc and exercised four representative/boundary payloads across pydronecan and the generated C implementation: zero/off, 12 V/on, 28.5 V/timer-complete at 60 s, and maximum finite float16/ready with UINT32_MAX. Head and GitHub's current merge produced byte-identical generated sources and wire vectors, and the C round-trip passed under ASan/UBSan.

One coverage caveat: GitHub currently exposes no check run for this head, and the repository's default test.py, list_ids.py, and regression script do not enumerate the new top-level ion namespace. I therefore tested it explicitly rather than treating those default scripts as coverage; adding ion to the repository regression inputs would make that coverage persistent. I did not find a correctness blocker in the submitted type itself.

Disclosure: I used OpenAI Codex to assist this review; I verified the exact refs, generated codec, serialization vectors, and test results described above.

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