MIP_SDK
v3.0.0
MicroStrain Communications Library for embedded systems
|
Functions for iterating over fields in a MIP packet. More...
Functions | |
void | mip::C::mip_field_init_empty (mip_field_view *field) |
Initialize a mip_field struct to an invalid/empty state. More... | |
mip_field_view | mip::C::mip_field_from_header_ptr (const uint8_t *header, uint8_t total_length, uint8_t descriptor_set) |
Constructs a mip_field from a pointer to the heaader. More... | |
mip_field_view | mip::C::mip_field_first_from_packet (const mip_packet_view *packet) |
Extracts the first field from a MIP packet. More... | |
mip_field_view | mip::C::mip_field_next_after (const mip_field_view *field) |
Gets the next field after the specified field. More... | |
bool | mip::C::mip_field_next (mip_field_view *field) |
Updates the mip_field to refer to the next field in a packet. More... | |
bool | mip::C::mip_field_next_in_packet (mip_field_view *field, const mip_packet_view *packet) |
Iterates over all fields in a packet. More... | |
Functions for iterating over fields in a MIP packet.
Use these functions to iterate over the fields in a MIP packet.
Example:
mip_field_view mip::C::mip_field_first_from_packet | ( | const mip_packet_view * | packet | ) |
Extracts the first field from a MIP packet.
Typically this would be used as the first step when iterating through all fields in a received packet. To access each field after the first, call mip_field_next(). You should call mip_field_is_at_end() or mip_field_is_valid() after obtaining each field (including the first) to determine if the field is actually valid.
packet | The mip packet containing 0 or more fields. Assumed to be valid, and the payload pointer and size must be correct. |
mip_field_view mip::C::mip_field_from_header_ptr | ( | const uint8_t * | header, |
uint8_t | total_length, | ||
uint8_t | descriptor_set | ||
) |
Constructs a mip_field from a pointer to the heaader.
Generally you should use mip_field_from_packet() or mip_field_create() instead.
header | A pointer to the header and payload. Usually inside of a MIP packet. |
total_length | The total length of either the field or packet payload, starting from header_ptr and including the header bytes. If total_length is longer than the field (i.e. if it's the packet payload length) then mip_field_next() may be used to iterate fields. |
descriptor_set | The descriptor set for the packet containing this field. May be 0x00 if not used by any function handling the field. |
void mip::C::mip_field_init_empty | ( | mip_field_view * | field | ) |
Initialize a mip_field struct to an invalid/empty state.
Intended to be used with mip_field_next_in_packet. The field will not be valid (mip_field_is_valid will return false).
field |
bool mip::C::mip_field_next | ( | mip_field_view * | field | ) |
Updates the mip_field to refer to the next field in a packet.
field | This mip_field struct will be updated to the next field._ Can be an invalid field, in which case the result will be invalid as well. |
mip_field_view mip::C::mip_field_next_after | ( | const mip_field_view * | field | ) |
Gets the next field after the specified field.
field | An existing MIP field in a packet. Can be invalid, in which case the result will also be invalid. |
bool mip::C::mip_field_next_in_packet | ( | mip_field_view * | field, |
const mip_packet_view * | packet | ||
) |
Iterates over all fields in a packet.
field | An initialized mip_field struct. This will be updated to the next field in the packet, if one exists. Otherwise it will be invalid. |
packet | A valid MIP packet. |
Example usage: