You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

767 lines
31 KiB
C++

#include "StdAfx.h"
#include "WarningMgr.h"
#include "LogMgr.h"
#include "FileMgr.h"
#include "WorkTime.h"
#include "CStringFuc.h"
#include "MsgBox.h"
#include "ModuleDeviceMgr.h"
#include "ExceptionMsg.h"
#include "EncryptionMgr.h"
#include "ProgramLaserTuiHuo.h"
#include "CriticalSection.h"
#define RECORD_FILE_PATH _T("\\WarningRecord")
#define TAB_STR " "
#define SECS_FIRST_ALARM_ID 15001 //secs ͨ<>ŵĵ<C5B5>һ<EFBFBD><D2BB>alarm id
CWarningMgr *gWarningMgr = new CWarningMgr;
CWarningMgr::CWarningMgr(void)
{
m_bClearAllWarningState = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ձ<EFBFBD><D5B1><EFBFBD>
}
CWarningMgr::~CWarningMgr(void)
{
}
#if 1
void CWarningMgr::OnAppInitialize()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
CreatRecordPath();
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
InitWarningStateVec();
}
//ͬ<><CDAC><EFBFBD><EFBFBD>ȡ<EFBFBD>ļ<EFBFBD>¼״̬<D7B4><CCAC>Ϣ
void CWarningMgr::SyncWarningRecordVec(vector<CWarningState> &RecordInfoVec)
{
int size = RecordInfoVec.size();
for(int k =0;k<size;k++)
{
int size1 = m_WarningStateVec.size();
for(int i =0;i<size1;i++)
{
if(m_WarningStateVec[i].m_WarningCode == RecordInfoVec[k].m_WarningCode)
{
RecordInfoVec[k].m_Description = m_WarningStateVec[i].m_Description;
}
}
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
void CWarningMgr::CreatRecordPath()
{
CString RecordPath;//<2F><>¼<EFBFBD><C2BC>·<EFBFBD><C2B7>
CFileMgr FileMgr;
FileMgr.GetFullFilePath(RecordPath,RECORD_FILE_PATH);
if(!FileMgr.IsFileExist(RecordPath))//<2F><><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>Ŀ¼
{
FileMgr.CreatDir(RecordPath);
}
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ΪFileName <20>ļ<EFBFBD>¼·<C2BC><C2B7>
CString CWarningMgr::GetRecordFilePath(CString FileName)
{
CString FullFilePath;
CString FilePath = RECORD_FILE_PATH;
FilePath += "\\" + FileName + ".rcd";
CFileMgr FileMgr;
FileMgr.GetFullFilePath(FullFilePath,FilePath);
return FullFilePath;
}
//<2F><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0>¼<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CString CWarningMgr::GetCurRecordFileName()
{
CString FileName;
CWorkTime WorkTime;
FileName = WorkTime.GetCurDate("_");
return FileName;
}
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>״̬
void CWarningMgr::InitWarningStateVec()
{
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_00;
WarningState.m_Description = "";//
WarningState.m_bNeedInitDevice = false;//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD>³<EFBFBD>ʼ<EFBFBD><CABC>
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
int SecsAlarmId = SECS_FIRST_ALARM_ID;//<2F><>һ<EFBFBD><D2BB>id (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_05;
WarningState.m_Description = "Motion Ctrl I/O Error";//<2F>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>IO <20><><EFBFBD><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = true;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_08;
WarningState.m_Description = "Motor Z Drive Error";//Z <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(PLC <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = true;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_09;
WarningState.m_Description = "Machine Gate Check Err";//<2F><>е<EFBFBD><D0B5>բ<EFBFBD><D5A2><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = true;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_10;
WarningState.m_Description = "Laser Beam Check Err";//<2F>ӹ<EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>/ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = true;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_11;
WarningState.m_Description = "Wafer adsorption Err";//<2F><>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = true;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_12;
WarningState.m_Description = "Door State Check Err";//<2F><>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = true;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_14;
WarningState.m_Description = "Equip Authorization Error";//<2F><>Ȩ<EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_17;
WarningState.m_Description = "Laser Spot Meter Error";//<2F><><EFBFBD>ٷ<EFBFBD><D9B7><EFBFBD><EFBFBD>Ǵ<EFBFBD><C7B4><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_18;
WarningState.m_Description = "Laser Device Comm Error";//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#ifdef __LASER_DEVICE_PHOTONICS__
WarningState.m_bStopAnnealFlow = true;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
#else
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
#endif
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_19;
WarningState.m_Description = "Laser Device State Error";//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = true;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_21;
WarningState.m_Description = "Operate Ldd Error";//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LDD <20><><EFBFBD><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = true;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_22;
WarningState.m_Description = "Load Wafer Error";//<2F><><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_23;
WarningState.m_Description = "UnLoad Wafer Error";//<2F><><EFBFBD>ϴ<EFBFBD><CFB4><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_24;
WarningState.m_Description = "Red Laser Device Comm Error";//<2F><><EFBFBD><EFBFBD><E2BCA4><EFBFBD><EFBFBD>ͨ<EFBFBD>Ŵ<EFBFBD><C5B4><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_25;
WarningState.m_Description = "Red Laser device state Error";//<2F><><EFBFBD><EFBFBD><E2BCA4><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = true;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_27;
WarningState.m_Description = "Water leaking Alarm";//©ˮ<C2A9><CBAE><EFBFBD><EFBFBD>(PLC <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_28;
WarningState.m_Description = "O2 Senser Alarm";//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD>(PLC <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_29;
WarningState.m_Description = "Wind pressure Alarm";//<2F><>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><E2B1A8>(PLC <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_30;
WarningState.m_Description = "Device Temperature Alarm";//<2F><>̨<EFBFBD>¶ȱ<C2B6><C8B1><EFBFBD>(PLC <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_31;
WarningState.m_Description = "APT pressure Alarm";//APT<50><54>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>(PLC <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_32;
WarningState.m_Description = "Smoke Senser Alarm";//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(PLC <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_33;
WarningState.m_Description = "Wave Form Channel Error";//<2F><><EFBFBD>η<EFBFBD><CEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = true;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_34;
WarningState.m_Description = "Laser Cooling Alarm";//<2F>̹<EFBFBD>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(PLC <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = true;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_35;
WarningState.m_Description = "Water leaking Alarm";//©ˮ<C2A9><CBAE><EFBFBD><EFBFBD>(PLC <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_36;
WarningState.m_Description = "Water leaking Alarm";//©ˮ<C2A9><CBAE><EFBFBD><EFBFBD>(PLC <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_37;
WarningState.m_Description = "Water leaking Alarm";//©ˮ<C2A9><CBAE><EFBFBD><EFBFBD>(PLC <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_38;
WarningState.m_Description = "Water leaking Alarm";//©ˮ<C2A9><CBAE><EFBFBD><EFBFBD>(PLC <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_39;
WarningState.m_Description = "Water leaking Alarm";//©ˮ<C2A9><CBAE><EFBFBD><EFBFBD>(PLC <20><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>)
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_40;
WarningState.m_Description = "Set Laser Par Error";//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = true;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_41;
WarningState.m_Description = "Laser1 Pow Check Error";//<2F><><EFBFBD><EFBFBD>1 <20><><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_42;
WarningState.m_Description = "Laser2 Pow Check Error";//<2F><><EFBFBD><EFBFBD>2 <20><><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = true;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_43;
WarningState.m_Description = "Red Laser Pow Check Error";//<2F><><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = true;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_44;
WarningState.m_Description = "Wafer Aligner Error";//׼ֱ<D7BC><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_45;
WarningState.m_Description = "Oxygen Check Error";//<2F><><EFBFBD><EFBFBD>Ũ<EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_46;
WarningState.m_Description = "Tempratue Measure Error";//<2F>¶ȼ<C2B6><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = false;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
{
CWarningState WarningState;
WarningState.m_WarningCode = _Warning_Code_47;
WarningState.m_Description ="Anneal Pow Check Error";//<2F>˻<EFBFBD><CBBB><EFBFBD><EFBFBD>̹<EFBFBD><CCB9>ʼ<EFBFBD><CABC>ش<EFBFBD><D8B4><EFBFBD>
WarningState.m_bNeedInitDevice = false;
WarningState.m_bSendToServer = false;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>͸<EFBFBD><CDB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_bStopAnnealFlow = true;//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD>˻<EFBFBD><CBBB><EFBFBD><EFBFBD><EFBFBD>
WarningState.m_SecsAlarmId = SecsAlarmId++;//<2F><><EFBFBD>͸<EFBFBD>Secs <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>alarm id(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Alarm.csv)
WarningState.m_pModule = NULL;
m_WarningStateVec.push_back(WarningState);
}
}
#endif
#if 1
//<2F><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD>״̬(bThowException <20>׳<EFBFBD><D7B3>쳣)
void CWarningMgr::SendWarningMsg(EWarningCode WarningCode,CString AddInfo,bool bThowException)
{
//<2F>ʼDZ<CABC><C7B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
//if(gEncryptionMgr->IsbRunAtNoteBook())
//return;
gCriticalSection_WarningMsg.Lock();
if(AddInfo == "")
AddInfo = "nothing";
int size = m_WarningStateVec.size();
for(int k =0;k<size;k++)
{
CWarningState &WarningState = m_WarningStateVec[k];
//<2F>ҵ<EFBFBD><D2B5><EFBFBD>Ӧ<EFBFBD>ľ<EFBFBD><C4BE><EFBFBD>
if(WarningState.m_WarningCode == WarningCode)
{
//ֻ<><D6BB><EFBFBD>ޱ<EFBFBD><DEB1><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(WarningState.m_bWarning == WARNING_OFF)
{
WarningState.m_bWarning = WARNING_ON;
WarningState.m_AddInfo = AddInfo;
SendWarningMsgExt(WarningState);
}
break;
}
}
gCriticalSection_WarningMsg.Unlock();
if(bThowException)
{
CExceptionMsg ExceptionMsg;
ExceptionMsg.SetMsg(AddInfo);
throw ExceptionMsg;
}
}
void CWarningMgr::SendWarningMsgExt(CWarningState &WarningState)
{
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>״̬
void CWarningMgr::ClearAllWarningState()
{
}
//<2F>Ƿ<EFBFBD><C7B7>б<EFBFBD><D0B1><EFBFBD>
bool CWarningMgr::HasWarningMsg(bool bException)
{
int size = m_WarningStateVec.size();
for(int k =0;k<size;k++)
{
CWarningState &WarningState = m_WarningStateVec[k];
if(WarningState.m_bWarning)
{
if(bException)
{
CString s("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
CExceptionMsg Msg;
Msg.SetMsg(s);
throw Msg;
}
return true;
}
}
return false;
}
//<2F><>ȡָ<C8A1><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
bool CWarningMgr::GetWarningState(EWarningCode WarningCode)
{
int size = m_WarningStateVec.size();
for(int k =0;k<size;k++)
{
CWarningState &WarningState = m_WarningStateVec[k];
if(WarningState.m_WarningCode == WarningCode)
{
return WarningState.m_bWarning;
}
}
return false;
}
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6>˻<EFBFBD><CBBB>ı<EFBFBD><C4B1><EFBFBD>
bool CWarningMgr::HasStopAnnealWarningMsg()
{
int size = m_WarningStateVec.size();
for(int k =0;k<size;k++)
{
CWarningState &WarningState = m_WarningStateVec[k];
if(WarningState.m_bWarning && WarningState.m_bStopAnnealFlow)
{
return true;
}
}
return false;
}
#endif
#if 1
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼(д<><D0B4><EFBFBD>ļ<EFBFBD>)
void CWarningMgr::AddWarningRecord(CWarningState &WarningState)
{
vector<CWarningState> RecordInfoVec;
//<2F>ȶ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>¼
CString RecordFileName = GetCurRecordFileName();
CString RecordFilePath = GetRecordFilePath(RecordFileName);
ReadRecordInfoFile(RecordInfoVec,RecordFilePath);
//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
RecordInfoVec.push_back(WarningState);
//д<><EFBFBD>ļ<EFBFBD>
WriteRecordInfoToFile(RecordInfoVec,RecordFilePath);
gLogMgr->WriteDebugLog("func---->AddWarningRecord");
}
//<2F><>ȡ<EFBFBD><C8A1>¼<EFBFBD>ļ<EFBFBD>
void CWarningMgr::ReadRecordInfoFile(vector<CWarningState> &RecordInfoVec,CString Path)
{
CFile file;
if(file.Open(Path,CFile::modeRead))
{
CArchive ar(&file,CArchive::load);
int WarningRecordCnt = 0;
ar>>WarningRecordCnt;//<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for(int k=0;k<WarningRecordCnt;k++)
{
CWarningState WarningRecordInfo;
int tmp;
ar>>tmp;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WarningRecordInfo.m_WarningCode = (EWarningCode)tmp;
ar>>WarningRecordInfo.m_DateTime;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
ar>>WarningRecordInfo.m_AddInfo;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
RecordInfoVec.push_back(WarningRecordInfo);
}
}
}
void CWarningMgr::WriteRecordInfoToFile(vector<CWarningState> &RecordInfoVec,CString Path)
{
if(RecordInfoVec.empty())
return;
int size = RecordInfoVec.size();
CFile file(Path,CFile::modeReadWrite|CFile::modeCreate);
CArchive ar(&file,CArchive::store);
ar<<size;//<2F><>¼<EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
for(int k=0;k<size;k++)
{
ar<<(int)RecordInfoVec[k].m_WarningCode;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ar<<RecordInfoVec[k].m_DateTime;//<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
ar<<RecordInfoVec[k].m_AddInfo;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
}
}
#endif
#if 1
//<2F><>ȡһ<C8A1><D2BB><EFBFBD>µļ<C2B5>¼<EFBFBD><C2BC>RecordInfoVec
void CWarningMgr::GetOneMonthRecord(CString Date,vector<CWarningState> &RecordInfoVec)
{
//<2F>Ѽ<EFBFBD><D1BC><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD>м<EFBFBD>¼<EFBFBD>ļ<EFBFBD>
vector<CString> RecordFileNameVec;
GetOneMonthRecordFileName(Date,RecordFileNameVec);
int size = RecordFileNameVec.size();
for(int k=0;k<size;k++)
{
ReadRecordInfoFile(RecordInfoVec,GetRecordFilePath(RecordFileNameVec[k]));
}
}
//2016_11_17---->2016_11
CString CWarningMgr::GetMonthStr(CString Date)
{
return Date.Left(7);
}
//<2F><>ȡһ<C8A1><D2BB><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>record <20>ļ<EFBFBD><C4BC><EFBFBD>
void CWarningMgr::GetOneMonthRecordFileName(CString Date,vector<CString> &RecordFileNameVec)
{
//<2F>Ѽ<EFBFBD><D1BC><EFBFBD><EFBFBD>м<EFBFBD>¼<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>--------------------------------
vector <CString> NameVec;
CFileMgr FileMgr;
CString RecordPath;
FileMgr.GetFullFilePath(RecordPath,RECORD_FILE_PATH);
FileMgr.GetChildFileOrDirName(false,RecordPath,NameVec,"rcd");
//ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>-----------------------------------
CString MonthStr = GetMonthStr(Date);
int size = NameVec.size();
for(int k=0;k<size;k++)
{
CString FileName = FileMgr.GetFileNameFromPath(NameVec[k],true);//<2F><>ȡ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>
if(FileName.Find(MonthStr) != -1)
{
RecordFileNameVec.push_back(FileName);
}
}
}
#endif
#if 1
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬list
void CWarningMgr::InitWarningStateToList(CListCtrl &List)
{
//<2F><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>
List.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int idx = 0;
List.InsertColumn(idx,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",LVCFMT_LEFT,50,-1);
idx++;
List.InsertColumn(idx,"ʱ<EFBFBD><EFBFBD>",LVCFMT_LEFT,150,-1);
idx++;
List.InsertColumn(idx,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",LVCFMT_LEFT,250,-1);
idx++;
List.InsertColumn(idx,"<EFBFBD><EFBFBD>ʾ",LVCFMT_LEFT,350,-1);
idx++;
}
//<2F><>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>bShowByMonth Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
void CWarningMgr::InsertRecordList(CListCtrl &List,CString Date,bool bShowByMonth)
{
m_RecordInfoVec.clear();
if(bShowByMonth)//<2F><>ȡһ<C8A1><D2BB><EFBFBD>µļ<C2B5>¼
{
GetOneMonthRecord(Date,m_RecordInfoVec);
}
else//<2F><>ȡһ<C8A1><D2BB><EFBFBD>ļ<EFBFBD>¼
{
CString Path = GetRecordFilePath(Date);
ReadRecordInfoFile(m_RecordInfoVec,Path);
}
//ͬ<><CDAC><EFBFBD><EFBFBD>ȡ<EFBFBD>ļ<EFBFBD>¼״̬<D7B4><CCAC>Ϣ
SyncWarningRecordVec(m_RecordInfoVec);
InsertRecordListExt(List,m_RecordInfoVec,false);
}
//bOnlyWarning ֻ<><D6BB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>״̬
void CWarningMgr::InsertRecordListExt(CListCtrl &List,vector<CWarningState> &WarningStateVec,bool bOnlyWarning)
{
List.DeleteAllItems();
int size = WarningStateVec.size();
int LineIdx = 0;
for(int k =0;k<size;k++)
{
int idx = 0;
CWarningState &WarningState = WarningStateVec[k];
if(bOnlyWarning && !WarningState.m_bWarning)
continue;
List.InsertItem(LineIdx," ");//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
List.SetItemText(LineIdx,idx++,GetWarningCode(WarningState));//<2F><><EFBFBD><EFBFBD>
List.SetItemText(LineIdx,idx++,WarningState.m_DateTime);//ʱ<><CAB1>
List.SetItemText(LineIdx,idx++,WarningState.m_Description);//<2F><><EFBFBD><EFBFBD>
List.SetItemText(LineIdx,idx++,WarningState.m_AddInfo);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
LineIdx++;
}
}
//<2F><><EFBFBD><EFBFBD><EBB1A8>״̬<D7B4>б<EFBFBD>
void CWarningMgr::UpdateWarningStateToList(CListCtrl &List)
{
InsertRecordListExt(List,m_WarningStateVec,true);
}
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CString CWarningMgr::GetWarningCode(CWarningState &WarningState)
{
CString CodeStr;
//ʹ<><CAB9>Secs <20><>id <20><>
CodeStr = Int2CString(WarningState.m_SecsAlarmId);
return CodeStr;
}
#endif