Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
data logger APIs

Data logger API . More...

Data Structures

struct  data_logger_state
 
struct  data_logger_persistent_block_header
 
struct  data_logger_cb
 

Macros

#define DATA_LOGGER_DEPENDENCIES_MET(node_id)
 Are the dependencies for this data logger met?
 
#define DATA_LOGGER_MAX_SIZE(node_id)
 Maximum required block size for each logger backend.
 

Functions

void data_logger_get_state (const struct device *dev, struct data_logger_state *state)
 Get the current data logger state.
 
int data_logger_block_write (const struct device *dev, enum infuse_type type, void *block, uint16_t block_len)
 Write a block to the data logger.
 
int data_logger_block_read (const struct device *dev, uint32_t block_idx, uint16_t block_offset, void *block, uint16_t block_len)
 Read a block from the data logger.
 
int data_logger_erase (const struct device *dev, bool erase_all, void(*erase_progress)(uint32_t blocks_erased))
 Completely erase a data logger.
 
int data_logger_flush (const struct device *dev)
 Flush any data pending in a RAM buffer to the backend.
 
void data_logger_register_cb (const struct device *dev, struct data_logger_cb *cb)
 Register for event callbacks from the data logger.
 

Detailed Description

Data logger API .

Macro Definition Documentation

◆ DATA_LOGGER_DEPENDENCIES_MET

#define DATA_LOGGER_DEPENDENCIES_MET ( node_id)

#include <infuse/data_logger/logger.h>

Value:
COND_CODE_1(DT_NODE_HAS_COMPAT(node_id, embeint_data_logger_epacket), \
(EPACKET_INTERFACE_IS_COMPILED_IN(DT_PROP(node_id, epacket))), (1))
#define EPACKET_INTERFACE_IS_COMPILED_IN(node_id)
Will this ePacket interface be compiled in?
Definition interface.h:52

Are the dependencies for this data logger met?

Parameters
node_idembeint,data-logger node ID
Return values
1if data logger dependencies exist in build
0if data logger dependencies do NOT exist in build

◆ DATA_LOGGER_MAX_SIZE

#define DATA_LOGGER_MAX_SIZE ( node_id)

#include <infuse/data_logger/logger.h>

Value:
COND_CODE_1( \
DT_NODE_HAS_COMPAT(node_id, embeint_data_logger_flash_map), (512), \
(COND_CODE_1(DT_NODE_HAS_COMPAT(node_id, embeint_data_logger_epacket), \
(EPACKET_INTERFACE_MAX_PAYLOAD(DT_PROP(node_id, epacket))), \
((COND_CODE_1(DT_NODE_HAS_COMPAT(node_id, embeint_data_logger_exfat), \
(512), ()))))))
#define EPACKET_INTERFACE_MAX_PAYLOAD(node_id)
Definition interface.h:41

Maximum required block size for each logger backend.

Parameters
node_idembeint,data-logger node ID
Returns
Maximum size of a block on the logger

Function Documentation

◆ data_logger_block_read()

int data_logger_block_read ( const struct device * dev,
uint32_t block_idx,
uint16_t block_offset,
void * block,
uint16_t block_len )

#include <infuse/data_logger/logger.h>

Read a block from the data logger.

Note
Can read over block boundaries
First bytes on each block will be the logging overhead
Parameters
devData logger to read from
block_idxLogical block number
block_offsetByte offset within the block
blockBlock data pointer
block_lenBlock bytes to read
Return values
0on success
-ENOTSUPreading not supported by logger
-ENOENTrequested data that does not exist
-EBUSYdata logger is being erased
-errnoon error

◆ data_logger_block_write()

int data_logger_block_write ( const struct device * dev,
enum infuse_type type,
void * block,
uint16_t block_len )

#include <infuse/data_logger/logger.h>

Write a block to the data logger.

Note
Some hardware-accelerated backends may have alignment or size restrictions for the provided block buffer.
Parameters
devData logger to write to
typeData type being written
blockBlock data pointer (Overhead bytes will be overwritten)
block_lenTotal block data length (Including overhead bytes)
Return values
0on success
-ENOTCONNdata logger is currently disconnected
-EINVALinvalid block length
-ENOMEMdata logger is full
-errnoon error

◆ data_logger_erase()

int data_logger_erase ( const struct device * dev,
bool erase_all,
void(* erase_progress )(uint32_t blocks_erased) )

#include <infuse/data_logger/logger.h>

Completely erase a data logger.

Attempting to write to a logger while the erase is ongoing will silently fail with return code 0.

Parameters
devData logger to erase
erase_allRun erase function on ALL blocks, not just those with data
erase_progressCallback periodically run with the erase progress
Return values
0on success
-ENOTSUPerasing not supported by logger
-errnoon error

◆ data_logger_flush()

int data_logger_flush ( const struct device * dev)

#include <infuse/data_logger/logger.h>

Flush any data pending in a RAM buffer to the backend.

This function only performs useful work on data loggers with an attached RAM buffer.

Parameters
devData logger to flush
Return values
0on success
-ENOTCONNdata logger is currently disconnected
-ENOMEMdata logger is full
-errnoon error

◆ data_logger_get_state()

void data_logger_get_state ( const struct device * dev,
struct data_logger_state * state )

#include <infuse/data_logger/logger.h>

Get the current data logger state.

Parameters
devData logger to query
stateState storage

◆ data_logger_register_cb()

void data_logger_register_cb ( const struct device * dev,
struct data_logger_cb * cb )

#include <infuse/data_logger/logger.h>

Register for event callbacks from the data logger.

Parameters
devData logger instance
cbCallback structure