app_imu.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. uint8_t mcu_spi_deviceReady();
  31. /**
  32. * Run calibration procedure.
  33. * @param subslaveIndex index of sublave (specific sensor) to run calibration procedure. Can be: 0 - all sensors, 1, 2 - sensor index
  34. * @param calibrationParamsNum number of input calibration values for sensors ===> REMOVED
  35. * @param calibrationParams array of calibration parameters ===> REMOVED
  36. * @note calibrationParams needs to be updated, because it is only uint8_t array for now
  37. * @return 1 - success, 0 - sensor not found (when subslaveIndex != 0)
  38. */
  39. nBus_statusType_t mcu_spi_calibrate(uint8_t subslaveIndex);
  40. //uint8_t mcu_spi_store(void);
  41. #ifdef __cplusplus
  42. }
  43. #endif
  44. #endif /* INC_APP_IMU_H_ */