#ifndef __HAL_SER_IMU_MODE_MANAGE_H__ #define __HAL_SER_IMU_MODE_MANAGE_H__ #ifdef __cplusplus extern "C" { #endif /*Includes ------------------------------------------------------*/ #include #include #include #include "sdk_common.h" #include "SEGGER_RTT.h" #include "usr_config.h" #include "hal_ser_imu.h" /*STRUCTION ----------------------------------------------------*/ typedef enum { HAL_SER_IMU_MODE_MANAGE_IMU_MODE_ON = true, //模式开启 HAL_SER_IMU_MODE_MANAGE_IMU_MODE_OFF = false, //模式关闭 } HAL_SER_IMU_MODE_MANAGE_IMU_MODE_SWITCH_e; typedef enum { HAL_SER_IMU_MODE_MANAGE_STANDBY = 0, //待机模式(不穿鞋) HAL_SER_IMU_MODE_MANAGE_NORMAL, //正常模式(穿鞋) HAL_SER_IMU_MODE_MANAGE_SELF_CHECK, //自检模式 HAL_SER_IMU_MODE_MANAGE_GAME, //游戏模式 HAL_SER_IMU_MODE_MANAGE_REALSTEP, //实时计步模式 HAL_SER_IMU_MODE_MANAGE_CALIBRATION, //校准模式 HAL_SER_IMU_MODE_MANAGE_NUM, //模式数量 } HAL_SER_IMU_MODE_MANAGE_e; /*API -------------------------------------------------------*/ /** @brief 初始化模式管理服务 @param 无 @return 错误代码 - [out] -1失败,0成功 */ int hal_ser_imu_mode_manage_Init(void); /** @brief 请求需要的模式 @param mode - [in] 需要请求的模式 @param imu_mode_switch - [in] 请求的模式开关 @return 错误代码 - [out] -1失败,0成功 */ 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); /** @brief 模式是否准备好 @return 错误代码 - [out] -1失败,0成功 */ int hal_ser_imu_mode_manage_get_ready(HAL_SER_IMU_MODE_MANAGE_e mode); /** @brief 获取当前模式的IMU当前数据数量 @param mode - [in] 需要的模式 @param dir - [in] IMU方向 - 前/后脚 @return 错误代码 - [out] 返回数据数量 */ int hal_ser_imu_mode_manage_get_data_num(SER_IMU_DIR_e dir); /** @brief 获取当前模式的IMU数据 @param dir - [in] IMU方向 - 前/后脚 @param index - [in] 第几组数据 @param pdata - [out] IMU数据 @return 错误代码 - [out] -1失败,0成功 */ int hal_ser_imu_mode_manage_get_data(SER_IMU_DIR_e dir, int index, ser_imu_data_t *pdata); /** @brief 查询当前是否挂起模式 @return 错误代码 - [out] -1 非挂起模式,0 挂起模式 */ int hal_ser_imu_mode_IsSuspend(void); #ifdef __cplusplus } #endif #endif