/* * app_bridge.h * * Created on: Nov 2, 2023 * Author: juraj */ #ifndef MODULES_NBUS_INC_APP_BRIDGE_H_ #define MODULES_NBUS_INC_APP_BRIDGE_H_ #include "mcu_platform.h" typedef enum { TYPE_UNKNOWN = 0xFF, TYPE_ACCELEROMETER = 0, TYPE_GYROSCOPE, TYPE_MAGNETOMETER, TYPE_TEMPERATURE, TYPE_HUMIDITY, TYPE_PRESSURE, TYPE_HEART_RATE, TYPE_GNOSTIC_DISTANCE, } nBus_sensorType_t; typedef enum { PARAM_NONE = 0xFF, PARAM_TIMEBASE = 0, PARAM_RESOLUTION, PARAM_GAIN, PARAM_OFFSET, PARAM_SAMPLERATE, PARAM_RANGE, PARAM_RANGE0, PARAM_FILTER } nBus_param_t; #define PARAM_VALUE_NONE 0x7FFFFFFF nBus_param_t *nbus_interface_allParams(); uint8_t nbus_interface_allParamsCount(); nBus_sensorType_t *nbus_interface_allTypes(); uint8_t nbus_interface_allTypesCount(); typedef struct { void (*init)(void *hw_interface, void *hw_config); void (*reset)(); nBus_sensorType_t (*getType)(uint8_t sensor_index); uint8_t (*getSensorCount)(); uint8_t (*getData)(uint8_t sensor_index, uint8_t *data); uint8_t (*setData)(uint8_t *data); uint8_t (*hasParam)(uint8_t sensor_index, nBus_param_t param_name); int32_t (*getParam)(uint8_t sensor_index, nBus_param_t param_name); nBus_param_t (*setParam)(uint8_t sensor_index, nBus_param_t param_name, int32_t param_value); void (*start)(void); void (*stop)(void); void (*read)(void); uint8_t (*store)(void); } nBusAppInterface_t; #endif /* MODULES_NBUS_INC_APP_BRIDGE_H_ */