|
Ares LoRa Firmware
|
Ares frame library. More...
#include <zephyr/kernel.h>

Go to the source code of this file.
Data Structures | |
| struct | ares_frame |
| Structured representation of an ares frame. More... | |
| struct | ares_frame_info |
| Serial buffer metadata that describes the location of a frame in a buffer, the size of the frame, and how many bytes need to be read before deserialization is possible. More... | |
Macros | |
| #define | ARES_FRAME_HEADER '^' |
| #define | ARES_FRAME_FOOTER '@' |
| #define | ARES_FRAME_HEADER_OVERHEAD UINT32_C(1) |
| #define | ARES_FRAME_TYPE_OVERHEAD UINT32_C(1) |
| #define | ARES_FRAME_LEN_OVERHEAD UINT32_C(2) |
| #define | ARES_FRAME_FOOTER_OVERHEAD UINT32_C(1) |
| #define | ARES_FRAME_OVERHEAD |
Enumerations | |
| enum | ares_frame_error { ARES_FRAME_ERROR_BAD_FRAME = 0 , ARES_FRAME_ERROR_BAD_TYPE = 1 , ARES_FRAME_ERROR_NOT_IMPLEMENTED = 2 } |
| Frame related errors. More... | |
| enum | ares_frame_type { ARES_FRAME_SETTING , ARES_FRAME_START , ARES_FRAME_LORA_CONFIG , ARES_FRAME_LED , ARES_FRAME_HEARTBEAT , ARES_FRAME_CLAIM , ARES_FRAME_LOG , ARES_FRAME_LOG_ACK , ARES_FRAME_VERSION , ARES_FRAME_ACK , ARES_FRAME_FRAMING_ERROR , ARES_FRAME_DBG , ARES_FRAME_PKT_RX , ARES_FRAME_PKT_TX , ARES_FRAME_TYPE_INVALID } |
| Frame types. More... | |
Functions | |
| int | ares_serialize_frame (uint8_t *buf, size_t len, const struct ares_frame *frame) |
| Function to serialize an ares frame into a buffer. | |
| int | ares_deserialize_frame (struct ares_frame *frame, const uint8_t *buf, size_t len) |
| Function to deserialize an ares frame from a buffer. | |
| int | ares_serial_frame_present (const uint8_t *buf, size_t len, struct ares_frame_info *info) |
| Function to check if there is an ares frame in the buffer. | |
| bool | ares_check_if_frame (const uint8_t *buf, size_t len) |
| Check if the frame in the buffer is valid. | |
Ares frame library.
| Field | Header | Length | Type | Payload | Footer | | Size | 1 byte | 2 bytes | 1 byte | 0-65535 bytes | 1 byte | | Value | ^ | | | | @ |
| #define ARES_FRAME_FOOTER '@' |
Footer for Ares frames.
| #define ARES_FRAME_FOOTER_OVERHEAD UINT32_C(1) |
Number of bytes needed for the footer field.
| #define ARES_FRAME_HEADER '^' |
Header for Ares frames.
| #define ARES_FRAME_HEADER_OVERHEAD UINT32_C(1) |
Number of bytes needed for the header field.
| #define ARES_FRAME_LEN_OVERHEAD UINT32_C(2) |
Number of bytes needed for the length field.
| #define ARES_FRAME_OVERHEAD |
Number of bytes needed for an Ares frame.
| #define ARES_FRAME_TYPE_OVERHEAD UINT32_C(1) |
Number of bytes needed for the type field.
| enum ares_frame_error |
| enum ares_frame_type |
Frame types.
| bool ares_check_if_frame | ( | const uint8_t * | buf, |
| size_t | len ) |
Check if the frame in the buffer is valid.
| [in] | buf | Pointer to source buffer. |
| [in] | len | The length of the serialized frame. |
| int ares_deserialize_frame | ( | struct ares_frame * | frame, |
| const uint8_t * | buf, | ||
| size_t | len ) |
Function to deserialize an ares frame from a buffer.
| [out] | frame | Pointer to the destination frame. |
| [in] | buf | Pointer to the start of the buffered frame. |
| [in] | len | The length of the buffered frame. |
| int ares_serial_frame_present | ( | const uint8_t * | buf, |
| size_t | len, | ||
| struct ares_frame_info * | info ) |
Function to check if there is an ares frame in the buffer.
| [in] | buf | Pointer to source buffer. |
| [in] | len | The number of valid bytes in the buffer. |
| [out] | info | The metadata for finding the frame in the buffer. |
| int ares_serialize_frame | ( | uint8_t * | buf, |
| size_t | len, | ||
| const struct ares_frame * | frame ) |
Function to serialize an ares frame into a buffer.
| [out] | buf | Pointer to the destination buffer. |
| [in] | len | The length of the destination buffer. |
| [in] | frame | Pointer to the source frame. |