GrpcPrint/PrintS/Config/dao/AlarmCfgDao.cpp
2024-03-19 17:45:12 +08:00

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";
}
}