仓库提交练习
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
1.9 KiB

/*
* Handset_Status_Setting.h
*
* Created on: 2026115
* Author: bm673
*/
#ifndef FSM_INC_HANDSET_STATUS_SETTING_H_
#define FSM_INC_HANDSET_STATUS_SETTING_H_
// 按键定义
typedef enum {
EMERGENCE_STOP=0, // SE和SF同时按下触发急停
INPUT_NONE , // 无输入
// 摇杆方向
INPUT_ROCKER_STOP, // 摇杆停止
INPUT_ROCKER_FORWARD, // 摇杆前进
INPUT_ROCKER_BACKWARD, // 摇杆后退
INPUT_ROCKER_TURN_LEFT, // 摇杆左转
INPUT_ROCKER_TURN_RIGHT, // 摇杆右转
// 按键
INPUT_KEY_LANE_CHANGE_UP, // CH4_SA = -1000 换道上
INPUT_KEY_LANE_CHANGE_DOWN, // CH4_SA = 1000 换道下
INPUT_KEY_FORWARD_CRUISE, // CH5_SB = -1000 前进巡航
INPUT_KEY_BACKWARD_CRUISE, // CH5_SB = 1000 后退巡航
INPUT_KEY_AUTO_WORK_UP, // CH7_SD = -1000 自动作业上
INPUT_KEY_AUTO_WORK_DOWN, // CH7_SD = 1000 自动作业下
INPUT_KEY_AUTO_WELD, // CH6_SC = -1000 焊缝跟踪
//摆臂
INPUT_ROCKER_SWING, //动摆臂了
KEY_COUNT, // 输入总数
} InputEvent;
// 主状态枚举,串口状态定义
typedef enum {
Serial_Mode_Config,
Action_Execute,
Action_Shut_down,
MAIN_STATE_COUNT
} MainState;
// 机器人模式枚举
typedef enum {
Halt_Mode = 0,
Manual_Mode,
Horizontal_Mode,
Flat_Mode,
Vertical_Mode_Left,
Vertical_Mode_Right,
Regional_Horizontal_Automatic_Task,
Regional_Flat_Automatic_Task,
MODE_COUNT // 模式总数
} Robot_Mode;
// IO状态枚举
typedef enum {
IO_STATE_NONE,
IO_STATE_RISE,
IO_STATE_DESCEND
} IO_State;
// 函数声明
Robot_Mode RobotRockerState(void);
InputEvent RemoteControl_GetKeyIndex(Robot_Mode current_mode);
void PV_control(void);
void IV_control(void);
IO_State GetIOState(void);
#endif /* FSM_INC_HANDSET_STATUS_SETTING_H_ */