app_bridge.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. {
  12. TYPE_UNKNOWN = 0xFF,
  13. TYPE_ACCELEROMETER = 0,
  14. TYPE_GYROSCOPE,
  15. TYPE_MAGNETOMETER,
  16. TYPE_TEMPERATURE,
  17. TYPE_HUMIDITY,
  18. TYPE_PRESSURE,
  19. TYPE_HEART_RATE,
  20. TYPE_GNOSTIC_DISTANCE,
  21. } nBus_sensorType_t;
  22. typedef enum
  23. {
  24. PARAM_NONE = 0xFF,
  25. PARAM_TIMEBASE = 0,
  26. PARAM_RESOLUTION,
  27. PARAM_GAIN,
  28. PARAM_OFFSET,
  29. PARAM_SAMPLERATE,
  30. PARAM_RANGE,
  31. PARAM_RANGE0,
  32. PARAM_FILTER
  33. } nBus_param_t;
  34. #define PARAM_VALUE_NONE 0x7FFFFFFF
  35. nBus_param_t *nbus_interface_allParams();
  36. uint8_t nbus_interface_allParamsCount();
  37. nBus_sensorType_t *nbus_interface_allTypes();
  38. uint8_t nbus_interface_allTypesCount();
  39. typedef struct
  40. {
  41. void (*init)(void *hw_interface, void *hw_config);
  42. void (*reset)();
  43. nBus_sensorType_t (*getType)(uint8_t sensor_index);
  44. uint8_t (*getSensorCount)();
  45. uint8_t (*getData)(uint8_t sensor_index, uint8_t *data);
  46. uint8_t (*setData)(uint8_t *data);
  47. uint8_t (*hasParam)(uint8_t sensor_index, nBus_param_t param_name);
  48. int32_t (*getParam)(uint8_t sensor_index, nBus_param_t param_name);
  49. nBus_param_t (*setParam)(uint8_t sensor_index, nBus_param_t param_name, int32_t param_value);
  50. void (*start)(void);
  51. void (*stop)(void);
  52. void (*read)(void);
  53. uint8_t (*store)(void);
  54. } nBusAppInterface_t;
  55. #endif /* MODULES_NBUS_INC_APP_BRIDGE_H_ */