10#ifndef INFUSE_SDK_INCLUDE_INFUSE_ZBUS_CHANNELS_H_
11#define INFUSE_SDK_INCLUDE_INFUSE_ZBUS_CHANNELS_H_
15#include <zephyr/zbus/zbus.h>
70#define _INFUSE_ZBUS_CHAN_BATTERY_TYPE struct tdf_battery_state
71#define _INFUSE_ZBUS_CHAN_AMBIENT_ENV_TYPE struct tdf_ambient_temp_pres_hum
72#define _INFUSE_ZBUS_CHAN_IMU_TYPE struct imu_sample_array
73#define _INFUSE_ZBUS_CHAN_IMU_ACC_MAG_TYPE struct imu_magnitude_array
74#define _INFUSE_ZBUS_CHAN_LOCATION_TYPE struct tdf_gcs_wgs84_llha
75#define _INFUSE_ZBUS_CHAN_MOVEMENT_STD_DEV_TYPE struct infuse_zbus_chan_movement_std_dev
76#define _INFUSE_ZBUS_CHAN_TILT_TYPE struct infuse_zbus_chan_tilt
77#define _INFUSE_ZBUS_CHAN_UBX_NAV_PVT_TYPE struct tdf_ubx_nav_pvt
78#define _INFUSE_ZBUS_CHAN_NRF9X_NAV_PVT_TYPE struct tdf_nrf9x_gnss_pvt
79#define _INFUSE_ZBUS_CHAN_SOC_TEMPERATURE_TYPE struct tdf_soc_temperature
81#define _INFUSE_ZBUS_CHAN_BATTERY_NAME zbus_infuse_battery
82#define _INFUSE_ZBUS_CHAN_AMBIENT_ENV_NAME zbus_infuse_ambient_env
83#define _INFUSE_ZBUS_CHAN_IMU_NAME zbus_infuse_imu
84#define _INFUSE_ZBUS_CHAN_IMU_ACC_MAG_NAME zbus_infuse_imu_acc_mag
85#define _INFUSE_ZBUS_CHAN_LOCATION_NAME zbus_infuse_location
86#define _INFUSE_ZBUS_CHAN_MOVEMENT_STD_DEV_NAME zbus_infuse_move_std_dev
87#define _INFUSE_ZBUS_CHAN_TILT_NAME zbus_infuse_tilt
88#define _INFUSE_ZBUS_CHAN_UBX_NAV_PVT_NAME zbus_infuse_ubx_nav_pvt
89#define _INFUSE_ZBUS_CHAN_NRF9X_NAV_PVT_NAME zbus_infuse_nrf9x_nav_pvt
90#define _INFUSE_ZBUS_CHAN_SOC_TEMPERATURE_NAME zbus_infuse_soc_temperature
93#define INFUSE_ZBUS_TYPE(channel) _##channel##_TYPE
95#define INFUSE_ZBUS_NAME(channel) _##channel##_NAME
102#define INFUSE_ZBUS_CHAN_DEFINE(channel) \
103 ZBUS_CHAN_DEFINE_WITH_ID(INFUSE_ZBUS_NAME(channel), channel, INFUSE_ZBUS_TYPE(channel), \
104 NULL, NULL, ZBUS_OBSERVERS_EMPTY, ZBUS_MSG_INIT(0));
107#define _INFUSE_ZBUS_CHAN_EXTERN(channel) _ZBUS_CHAN_EXTERN(INFUSE_ZBUS_NAME(channel))
113#define INFUSE_ZBUS_CHAN_DECLARE(...) FOR_EACH(_INFUSE_ZBUS_CHAN_EXTERN, (;), __VA_ARGS__)
120#define INFUSE_ZBUS_CHAN_GET(channel) (&INFUSE_ZBUS_NAME(channel))
132#ifdef CONFIG_ZBUS_CHANNEL_PUBLISH_STATS
133 if (zbus_chan_pub_stats_count(chan) == 0) {
136 return k_ticks_to_ms_floor64(k_uptime_ticks() - zbus_chan_pub_stats_last_time(chan));
Autogenerated TDF definitions.
static uint64_t infuse_zbus_channel_data_age(const struct zbus_channel *chan)
Retrieve the age of the data in the zbus channel.
Definition channels.h:130
infuse_zbus_channel_id
Definition channels.h:46
@ INFUSE_ZBUS_CHAN_UBX_NAV_PVT
Data type: tdf_ubx_nav_pvt.
Definition channels.h:63
@ INFUSE_ZBUS_CHAN_AMBIENT_ENV
Data type: tdf_ambient_temp_pres_hum.
Definition channels.h:51
@ INFUSE_ZBUS_CHAN_BATTERY
Data type: tdf_battery_state.
Definition channels.h:49
@ INFUSE_ZBUS_CHAN_MOVEMENT_STD_DEV
Data type: infuse_zbus_chan_movement_std_dev.
Definition channels.h:59
@ INFUSE_ZBUS_CHAN_BASE
Definition channels.h:47
@ INFUSE_ZBUS_CHAN_NRF9X_NAV_PVT
Data type: tdf_nrf9x_gnss_pvt.
Definition channels.h:65
@ INFUSE_ZBUS_CHAN_IMU
Data type: imu_sample_array.
Definition channels.h:53
@ INFUSE_ZBUS_CHAN_TILT
Data type: infuse_zbus_chan_tilt.
Definition channels.h:61
@ INFUSE_ZBUS_CHAN_SOC_TEMPERATURE
Data type: tdf_soc_temperature.
Definition channels.h:67
@ INFUSE_ZBUS_CHAN_IMU_ACC_MAG
Data type: imu_magnitude_array.
Definition channels.h:55
@ INFUSE_ZBUS_CHAN_LOCATION
Data type: tdf_gcs_wgs84_llha.
Definition channels.h:57
Data type for INFUSE_ZBUS_CHAN_MOVEMENT_STD_DEV.
Definition channels.h:31
uint32_t movement_threshold
Configured threshold for movement detection (micro-g)
Definition channels.h:37
uint32_t expected_samples
Expected number of samples for the window.
Definition channels.h:35
struct tdf_acc_magnitude_std_dev data
Accelerometer standard deviation.
Definition channels.h:33
Data type for INFUSE_ZBUS_CHAN_TILT.
Definition channels.h:41
float cosine
Cosine of the tilt angle.
Definition channels.h:43
Accelerometer magnitude standard deviation over a window.
Definition definitions.h:388