123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #ifndef _DEVICE_CONTROL_FSM_H
- #define _DEVICE_CONTROL_FSM_H
- #pragma once
- #include "stdafx.h"
- #include "SpFSM.h"
- #include "DeviceControl_def_g.h"
- #include "DeviceControl_server_g.h"
- #include "DeviceControlClass.h"
- #include "DevFSMCommBase.hpp"
- #include "Interface.h"
- using namespace DeviceControl;
- enum EvtType
- {
- USER_EVT_TEST = EVT_USER+1,
- USER_EVT_QUIT,
- USER_EVT_USB,
- USER_EVT_USB_FINISHED,
- USER_EVT_GET_UKEYID,
- USER_EVT_GET_UKEYID_FINISHED,
- USER_EVT_INIT_TOKEN,
- USER_EVT_INIT_TOKEN_FINISHED,
- USER_EVT_QUERY_USB,
- USER_EVT_QUERY_USB_FINISHED,
- USER_EVT_WORKING_OP,
- };
- class CDeviceControlFSM : public CCommDevFSM<CDeviceControlFSM, DeviceControlClass>
- {
- public:
- enum {s0,s1,s2,s3,s4};
- BEGIN_FSM_STATE(CDeviceControlFSM)
- FSM_STATE_ENTRY(s0,"Idle",s0_on_entry,s0_on_exit,s0_on_event)
- FSM_STATE_ENTRY(s1,"USB",s1_on_entry,s1_on_exit,s1_on_event)
- FSM_STATE_ENTRY(s2,"Failed",s2_on_entry,s2_on_exit,s2_on_event)
- FSM_STATE_ENTRY(s3,"GetUkeyID",s3_on_entry,s3_on_exit,s3_on_event)
- FSM_STATE_ENTRY(s4,"InitToken",s4_on_entry,s4_on_exit,s4_on_event)
- END_FSM_STATE()
- BEGIN_FSM_RULE(CDeviceControlFSM, s0)
- FSM_RULE_ENTRY(s0, FSM_STATE_EXIT, USER_EVT_QUIT, 0)
- FSM_RULE_ENTRY(s0, s1, USER_EVT_USB, 0)
- FSM_RULE_ENTRY(s0, s1, USER_EVT_QUERY_USB, 0)
- FSM_RULE_ENTRY(s0, s3, USER_EVT_GET_UKEYID, 0)
- FSM_RULE_ENTRY(s0, s4, USER_EVT_INIT_TOKEN, 0)
- FSM_RULE_ENTRY(s1, s0, USER_EVT_USB_FINISHED, 0)
- FSM_RULE_ENTRY(s1, s2, USER_EVT_USB_FINISHED, 1)
- FSM_RULE_ENTRY(s1, s0, USER_EVT_QUERY_USB_FINISHED, 0)
- FSM_RULE_ENTRY(s1, s2, USER_EVT_QUERY_USB_FINISHED, 1)
- FSM_RULE_ENTRY(s3, s0, USER_EVT_GET_UKEYID_FINISHED, 0)
- FSM_RULE_ENTRY(s3, s0, USER_EVT_GET_UKEYID_FINISHED, 1)
- FSM_RULE_ENTRY(s4, s0, USER_EVT_INIT_TOKEN_FINISHED, 0)
- FSM_RULE_ENTRY(s4, s0, USER_EVT_INIT_TOKEN_FINISHED, 1)
- END_FSM_RULE()
- CDeviceControlFSM():m_testResult(Error_Succeed){};
- virtual ~CDeviceControlFSM() {};
- virtual ErrorCodeEnum OnInit();
- virtual ErrorCodeEnum OnExit();
- virtual void s0_on_entry() {}
- virtual void s0_on_exit() {}
- virtual unsigned int s0_on_event(FSMEvent* e);
- virtual void s1_on_entry() {}
- virtual void s1_on_exit() {}
- virtual unsigned int s1_on_event(FSMEvent* e);
- virtual void s2_on_entry() {}
- virtual void s2_on_exit() {}
- virtual unsigned int s2_on_event(FSMEvent* e) { return 0; }
- virtual void s3_on_entry() {}
- virtual void s3_on_exit() {}
- virtual unsigned int s3_on_event(FSMEvent* e);
- virtual void s4_on_entry() {}
- virtual void s4_on_exit() {}
- virtual unsigned int s4_on_event(FSMEvent* e);
- void SelfTest(EntityTestEnum eTestType,CSmartPointer<ITransactionContext> pTransactionContext)
- {
- pTransactionContext->SendAnswer(Error_Succeed);
- }
- ErrorCodeEnum RestartSogouServices();
-
- private:
- ErrorCodeEnum m_testResult;
- CSimpleStringA m_csMachineType;
- };
- #endif //_DEVICE_CONTROL_FSM_H
|