move_xrobot/User/module/config.h

100 lines
2.4 KiB
C
Raw Normal View History

2025-01-14 10:35:04 +08:00
/*
*
* FALSH上的信息
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#include "component\cmd.h"
#include "device\bmi088.h"
#include "device\can.h"
#include "device\ist8310.h"
#include "module\chassis.h"
#include "module\gimbal.h"
#include "module\shoot.h"
/* 机器人参数,保存后不会变化 */
typedef struct {
CMD_RobotModel_t model; /* 型号 */
Chassis_Params_t chassis; /* 底盘 */
Gimbal_Params_t gimbal; /* 云台 */
Shoot_Params_t shoot; /* 射击 */
CAN_Params_t can; /* 电机CAN配置 */
} Config_RobotParam_t;
/* 操作员配置 */
typedef struct {
CMD_Params_t param; /* 参数 */
} Config_PilotCfg_t;
/* 机器人配置保存在Flash上的信息根据机器人变化 */
typedef struct {
char robot_param_name[20];
char pilot_cfg_name[20];
const Config_RobotParam_t *robot_param;
const Config_PilotCfg_t *pilot_cfg;
struct {
IST8310_Cali_t ist8310;
BMI088_Cali_t bmi088;
} cali; /* 校准 */
AHRS_Eulr_t mech_zero; /* 机械零点 */
float gimbal_pitch_limit; /* 云台pitch轴软件限位最高点 */
float gimbal_yaw_limit; /* 云台yaw轴软件限位最高点 */
2025-01-14 10:35:04 +08:00
} Config_t;
/* 机器人参数和对应字符串的映射 */
typedef struct {
const char *const name;
const Config_RobotParam_t *param;
} Config_RobotParamMap_t;
/* 操作手配置和对应字符串的映射 */
typedef struct {
const char *const name;
const Config_PilotCfg_t *param;
} Config_PilotCfgMap_t;
/**
* \brief Flash读取配置信息
*
* \param cfg
*/
void Config_Get(Config_t *cfg);
/**
* \brief Flash
*
* \param cfg
*/
void Config_Set(Config_t *cfg);
/**
* @brief
*
* @param robot_param_name
* @return const Config_RobotParam_t*
*/
const Config_RobotParam_t *Config_GetRobotParam(const char *robot_param_name);
/**
* @brief
*
* @param pilot_cfg_name
* @return const Config_PilotCfg_t*
*/
const Config_PilotCfg_t *Config_GetPilotCfg(const char *pilot_cfg_name);
const Config_PilotCfgMap_t *Config_GetPilotNameMap(void);
const Config_RobotParamMap_t *Config_GetRobotNameMap(void);
#ifdef __cplusplus
}
#endif