14#include <zephyr/kernel.h>
19#define ARES_PACKET_HEADER_0 'A'
24#define ARES_PACKET_HEADER_1 'R'
29#define ARES_PACKET_FOOTER_0 'E'
34#define ARES_PACKET_FOOTER_1 'S'
39#define ARES_PACKET_HEADER_OVERHEAD 2
44#define ARES_PACKET_LEN_OVERHEAD 2
49#define ARES_PACKET_TYPE_OVERHEAD 1
54#define ARES_PACKET_ID_OVERHEAD 2
59#define ARES_PACKET_SEQ_CNT_OVERHEAD 1
64#define ARES_PACKET_PAN_ID_OVERHEAD 2
69#define ARES_PACKET_SRC_ID_OVERHEAD 2
74#define ARES_PACKET_DST_ID_OVERHEAD 2
79#define ARES_PACKET_PAYLOAD_TYPE_OVERHEAD 1
84#define ARES_PACKET_CRC_OVERHEAD 2
89#define ARES_PACKET_FOOTER_OVERHEAD 2
94#define ARES_PACKET_BROADCAST_OVERHEAD \
95 (ARES_PACKET_HEADER_OVERHEAD + ARES_PACKET_LEN_OVERHEAD + \
96 ARES_PACKET_TYPE_OVERHEAD + ARES_PACKET_ID_OVERHEAD + \
97 ARES_PACKET_SEQ_CNT_OVERHEAD + ARES_PACKET_PAN_ID_OVERHEAD + \
98 ARES_PACKET_SRC_ID_OVERHEAD + ARES_PACKET_PAYLOAD_TYPE_OVERHEAD + \
99 ARES_PACKET_CRC_OVERHEAD + ARES_PACKET_FOOTER_OVERHEAD)
104#define ARES_PACKET_DIRECT_OVERHEAD \
105 (ARES_PACKET_BROADCAST_OVERHEAD + ARES_PACKET_DST_ID_OVERHEAD)
257 const struct ares_packet *packet, uint8_t seq_num);
int serialize_ares_packet(uint8_t *buf, size_t len, const struct ares_packet *packet, uint8_t seq_num)
Function to serialize an ares packet into a buffer.
int ares_packet_present(const uint8_t *buf, size_t len, struct ares_packet_info *info)
Function to check if there is an ares packet in the buffer.
ares_packet_payload_type
Packet payload types.
Definition packet.h:111
@ ARES_PKT_PAYLOAD_HEARTBEAT
Heartbeat packet.
Definition packet.h:113
@ ARES_PKT_PAYLOAD_LOG
Log packet.
Definition packet.h:115
@ ARES_PKT_PAYLOAD_CLAIM
Claim master packet.
Definition packet.h:114
@ ARES_PKT_PAYLOAD_INVALID
Invalid packet type.
Definition packet.h:118
@ ARES_PKT_PAYLOAD_START
Start data collection packet.
Definition packet.h:112
@ ARES_PKT_PAYLOAD_LOG_ACK
Log acknowledge packet.
Definition packet.h:116
int deserialize_ares_packet(struct ares_packet *packet, const uint8_t *buf, size_t len)
Function to deserialize an ares packet from a buffer.
ares_packet_type
Ares packet types.
Definition packet.h:164
@ ARES_PKT_TYPE_INVALID
Invalid packet type.
Definition packet.h:168
@ ARES_PKT_TYPE_BROADCAST
Broadcast message to all listening nodes.
Definition packet.h:165
@ ARES_PKT_TYPE_DIRECT
Direct a packet to a specific node.
Definition packet.h:166
bool ares_packet_valid(const uint8_t *buf, size_t len)
Function to verify the packet in the buffer.
Serial buffer metadata that describes the location of a packet in a buffer, the size of the packet,...
Definition packet.h:220
int size
Definition packet.h:233
int start
Definition packet.h:226
int bytes_left
Definition packet.h:240
Payload of ares packets.
Definition packet.h:125
enum ares_packet_payload_type type
Definition packet.h:129
union ares_packet_payload::@026112377275002354333323156165115310321102177157 payload
Structured representation of an ares packet.
Definition packet.h:175
uint16_t destination_id
Definition packet.h:195
struct ares_packet_payload payload
Definition packet.h:211
uint8_t sequence_cnt
Definition packet.h:179
uint16_t source_id
Definition packet.h:189
uint16_t pan_id
Definition packet.h:184
uint16_t packet_id
Definition packet.h:201
enum ares_packet_type type
Definition packet.h:206