#ifndef __PROCESS_CONTROL_H #define __PROCESS_CONTROL_H #include #include "Timer_Module.h" struct PCTRL_Struct { uint16_t current_step; char current_step_msg[40]; uint16_t next_step; char next_step_msg[40]; struct TIMER_Struct timer; uint32_t wait_time; uint16_t step_wait; uint16_t (* goto_step_listener)(uint16_t ns); }; // 直接跳转到下一步 // 不带日志 void PCTRL_GotoStepNoLog(struct PCTRL_Struct * pctrl, uint16_t ns); // 带日志 void PCTRL_GotoStep(struct PCTRL_Struct * pctrl, uint16_t ns, char * msg); // 先等待再跳转到下一步 void PCTRL_GotoStepWait(struct PCTRL_Struct * pctrl, uint16_t ns, uint32_t t, char * msg); // 只等待,等待之后返回原来的步骤 void PCTRL_GotoWait(struct PCTRL_Struct * pctrl, uint32_t t); // 等待 void PCTRL_Wait(struct PCTRL_Struct * pctrl); #endif