123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- /**
- * @file sysfsm1.h
- * @author Zhang, Kai(zhangkai71@midea.com)
- * @brief System FSM
- * @version 0.1
- * @date 2021-09-27
- *
- * @copyright Copyright (c) 2021
- *
- */
- #ifndef FSM1ST_H
- #define FSM1ST_H
- #include "typedefine.h"
- /****************************************
- *
- * Definitions & Macros
- *
- ****************************************/
- #define SYS_RDY_FLG_DEFAULT \
- { \
- FALSE, FALSE, FALSE, FALSE, FALSE \
- } // Default value of FW_CTRL_OUT
- #define SYS_FSM_FLG_DEFAULT \
- { \
- FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 0 \
- } // Default value of FW_CTRL_OUT
- #define DISPLAY_DISABLE_CNT 15 * 60 * 1000 // 15mins
- #define SHUT_DOWN_CNT 30 * 60 * 1000 // 30min
- /***************************************
- *
- * Type Definations
- *
- ***************************************/
- /**
- * @brief Type of signal
- *
- */
- typedef struct
- {
- BOOL Switched;
- BOOL Sensor;
- BOOL Assist;
- BOOL Light;
- BOOL Display;
- } SIGNAL_STATE;
- /**
- * @brief Type of system FSM
- *
- */
- typedef enum
- {
- SysInit = 0,
- SysRdy = 1,
- SysFault = 2,
- } SYS_FSM_STATUS;
- /**
- * @brief Type of system FSM flag
- *
- */
- typedef struct
- {
- BOOL HMI_Flag; ///<
- BOOL SysCoef_Flag;
- BOOL SysRdy_Flag;
- BOOL SysRun_Flag;
- BOOL SysWarnning_Flag;
- BOOL SysFault_Flag;
- int Standby_flg;
- } SYS_FMS_FLAG;
- /**
- * @brief Type of system ready flag
- *
- */
- typedef struct
- {
- BOOL blAlmOccrFlg;
- BOOL CommuRdy_Flag;
- BOOL blADCInitOvrFlg;
- BOOL blFSMRstOvrFlg;
- BOOL blCtrlMdVarClcOvrFlg;
- } SYS_RDY_FLG;
- /**
- * @brief Type of system hook function
- *
- */
- typedef struct
- {
- SYS_FSM_STATUS state;
- void (*Event_hook)(void);
- void (*Tbcup_hook)(void);
- void (*TbcDown_hook)(void);
- void (*Tbs_hook)(void);
- } FSM_SYS_HOOK;
- /****************************************
- *
- * Exported variable
- *
- ****************************************/
- extern FSM_SYS_HOOK FSM1st_Sys_state;
- extern FSM_SYS_HOOK SysFault_state;
- extern SYS_RDY_FLG sysfsm_stFlg;
- extern SIGNAL_STATE signal_state;
- extern SYS_FMS_FLAG switch_flg;
- extern ULONG swSwitchStateCnts;
- extern FSM_SYS_HOOK SysFault_state;
- extern SYS_FSM_STATUS FaultFROM;
- /***************************************
- *
- * Function Definations
- *
- ***************************************/
- /**
- * @brief Process when switching state from Ready to Run
- *
- */
- void ReadytoRun(void);
- /**
- * @brief Process when switching state from SysInit to SysFault
- *
- */
- void InittoFault(void);
- /**
- * @brief Process when switching state from SysReady to SysFault
- *
- */
- void RdytoFault(void);
- /**
- * @brief Process of FSM during SysInit state
- *
- */
- void SysInit_hook(void);
- /**
- * @brief Process of FSM during SysRdy state
- *
- */
- void SysRdy_hook(void);
- /**
- * @brief Process of FSM during SysFualt state
- *
- */
- void SysFault_hook(void);
- /**
- * @brief Process of Tbc up during SysInit state
- *
- */
- void SysInit_TbcUphook(void);
- /**
- * @brief Process of Tbc up during sysRdy state
- *
- */
- void SysRdy_TbcUphook(void);
- /**
- * @brief Process of Tbc up during SysFault state
- *
- */
- void SysFault_TbcDownhook(void);
- /**
- * @brief Process of Tbc down during SysInit state
- *
- */
- void SysInit_TbcDownhook(void);
- /**
- * @brief Process of Tbc down during sysRdy state
- *
- */
- void SysRdy_TbcDownhook(void);
- /**
- * @brief Process of Tbc down during SysFault state
- *
- */
- void SysFault_TbcUphook(void);
- /**
- * @brief Process of Tbs during SysInit state
- *
- */
- void SysInit_Tbshook(void);
- /**
- * @brief Process of Tbs during sysRdy state
- *
- */
- void SysRdy_Tbshook(void);
- /**
- * @brief Process of Tbs during SysFault state
- *
- */
- void SysFault_Tbshook(void);
- /**
- * @brief Switch current state to *in state
- *
- * @param in pointer to target state
- */
- void Switch_sys_FSM(FSM_SYS_HOOK *in);
- /**
- * @brief System FSM running function
- *
- */
- void FSM_1st_Main(void);
- /**
- * @brief Relay power on
- *
- */
- void RlyOnInit(void);
- /**
- * @brief Build communication with BMS and Display
- *
- */
- void CommuInit(void);
- /**
- * @brief System FSM initialization
- *
- */
- void FSM_voInit(void);
- #endif
|