Code generator for NMEA2000 messages from pgns.xml of canboat (https://github.com/canboat/canboat/blob/master/analyzer/pgns.xml) and NMEA2000 CAN bus parsing library based on embedded_hal_can.
Code generator for PGN parsers from completed N2K messages.
Built to transparently handle multi-part n2k messages on top of a CAN bus abstracted by embedded_hal_can. Interfaces with the generated code by the code generator through the PgnRegistry
trait.
Parse candump and print decoded messages on the command line.
- Interface to identify fast packets and assemble
- Sending
- Single frames
- Fast packets
- ISO Transport Protocol multi-part messages
- Receiving and re-assembling of ISO Transport Protocol multi-part messages
- ISO functions
- Address claim
- Product Information
- Device Information
- Transmit Messages
- Example test project
- Sub-PGN message decoding/proprietary PGNS. Example: PGN 130820 represents multiple possible Fusion messages, the key in the XML disambiguates between different types
These PGNs currently don't generate properly for reasons:
- 129540 / gnssSatsInView: variable length
- 130820 / Fusion: proprietary PGN
- 130311 / environmentalParameters: duplicate id name
- 129029 / gnssPositionData: slices
- 65288 / seatalkAlarm: duplicate enum names