Skip to content
This repository was archived by the owner on Mar 7, 2022. It is now read-only.
This repository was archived by the owner on Mar 7, 2022. It is now read-only.

Elimination of the TAO #34

Description

@thirtytwobits

In the UAVCAN specification, section » 3.0 Data Structure Description Language » Data serialization » Serialized data format » Dynamic Arrays, we propose the following change (lines added indicated by the +++, all other lines are existing and provided for context)

The transport layer provides a data length for every received data transfer (with an 8-bit resolution); thus, in some cases, the array length information would be redundant as it can be inferred from the overall transfer length reported by the transport layer. Elimination of the dynamic array length field is called tail array optimization, and it can be done if all the conditions below are satisfied:
1 . The minimum bit length of an item type is not less than 8 bits - because the transport layer reports the transfer length with an 8-bit resolution.
2. The array is the last field in the top-level data structure - because, otherwise, a much more complicated logic would be required to derive the length.
+++ 3. CAN 2.0 frames are in use - because the complexity of the TAO for CAN-FD frames outweighs the benefits.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions