#include "packet_utils.h"Data Structures | |
| struct | packet |
| struct | tx_strip_pkt |
| struct | pkt_enc_pool |
| struct | rx_strip_pkt |
| struct | pkt_dec_pool |
Macros | |
| #define | U16_BYTES (2) |
| #define | XOR_BYTES (53) |
| #define | POOL_DEPTH (32) |
| #define | SYNC8 (0xAA) |
| #define | ALL_KNOWN_MASK (0xFFFFFFFF) |
| #define | XOR_LOCATIONS { 0, 3, 7, 15, 31 } |
| #define | XOR_GROUP_MASK (0x80008088) |
| #define | ONLY_N03_UNKNOWN_MASK (XOR_GROUP_MASK & ~(1U << (3))) |
| #define | ONLY_N07_UNKNOWN_MASK (XOR_GROUP_MASK & ~(1U << (7))) |
| #define | ONLY_N15_UNKNOWN_MASK (XOR_GROUP_MASK & ~(1U << (15))) |
| #define | ONLY_N31_UNKNOWN_MASK (XOR_GROUP_MASK & ~(1U << (31))) |
| #define | RAND_THRESHOLD (5) |
| #define | BYTES_STR_SIZE(n) |
| #define | PKT_CHECK(cond, tag, msg) |
Functions | |
| static const char * | domain_to_str (domain_t domain) |
| static const char * | category_to_str (domain_t domain, category_t category) |
| static const char * | type_to_str (domain_t domain, category_t category, type_t type) |
| static void | bytes_to_str (const uint8_t *restrict buffer, size_t sz, char *restrict out, size_t out_sz) |
| static void | enc_pool_update_slot (pkt_enc_pool_t *restrict pool, const packet_t *restrict pkt) |
| static const struct tx_strip_pkt * | enc_pool_get_slot_n (const pkt_enc_pool_t *restrict pool, uint8_t n) |
| static void | dec_pool_update_slot (pkt_dec_pool_t *restrict pool, const packet_t *restrict pkt) |
| static void | dec_pool_mark_known (pkt_dec_pool_t *restrict pool, const packet_t *restrict pkt) |
| static bool | dec_pool_has_unknown_pkt (const pkt_dec_pool_t *restrict pool) |
| static const struct rx_strip_pkt * | dec_pool_get_slot_n (const pkt_dec_pool_t *restrict pool, uint16_t n) |
| static int8_t | dec_pool_try_recovery (pkt_dec_pool_t *restrict pool) |
| static void | pkt_set_xor_part (const pkt_enc_pool_t *restrict pool, packet_t *restrict pkt) |
| static void | pkt_set_sync8 (packet_t *restrict pkt) |
| static uint8_t | pkt_get_sync8 (const packet_t *restrict pkt) |
| static bool | pkt_sync8_is_valid (const packet_t *restrict pkt) |
| static uint16_t | pkt_compute_crc16_ccitt_false (const packet_t *restrict pkt) |
| static void | pkt_set_crc16 (packet_t *restrict pkt) |
| static uint16_t | pkt_get_crc16 (const packet_t *restrict pkt) |
| static bool | pkt_crc16_is_valid (const packet_t *restrict pkt) |
| packet_t * | pkt_create (void) |
| void | pkt_destroy (packet_t *restrict pkt) |
| pkt_enc_pool_t * | enc_pool_create (void) |
| void | enc_pool_destroy (pkt_enc_pool_t *restrict pool) |
| pkt_dec_pool_t * | dec_pool_create (void) |
| void | dec_pool_destroy (pkt_dec_pool_t *restrict pool) |
| pkt_err_t | pkt_encode (packet_t *restrict pkt, pkt_enc_pool_t *restrict pool) |
| pkt_err_t | pkt_decode (const packet_t *restrict pkt, pkt_dec_pool_t *restrict pool, int8_t *restrict relative_loc) |
| pkt_err_t | dec_pool_get_pkt_from_relative_loc (const pkt_dec_pool_t *restrict pool, int8_t relative_loc, packet_t *restrict pkt) |
| pkt_err_t | pkt_get_id (const packet_t *restrict pkt, uint16_t *id) |
| pkt_err_t | header_sensor_config (header_t *restrict header) |
| pkt_err_t | header_old_sensor_config (header_t *restrict header, uint16_t old_id) |
| pkt_err_t | pkt_get_header (const packet_t *restrict pkt, header_t *header) |
| pkt_err_t | pkt_set_header (packet_t *restrict pkt, const header_t *restrict header) |
| pkt_err_t | pkt_get_payload (const packet_t *restrict pkt, uint8_t *payload, size_t len) |
| pkt_err_t | pkt_set_payload (packet_t *restrict pkt, const uint8_t *restrict payload, size_t len) |
| bool | pkt_is_chunked (const packet_t *restrict pkt) |
| pkt_err_t | pkt_log (const packet_t *restrict pkt) |
| pkt_err_t | pkt_test_random_set_sync8 (packet_t *restrict pkt, bool *failed) |
| pkt_err_t | pkt_test_random_set_crc16 (packet_t *restrict pkt) |
Variables | |
| static const char * | TAG = "pkt_utils" |
| static _Atomic uint16_t | id = 0 |
| struct packet |
| struct tx_strip_pkt |
| Data Fields | ||
|---|---|---|
| uint8_t | dct | |
| uint8_t | index[U16_BYTES] | |
| uint8_t | payload[PAYLOAD_BYTES] | |
| uint8_t | total[U16_BYTES] | |
| struct pkt_enc_pool |
| Data Fields | ||
|---|---|---|
| struct tx_strip_pkt * | pkt | |
| struct tx_strip_pkt | pool[POOL_DEPTH] | |
| struct rx_strip_pkt |
| Data Fields | ||
|---|---|---|
| uint8_t | dct | |
| uint8_t | index[U16_BYTES] | |
| uint8_t | payload[PAYLOAD_BYTES] | |
| uint8_t | total[U16_BYTES] | |
| uint8_t | xor_part[XOR_BYTES] | |
| struct pkt_dec_pool |
| Data Fields | ||
|---|---|---|
| uint32_t | known | |
| struct rx_strip_pkt * | pkt | |
| struct rx_strip_pkt | pool[POOL_DEPTH] | |
| #define ALL_KNOWN_MASK (0xFFFFFFFF) |
| #define BYTES_STR_SIZE | ( | n | ) |
| #define ONLY_N03_UNKNOWN_MASK (XOR_GROUP_MASK & ~(1U << (3))) |
| #define ONLY_N07_UNKNOWN_MASK (XOR_GROUP_MASK & ~(1U << (7))) |
| #define ONLY_N15_UNKNOWN_MASK (XOR_GROUP_MASK & ~(1U << (15))) |
| #define ONLY_N31_UNKNOWN_MASK (XOR_GROUP_MASK & ~(1U << (31))) |
| #define PKT_CHECK | ( | cond, | |
| tag, | |||
| msg ) |
| #define POOL_DEPTH (32) |
| #define RAND_THRESHOLD (5) |
| #define SYNC8 (0xAA) |
| #define U16_BYTES (2) |
| #define XOR_BYTES (53) |
| #define XOR_GROUP_MASK (0x80008088) |
| #define XOR_LOCATIONS { 0, 3, 7, 15, 31 } |
|
static |
|
static |
| pkt_dec_pool_t * dec_pool_create | ( | void | ) |
| void dec_pool_destroy | ( | pkt_dec_pool_t *restrict | pool | ) |
| pkt_err_t dec_pool_get_pkt_from_relative_loc | ( | const pkt_dec_pool_t *restrict | pool, |
| int8_t | relative_loc, | ||
| packet_t *restrict | pkt ) |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
static |
|
inlinestatic |
|
static |
| pkt_enc_pool_t * enc_pool_create | ( | void | ) |
| void enc_pool_destroy | ( | pkt_enc_pool_t *restrict | pool | ) |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
| packet_t * pkt_create | ( | void | ) |
| pkt_err_t pkt_decode | ( | const packet_t *restrict | pkt, |
| pkt_dec_pool_t *restrict | pool, | ||
| int8_t *restrict | relative_loc ) |
| void pkt_destroy | ( | packet_t *restrict | pkt | ) |
| pkt_err_t pkt_encode | ( | packet_t *restrict | pkt, |
| pkt_enc_pool_t *restrict | pool ) |
|
inlinestatic |
|
inlinestatic |
|
inline |
|
inlinestatic |
|
inlinestatic |
|
static |
|
inlinestatic |
|
static |
|
static |
|
static |