Final corrections for the standard data type set v1.0 #60
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While working on the application layer chapter, I have identified a few minor issues with the current standard DSDL set, which are fixed in this PR:
Some data types that required multi-frame CAN FD transfers can be easily amended to fit into single-frame CAN FD transfers (assuming 64 octets per frame here). I decided to limit the maximum data type length, the maximum node name length, and the maximum register name length to 50 ASCII characters, and reduce the width of the IO statistical counters to 40 bits. This change allows us to use single-frame transfers virtually everywhere.
Some data types required unnecessarily large number of frames per transfer; it turned out to be easy to limit all data types to 5 CAN FD frames max by introducing two minor changes: the maximum size of the certificate of authenticity has been reduced down to 222 bytes (which is enough for very cryptographically strong signatures, provided that the right algorithm is used), and the maximum size of UDP payload in a response packet has been reduced to 309 bytes. I also reduced the maximum file path length from 160 to 112 bytes, and changed the diagnostic record type to use a single text string 112 bytes long to ensure that they always require no more than 2 CAN FD frames.
All port-related items have been moved from
uavcan.node
into a nested namespaceuavcan.node.port
. Data types NodeID, PortID, and GetPorts were assigned shorter names that are more consistent with the rest of the set: ID, ID, and List, respectively.