|
openaliro
Aliro reader: UWB/CCC core and ESP32-S3/C5/C6 port
|
— TLV attribute parser and big-endian reads. More...
Functions | |
| struct aliro_uwb_msg_attribute * | aliro_uwb_msg_next_attribute (struct aliro_uwb_msg_parser *parser) |
| Parses the next TLV attribute from the message payload; returns NULL if offset exceeds declared message length, clamping to prevent overrun. | |
| static bool | read_be (const struct aliro_uwb_msg_attribute *attr, const char *name, uint8_t width, uint64_t *out) |
| Decodes a big-endian fixed-width integer from an attribute; returns false if declared length does not match width or on parse error. | |
| bool | aliro_uwb_msg_read_u8 (const struct aliro_uwb_msg_attribute *attr, const char *name, uint8_t *out) |
| Decodes an 8-bit big-endian integer from an attribute; returns false on width mismatch or parse error. | |
| bool | aliro_uwb_msg_read_u16 (const struct aliro_uwb_msg_attribute *attr, const char *name, uint16_t *out) |
| Decodes a 16-bit big-endian integer from an attribute; returns false on width mismatch or parse error. | |
| bool | aliro_uwb_msg_read_u32 (const struct aliro_uwb_msg_attribute *attr, const char *name, uint32_t *out) |
| Decodes a 32-bit big-endian integer from an attribute; returns false on width mismatch or parse error. | |
| bool | aliro_uwb_msg_read_u64 (const struct aliro_uwb_msg_attribute *attr, const char *name, uint64_t *out) |
| Decodes a 64-bit big-endian integer from an attribute. | |
— TLV attribute parser and big-endian reads.
| struct aliro_uwb_msg_attribute * aliro_uwb_msg_next_attribute | ( | struct aliro_uwb_msg_parser * | parser | ) |
Parses the next TLV attribute from the message payload; returns NULL if offset exceeds declared message length, clamping to prevent overrun.
Advance to the next attribute; NULL at end-of-payload or on overrun.
| parser | Parser cursor to advance. |
| bool aliro_uwb_msg_read_u16 | ( | const struct aliro_uwb_msg_attribute * | attr, |
| const char * | name, | ||
| uint16_t * | out | ||
| ) |
Decodes a 16-bit big-endian integer from an attribute; returns false on width mismatch or parse error.
| attr | Attribute whose value bytes are decoded. |
| name | Attribute name, used for error logging. |
| out | Destination for the decoded value. |
| bool aliro_uwb_msg_read_u32 | ( | const struct aliro_uwb_msg_attribute * | attr, |
| const char * | name, | ||
| uint32_t * | out | ||
| ) |
Decodes a 32-bit big-endian integer from an attribute; returns false on width mismatch or parse error.
| attr | Attribute whose value bytes are decoded. |
| name | Attribute name, used for error logging. |
| out | Destination for the decoded value. |
| bool aliro_uwb_msg_read_u64 | ( | const struct aliro_uwb_msg_attribute * | attr, |
| const char * | name, | ||
| uint64_t * | out | ||
| ) |
Decodes a 64-bit big-endian integer from an attribute.
| attr | Attribute holding the encoded value. |
| name | Attribute name, used only in the mismatch log line. |
| out | Receives the decoded value on success. |
| bool aliro_uwb_msg_read_u8 | ( | const struct aliro_uwb_msg_attribute * | attr, |
| const char * | name, | ||
| uint8_t * | out | ||
| ) |
Decodes an 8-bit big-endian integer from an attribute; returns false on width mismatch or parse error.
| attr | Attribute whose value bytes are decoded. |
| name | Attribute name, used for error logging. |
| out | Destination for the decoded value. |
|
static |
Decodes a big-endian fixed-width integer from an attribute; returns false if declared length does not match width or on parse error.
| attr | Attribute whose value bytes are decoded. |
| name | Attribute name, used for error logging. |
| width | Expected byte width of the encoded integer. |
| out | Destination for the decoded value. |