GrpcPrint/PrintS/StateManager.h

81 lines
1.9 KiB
C
Raw Normal View History

2024-03-19 17:45:12 +08:00
#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<string> 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<short, AxisCfg*>* 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<string> m_DangerNotifies;
bool m_PrintCabinDoorOpenAlarmLastState;
vector<AlarmShowInfo*> m_AlarmNotifies;
int m_LastSendAlarmFlag;
RemoteClient* m_RemoteClient;
BaseCtrl::PrintState m_LaserPS;
//CRITICAL_SECTION m_MStatueCS;
};