77 lines
2.3 KiB
C++
77 lines
2.3 KiB
C++
#pragma once
|
|
#include "../config/bean/AlarmCfg.h"
|
|
#include "CoreCommunication.h"
|
|
#include <thread>
|
|
#include "../config/bean/RunCfg.h"
|
|
#include "../config/bean/ExtCfg.h"
|
|
#include "../config/bean/PowderEstimateCfg.h"
|
|
class SignalService
|
|
{
|
|
public:
|
|
void RunService();
|
|
static SignalService& GetInstance();
|
|
void SetCoreCommuniction(CoreCommunication* coreCommunication);
|
|
AlarmCfg* JudgeStopAlarm();
|
|
AlarmCfg* JudgePauseAlarm();
|
|
|
|
void JudgeStopAlarm(vector<AlarmCfg*>& vecs);
|
|
void JudgePauseAlarm(vector<AlarmCfg*>& vecs);
|
|
void JudgeAutoPauseAlarm(vector<AlarmCfg*>& vecs);
|
|
string JudgeWarns(vector<AlarmCfg*>& vecs);
|
|
|
|
bool CheckAlarmAfterDeoxygen();
|
|
bool CheckAlarmBeforeDeoxygen();
|
|
|
|
void GetSignalState(SignalState& ss);
|
|
void SetSignalStateCtrl(SignalStateWrapper* signalStateCtrl);
|
|
string GetWarnAlarmInfo();
|
|
|
|
void StartCylinderDeoxygen() {
|
|
m_SignalStateCtrl->m_MoldDeoxygenTriger->SetValue(true);
|
|
}
|
|
|
|
void SetPurifierIsConnect(bool isAlarm);
|
|
|
|
void SetAlarm(AlarmCfg* cfg,bool isAlarm) {
|
|
if (!cfg)return;
|
|
std::unique_lock<std::shared_mutex> lock(m_Mtx);
|
|
cfg->m_IsAlarm = isAlarm;
|
|
}
|
|
|
|
void SetPrintAirRenewalTrigger(bool en)
|
|
{
|
|
m_SignalStateCtrl->m_PrintAirRenewalTrigger->SetValue(en);
|
|
}
|
|
|
|
void ResetRelateCoverAlarm() {
|
|
std::unique_lock<std::shared_mutex> lock(m_Mtx);
|
|
if(m_AlarmCfgWrapper->m_LayerLinearPosAlarm)m_AlarmCfgWrapper->m_LayerLinearPosAlarm->m_IsAlarm = false;
|
|
if(m_AlarmCfgWrapper->m_RecoatCheckAlarm)m_AlarmCfgWrapper->m_RecoatCheckAlarm->m_IsAlarm = false;
|
|
if(m_AlarmCfgWrapper->m_MoldServoPosWarn)m_AlarmCfgWrapper->m_MoldServoPosWarn->m_IsAlarm = false;
|
|
if (m_AlarmCfgWrapper->m_PrintLinnearAccDevAlarm)m_AlarmCfgWrapper->m_PrintLinnearAccDevAlarm->m_IsAlarm = false;
|
|
if (m_AlarmCfgWrapper->m_ScannerCtrlComAlarm)m_AlarmCfgWrapper->m_ScannerCtrlComAlarm->m_IsAlarm = false;
|
|
}
|
|
private:
|
|
SignalService();
|
|
~SignalService();
|
|
SignalService(const SignalService& other) {}
|
|
//void CheckProc();
|
|
|
|
private:
|
|
AlarmCfgWrapper* m_AlarmCfgWrapper;
|
|
IOCfgWrapper* m_IOCfgWrapper;
|
|
CoreCommunication* m_CoreCommunication;
|
|
SignalStateWrapper* m_SignalStateCtrl;
|
|
std::shared_mutex m_Mtx;
|
|
|
|
std::thread m_CheckThread;
|
|
bool m_RunFlag;
|
|
SignalState m_SignalState;
|
|
RunCfg* m_RunCfg;
|
|
ExtCfg* m_ExtCfg;
|
|
PowderEstimateCfg* m_PowderEstimateCfg;
|
|
bool m_LastPLCKeepAlive;
|
|
int m_CycleTick;
|
|
};
|
|
|