#pragma once #include "config/ConfigManager.h" #include "Communication/ComServer.h" //#include "ScannerCtrl/ScannerCtrl.h" //#include "Purifier/BasePurifier.h" #include "Communication/PurifierClient.h" #include "Communication/HBDPurifierClient.h" //#include "ui/UIBean.h" #include "Buzzer.h" #include "PLC/SignalService.h" //#include "Remote/RemoteClient.h" class StateManager { public: StateManager(); ~StateManager(); void Init(ScannerCtrl* psc,CoreCommunication * cc,ComServer* pcs, BasePurifier* pbp, RemoteClient* rc); void Start(); void Stop(); void DrawNotify(void); void AddNotify(string notify); void AddDangerNotify(string notify); void DrawOxygenReady(); //void SetStopAlarm(string code, bool isAlarm); //void SetPauseAlarm(string code,bool isAlarm); void DrawDangerNotify(); void ResetTotalPrintTime(); void AddAlarmNotify(AlarmShowInfo* info); //void ResetTotalLaserTime(); private: static DWORD WINAPI StateProc(StateManager* _this); void StateRun(); public: static string m_MStatueFilePath; vector m_Notifies; private: ScannerCtrl* m_ScannerCtrl; //GTSController* m_GTSController; ComServer* m_ComServer; BasePurifier* m_Purifier; HANDLE m_StateThread; bool m_RunFlag; IOCfgWrapper* m_IoCfgWrapper; AlarmCfgWrapper* m_AlarmCfgWrapper; PowderEstimateCfg* m_PowderEstimateCfg; ExtCfg* m_ExtCfg; RunCfg* m_RunCfg; map* m_AxisCfgs; uint64_t m_LogTime; CRITICAL_SECTION m_NotifiesCS; uint64_t m_TotalRunTime; uint64_t m_TotalLaserTime; MachineCfg* m_MachineCfg; Machine* m_Machine; CoreCommunication* m_CoreCommunication; ofstream* m_SFile; uint64_t m_MStatueSaveTime; Buzzer* m_Buzzer; int m_LastLayerIndex; uint64_t m_LastWarnInfo; vector m_DangerNotifies; bool m_PrintCabinDoorOpenAlarmLastState; vector m_AlarmNotifies; int m_LastSendAlarmFlag; RemoteClient* m_RemoteClient; BaseCtrl::PrintState m_LaserPS; //CRITICAL_SECTION m_MStatueCS; };