hal_ser_imu_mode_manage.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #ifndef __HAL_SER_IMU_MODE_MANAGE_H__
  2. #define __HAL_SER_IMU_MODE_MANAGE_H__
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. /*Includes ------------------------------------------------------*/
  7. #include <stdbool.h>
  8. #include <stdint.h>
  9. #include <string.h>
  10. #include "sdk_common.h"
  11. #include "SEGGER_RTT.h"
  12. #include "usr_config.h"
  13. #include "hal_ser_imu.h"
  14. /*STRUCTION ----------------------------------------------------*/
  15. typedef enum
  16. {
  17. HAL_SER_IMU_MODE_MANAGE_IMU_MODE_ON = true, //模式开启
  18. HAL_SER_IMU_MODE_MANAGE_IMU_MODE_OFF = false, //模式关闭
  19. } HAL_SER_IMU_MODE_MANAGE_IMU_MODE_SWITCH_e;
  20. typedef enum
  21. {
  22. HAL_SER_IMU_MODE_MANAGE_STANDBY = 0, //待机模式(不穿鞋)
  23. HAL_SER_IMU_MODE_MANAGE_NORMAL, //正常模式(穿鞋)
  24. HAL_SER_IMU_MODE_MANAGE_SELF_CHECK, //自检模式
  25. HAL_SER_IMU_MODE_MANAGE_GAME, //游戏模式
  26. HAL_SER_IMU_MODE_MANAGE_REALSTEP, //实时计步模式
  27. HAL_SER_IMU_MODE_MANAGE_CALIBRATION, //校准模式
  28. HAL_SER_IMU_MODE_MANAGE_NUM, //模式数量
  29. } HAL_SER_IMU_MODE_MANAGE_e;
  30. /*API -------------------------------------------------------*/
  31. /**
  32. @brief 初始化模式管理服务
  33. @param 无
  34. @return 错误代码 - [out] -1失败,0成功
  35. */
  36. int hal_ser_imu_mode_manage_Init(void);
  37. /**
  38. @brief 请求需要的模式
  39. @param mode - [in] 需要请求的模式
  40. @param imu_mode_switch - [in] 请求的模式开关
  41. @return 错误代码 - [out] -1失败,0成功
  42. */
  43. int hal_ser_imu_mode_manage_set_required(HAL_SER_IMU_MODE_MANAGE_e mode, HAL_SER_IMU_MODE_MANAGE_IMU_MODE_SWITCH_e imu_mode_switch);
  44. /**
  45. @brief 模式是否准备好
  46. @return 错误代码 - [out] -1失败,0成功
  47. */
  48. int hal_ser_imu_mode_manage_get_ready(HAL_SER_IMU_MODE_MANAGE_e mode);
  49. /**
  50. @brief 获取当前模式的IMU当前数据数量
  51. @param mode - [in] 需要的模式
  52. @param dir - [in] IMU方向 - 前/后脚
  53. @return 错误代码 - [out] 返回数据数量
  54. */
  55. int hal_ser_imu_mode_manage_get_data_num(SER_IMU_DIR_e dir);
  56. /**
  57. @brief 获取当前模式的IMU数据
  58. @param dir - [in] IMU方向 - 前/后脚
  59. @param index - [in] 第几组数据
  60. @param pdata - [out] IMU数据
  61. @return 错误代码 - [out] -1失败,0成功
  62. */
  63. int hal_ser_imu_mode_manage_get_data(SER_IMU_DIR_e dir, int index, ser_imu_data_t *pdata);
  64. /**
  65. @brief 查询当前是否挂起模式
  66. @return 错误代码 - [out] -1 非挂起模式,0 挂起模式
  67. */
  68. int hal_ser_imu_mode_IsSuspend(void);
  69. #ifdef __cplusplus
  70. }
  71. #endif
  72. #endif