10#ifndef INFUSE_SDK_INCLUDE_INFUSE_ZBUS_CHANNELS_H_
11#define INFUSE_SDK_INCLUDE_INFUSE_ZBUS_CHANNELS_H_
15#include <zephyr/zbus/zbus.h>
67#define _INFUSE_ZBUS_CHAN_BATTERY_TYPE struct tdf_battery_state
68#define _INFUSE_ZBUS_CHAN_AMBIENT_ENV_TYPE struct tdf_ambient_temp_pres_hum
69#define _INFUSE_ZBUS_CHAN_IMU_TYPE struct imu_sample_array
70#define _INFUSE_ZBUS_CHAN_IMU_ACC_MAG_TYPE struct imu_magnitude_array
71#define _INFUSE_ZBUS_CHAN_LOCATION_TYPE struct tdf_gcs_wgs84_llha
72#define _INFUSE_ZBUS_CHAN_MOVEMENT_STD_DEV_TYPE struct infuse_zbus_chan_movement_std_dev
73#define _INFUSE_ZBUS_CHAN_TILT_TYPE struct infuse_zbus_chan_tilt
74#define _INFUSE_ZBUS_CHAN_UBX_NAV_PVT_TYPE struct tdf_ubx_nav_pvt
75#define _INFUSE_ZBUS_CHAN_NRF9X_NAV_PVT_TYPE struct tdf_nrf9x_gnss_pvt
77#define _INFUSE_ZBUS_CHAN_BATTERY_NAME zbus_infuse_battery
78#define _INFUSE_ZBUS_CHAN_AMBIENT_ENV_NAME zbus_infuse_ambient_env
79#define _INFUSE_ZBUS_CHAN_IMU_NAME zbus_infuse_imu
80#define _INFUSE_ZBUS_CHAN_IMU_ACC_MAG_NAME zbus_infuse_imu_acc_mag
81#define _INFUSE_ZBUS_CHAN_LOCATION_NAME zbus_infuse_location
82#define _INFUSE_ZBUS_CHAN_MOVEMENT_STD_DEV_NAME zbus_infuse_move_std_dev
83#define _INFUSE_ZBUS_CHAN_TILT_NAME zbus_infuse_tilt
84#define _INFUSE_ZBUS_CHAN_UBX_NAV_PVT_NAME zbus_infuse_ubx_nav_pvt
85#define _INFUSE_ZBUS_CHAN_NRF9X_NAV_PVT_NAME zbus_infuse_nrf9x_nav_pvt
88#define INFUSE_ZBUS_TYPE(channel) _##channel##_TYPE
90#define INFUSE_ZBUS_NAME(channel) _##channel##_NAME
97#define INFUSE_ZBUS_CHAN_DEFINE(channel) \
98 ZBUS_CHAN_DEFINE_WITH_ID(INFUSE_ZBUS_NAME(channel), channel, INFUSE_ZBUS_TYPE(channel), \
99 NULL, NULL, ZBUS_OBSERVERS_EMPTY, ZBUS_MSG_INIT(0));
102#define _INFUSE_ZBUS_CHAN_EXTERN(channel) _ZBUS_CHAN_EXTERN(INFUSE_ZBUS_NAME(channel))
108#define INFUSE_ZBUS_CHAN_DECLARE(...) FOR_EACH(_INFUSE_ZBUS_CHAN_EXTERN, (;), __VA_ARGS__)
115#define INFUSE_ZBUS_CHAN_GET(channel) (&INFUSE_ZBUS_NAME(channel))
127#ifdef CONFIG_ZBUS_CHANNEL_PUBLISH_STATS
128 if (zbus_chan_pub_stats_count(chan) == 0) {
131 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:125
infuse_zbus_channel_id
Definition channels.h:45
@ INFUSE_ZBUS_CHAN_UBX_NAV_PVT
Data type: tdf_ubx_nav_pvt.
Definition channels.h:62
@ INFUSE_ZBUS_CHAN_AMBIENT_ENV
Data type: tdf_ambient_temp_pres_hum.
Definition channels.h:50
@ INFUSE_ZBUS_CHAN_BATTERY
Data type: tdf_battery_state.
Definition channels.h:48
@ INFUSE_ZBUS_CHAN_MOVEMENT_STD_DEV
Data type: infuse_zbus_chan_movement_std_dev.
Definition channels.h:58
@ INFUSE_ZBUS_CHAN_BASE
Definition channels.h:46
@ INFUSE_ZBUS_CHAN_NRF9X_NAV_PVT
Data type: tdf_nrf9x_gnss_pvt.
Definition channels.h:64
@ INFUSE_ZBUS_CHAN_IMU
Data type: imu_sample_array.
Definition channels.h:52
@ INFUSE_ZBUS_CHAN_TILT
Data type: infuse_zbus_chan_tilt.
Definition channels.h:60
@ INFUSE_ZBUS_CHAN_IMU_ACC_MAG
Data type: imu_magnitude_array.
Definition channels.h:54
@ INFUSE_ZBUS_CHAN_LOCATION
Data type: tdf_gcs_wgs84_llha.
Definition channels.h:56
Data type for INFUSE_ZBUS_CHAN_MOVEMENT_STD_DEV.
Definition channels.h:30
uint32_t movement_threshold
Configured threshold for movement detection (micro-g)
Definition channels.h:36
uint32_t expected_samples
Expected number of samples for the window.
Definition channels.h:34
struct tdf_acc_magnitude_std_dev data
Accelerometer standard deviation.
Definition channels.h:32
Data type for INFUSE_ZBUS_CHAN_TILT.
Definition channels.h:40
float cosine
Cosine of the tilt angle.
Definition channels.h:42
Accelerometer magnitude standard deviation over a window.
Definition definitions.h:362