/* * fsm.h * * Created on: Oct 18, 2024 * Author: akeguo */ #ifndef INC_FSM_H_ #define INC_FSM_H_ #include "stdint.h" extern double Error_Cont_Thresh; void Move_Horizontal_Vertical_Task_Backwards_Do_Backward(); void Move_Horizontal_Vertical_Task_Forwards_Do_Forwards(); typedef enum _MoveSTATE_t { Move_HALT=0,//停止 Move_Forwards,//前进 Move_Backwards,//后退 Move_TurnLeft,//左转 Move_TurnRight,//右转 Move_Vertical_Task_Forwards,//竖直方向前进 保持竖直运行 Move_Vertical_Task_Backwards,//竖直方向后退前进 保持竖直运行 Move_Horizontal_Task_Forwards,//水平方向前进,保持水平方向 Move_Horizontal_Task_Backwards,//水平方向后退,保持水平方向 } MoveSTATE_t; typedef enum _SwingSTATE_t { Swing_Halt = 0, Swing_Left = 1, Swing_Right = 2, Swing_Home=3, } SwingSTATE_t; typedef struct _transition_t { int State; //状态 void (*robotRun)(void); //执行相关动作 } transition_t; typedef enum _PushRodSTATE_t { PushRod_HALT = 0, PushRod_UP = 1, PushRod_Down = 2, } PushRod_STATE_t; extern MoveSTATE_t CurrentMoveState; extern char is_upper_computer_take_over_control; extern char Switch_Off_Flag; void GF_Dispatch(); void action_perfrom(); void Fsm_Init(); #endif /* INC_FSM_H_ */