438 lines
20 KiB
C++
438 lines
20 KiB
C++
#include "AlarmCfgDao.h"
|
|
#include "../ConfigManager.h"
|
|
#include "../../LanguageManager.h"
|
|
|
|
|
|
AlarmCfgDao::AlarmCfgDao(SQLite::Database* pdb) :BaseDao(pdb)
|
|
{
|
|
}
|
|
|
|
|
|
AlarmCfgDao::~AlarmCfgDao()
|
|
{
|
|
}
|
|
|
|
void AlarmCfgDao::CreateTable()
|
|
{
|
|
if (m_pDB->tableExists(AlarmCfg::TABLE_NAME))return;
|
|
char buffer[1024];
|
|
memset(buffer, '\0', sizeof(buffer));
|
|
string createsql = "CREATE TABLE %s(%s INTEGER PRIMARY KEY AUTOINCREMENT,%s VARCHAR(30),%s INTEGER,%s VARCHAR(50),%s INTEGER)";
|
|
sprintf_s(buffer, sizeof(buffer), createsql.c_str(),
|
|
AlarmCfg::TABLE_NAME.c_str(),
|
|
AlarmCfg::FIELD_ID.c_str(),
|
|
AlarmCfg::FIELD_CODE.c_str(),
|
|
AlarmCfg::FIELD_TYPE.c_str(),
|
|
AlarmCfg::FIELD_CONTENT.c_str(),
|
|
AlarmCfg::FIELD_ISENABLE.c_str()
|
|
);
|
|
m_pDB->exec(buffer);
|
|
}
|
|
|
|
void AlarmCfgDao::InitBeforeFind()
|
|
{
|
|
AlarmCfgWrapper* cfg = ConfigManager::GetInstance()->GetAlarmCfg();
|
|
AlarmCfg* DeviceJudgeDisconnectAlarm = new AlarmCfg("DeviceJudgeDisconnectAlarm", u8"设备判断连接断开报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[DeviceJudgeDisconnectAlarm->m_Code] = DeviceJudgeDisconnectAlarm;
|
|
|
|
AlarmCfg* PLCJudgeDisconnectAlarm = new AlarmCfg("PLCJudgeDisconnectAlarm", u8"PLC判断连接断开报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[PLCJudgeDisconnectAlarm->m_Code] = PLCJudgeDisconnectAlarm;
|
|
|
|
AlarmCfg* SystemStopAlarm = new AlarmCfg("SystemStopAlarm", u8"系统急停", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[SystemStopAlarm->m_Code] = SystemStopAlarm;
|
|
|
|
AlarmCfg* PowerBreakAlarm = new AlarmCfg("PowerBreakAlarm", u8"外部断电报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[PowerBreakAlarm->m_Code] = PowerBreakAlarm;
|
|
|
|
AlarmCfg* LaserChillerAlarm = new AlarmCfg("LaserChillerAlarm", u8"激光器冷水机报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[LaserChillerAlarm->m_Code] = LaserChillerAlarm;
|
|
|
|
AlarmCfg* BusAirSwitchAlarm = new AlarmCfg("BusAirSwitchAlarm", u8"总空开报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[BusAirSwitchAlarm->m_Code] = BusAirSwitchAlarm;
|
|
|
|
AlarmCfg* ExtDevicePowerAirSwitchAlarm = new AlarmCfg("ExtDevicePowerAirSwitchAlarm", u8"外部设备电源空开报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[ExtDevicePowerAirSwitchAlarm->m_Code] = ExtDevicePowerAirSwitchAlarm;
|
|
|
|
AlarmCfg* HeatingPowerAirSwitchAlarm = new AlarmCfg("HeatingPowerAirSwitchAlarm", u8"加热电源空开报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[HeatingPowerAirSwitchAlarm->m_Code] = HeatingPowerAirSwitchAlarm;
|
|
|
|
AlarmCfg* LaserPowerAirSwitchAlarm = new AlarmCfg("LaserPowerAirSwitchAlarm", u8"激光电源空开报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[LaserPowerAirSwitchAlarm->m_Code] = LaserPowerAirSwitchAlarm;
|
|
|
|
AlarmCfg* ServoPowerAirSwitchAlarm = new AlarmCfg("ServoPowerAirSwitchAlarm", u8"伺服电源空开报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[ServoPowerAirSwitchAlarm->m_Code] = ServoPowerAirSwitchAlarm;
|
|
|
|
AlarmCfg* Laser1Alarm = new AlarmCfg("Laser1Alarm", u8"激光器1报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[Laser1Alarm->m_Code] = Laser1Alarm;
|
|
|
|
AlarmCfg* Laser2Alarm = new AlarmCfg("Laser2Alarm", u8"激光器2报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[Laser2Alarm->m_Code] = Laser2Alarm;
|
|
|
|
AlarmCfg* Laser3Alarm = new AlarmCfg("Laser3Alarm", u8"激光器3报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[Laser3Alarm->m_Code] = Laser3Alarm;
|
|
|
|
AlarmCfg* Laser4Alarm = new AlarmCfg("Laser4Alarm", u8"激光器4报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[Laser4Alarm->m_Code] = Laser4Alarm;
|
|
|
|
|
|
AlarmCfg* Laser1ComAlarm = new AlarmCfg("Laser1ComAlarm", u8"激光器1通讯报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[Laser1ComAlarm->m_Code] = Laser1ComAlarm;
|
|
|
|
AlarmCfg* Laser2ComAlarm = new AlarmCfg("Laser2ComAlarm", u8"激光器2通讯报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[Laser2ComAlarm->m_Code] = Laser2ComAlarm;
|
|
|
|
AlarmCfg* Laser3ComAlarm = new AlarmCfg("Laser3ComAlarm", u8"激光器3通讯报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[Laser3ComAlarm->m_Code] = Laser3ComAlarm;
|
|
|
|
AlarmCfg* Laser4ComAlarm = new AlarmCfg("Laser4ComAlarm", u8"激光器4通讯报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[Laser4ComAlarm->m_Code] = Laser4ComAlarm;
|
|
|
|
AlarmCfg* HeatingAlarm = new AlarmCfg("HeatingAlarm", u8"加热异常报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[HeatingAlarm->m_Code] = HeatingAlarm;
|
|
|
|
AlarmCfg* UpDownLimitAlarm = new AlarmCfg("UpDownLimitAlarm", u8"升降限位报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[UpDownLimitAlarm->m_Code] = UpDownLimitAlarm;
|
|
|
|
AlarmCfg* PrintCabinDoorOpenAlarm = new AlarmCfg("PrintCabinDoorOpenAlarm", u8"舱门打开报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[PrintCabinDoorOpenAlarm->m_Code] = PrintCabinDoorOpenAlarm;
|
|
|
|
AlarmCfg* PrintCabinDoorLockOpenAlarm = new AlarmCfg("PrintCabinDoorLockOpenAlarm", u8"舱门电锁打开报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[PrintCabinDoorLockOpenAlarm->m_Code] = PrintCabinDoorLockOpenAlarm;
|
|
|
|
AlarmCfg* MoldLoadOverLimitAlarm = new AlarmCfg("MoldLoadOverLimitAlarm", u8"成型缸负载越限报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[MoldLoadOverLimitAlarm->m_Code] = MoldLoadOverLimitAlarm;
|
|
|
|
AlarmCfg* ArmLoadOverLimitAlarm = new AlarmCfg("ArmLoadOverLimitAlarm", u8"铺粉臂负载越限报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[ArmLoadOverLimitAlarm->m_Code] = ArmLoadOverLimitAlarm;
|
|
|
|
AlarmCfg* InverterRunSignalAlarm = new AlarmCfg("InverterRunSignalAlarm", u8"变频运行信号报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[InverterRunSignalAlarm->m_Code] = InverterRunSignalAlarm;
|
|
|
|
AlarmCfg* OxygenOverLimitAlarm = new AlarmCfg("OxygenOverLimitAlarm", u8"氧含量越限报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[OxygenOverLimitAlarm->m_Code] = OxygenOverLimitAlarm;
|
|
|
|
AlarmCfg* PrintSignalAlarm = new AlarmCfg("PrintSignalAlarm", u8"可打印信号报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[PrintSignalAlarm->m_Code] = PrintSignalAlarm;
|
|
|
|
AlarmCfg* PurifierInternalAlarm = new AlarmCfg("PurifierInternalAlarm", u8"净化器内部报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[PurifierInternalAlarm->m_Code] = PurifierInternalAlarm;
|
|
|
|
AlarmCfg* ScananerChillerAlarm = new AlarmCfg("ScananerChillerAlarm", u8"光路冷水机报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[ScananerChillerAlarm->m_Code] = ScananerChillerAlarm;
|
|
|
|
AlarmCfg* PurifierChillerAlarm = new AlarmCfg("PurifierChillerAlarm", u8"净化器冷水机报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[PurifierChillerAlarm->m_Code] = PurifierChillerAlarm;
|
|
|
|
AlarmCfg* WindOverLimitAlarm = new AlarmCfg("WindOverLimitAlarm", u8"风速越限报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[WindOverLimitAlarm->m_Code] = WindOverLimitAlarm;
|
|
|
|
AlarmCfg* FanFreqLowAlarm = new AlarmCfg("FanFreqLowAlarm", u8"风机频率过低报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[FanFreqLowAlarm->m_Code] = FanFreqLowAlarm;
|
|
|
|
AlarmCfg* LinearEncoderCompensateAlarm = new AlarmCfg("LinearEncoderCompensateAlarm", u8"光栅尺补偿失效报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[LinearEncoderCompensateAlarm->m_Code] = LinearEncoderCompensateAlarm;
|
|
|
|
AlarmCfg* PurifierDisconnectAlarm = new AlarmCfg("PurifierDisconnectAlarm", u8"净化连接断开报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[PurifierDisconnectAlarm->m_Code] = PurifierDisconnectAlarm;
|
|
|
|
AlarmCfg* PrintMoldServoAlarm = new AlarmCfg("PrintMoldServoAlarm", u8"升降伺服异常报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[PrintMoldServoAlarm->m_Code] = PrintMoldServoAlarm;
|
|
|
|
AlarmCfg* ArmServoAlarm = new AlarmCfg("ArmServoAlarm", u8"铺粉伺服异常报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[ArmServoAlarm->m_Code] = ArmServoAlarm;
|
|
|
|
AlarmCfg* SupplyServoAlarm = new AlarmCfg("SupplyServoAlarm", u8"供粉伺服异常报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[SupplyServoAlarm->m_Code] = SupplyServoAlarm;
|
|
|
|
AlarmCfg* VoltageAlarm = new AlarmCfg("VoltageAlarm", u8"供电电压报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[VoltageAlarm->m_Code] = VoltageAlarm;
|
|
|
|
AlarmCfg* ScannerVoltageAlarm = new AlarmCfg("ScannerVoltageAlarm", u8"振镜电压报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[ScannerVoltageAlarm->m_Code] = ScannerVoltageAlarm;
|
|
|
|
AlarmCfg* ArmLimitAlarm = new AlarmCfg("ArmLimitAlarm", u8"铺粉触发限位报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[ArmLimitAlarm->m_Code] = ArmLimitAlarm;
|
|
|
|
AlarmCfg* LayerLinearPosAlarm = new AlarmCfg("LayerLinearPosAlarm", u8"层光栅位置偏差报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[LayerLinearPosAlarm->m_Code] = LayerLinearPosAlarm;
|
|
|
|
AlarmCfg* PrintLinnearAccDevAlarm = new AlarmCfg("PrintLinnearAccDevAlarm", u8"打印光栅累积误差报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[PrintLinnearAccDevAlarm->m_Code] = PrintLinnearAccDevAlarm;
|
|
|
|
AlarmCfg* PurifierKeepAliveAlarm = new AlarmCfg("PurifierKeepAliveAlarm", u8"净化器心跳报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[PurifierKeepAliveAlarm->m_Code] = PurifierKeepAliveAlarm;
|
|
|
|
AlarmCfg* PurifierOxygenAlarm = new AlarmCfg("PurifierOxygenAlarm", u8"净化器氧含量报警", ALARM_TYPE_STOP);
|
|
PurifierOxygenAlarm->m_CheckAlarmSetTick = 50;
|
|
cfg->m_StopAlarmCfgMap[PurifierOxygenAlarm->m_Code] = PurifierOxygenAlarm;
|
|
|
|
AlarmCfg* PurifierMidTempAlarm = new AlarmCfg("PurifierMidTempAlarm", u8"净化器中校高温报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[PurifierMidTempAlarm->m_Code] = PurifierMidTempAlarm;
|
|
|
|
AlarmCfg* ScannerInteriorAlarm = new AlarmCfg("ScannerInteriorAlarm", u8"振镜内部报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[ScannerInteriorAlarm->m_Code] = ScannerInteriorAlarm;
|
|
|
|
AlarmCfg* ScannerCtrlComAlarm = new AlarmCfg("ScannerCtrlComAlarm", u8"振镜通讯报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[ScannerCtrlComAlarm->m_Code] = ScannerCtrlComAlarm;
|
|
|
|
AlarmCfg* PLCKeepaliveAlarm = new AlarmCfg("PLCKeepaliveAlarm", u8"PLC心跳报警", ALARM_TYPE_STOP);
|
|
PLCKeepaliveAlarm->m_CheckAlarmSetTick = 100;
|
|
cfg->m_StopAlarmCfgMap[PLCKeepaliveAlarm->m_Code] = PLCKeepaliveAlarm;
|
|
|
|
AlarmCfg* PLCInnerStopAlarm = new AlarmCfg("PLCInnerStopAlarm", u8"PLC内部停机报警", ALARM_TYPE_STOP);
|
|
cfg->m_StopAlarmCfgMap[PLCInnerStopAlarm->m_Code] = PLCInnerStopAlarm;
|
|
|
|
//暂停
|
|
AlarmCfg* PowderEmpty = new AlarmCfg("PowderEmpty", u8"供粉不足", ALARM_TYPE_PAUSE);
|
|
cfg->m_PauseAlarmCfgMap[PowderEmpty->m_Code] = PowderEmpty;
|
|
|
|
AlarmCfg* PowderStickLowLevelAlarm = new AlarmCfg("PowderStickLowLevelAlarm", u8"粉棒低位报警", ALARM_TYPE_PAUSE);
|
|
cfg->m_PauseAlarmCfgMap[PowderStickLowLevelAlarm->m_Code] = PowderStickLowLevelAlarm;
|
|
|
|
AlarmCfg* RecoatCheckAlarm = new AlarmCfg("RecoatCheckAlarm", u8"铺粉检测报警", ALARM_TYPE_PAUSE);
|
|
cfg->m_PauseAlarmCfgMap[RecoatCheckAlarm->m_Code] = RecoatCheckAlarm;
|
|
|
|
AlarmCfg* HeatingTempAlarm = new AlarmCfg("HeatingTempAlarm", u8"加热温度报警", ALARM_TYPE_PAUSE);
|
|
cfg->m_PauseAlarmCfgMap[HeatingTempAlarm->m_Code] = HeatingTempAlarm;
|
|
|
|
AlarmCfg* OxygenSensorDisconnectAlarm = new AlarmCfg("OxygenSensorDisconnectAlarm", u8"测氧仪通讯断开报警", ALARM_TYPE_PAUSE);
|
|
cfg->m_PauseAlarmCfgMap[OxygenSensorDisconnectAlarm->m_Code] = OxygenSensorDisconnectAlarm;
|
|
|
|
AlarmCfg* HeatingDisconnectAlarm = new AlarmCfg("HeatingDisconnectAlarm", u8"温控通讯断开报警", ALARM_TYPE_PAUSE);
|
|
cfg->m_PauseAlarmCfgMap[HeatingDisconnectAlarm->m_Code] = HeatingDisconnectAlarm;
|
|
|
|
//警示
|
|
AlarmCfg* HighPressureLackAlarm = new AlarmCfg("HighPressureLackAlarm", u8"高压气压力不足异常", ALARM_TYPE_WARN);
|
|
cfg->m_WarnAlarmCfgMap[HighPressureLackAlarm->m_Code] = HighPressureLackAlarm;
|
|
|
|
AlarmCfg* ProtectGasLackAlarm = new AlarmCfg("ProtectGasLackAlarm", u8"保护气压力不足异常", ALARM_TYPE_WARN);
|
|
cfg->m_WarnAlarmCfgMap[ProtectGasLackAlarm->m_Code] = ProtectGasLackAlarm;
|
|
|
|
AlarmCfg* OutdoorOxygenAlarm = new AlarmCfg("OutdoorOxygenAlarm", u8"室外测氧仪异常", ALARM_TYPE_WARN);
|
|
cfg->m_WarnAlarmCfgMap[OutdoorOxygenAlarm->m_Code] = OutdoorOxygenAlarm;
|
|
|
|
AlarmCfg* SupplyPipeBlockWarn = new AlarmCfg("SupplyPipeBlockWarn", u8"吸筛送管道堵塞警示", ALARM_TYPE_WARN);
|
|
cfg->m_WarnAlarmCfgMap[SupplyPipeBlockWarn->m_Code] = SupplyPipeBlockWarn;
|
|
|
|
AlarmCfg* AddPowderWarn = new AlarmCfg("AddPowderWarn", u8"加粉警示", ALARM_TYPE_WARN);
|
|
cfg->m_WarnAlarmCfgMap[AddPowderWarn->m_Code] = AddPowderWarn;
|
|
|
|
AlarmCfg* MoldServoPosWarn = new AlarmCfg("MoldServoPosWarn", u8"升降伺服位置警示", ALARM_TYPE_WARN);
|
|
cfg->m_WarnAlarmCfgMap[MoldServoPosWarn->m_Code] = MoldServoPosWarn;
|
|
|
|
for (map<string, AlarmCfg*>::iterator it = cfg->m_StopAlarmCfgMap.begin(); it != cfg->m_StopAlarmCfgMap.end(); it++) {
|
|
cfg->m_AllAlarmMap[it->first] = it->second;
|
|
}
|
|
|
|
for (map<string, AlarmCfg*>::iterator it = cfg->m_PauseAlarmCfgMap.begin(); it != cfg->m_PauseAlarmCfgMap.end(); it++) {
|
|
cfg->m_AllAlarmMap[it->first] = it->second;
|
|
}
|
|
|
|
for (map<string, AlarmCfg*>::iterator it = cfg->m_WarnAlarmCfgMap.begin(); it != cfg->m_WarnAlarmCfgMap.end(); it++) {
|
|
cfg->m_AllAlarmMap[it->first] = it->second;
|
|
}
|
|
g_LngManager->VarAlarmTrans();
|
|
}
|
|
|
|
void AlarmCfgDao::Find()
|
|
{
|
|
InitBeforeFind();
|
|
AlarmCfgWrapper* cfg = ConfigManager::GetInstance()->GetAlarmCfg();
|
|
char buffer[1024];
|
|
string strsel = "SELECT %s,%s,%s,%s,%s FROM %s";
|
|
|
|
sprintf_s(buffer, sizeof(buffer), strsel.c_str(),
|
|
AlarmCfg::FIELD_ID.c_str(),
|
|
AlarmCfg::FIELD_CODE.c_str(),
|
|
AlarmCfg::FIELD_TYPE.c_str(),
|
|
AlarmCfg::FIELD_CONTENT.c_str(),
|
|
AlarmCfg::FIELD_ISENABLE.c_str(),
|
|
AlarmCfg::TABLE_NAME.c_str(),
|
|
AlarmCfg::FIELD_TYPE.c_str(),
|
|
AlarmCfg::FIELD_ID.c_str());
|
|
SQLite::Statement query(*m_pDB, buffer);
|
|
map<string, AlarmCfg*> tempMap;
|
|
while (query.executeStep())
|
|
{
|
|
AlarmCfg* pac = new AlarmCfg();
|
|
pac->m_id = query.getColumn(AlarmCfg::FIELD_ID.c_str()).getInt();
|
|
pac->m_Code = query.getColumn(AlarmCfg::FIELD_CODE.c_str()).getString();
|
|
pac->m_Type = query.getColumn(AlarmCfg::FIELD_TYPE.c_str()).getInt();
|
|
pac->m_Content = query.getColumn(AlarmCfg::FIELD_CONTENT.c_str()).getString();
|
|
pac->m_IsEnable = (query.getColumn(AlarmCfg::FIELD_ISENABLE.c_str()).getInt() > 0 ? true : false);
|
|
tempMap[pac->m_Code] = pac;
|
|
}
|
|
|
|
vector<string> needins;
|
|
string strtemp = "INSERT INTO %s(%s,%s,%s,%s) VALUES(";
|
|
sprintf_s(buffer, sizeof(buffer), strtemp.c_str(), AlarmCfg::TABLE_NAME.c_str(), AlarmCfg::FIELD_CODE.c_str(),
|
|
AlarmCfg::FIELD_TYPE.c_str(), AlarmCfg::FIELD_CONTENT.c_str(), AlarmCfg::FIELD_ISENABLE.c_str());
|
|
string strsql = string(buffer) + "'%s',%d,'%s',%d)";
|
|
|
|
|
|
for (map<string, AlarmCfg*>::iterator it = cfg->m_AllAlarmMap.begin(); it != cfg->m_AllAlarmMap.end(); it++) {
|
|
AlarmCfg* pac = it->second;
|
|
if (tempMap.find(it->first) == tempMap.end()) {
|
|
sprintf_s(buffer, sizeof(buffer), strsql.c_str(), pac->m_Code.c_str(), pac->m_Type, pac->m_Content.c_str(), pac->m_IsEnable ? 1 : 0);
|
|
needins.push_back(buffer);
|
|
}
|
|
else {
|
|
AlarmCfg* temp = tempMap[it->first];
|
|
pac->m_id = temp->m_id;
|
|
pac->m_Content = temp->m_Content;
|
|
pac->m_IsEnable = temp->m_IsEnable;
|
|
}
|
|
}
|
|
|
|
for (map<string, AlarmCfg*>::iterator it = tempMap.begin(); it != tempMap.end(); it++) {
|
|
delete it->second;
|
|
}
|
|
tempMap.clear();
|
|
|
|
if (!needins.empty()) {
|
|
SQLite::Transaction transaction(*m_pDB);
|
|
for (size_t i = 0; i < needins.size(); ++i) {
|
|
m_pDB->exec(needins[i]);
|
|
}
|
|
transaction.commit();
|
|
}
|
|
}
|
|
|
|
void AlarmCfgDao::CheckAlarmWithCfg()
|
|
{
|
|
|
|
}
|
|
/*
|
|
void AlarmCfgDao::FindStop(AlarmCfgWrapper* cfg) {
|
|
char buffer[1024];
|
|
string strsel = "SELECT %s,%s,%s,%s,%s FROM %s WHERE %s=%d ORDER BY %s";
|
|
sprintf_s(buffer, sizeof(buffer), strsel.c_str(),
|
|
AlarmCfg::FIELD_ID.c_str(),
|
|
AlarmCfg::FIELD_CODE.c_str(),
|
|
AlarmCfg::FIELD_TYPE.c_str(),
|
|
AlarmCfg::FIELD_CONTENT.c_str(),
|
|
AlarmCfg::FIELD_ISENABLE.c_str(),
|
|
AlarmCfg::TABLE_NAME.c_str(),
|
|
AlarmCfg::FIELD_TYPE.c_str(),
|
|
ALARM_TYPE_STOP,
|
|
AlarmCfg::FIELD_ID.c_str());
|
|
SQLite::Statement query(*m_pDB, buffer);
|
|
while (query.executeStep())
|
|
{
|
|
AlarmCfg* pac = new AlarmCfg();
|
|
pac->m_id = query.getColumn(AlarmCfg::FIELD_ID.c_str()).getInt();
|
|
pac->m_Code = query.getColumn(AlarmCfg::FIELD_CODE.c_str()).getString();
|
|
pac->m_Type = query.getColumn(AlarmCfg::FIELD_TYPE.c_str()).getInt();
|
|
pac->m_Content = query.getColumn(AlarmCfg::FIELD_CONTENT.c_str()).getString();
|
|
pac->m_IsEnable = (query.getColumn(AlarmCfg::FIELD_ISENABLE.c_str()).getInt() > 0 ? true : false);
|
|
cfg->m_StopAlarmCfgMap[pac->m_Code] = pac;
|
|
}
|
|
|
|
vector<string> needins;
|
|
|
|
ConfigManager::GetInstance()->GetMachine()->CheckStopAlarm(needins, cfg);
|
|
|
|
if (!needins.empty()) {
|
|
SQLite::Transaction transaction(*m_pDB);
|
|
for (size_t i = 0; i < needins.size(); ++i) {
|
|
m_pDB->exec(needins[i]);
|
|
}
|
|
transaction.commit();
|
|
}
|
|
|
|
}
|
|
|
|
void AlarmCfgDao::FindPause(AlarmCfgWrapper* cfg) {
|
|
char buffer[1024];
|
|
string strsel = "SELECT %s,%s,%s,%s,%s FROM %s WHERE %s=%d ORDER BY %s";
|
|
sprintf_s(buffer, sizeof(buffer), strsel.c_str(),
|
|
AlarmCfg::FIELD_ID.c_str(),
|
|
AlarmCfg::FIELD_CODE.c_str(),
|
|
AlarmCfg::FIELD_TYPE.c_str(),
|
|
AlarmCfg::FIELD_CONTENT.c_str(),
|
|
AlarmCfg::FIELD_ISENABLE.c_str(),
|
|
AlarmCfg::TABLE_NAME.c_str(),
|
|
AlarmCfg::FIELD_TYPE.c_str(),
|
|
ALARM_TYPE_PAUSE,
|
|
AlarmCfg::FIELD_ID.c_str());
|
|
SQLite::Statement query(*m_pDB, buffer);
|
|
while (query.executeStep())
|
|
{
|
|
AlarmCfg* pac = new AlarmCfg();
|
|
pac->m_id = query.getColumn(AlarmCfg::FIELD_ID.c_str()).getInt();
|
|
pac->m_Code = query.getColumn(AlarmCfg::FIELD_CODE.c_str()).getString();
|
|
pac->m_Type = query.getColumn(AlarmCfg::FIELD_TYPE.c_str()).getInt();
|
|
pac->m_Content = query.getColumn(AlarmCfg::FIELD_CONTENT.c_str()).getString();
|
|
pac->m_IsEnable = (query.getColumn(AlarmCfg::FIELD_ISENABLE.c_str()).getInt() > 0 ? true : false);
|
|
cfg->m_PauseAlarmCfgMap[pac->m_Code] = pac;
|
|
}
|
|
|
|
|
|
vector<string> needins;
|
|
ConfigManager::GetInstance()->GetMachine()->CheckPauseAlarm(needins, cfg);
|
|
|
|
if (!needins.empty()) {
|
|
SQLite::Transaction transaction(*m_pDB);
|
|
for (size_t i = 0; i < needins.size(); ++i) {
|
|
m_pDB->exec(needins[i]);
|
|
}
|
|
transaction.commit();
|
|
}
|
|
}
|
|
|
|
void AlarmCfgDao::FindWarn(AlarmCfgWrapper* cfg) {
|
|
char buffer[1024];
|
|
string strsel = "SELECT %s,%s,%s,%s,%s FROM %s WHERE %s=%d ORDER BY %s";
|
|
sprintf_s(buffer, sizeof(buffer), strsel.c_str(),
|
|
AlarmCfg::FIELD_ID.c_str(),
|
|
AlarmCfg::FIELD_CODE.c_str(),
|
|
AlarmCfg::FIELD_TYPE.c_str(),
|
|
AlarmCfg::FIELD_CONTENT.c_str(),
|
|
AlarmCfg::FIELD_ISENABLE.c_str(),
|
|
AlarmCfg::TABLE_NAME.c_str(),
|
|
AlarmCfg::FIELD_TYPE.c_str(),
|
|
ALARM_TYPE_WARN,
|
|
AlarmCfg::FIELD_ID.c_str());
|
|
SQLite::Statement query(*m_pDB, buffer);
|
|
while (query.executeStep())
|
|
{
|
|
AlarmCfg* pac = new AlarmCfg();
|
|
pac->m_id = query.getColumn(AlarmCfg::FIELD_ID.c_str()).getInt();
|
|
pac->m_Code = query.getColumn(AlarmCfg::FIELD_CODE.c_str()).getString();
|
|
pac->m_Type = query.getColumn(AlarmCfg::FIELD_TYPE.c_str()).getInt();
|
|
pac->m_Content = query.getColumn(AlarmCfg::FIELD_CONTENT.c_str()).getString();
|
|
pac->m_IsEnable = (query.getColumn(AlarmCfg::FIELD_ISENABLE.c_str()).getInt() > 0 ? true : false);
|
|
cfg->m_WarnAlarmCfgMap[pac->m_Code] = pac;
|
|
}
|
|
|
|
|
|
vector<string> needins;
|
|
ConfigManager::GetInstance()->GetMachine()->CheckWarnAlarm(needins, cfg);
|
|
|
|
if (!needins.empty()) {
|
|
SQLite::Transaction transaction(*m_pDB);
|
|
for (size_t i = 0; i < needins.size(); ++i) {
|
|
m_pDB->exec(needins[i]);
|
|
}
|
|
transaction.commit();
|
|
}
|
|
}
|
|
*/
|
|
void AlarmCfgDao::Save()
|
|
{
|
|
AlarmCfgWrapper* alarmCfgWrapper = ConfigManager::GetInstance()->GetAlarmCfg();
|
|
for (map<string, AlarmCfg*>::iterator it = alarmCfgWrapper->m_AllAlarmMap.begin(); it != alarmCfgWrapper->m_AllAlarmMap.end(); it++) {
|
|
if (it->second == NULL)continue;
|
|
string upstr = it->second->GetUpdateSql();
|
|
m_pDB->exec(upstr);
|
|
}
|
|
}
|
|
|
|
void AlarmCfgDao::Export(stringstream &sql)
|
|
{
|
|
AlarmCfgWrapper* alarmCfgWrapper = ConfigManager::GetInstance()->GetAlarmCfg();
|
|
for (map<string, AlarmCfg*>::iterator it = alarmCfgWrapper->m_AllAlarmMap.begin(); it != alarmCfgWrapper->m_AllAlarmMap.end(); it++) {
|
|
string upstr = it->second->GetUpdateSql();
|
|
sql << upstr << "\n";
|
|
}
|
|
} |