NTURT Zephyr v0.0.1
NTURT common library for Zephyr RTOS
Loading...
Searching...
No Matches
telemetry.h File Reference

Telemetry support. More...

#include <stddef.h>
#include <sys/queue.h>
#include <zephyr/kernel.h>
#include <zephyr/sys/iterable_sections.h>
#include <zephyr/sys/util.h>
#include "nturt/msg/aggregation.h"
+ Include dependency graph for telemetry.h:
+ This graph shows which files directly or indirectly include this file:

Data Structures

struct  tm_group_data
 Telemetry group data. More...
 
struct  tm_data
 Telemetry data. More...
 
struct  tm_group
 Telemetry publishing group. More...
 

Macros

#define TM_DATA_DECLARE(name, type)
 Declare a telemetry data, useful for header files.
 
#define TM_DATA_DEFINE(_name, _type, _addr)
 Define a telemetry data.
 
#define TM_ALIAS_DECLARE(name, alias)
 Declare a telemetry data alias, useful for header files.
 
#define TM_ALIAS_DEFINE(_name, _alias, _addr)
 Define a telemetry data alias.
 
#define TM_GROUP_DATA(data, ...)
 Specify a telemetry data to be aggregated and published by a telemetry group. Used in TM_GROUP_DEFINE.
 
#define TM_GROUP_DEFINE(_name, _period, _min_separation, _watermark, _flag, _publish, _user_data, ...)
 Define a telemetry group to aggregrate and publish telementry data.
 
#define TM_DATA_GET(name)
 Get the value of telemetry data using its name.
 
#define TM_DATA_UPDATE(name, value)
 Update telemetry data using its name and value.
 

Typedefs

typedef void(* tm_publish_t) (uint32_t addr, const void *data, size_t size, void *user_data)
 Function to publish the data.
 

Enumerations

enum  tm_data_type { TM_DATA_TYPE_NORMAL = 0 , TM_DATA_TYPE_ALIAS }
 Telemetry data type. More...
 

Functions

int tm_data_get (uint32_t addr, void *value)
 Get telemetry data using its address and pointer to value.
 
int tm_data_update (uint32_t addr, const void *value)
 Update telemetry data using its address and pointer to value.
 
void tm_data_notify_lock (const struct tm_data *data)
 Notify the telemetry groups that this data has been updated. Must be called while holding the lock.
 
void tm_group_copy (struct tm_group *group)
 Copy the data in the telemetry data to the group's publishing buffer.
 

Detailed Description

Telemetry support.

Author
quantumspawner
Version
0.0.1
Date
2024-12-27