StateMachine.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #ifndef _SUBSYSWF_H_
  2. #define _SUBSYSWF_H_
  3. #include "commonDataStruct.h"
  4. #include "LogicDevice.h"
  5. class WorkStationDevice;
  6. class DiosSMachine;
  7. //状态机设备对象接口,接收客户端的命令Action
  8. class StateMachineDevice : public LogicDevice
  9. {
  10. DiosSMachine* m_pWorkStateMachine; //需要动态加载
  11. WorkStationDevice *m_pCurrWorkStation;
  12. public:
  13. //继承的接口实现 设备
  14. virtual bool SYSTEM_CALL GetDeviceType(GUID& DevType) override;
  15. virtual RET_STATUS SYSTEM_CALL CmdToLogicDev(ResDataObject PARAM_IN* pCmd) override;
  16. RET_STATUS Request(ResDataObject PARAM_IN* pRequest, ResDataObject PARAM_OUT* pResponse) override;
  17. virtual RET_STATUS GetDeviceResource(ResDataObject PARAM_OUT* pDeviceResource) override;
  18. public:
  19. DiosSMachine* GetMachine() { return m_pWorkStateMachine; }
  20. public:
  21. StateMachineDevice();
  22. virtual ~StateMachineDevice();
  23. // Action: SetWorkStation
  24. // pParam: {"P0" : "Free"}
  25. virtual RET_STATUS SetWorkStation(WorkStationDevice* pWS);
  26. // Action: RESET
  27. virtual RET_STATUS RESET();
  28. // Action: StartSMMachine
  29. virtual RET_STATUS StartSMMachine();
  30. // Action: StopSMMachine
  31. virtual RET_STATUS StopSMMachine() ;
  32. // Action: TriggerEventSMMachine
  33. // pParam: { "P0" : "EvtFramePrep" }
  34. virtual RET_STATUS TriggerEventSMMachine(const char* pParam) ;
  35. //virtual RET_STATUS SetSEQResourceAction(const ResDataObject& pParam);
  36. //virtual RET_STATUS SetSEQResourceEvent(const ResDataObject& pParam);
  37. // 配置操作的相关接口
  38. // Action: SetSubSystemInDemo
  39. // pParam: {P0 : "0"}
  40. virtual RET_STATUS SetSubSystemInDemo(int n);
  41. //virtual int WaitforStateNotify(HANDLE handle);
  42. public:
  43. string GetSMState();// { return (string)(m_pWorkStateMachine->GetCurrentState()); }
  44. //bool GetDeviceState();
  45. bool IsSateMachineLive();
  46. ResDataObject SetActionPathFromGUID(ResDataObject& rdoState);
  47. ResDataObject SetEventPathFromGUID(ResDataObject& rdoState);
  48. //bool ActiveEventFromUI(const char* pStateName);
  49. };
  50. #endif /* _SUBSYSWF_H_ */