123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- #pragma once
- #include "SpBase.h"
- #include "SpFSM.h"
- #include "RemoteControllerCnn.h"
- class CRemoteControllerFSM : public FSMImpl<CRemoteControllerFSM>
- {
- public:
- CRemoteControllerFSM(void);
- ~CRemoteControllerFSM(void);
- virtual ErrorCodeEnum OnInit();
- virtual ErrorCodeEnum OnExit();
- enum{s1, s2, s3, s4};
- enum
- {
- Event_CreateChannel = EVT_USER+1,
- Event_ReleaseChannel,
- Event_EnterMonitor,
- Event_EnterMaintain,
- Event_EnterTerminal,
- Event_ExitTerminal,
- };
- BEGIN_FSM_STATE(CRemoteControllerFSM)
- FSM_STATE_ENTRY(s1, "None",s1_on_entry,s1_on_exit,s1_on_event)
- FSM_STATE_ENTRY(s2, "Monitor",s2_on_entry,s2_on_exit,s2_on_event)
- FSM_STATE_ENTRY(s3, "Maintaining",s3_on_entry,s3_on_exit,s3_on_event)
- FSM_STATE_ENTRY(s4, "Terminal", s4_on_entry, s4_on_exit, s4_on_event)
- END_FSM_STATE()
- BEGIN_FSM_RULE(CRemoteControllerFSM,s1)
- FSM_RULE_ENTRY_ANY(s1, s2, Event_EnterMonitor)
- FSM_RULE_ENTRY_ANY(s2, s1, Event_ReleaseChannel)
- FSM_RULE_ENTRY_ANY(s2, s3, Event_EnterMaintain)
- FSM_RULE_ENTRY_ANY(s3, s1, Event_ReleaseChannel)
- FSM_RULE_ENTRY_ANY(s3, s4, Event_EnterTerminal)
- FSM_RULE_ENTRY_ANY(s4, s1, Event_ReleaseChannel)
- FSM_RULE_ENTRY_ANY(s4, s3, Event_ExitTerminal)
- END_FSM_RULE()
- void s1_on_entry();
- void s1_on_exit();
- unsigned int s1_on_event(FSMEvent* event);
- void s2_on_entry();
- void s2_on_exit();
- unsigned int s2_on_event(FSMEvent* event);
- void s3_on_entry();
- void s3_on_exit();
- unsigned int s3_on_event(FSMEvent* event);
- void s4_on_entry();
- void s4_on_exit();
- unsigned int s4_on_event(FSMEvent* event);
- private:
- ErrorCodeEnum SecureClientConnect();
- ErrorCodeEnum SecureClientRelease();
- CRemoteControllerCnn *m_pConnection;
- };
|