Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
tdf.h File Reference

TDF payload generation. More...

#include <stdint.h>
#include <zephyr/net_buf.h>

Go to the source code of this file.

Data Structures

struct  tdf_buffer_state
 
struct  tdf_parsed
 

Macros

#define TDF_TYPE(tdf_id)
 Get type associated with a given TDF ID.
 
#define TDF_ADD(state, tdf_id, tdf_num, base_time, period, data)
 Type safe wrapper around tdf_add.
 

Enumerations

enum  tdf_data_format {
  TDF_DATA_FORMAT_SINGLE , TDF_DATA_FORMAT_TIME_ARRAY , TDF_DATA_FORMAT_IDX_ARRAY , TDF_DATA_FORMAT_DIFF_ARRAY_16_8 ,
  TDF_DATA_FORMAT_DIFF_ARRAY_32_8 , TDF_DATA_FORMAT_DIFF_ARRAY_32_16 , TDF_DATA_FORMAT_INVALID , TDF_DATA_FORMAT_DIFF_PRECOMPUTED = 0x80
}
 
enum  tdf_flags {
  TDF_TIMESTAMP_NONE = 0x0000 , TDF_TIMESTAMP_ABSOLUTE = 0x4000 , TDF_TIMESTAMP_RELATIVE = 0x8000 , TDF_TIMESTAMP_EXTENDED_RELATIVE = 0xC000 ,
  TDF_ARRAY_NONE = 0x0000 , TDF_ARRAY_TIME = 0x1000 , TDF_ARRAY_DIFF = 0x2000 , TDF_ARRAY_IDX = 0x3000 ,
  TDF_FLAGS_MASK = 0xF000 , TDF_TIMESTAMP_MASK = 0xC000 , TDF_ARRAY_MASK = 0x3000 , TDF_ID_MASK = 0x0FFF
}
 

Functions

static void tdf_buffer_state_reset (struct tdf_buffer_state *state)
 Reset a tdf_buffer_state struct.
 
int tdf_add_core (struct tdf_buffer_state *state, uint16_t tdf_id, uint8_t tdf_len, uint8_t tdf_num, uint64_t time, uint32_t idx_period, const void *data, enum tdf_data_format format)
 Add TDFs to memory buffer with an explicit format.
 
static int tdf_add (struct tdf_buffer_state *state, uint16_t tdf_id, uint8_t tdf_len, uint8_t tdf_num, uint64_t time, uint32_t period, const void *data)
 Add TDFs to memory buffer.
 
static void tdf_parse_start (struct tdf_buffer_state *state, void *data, size_t size)
 Initialise TDF parsing state.
 
int tdf_parse (struct tdf_buffer_state *state, struct tdf_parsed *parsed)
 Parse the next TDF from a memory buffer.
 
static int tdf_parse_find_in_buf (void *data, size_t size, uint16_t tdf_id, struct tdf_parsed *parsed)
 Find the first instance of a specific TDF in a memory buffer.
 
int tdf_parse_diff_reconstruct (const struct tdf_parsed *parsed, void *output, uint8_t idx)
 Reconstruct the original TDF from a parsed TDF_ARRAY_DIFF.
 

Detailed Description

TDF payload generation.

Author
Jordan Yates jorda.nosp@m.n@em.nosp@m.beint.nosp@m..com

SPDX-License-Identifier: FSL-1.1-ALv2

Tagged Data Format payload generation. Evolution of the data logging format described in: https://doi.org/10.1007/978-3-319-03071-5_2