|
|
@@ -68,29 +68,6 @@ enum EvtType
|
|
|
USER_EVT_VTMLOADER_FINISHED,
|
|
|
};
|
|
|
|
|
|
-enum EntityLoadFaultStage
|
|
|
-{
|
|
|
- ENTITYLOAD_SAFELOADFAULT,
|
|
|
- ENTITYLOAD_OPERATINGFAULT,
|
|
|
-};
|
|
|
-enum EntityOption
|
|
|
-{
|
|
|
- HEARTBEAT,
|
|
|
- SELFCHECKER
|
|
|
-};
|
|
|
-enum LoadingOpt
|
|
|
-{
|
|
|
- LOADOPT_IGNORE,
|
|
|
- LOADOPT_ASYNC_VERIFY,
|
|
|
- LOADOPT_SYNC_VERIFY
|
|
|
-};
|
|
|
-enum LoadingResult
|
|
|
-{
|
|
|
- LOADING_SUCCEED,
|
|
|
- LOADING_INIT,
|
|
|
- LOADING_FAILED,
|
|
|
- LOADING_TIMEOUT,
|
|
|
-};
|
|
|
enum CustomerManagerState
|
|
|
{
|
|
|
CM_INIT,
|
|
|
@@ -100,16 +77,9 @@ enum CustomerManagerState
|
|
|
enum HealthManagerFSMState
|
|
|
{
|
|
|
HM_FSM_INIT,
|
|
|
- HM_FSM_STATE_COREBOOT,
|
|
|
- HM_FSM_STATE_SAFELOAD,
|
|
|
- HM_FSM_STATE_OP,
|
|
|
HM_FSM_STATE_IDLE,
|
|
|
HM_FSM_STATE_FAULT,
|
|
|
HM_FSM_STATE_MAINTAINING,
|
|
|
- HM_FSM_STATE_PREPAREOFF,
|
|
|
- HM_FSM_STATE_TERMINATING,
|
|
|
- HM_FSM_STATE_EXITTING,
|
|
|
- HM_FSM_STATE_SLEEP,
|
|
|
HM_FSM_STATE_CMS,
|
|
|
};
|
|
|
|
|
|
@@ -128,17 +98,6 @@ struct callback_entry : public IReleasable
|
|
|
int op;
|
|
|
ErrorCodeEnum ErrorResult;
|
|
|
};
|
|
|
-struct EntityLoadInfo
|
|
|
-{
|
|
|
- int initSn;
|
|
|
- int loadOpt;
|
|
|
- LoadingResult eResult;
|
|
|
-};
|
|
|
-struct EntityLoadFault
|
|
|
-{
|
|
|
- CSimpleStringA name;
|
|
|
- int count;
|
|
|
-};
|
|
|
|
|
|
typedef struct _dmi_header
|
|
|
{
|
|
|
@@ -164,16 +123,12 @@ class CHealthManagerEntity;
|
|
|
class CHealthManagerFSM : public FSMImpl<CHealthManagerFSM>, public ICallbackListener
|
|
|
{
|
|
|
public:
|
|
|
- enum {s0,s4,s5,s6,s7,s8,s9,s10,s11};
|
|
|
+ enum {s0,s4,s5,s6,s11};
|
|
|
BEGIN_FSM_STATE(CHealthManagerFSM)
|
|
|
FSM_STATE_ENTRY(s0,"Init",s0_on_entry,s0_on_exit,s0_on_event)
|
|
|
FSM_STATE_ENTRY(s4,"Operating",s4_on_entry,s4_on_exit,s4_on_event)
|
|
|
FSM_STATE_ENTRY(s5,"Fault",s5_on_entry,s5_on_exit,s5_on_event)
|
|
|
FSM_STATE_ENTRY(s6,"Maintaining",s6_on_entry,s6_on_exit,s6_on_event)
|
|
|
- FSM_STATE_ENTRY(s7,"PrepareOff",s7_on_entry,s7_on_exit,s7_on_event)
|
|
|
- FSM_STATE_ENTRY(s8,"Terminating",s8_on_entry,s8_on_exit,s8_on_event)
|
|
|
- FSM_STATE_ENTRY(s9,"Exitting",s9_on_entry,s9_on_exit,s9_on_event)
|
|
|
- FSM_STATE_ENTRY(s10,"Sleep",s10_on_entry,s10_on_exit,s10_on_event)
|
|
|
FSM_STATE_ENTRY(s11,"CustomerManager",s11_on_entry,s11_on_exit,s11_on_event)
|
|
|
END_FSM_STATE()
|
|
|
|
|
|
@@ -185,28 +140,12 @@ public:
|
|
|
FSM_RULE_ENTRY(s5,s6,USER_EVT_MAITAIN,0)
|
|
|
FSM_RULE_ENTRY(s5,s11,USER_EVT_ENTER_CUSTOMER_MANAGER,0)
|
|
|
FSM_RULE_ENTRY(s5,s4, USER_EVT_ACCESSAUTH_FINISHED, 0)
|
|
|
- FSM_RULE_ENTRY(s7,s6,USER_EVT_MAITAIN,0)
|
|
|
- FSM_RULE_ENTRY(s7,s11,USER_EVT_ENTER_CUSTOMER_MANAGER,0)
|
|
|
- FSM_RULE_ENTRY(s8,s6,USER_EVT_MAITAIN,0)
|
|
|
- FSM_RULE_ENTRY(s8,s11,USER_EVT_ENTER_CUSTOMER_MANAGER,0)
|
|
|
- FSM_RULE_ENTRY(s9,s6,USER_EVT_MAITAIN,0)
|
|
|
- FSM_RULE_ENTRY(s9,s11,USER_EVT_ENTER_CUSTOMER_MANAGER,0)
|
|
|
- FSM_RULE_ENTRY(s10,s6,USER_EVT_MAITAIN,0)
|
|
|
- FSM_RULE_ENTRY(s10,s11,USER_EVT_ENTER_CUSTOMER_MANAGER,0)
|
|
|
FSM_RULE_ENTRY(s6,s4,USER_EVT_MAITAIN_FINISHED,4)
|
|
|
FSM_RULE_ENTRY(s6,s5,USER_EVT_MAITAIN_FINISHED,5)
|
|
|
- FSM_RULE_ENTRY(s6,s7,USER_EVT_MAITAIN_FINISHED,7)
|
|
|
- FSM_RULE_ENTRY(s6,s8,USER_EVT_MAITAIN_FINISHED,8)
|
|
|
- FSM_RULE_ENTRY(s6,s9,USER_EVT_MAITAIN_FINISHED,9)
|
|
|
- FSM_RULE_ENTRY(s6,s10,USER_EVT_MAITAIN_FINISHED,10)
|
|
|
FSM_RULE_ENTRY(s11, s6, USER_EVT_MAITAIN, 0)
|
|
|
FSM_RULE_ENTRY(s11,s4,USER_EVT_SWITCH_BACK_TO_RVC,4)
|
|
|
FSM_RULE_ENTRY(s11,s5,USER_EVT_SWITCH_BACK_TO_RVC,5)
|
|
|
FSM_RULE_ENTRY(s11,s6,USER_EVT_SWITCH_BACK_TO_RVC,6)
|
|
|
- FSM_RULE_ENTRY(s11,s7,USER_EVT_SWITCH_BACK_TO_RVC,7)
|
|
|
- FSM_RULE_ENTRY(s11,s8,USER_EVT_SWITCH_BACK_TO_RVC,8)
|
|
|
- FSM_RULE_ENTRY(s11,s9,USER_EVT_SWITCH_BACK_TO_RVC,9)
|
|
|
- FSM_RULE_ENTRY(s11,s10,USER_EVT_SWITCH_BACK_TO_RVC,10)
|
|
|
END_FSM_RULE()
|
|
|
|
|
|
CHealthManagerFSM():m_SysState("I"),m_pACClient(NULL)
|
|
|
@@ -232,18 +171,6 @@ public:
|
|
|
void s6_on_entry();
|
|
|
void s6_on_exit();
|
|
|
unsigned int s6_on_event(FSMEvent* pEvt);
|
|
|
- void s7_on_entry();
|
|
|
- void s7_on_exit();
|
|
|
- unsigned int s7_on_event(FSMEvent* pEvt);
|
|
|
- void s8_on_entry();
|
|
|
- void s8_on_exit();
|
|
|
- unsigned int s8_on_event(FSMEvent* pEvt);
|
|
|
- void s9_on_entry();
|
|
|
- void s9_on_exit();
|
|
|
- unsigned int s9_on_event(FSMEvent* pEvt);
|
|
|
- void s10_on_entry();
|
|
|
- void s10_on_exit();
|
|
|
- unsigned int s10_on_event(FSMEvent* pEvt);
|
|
|
void s11_on_entry();
|
|
|
void s11_on_exit();
|
|
|
unsigned int s11_on_event(FSMEvent* pEvt);
|
|
|
@@ -265,8 +192,6 @@ public:
|
|
|
void ToReAccessAuth(bool bEver=false);
|
|
|
void SetCustomerMngerState(int iValue){m_custMngerState = iValue;}
|
|
|
int GetCustomerMngerState(){return m_custMngerState;}
|
|
|
- CSimpleStringA GetEntityCfgInfo(CSimpleStringA name,int &loadOpt);
|
|
|
- void SetMD5OK(const int value){ m_havReceiveMD5OK = value; SetEvent(m_hMD5OKEvt); }
|
|
|
int QueryAccessAuthStatus()
|
|
|
{
|
|
|
if (m_iAccessAuth == AccessAuth_Suc)
|
|
|
@@ -321,15 +246,8 @@ private:
|
|
|
|
|
|
private:
|
|
|
CSimpleStringA m_SysState,m_checkCode,m_csErrEntity,m_NewStartPage;
|
|
|
- map<int,int> m_enOpt;//entity option
|
|
|
- vector<CSimpleStringA> m_vCoreBoot,m_vSafeLoad,m_vOperating,m_vAllCfgEntity;
|
|
|
- map<CSimpleStringA,EntityLoadInfo> m_coreBootOpt;
|
|
|
- map<CSimpleStringA,EntityLoadInfo> m_safeLoadOpt;
|
|
|
- map<CSimpleStringA,EntityLoadInfo> m_operatingOpt;
|
|
|
- map<CSimpleStringA,EntityLoadFault> m_safeLoadFault;
|
|
|
- map<CSimpleStringA,EntityLoadFault> m_operatingFault;
|
|
|
int m_devCfgNum, m_AccessAuthTries, m_InitTries, m_fsmState, m_stateBeforeMaintain, m_custMngerState, m_preFsmState, m_accessAuthCheckMD5
|
|
|
- ,m_havReceiveMD5OK,m_autoDoInitCount, m_sleepEnterOpMS/*启动第三阶段等待时间,单位毫秒*/
|
|
|
+ ,m_havReceiveMD5OK,m_autoDoInitCount
|
|
|
,m_iAccessAuth/*-1 未准入; 0 准入失败;1 准入成功*/, m_iDoNotUpdateWKDaily, m_wkUpdatePeriod/*if exceed the period time,we should update key*/;
|
|
|
AccessAuthService_ClientBase *m_pACClient;
|
|
|
bool m_bIdleToMaintain, m_bHasAuthEver, m_bFirstAccessAuth
|
|
|
@@ -337,7 +255,6 @@ private:
|
|
|
DWORD m_AccessAuthTimeout,m_InitializationTimeout,m_elapseTimeFromOSStart;
|
|
|
ULONGLONG m_ullElapseFromOSStart;
|
|
|
DeviceControlService_ClientBase *m_pDevCtrlClient;
|
|
|
- HANDLE m_hMD5OKEvt;
|
|
|
CSystemStaticInfo m_sysInfo;
|
|
|
std::map<string, string> m_computerInfo;
|
|
|
bool mCofigMode;
|