diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index 3a5fe34..f42eba8 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -450,6 +450,7 @@ void CounterWindowRT::updateDeviceAlarm(QJsonArray alarmList) { + qDebug() << alarmList; for (int i = 0; i < alarmList.size(); i++) { QJsonObject alarmData = alarmList.at(i).toObject(); @@ -458,6 +459,8 @@ QString alarmCode = alarmData.value("alarmCode").toString(); QString status = alarmData.value("status").toString(); + qDebug() << alarmCode << deviceId << channelId; + // 如果报警状态不是正在报警 status==0 或者报警设备不是计数器 则不处理 if (status != "0" || ConstCache::getInstance().deviceMap.contains(deviceId) == false) { @@ -654,44 +657,45 @@ } // 是设备级的报警 - if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true && alarmDev.contains(deviceId) == false) { + if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true) { if (status == "0") { - if (alarmDev.contains(deviceId) == false) { - if (alarmCode == "DEVICE_OFFLINE") { - offlineDev.append(deviceId); - } else if (alarmCode == "DEVICE_ALARM") { - alarmDev.append(deviceId); - } + // 之前是正常的状态 新增报警状态 + if (alarmCode == "DEVICE_OFFLINE" && offlineDev.contains(deviceId) == false) { + offlineDev.append(deviceId); + } else if (alarmCode == "DEVICE_ALARM" && alarmDev.contains(deviceId) == false) { + alarmDev.append(deviceId); } - } else { - if (alarmDev.contains(deviceId) == true) { - if (alarmCode == "DEVICE_OFFLINE") { - offlineDev.removeOne(deviceId); - } else if (alarmCode == "DEVICE_ALARM") { - alarmDev.removeOne(deviceId); - } + } else if (status == "2" || status == "1") + { + // 消警的逻辑 + if (alarmCode == "DEVICE_OFFLINE" && offlineDev.contains(deviceId) == true) { + offlineDev.removeOne(deviceId); + } else if (alarmCode == "DEVICE_ALARM" && alarmDev.contains(deviceId) == true) { + alarmDev.removeOne(deviceId); } } } + // 是通道级的报警 if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true) { if (status == "0") { - if (alarmChannel.contains(channelId) == false) { - if (alarmCode == "COUNTER_NO_DATA") { - offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") { - alarmChannel.append(channelId); - } + // 之前是正常的状态 新增报警状态 + if (alarmCode == "COUNTER_NO_DATA" && alarmChannel.contains(channelId) == false) { + offlineChannel.append(channelId); + } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION" && + alarmChannel.contains(channelId) == false) { + alarmChannel.append(channelId); } - } else { - if (alarmChannel.contains(channelId) == true) { - if (alarmCode == "COUNTER_NO_DATA") { - offlineChannel.removeOne(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") { - alarmChannel.removeOne(channelId); - } + } else if (status == "2" || status == "1") + { + // 消警的逻辑 + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == true) { + offlineChannel.removeOne(channelId); + } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION" && + alarmChannel.contains(channelId) == true) { + alarmChannel.removeOne(channelId); } } }