app_bridge.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. * app_bridge.h
  3. *
  4. * Created on: Nov 2, 2023
  5. * Author: juraj
  6. */
  7. #ifndef MODULES_NBUS_INC_APP_BRIDGE_H_
  8. #define MODULES_NBUS_INC_APP_BRIDGE_H_
  9. #include "mcu_platform.h"
  10. typedef enum{
  11. TYPE_UNKNOWN = 0xFF,
  12. TYPE_ACCELEROMETER = 0,
  13. TYPE_GYROSCOPE,
  14. TYPE_MAGNETOMETER,
  15. TYPE_TEMPERATURE,
  16. TYPE_HUMIDITY,
  17. TYPE_PRESSURE,
  18. TYPE_HEART_RATE,
  19. }nBus_sensorType_t;
  20. typedef enum{
  21. PARAM_NONE = 0xFF,
  22. PARAM_TIMEBASE = 0,
  23. PARAM_RESOLUTION,
  24. PARAM_GAIN,
  25. PARAM_OFFSET,
  26. PARAM_SAMPLERATE,
  27. PARAM_RANGE
  28. }nBus_param_t;
  29. nBus_param_t* nbus_interface_allParams();
  30. uint8_t nbus_interface_allParamsCount();
  31. nBus_sensorType_t *nbus_interface_allTypes();
  32. uint8_t nbus_interface_allTypesCount();
  33. typedef struct{
  34. void (*init)(void *hw_interface, void *hw_config);
  35. void (*reset)();
  36. nBus_sensorType_t(*getType)(uint8_t sensor_index);
  37. uint8_t (*getSensorCount)();
  38. uint8_t (*getData)(uint8_t sensor_index, uint8_t *data);
  39. uint8_t (*setData)(uint8_t *data);
  40. uint8_t (*hasParam)(uint8_t sensor_index, nBus_param_t param_name);
  41. uint8_t (*getParam)(uint8_t sensor_index, nBus_param_t param_name);
  42. nBus_param_t (*setParam)(uint8_t sensor_index, nBus_param_t param_name, uint8_t param_value);
  43. void (*start)();
  44. void (*stop)();
  45. }nBusAppInterface_t;
  46. #endif /* MODULES_NBUS_INC_APP_BRIDGE_H_ */