GrpcPrint/PrintS/Config/dao/AlarmCfgDao.cpp

529 lines
25 KiB
C++

#include "AlarmCfgDao.h"
#include "../ConfigManager.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* UpLaserAirBreakAlarm = new AlarmCfg("UpLaserAirBreakAlarm", u8"上激光支路空开异常报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[UpLaserAirBreakAlarm->m_Code] = UpLaserAirBreakAlarm;
AlarmCfg* UpServoAirBreakAlarm = new AlarmCfg("UpServoAirBreakAlarm", u8"上层伺服空开异常报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[UpServoAirBreakAlarm->m_Code] = UpServoAirBreakAlarm;
AlarmCfg* ScannerPowerExceptionAlarm = new AlarmCfg("ScannerPowerExceptionAlarm", u8"振镜电源异常报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[ScannerPowerExceptionAlarm->m_Code] = ScannerPowerExceptionAlarm;
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* Laser5Alarm = new AlarmCfg("Laser5Alarm", u8"激光器5报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[Laser5Alarm->m_Code] = Laser5Alarm;
AlarmCfg* Laser6Alarm = new AlarmCfg("Laser6Alarm", u8"激光器6报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[Laser6Alarm->m_Code] = Laser6Alarm;
AlarmCfg* Laser7Alarm = new AlarmCfg("Laser7Alarm", u8"激光器7报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[Laser7Alarm->m_Code] = Laser7Alarm;
AlarmCfg* Laser8Alarm = new AlarmCfg("Laser8Alarm", u8"激光器8报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[Laser8Alarm->m_Code] = Laser8Alarm;
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* Laser5ComAlarm = new AlarmCfg("Laser5ComAlarm", u8"激光器5通讯报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[Laser5ComAlarm->m_Code] = Laser5ComAlarm;
AlarmCfg* Laser6ComAlarm = new AlarmCfg("Laser6ComAlarm", u8"激光器6通讯报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[Laser6ComAlarm->m_Code] = Laser6ComAlarm;
AlarmCfg* Laser7ComAlarm = new AlarmCfg("Laser7ComAlarm", u8"激光器7通讯报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[Laser7ComAlarm->m_Code] = Laser7ComAlarm;
AlarmCfg* Laser8ComAlarm = new AlarmCfg("Laser8ComAlarm", u8"激光器8通讯报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[Laser8ComAlarm->m_Code] = Laser8ComAlarm;
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* 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* Scanner1CtrlComAlarm = new AlarmCfg("Scanner1CtrlComAlarm", u8"振镜1通讯报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[Scanner1CtrlComAlarm->m_Code] = Scanner1CtrlComAlarm;
AlarmCfg* Scanner2CtrlComAlarm = new AlarmCfg("Scanner2CtrlComAlarm", u8"振镜2通讯报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[Scanner2CtrlComAlarm->m_Code] = Scanner2CtrlComAlarm;
AlarmCfg* Scanner3CtrlComAlarm = new AlarmCfg("Scanner3CtrlComAlarm", u8"振镜3通讯报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[Scanner3CtrlComAlarm->m_Code] = Scanner3CtrlComAlarm;
AlarmCfg* Scanner4CtrlComAlarm = new AlarmCfg("Scanner4CtrlComAlarm", u8"振镜4通讯报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[Scanner4CtrlComAlarm->m_Code] = Scanner4CtrlComAlarm;
AlarmCfg* Scanner5CtrlComAlarm = new AlarmCfg("Scanner5CtrlComAlarm", u8"振镜5通讯报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[Scanner5CtrlComAlarm->m_Code] = Scanner5CtrlComAlarm;
AlarmCfg* Scanner6CtrlComAlarm = new AlarmCfg("Scanner6CtrlComAlarm", u8"振镜6通讯报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[Scanner6CtrlComAlarm->m_Code] = Scanner6CtrlComAlarm;
AlarmCfg* Scanner7CtrlComAlarm = new AlarmCfg("Scanner7CtrlComAlarm", u8"振镜7通讯报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[Scanner7CtrlComAlarm->m_Code] = Scanner7CtrlComAlarm;
AlarmCfg* Scanner8CtrlComAlarm = new AlarmCfg("Scanner8CtrlComAlarm", u8"振镜8通讯报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[Scanner8CtrlComAlarm->m_Code] = Scanner8CtrlComAlarm;
AlarmCfg* UPSAlarm = new AlarmCfg("UPSAlarm", u8"UPS报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[UPSAlarm->m_Code] = UPSAlarm;
AlarmCfg* PrintTrackDisableAlarm = new AlarmCfg("PrintTrackDisableAlarm", u8"轨道打印位感应失效报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[PrintTrackDisableAlarm->m_Code] = PrintTrackDisableAlarm;
AlarmCfg* CleanLiftStopAlarm = new AlarmCfg("CleanLiftStopAlarm", u8"清粉升降急停异常", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[CleanLiftStopAlarm->m_Code] = CleanLiftStopAlarm;
AlarmCfg* MainPowerLossCheckAlarm = new AlarmCfg("MainPowerLossCheckAlarm", u8"主电源缺相检测异常", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[MainPowerLossCheckAlarm->m_Code] = MainPowerLossCheckAlarm;
AlarmCfg* ArmLimitAlarm = new AlarmCfg("ArmLimitAlarm", u8"铺粉限位报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[ArmLimitAlarm->m_Code] = ArmLimitAlarm;
AlarmCfg* GeneralChillerAlarm = new AlarmCfg("GeneralChillerAlarm", u8"总冷水机报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[GeneralChillerAlarm->m_Code] = GeneralChillerAlarm;
AlarmCfg* MainMoldSoftLimitAlarm = new AlarmCfg("MainMoldSoftLimitAlarm", u8"打印主轴软限位报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[MainMoldSoftLimitAlarm->m_Code] = MainMoldSoftLimitAlarm;
AlarmCfg* ArmSoftLimitAlarm = new AlarmCfg("ArmSoftLimitAlarm", u8"铺粉软限位报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[ArmSoftLimitAlarm->m_Code] = ArmSoftLimitAlarm;
AlarmCfg* UpServiceDoorOpenAlarm = new AlarmCfg("UpServiceDoorOpenAlarm", u8"上层维修门打开报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[UpServiceDoorOpenAlarm->m_Code] = UpServiceDoorOpenAlarm;
AlarmCfg* DownServiceDoorOpenAlarm = new AlarmCfg("DownServiceDoorOpenAlarm", u8"下层维修门打开报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[DownServiceDoorOpenAlarm->m_Code] = DownServiceDoorOpenAlarm;
AlarmCfg* ArmCatpureHomeAlarm = new AlarmCfg("ArmCatpureHomeAlarm", u8"铺粉归原点异常报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[ArmCatpureHomeAlarm->m_Code] = ArmCatpureHomeAlarm;
AlarmCfg* SealPressureExceptionAlarm = new AlarmCfg("SealPressureExceptionAlarm", u8"密封圈压力异常报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[SealPressureExceptionAlarm->m_Code] = SealPressureExceptionAlarm;
AlarmCfg* PLCKeepliveAlarm = new AlarmCfg("PLCKeepliveAlarm", u8"PLC心跳报警", ALARM_TYPE_STOP);
PLCKeepliveAlarm->m_CheckAlarmSetTick = 100;
cfg->m_StopAlarmCfgMap[PLCKeepliveAlarm->m_Code] = PLCKeepliveAlarm;
AlarmCfg* PipeWaterTempAlarm = new AlarmCfg("PipeWaterTempAlarm", u8"管道水温报警", ALARM_TYPE_STOP);
cfg->m_StopAlarmCfgMap[PipeWaterTempAlarm->m_Code] = PipeWaterTempAlarm;
//暂停
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* InnerTempOverLimit = new AlarmCfg("InnerTempOverLimit", u8"舱内温度越限", ALARM_TYPE_PAUSE);
cfg->m_PauseAlarmCfgMap[InnerTempOverLimit->m_Code] = InnerTempOverLimit;
AlarmCfg* InnerHumidityOverLimitAlarm = new AlarmCfg("InnerHumidityOverLimitAlarm", u8"舱内湿度越限报警", ALARM_TYPE_PAUSE);
cfg->m_PauseAlarmCfgMap[InnerHumidityOverLimitAlarm->m_Code] = InnerHumidityOverLimitAlarm;
//警示
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;
AlarmCfg* FanFreqWarn = new AlarmCfg("FanFreqWarn", u8"风机频率预警", ALARM_TYPE_WARN);
cfg->m_WarnAlarmCfgMap[FanFreqWarn->m_Code] = FanFreqWarn;
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;
}
}
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::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";
}
}