app_imu.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  2. * app_imu.h
  3. *
  4. * Created on: Nov 23, 2023
  5. * Author: juraj
  6. */
  7. #ifndef INC_APP_IMU_H_
  8. #define INC_APP_IMU_H_
  9. #include "app_bridge.h"
  10. #if MODULE == MODULE_IMU
  11. #include "icm_datatypes.h"
  12. #endif
  13. #ifdef __cplusplus
  14. extern "C"
  15. {
  16. #endif
  17. nBusAppInterface_t *getImuDriver();
  18. void mcu_spi_init(void *hw_interface, void *hw_config);
  19. void mcu_spi_reset();
  20. nBus_statusType_t mcu_spi_start();
  21. nBus_statusType_t mcu_spi_stop();
  22. nBus_sensorType_t mcu_spi_getType(uint8_t sensor_index);
  23. nBus_sensorCount_t mcu_spi_getSensorCount();
  24. uint8_t mcu_spi_getData(uint8_t sensor_index, uint8_t *data);
  25. nBus_statusType_t mcu_spi_setData(uint8_t *data, uint8_t count, uint8_t *response);
  26. int32_t mcu_spi_getParam(uint8_t sensor_index, nBus_param_t param);
  27. uint8_t mcu_spi_hasParam(uint8_t sensor_index, nBus_param_t param);
  28. nBus_statusType_t mcu_spi_setParam(uint8_t sensor_index, nBus_param_t param, int32_t value);
  29. void mcu_spi_readData(void);
  30. /**
  31. * Run calibration procedure.
  32. * @param subslaveIndex index of sublave (specific sensor) to run calibration procedure. Can be: 0 - all sensors, 1, 2 - sensor index
  33. * @param calibrationParamsNum number of input calibration values for sensors ===> REMOVED
  34. * @param calibrationParams array of calibration parameters ===> REMOVED
  35. * @note calibrationParams needs to be updated, because it is only uint8_t array for now
  36. * @return 1 - success, 0 - sensor not found (when subslaveIndex != 0)
  37. */
  38. nBus_statusType_t mcu_spi_calibrate(uint8_t subslaveIndex);
  39. //uint8_t mcu_spi_store(void);
  40. #ifdef __cplusplus
  41. }
  42. #endif
  43. #endif /* INC_APP_IMU_H_ */