diff --git a/CounterRealTime/CounterRealTime_zh_CN.ts b/CounterRealTime/CounterRealTime_zh_CN.ts new file mode 100644 index 0000000..3cc47a9 --- /dev/null +++ b/CounterRealTime/CounterRealTime_zh_CN.ts @@ -0,0 +1,3 @@ + + + diff --git a/CounterRealTime/CounterRealTime_zh_CN.ts b/CounterRealTime/CounterRealTime_zh_CN.ts new file mode 100644 index 0000000..3cc47a9 --- /dev/null +++ b/CounterRealTime/CounterRealTime_zh_CN.ts @@ -0,0 +1,3 @@ + + + diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index d2fe9ed..47f7c2d 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -407,10 +407,11 @@ continue; } + CounterChannel * channel = ConstCache::getInstance().channelMap.value(deviceId + "-" + channelNo); // 从map中找到对应的通道 + if (channelDataJsonMap.contains(channelNo) == true) { QJsonObject channelDataItem = channelDataJsonMap.value(channelNo); - CounterChannel * channel = ConstCache::getInstance().channelMap.value(deviceId + "-" + channelNo); // 从map中找到对应的通道 // 通道Label的序号 int channelIdx = devIdx * 16 + channelDataItem.value("channelNo").toInt() - 1; @@ -450,9 +451,22 @@ channelValueList.at(channelIdx)->setText(""); } } else { + // 计数器返回的无测量值的通道处理逻辑 + int channelIdx = devIdx * 16 + i; + // 没有测量值的通道清空 - channelNameList.at(devIdx * 16 + i)->setText(QString("CH%1:%2").arg(channelNoStr).arg("-")); - channelValueList.at(devIdx * 16 + i)->setText(""); + channelNameList.at(channelIdx)->setText(QString("CH%1:%2").arg(channelNoStr).arg("-")); + channelValueList.at(channelIdx)->setText(""); + + // 当通道启用时显示通道离线 不再判断后台传回来的状态 + // 当通道未启用时显示正常状态 + if (channel != nullptr && channel->isActive() == true) { + channelNameList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value("channelOffline")); + channelValueList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value("channelOffline")); + } else { + channelNameList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value(channelNameList.at(channelIdx)->property("labType").toString())); + channelValueList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value(channelValueList.at(channelIdx)->property("labType").toString())); + } } } } @@ -477,18 +491,19 @@ } // 是设备级的报警 - if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true && alarmDev.contains(deviceId) == false) { - if (alarmCode == "DEVICE_OFFLINE") { + if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true) { + if (alarmCode == "DEVICE_OFFLINE" && offlineDev.contains(deviceId) == false) { offlineDev.append(deviceId); - } else if (alarmCode == "DEVICE_ALARM") { + } else if (alarmCode == "DEVICE_ALARM" && alarmDev.contains(deviceId) == false) { alarmDev.append(deviceId); } } - if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true && alarmChannel.contains(channelId) == false) { - if (alarmCode == "COUNTER_NO_DATA") { + if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true) { + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == false) { offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") { + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && + alarmChannel.contains(channelId) == false) { alarmChannel.append(channelId); } } @@ -686,9 +701,9 @@ if (status == "0") { // 之前是正常的状态 新增报警状态 - if (alarmCode == "COUNTER_NO_DATA" && alarmChannel.contains(channelId) == false) { + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == false) { offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION" && + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && alarmChannel.contains(channelId) == false) { alarmChannel.append(channelId); } @@ -697,7 +712,7 @@ // 消警的逻辑 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" && + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && alarmChannel.contains(channelId) == true) { alarmChannel.removeOne(channelId); } diff --git a/CounterRealTime/CounterRealTime_zh_CN.ts b/CounterRealTime/CounterRealTime_zh_CN.ts new file mode 100644 index 0000000..3cc47a9 --- /dev/null +++ b/CounterRealTime/CounterRealTime_zh_CN.ts @@ -0,0 +1,3 @@ + + + diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index d2fe9ed..47f7c2d 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -407,10 +407,11 @@ continue; } + CounterChannel * channel = ConstCache::getInstance().channelMap.value(deviceId + "-" + channelNo); // 从map中找到对应的通道 + if (channelDataJsonMap.contains(channelNo) == true) { QJsonObject channelDataItem = channelDataJsonMap.value(channelNo); - CounterChannel * channel = ConstCache::getInstance().channelMap.value(deviceId + "-" + channelNo); // 从map中找到对应的通道 // 通道Label的序号 int channelIdx = devIdx * 16 + channelDataItem.value("channelNo").toInt() - 1; @@ -450,9 +451,22 @@ channelValueList.at(channelIdx)->setText(""); } } else { + // 计数器返回的无测量值的通道处理逻辑 + int channelIdx = devIdx * 16 + i; + // 没有测量值的通道清空 - channelNameList.at(devIdx * 16 + i)->setText(QString("CH%1:%2").arg(channelNoStr).arg("-")); - channelValueList.at(devIdx * 16 + i)->setText(""); + channelNameList.at(channelIdx)->setText(QString("CH%1:%2").arg(channelNoStr).arg("-")); + channelValueList.at(channelIdx)->setText(""); + + // 当通道启用时显示通道离线 不再判断后台传回来的状态 + // 当通道未启用时显示正常状态 + if (channel != nullptr && channel->isActive() == true) { + channelNameList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value("channelOffline")); + channelValueList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value("channelOffline")); + } else { + channelNameList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value(channelNameList.at(channelIdx)->property("labType").toString())); + channelValueList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value(channelValueList.at(channelIdx)->property("labType").toString())); + } } } } @@ -477,18 +491,19 @@ } // 是设备级的报警 - if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true && alarmDev.contains(deviceId) == false) { - if (alarmCode == "DEVICE_OFFLINE") { + if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true) { + if (alarmCode == "DEVICE_OFFLINE" && offlineDev.contains(deviceId) == false) { offlineDev.append(deviceId); - } else if (alarmCode == "DEVICE_ALARM") { + } else if (alarmCode == "DEVICE_ALARM" && alarmDev.contains(deviceId) == false) { alarmDev.append(deviceId); } } - if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true && alarmChannel.contains(channelId) == false) { - if (alarmCode == "COUNTER_NO_DATA") { + if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true) { + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == false) { offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") { + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && + alarmChannel.contains(channelId) == false) { alarmChannel.append(channelId); } } @@ -686,9 +701,9 @@ if (status == "0") { // 之前是正常的状态 新增报警状态 - if (alarmCode == "COUNTER_NO_DATA" && alarmChannel.contains(channelId) == false) { + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == false) { offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION" && + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && alarmChannel.contains(channelId) == false) { alarmChannel.append(channelId); } @@ -697,7 +712,7 @@ // 消警的逻辑 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" && + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && alarmChannel.contains(channelId) == true) { alarmChannel.removeOne(channelId); } diff --git a/CounterRealTime/common/HttpRequestController.cpp b/CounterRealTime/common/HttpRequestController.cpp index 3d6d9a3..58ac632 100644 --- a/CounterRealTime/common/HttpRequestController.cpp +++ b/CounterRealTime/common/HttpRequestController.cpp @@ -59,6 +59,7 @@ resultObj.insert("code", 200); // + delete reply; qDebug() << resultObj; return resultObj; @@ -94,6 +95,7 @@ resultObj.insert("code", -1); } + delete reply; // qDebug() << resultObj; return resultObj; @@ -127,6 +129,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -161,6 +164,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -195,6 +199,7 @@ return 0; } + delete reply; qDebug() << resultObj; return resultObj.value("data").toInt(); @@ -233,6 +238,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -262,6 +268,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; diff --git a/CounterRealTime/CounterRealTime_zh_CN.ts b/CounterRealTime/CounterRealTime_zh_CN.ts new file mode 100644 index 0000000..3cc47a9 --- /dev/null +++ b/CounterRealTime/CounterRealTime_zh_CN.ts @@ -0,0 +1,3 @@ + + + diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index d2fe9ed..47f7c2d 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -407,10 +407,11 @@ continue; } + CounterChannel * channel = ConstCache::getInstance().channelMap.value(deviceId + "-" + channelNo); // 从map中找到对应的通道 + if (channelDataJsonMap.contains(channelNo) == true) { QJsonObject channelDataItem = channelDataJsonMap.value(channelNo); - CounterChannel * channel = ConstCache::getInstance().channelMap.value(deviceId + "-" + channelNo); // 从map中找到对应的通道 // 通道Label的序号 int channelIdx = devIdx * 16 + channelDataItem.value("channelNo").toInt() - 1; @@ -450,9 +451,22 @@ channelValueList.at(channelIdx)->setText(""); } } else { + // 计数器返回的无测量值的通道处理逻辑 + int channelIdx = devIdx * 16 + i; + // 没有测量值的通道清空 - channelNameList.at(devIdx * 16 + i)->setText(QString("CH%1:%2").arg(channelNoStr).arg("-")); - channelValueList.at(devIdx * 16 + i)->setText(""); + channelNameList.at(channelIdx)->setText(QString("CH%1:%2").arg(channelNoStr).arg("-")); + channelValueList.at(channelIdx)->setText(""); + + // 当通道启用时显示通道离线 不再判断后台传回来的状态 + // 当通道未启用时显示正常状态 + if (channel != nullptr && channel->isActive() == true) { + channelNameList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value("channelOffline")); + channelValueList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value("channelOffline")); + } else { + channelNameList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value(channelNameList.at(channelIdx)->property("labType").toString())); + channelValueList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value(channelValueList.at(channelIdx)->property("labType").toString())); + } } } } @@ -477,18 +491,19 @@ } // 是设备级的报警 - if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true && alarmDev.contains(deviceId) == false) { - if (alarmCode == "DEVICE_OFFLINE") { + if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true) { + if (alarmCode == "DEVICE_OFFLINE" && offlineDev.contains(deviceId) == false) { offlineDev.append(deviceId); - } else if (alarmCode == "DEVICE_ALARM") { + } else if (alarmCode == "DEVICE_ALARM" && alarmDev.contains(deviceId) == false) { alarmDev.append(deviceId); } } - if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true && alarmChannel.contains(channelId) == false) { - if (alarmCode == "COUNTER_NO_DATA") { + if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true) { + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == false) { offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") { + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && + alarmChannel.contains(channelId) == false) { alarmChannel.append(channelId); } } @@ -686,9 +701,9 @@ if (status == "0") { // 之前是正常的状态 新增报警状态 - if (alarmCode == "COUNTER_NO_DATA" && alarmChannel.contains(channelId) == false) { + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == false) { offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION" && + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && alarmChannel.contains(channelId) == false) { alarmChannel.append(channelId); } @@ -697,7 +712,7 @@ // 消警的逻辑 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" && + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && alarmChannel.contains(channelId) == true) { alarmChannel.removeOne(channelId); } diff --git a/CounterRealTime/common/HttpRequestController.cpp b/CounterRealTime/common/HttpRequestController.cpp index 3d6d9a3..58ac632 100644 --- a/CounterRealTime/common/HttpRequestController.cpp +++ b/CounterRealTime/common/HttpRequestController.cpp @@ -59,6 +59,7 @@ resultObj.insert("code", 200); // + delete reply; qDebug() << resultObj; return resultObj; @@ -94,6 +95,7 @@ resultObj.insert("code", -1); } + delete reply; // qDebug() << resultObj; return resultObj; @@ -127,6 +129,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -161,6 +164,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -195,6 +199,7 @@ return 0; } + delete reply; qDebug() << resultObj; return resultObj.value("data").toInt(); @@ -233,6 +238,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -262,6 +268,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; diff --git a/CounterRealTime/common/HttpServer.cpp b/CounterRealTime/common/HttpServer.cpp index c1a1b48..08887d4 100644 --- a/CounterRealTime/common/HttpServer.cpp +++ b/CounterRealTime/common/HttpServer.cpp @@ -26,16 +26,15 @@ void HttpServer::newConnection() { QTcpSocket * m_socket = httpServer->nextPendingConnection(); - QObject::connect(m_socket, &QTcpSocket::readyRead, this, &HttpServer::readyRead); + connect(m_socket, &QTcpSocket::readyRead, this, &HttpServer::readyRead); } void HttpServer::readyRead() { QTcpSocket * socket = qobject_cast(sender()); if(socket) { - QByteArray request = socket->readAll(); - - qDebug() << "Request Data:" << request; +// QByteArray request = socket->readAll(); +// qDebug() << "Request Data:" << request; QByteArray response = this->buildHeartBeatResponse().toUtf8(); @@ -50,6 +49,8 @@ socket->flush(); socket->waitForBytesWritten(http.size() + response.size()); socket->close(); + + socket->deleteLater(); } } diff --git a/CounterRealTime/CounterRealTime_zh_CN.ts b/CounterRealTime/CounterRealTime_zh_CN.ts new file mode 100644 index 0000000..3cc47a9 --- /dev/null +++ b/CounterRealTime/CounterRealTime_zh_CN.ts @@ -0,0 +1,3 @@ + + + diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index d2fe9ed..47f7c2d 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -407,10 +407,11 @@ continue; } + CounterChannel * channel = ConstCache::getInstance().channelMap.value(deviceId + "-" + channelNo); // 从map中找到对应的通道 + if (channelDataJsonMap.contains(channelNo) == true) { QJsonObject channelDataItem = channelDataJsonMap.value(channelNo); - CounterChannel * channel = ConstCache::getInstance().channelMap.value(deviceId + "-" + channelNo); // 从map中找到对应的通道 // 通道Label的序号 int channelIdx = devIdx * 16 + channelDataItem.value("channelNo").toInt() - 1; @@ -450,9 +451,22 @@ channelValueList.at(channelIdx)->setText(""); } } else { + // 计数器返回的无测量值的通道处理逻辑 + int channelIdx = devIdx * 16 + i; + // 没有测量值的通道清空 - channelNameList.at(devIdx * 16 + i)->setText(QString("CH%1:%2").arg(channelNoStr).arg("-")); - channelValueList.at(devIdx * 16 + i)->setText(""); + channelNameList.at(channelIdx)->setText(QString("CH%1:%2").arg(channelNoStr).arg("-")); + channelValueList.at(channelIdx)->setText(""); + + // 当通道启用时显示通道离线 不再判断后台传回来的状态 + // 当通道未启用时显示正常状态 + if (channel != nullptr && channel->isActive() == true) { + channelNameList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value("channelOffline")); + channelValueList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value("channelOffline")); + } else { + channelNameList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value(channelNameList.at(channelIdx)->property("labType").toString())); + channelValueList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value(channelValueList.at(channelIdx)->property("labType").toString())); + } } } } @@ -477,18 +491,19 @@ } // 是设备级的报警 - if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true && alarmDev.contains(deviceId) == false) { - if (alarmCode == "DEVICE_OFFLINE") { + if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true) { + if (alarmCode == "DEVICE_OFFLINE" && offlineDev.contains(deviceId) == false) { offlineDev.append(deviceId); - } else if (alarmCode == "DEVICE_ALARM") { + } else if (alarmCode == "DEVICE_ALARM" && alarmDev.contains(deviceId) == false) { alarmDev.append(deviceId); } } - if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true && alarmChannel.contains(channelId) == false) { - if (alarmCode == "COUNTER_NO_DATA") { + if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true) { + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == false) { offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") { + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && + alarmChannel.contains(channelId) == false) { alarmChannel.append(channelId); } } @@ -686,9 +701,9 @@ if (status == "0") { // 之前是正常的状态 新增报警状态 - if (alarmCode == "COUNTER_NO_DATA" && alarmChannel.contains(channelId) == false) { + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == false) { offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION" && + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && alarmChannel.contains(channelId) == false) { alarmChannel.append(channelId); } @@ -697,7 +712,7 @@ // 消警的逻辑 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" && + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && alarmChannel.contains(channelId) == true) { alarmChannel.removeOne(channelId); } diff --git a/CounterRealTime/common/HttpRequestController.cpp b/CounterRealTime/common/HttpRequestController.cpp index 3d6d9a3..58ac632 100644 --- a/CounterRealTime/common/HttpRequestController.cpp +++ b/CounterRealTime/common/HttpRequestController.cpp @@ -59,6 +59,7 @@ resultObj.insert("code", 200); // + delete reply; qDebug() << resultObj; return resultObj; @@ -94,6 +95,7 @@ resultObj.insert("code", -1); } + delete reply; // qDebug() << resultObj; return resultObj; @@ -127,6 +129,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -161,6 +164,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -195,6 +199,7 @@ return 0; } + delete reply; qDebug() << resultObj; return resultObj.value("data").toInt(); @@ -233,6 +238,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -262,6 +268,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; diff --git a/CounterRealTime/common/HttpServer.cpp b/CounterRealTime/common/HttpServer.cpp index c1a1b48..08887d4 100644 --- a/CounterRealTime/common/HttpServer.cpp +++ b/CounterRealTime/common/HttpServer.cpp @@ -26,16 +26,15 @@ void HttpServer::newConnection() { QTcpSocket * m_socket = httpServer->nextPendingConnection(); - QObject::connect(m_socket, &QTcpSocket::readyRead, this, &HttpServer::readyRead); + connect(m_socket, &QTcpSocket::readyRead, this, &HttpServer::readyRead); } void HttpServer::readyRead() { QTcpSocket * socket = qobject_cast(sender()); if(socket) { - QByteArray request = socket->readAll(); - - qDebug() << "Request Data:" << request; +// QByteArray request = socket->readAll(); +// qDebug() << "Request Data:" << request; QByteArray response = this->buildHeartBeatResponse().toUtf8(); @@ -50,6 +49,8 @@ socket->flush(); socket->waitForBytesWritten(http.size() + response.size()); socket->close(); + + socket->deleteLater(); } } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 36522e0..94e82b7 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -1,4 +1,4 @@ -#include "FrequencyTuning.h" +#include "FrequencyTuning.h" #include #include #include "DeviceHubWindow.h" @@ -38,7 +38,7 @@ // buffer.append("$GLN,0,192.168.1.126,255.255.255.0,192.168.1.1,255.255.255.255,3000,2000,2001*71").append("\r\n"); // buffer.append("$GLF,0,0,0,0,00000,0,0,0,0,0,0,0,0,0,0,0,1900,2355,0,0,0,0,0,1,1,1*4C").append("\r\n"); // buffer.append("$GLP,0,1000,0,100,20000*45").append("\r\n"); - buffer.append("000$1C2BM1304-3021010071204312*$572BM1304-30210100713 -2.52E-10 +3.02E-14 -000000002000 00000"); + buffer.append("000$1C2BM1304-3021010071204312*$572BM1304-30210100713 +0.000000000000 +0.000000000000 -000000002000 00000"); this->dataReceivedHandler(buffer); QTimer::singleShot(20, this, [=](){ diff --git a/CounterRealTime/CounterRealTime_zh_CN.ts b/CounterRealTime/CounterRealTime_zh_CN.ts new file mode 100644 index 0000000..3cc47a9 --- /dev/null +++ b/CounterRealTime/CounterRealTime_zh_CN.ts @@ -0,0 +1,3 @@ + + + diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index d2fe9ed..47f7c2d 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -407,10 +407,11 @@ continue; } + CounterChannel * channel = ConstCache::getInstance().channelMap.value(deviceId + "-" + channelNo); // 从map中找到对应的通道 + if (channelDataJsonMap.contains(channelNo) == true) { QJsonObject channelDataItem = channelDataJsonMap.value(channelNo); - CounterChannel * channel = ConstCache::getInstance().channelMap.value(deviceId + "-" + channelNo); // 从map中找到对应的通道 // 通道Label的序号 int channelIdx = devIdx * 16 + channelDataItem.value("channelNo").toInt() - 1; @@ -450,9 +451,22 @@ channelValueList.at(channelIdx)->setText(""); } } else { + // 计数器返回的无测量值的通道处理逻辑 + int channelIdx = devIdx * 16 + i; + // 没有测量值的通道清空 - channelNameList.at(devIdx * 16 + i)->setText(QString("CH%1:%2").arg(channelNoStr).arg("-")); - channelValueList.at(devIdx * 16 + i)->setText(""); + channelNameList.at(channelIdx)->setText(QString("CH%1:%2").arg(channelNoStr).arg("-")); + channelValueList.at(channelIdx)->setText(""); + + // 当通道启用时显示通道离线 不再判断后台传回来的状态 + // 当通道未启用时显示正常状态 + if (channel != nullptr && channel->isActive() == true) { + channelNameList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value("channelOffline")); + channelValueList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value("channelOffline")); + } else { + channelNameList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value(channelNameList.at(channelIdx)->property("labType").toString())); + channelValueList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value(channelValueList.at(channelIdx)->property("labType").toString())); + } } } } @@ -477,18 +491,19 @@ } // 是设备级的报警 - if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true && alarmDev.contains(deviceId) == false) { - if (alarmCode == "DEVICE_OFFLINE") { + if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true) { + if (alarmCode == "DEVICE_OFFLINE" && offlineDev.contains(deviceId) == false) { offlineDev.append(deviceId); - } else if (alarmCode == "DEVICE_ALARM") { + } else if (alarmCode == "DEVICE_ALARM" && alarmDev.contains(deviceId) == false) { alarmDev.append(deviceId); } } - if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true && alarmChannel.contains(channelId) == false) { - if (alarmCode == "COUNTER_NO_DATA") { + if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true) { + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == false) { offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") { + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && + alarmChannel.contains(channelId) == false) { alarmChannel.append(channelId); } } @@ -686,9 +701,9 @@ if (status == "0") { // 之前是正常的状态 新增报警状态 - if (alarmCode == "COUNTER_NO_DATA" && alarmChannel.contains(channelId) == false) { + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == false) { offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION" && + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && alarmChannel.contains(channelId) == false) { alarmChannel.append(channelId); } @@ -697,7 +712,7 @@ // 消警的逻辑 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" && + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && alarmChannel.contains(channelId) == true) { alarmChannel.removeOne(channelId); } diff --git a/CounterRealTime/common/HttpRequestController.cpp b/CounterRealTime/common/HttpRequestController.cpp index 3d6d9a3..58ac632 100644 --- a/CounterRealTime/common/HttpRequestController.cpp +++ b/CounterRealTime/common/HttpRequestController.cpp @@ -59,6 +59,7 @@ resultObj.insert("code", 200); // + delete reply; qDebug() << resultObj; return resultObj; @@ -94,6 +95,7 @@ resultObj.insert("code", -1); } + delete reply; // qDebug() << resultObj; return resultObj; @@ -127,6 +129,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -161,6 +164,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -195,6 +199,7 @@ return 0; } + delete reply; qDebug() << resultObj; return resultObj.value("data").toInt(); @@ -233,6 +238,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -262,6 +268,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; diff --git a/CounterRealTime/common/HttpServer.cpp b/CounterRealTime/common/HttpServer.cpp index c1a1b48..08887d4 100644 --- a/CounterRealTime/common/HttpServer.cpp +++ b/CounterRealTime/common/HttpServer.cpp @@ -26,16 +26,15 @@ void HttpServer::newConnection() { QTcpSocket * m_socket = httpServer->nextPendingConnection(); - QObject::connect(m_socket, &QTcpSocket::readyRead, this, &HttpServer::readyRead); + connect(m_socket, &QTcpSocket::readyRead, this, &HttpServer::readyRead); } void HttpServer::readyRead() { QTcpSocket * socket = qobject_cast(sender()); if(socket) { - QByteArray request = socket->readAll(); - - qDebug() << "Request Data:" << request; +// QByteArray request = socket->readAll(); +// qDebug() << "Request Data:" << request; QByteArray response = this->buildHeartBeatResponse().toUtf8(); @@ -50,6 +49,8 @@ socket->flush(); socket->waitForBytesWritten(http.size() + response.size()); socket->close(); + + socket->deleteLater(); } } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 36522e0..94e82b7 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -1,4 +1,4 @@ -#include "FrequencyTuning.h" +#include "FrequencyTuning.h" #include #include #include "DeviceHubWindow.h" @@ -38,7 +38,7 @@ // buffer.append("$GLN,0,192.168.1.126,255.255.255.0,192.168.1.1,255.255.255.255,3000,2000,2001*71").append("\r\n"); // buffer.append("$GLF,0,0,0,0,00000,0,0,0,0,0,0,0,0,0,0,0,1900,2355,0,0,0,0,0,1,1,1*4C").append("\r\n"); // buffer.append("$GLP,0,1000,0,100,20000*45").append("\r\n"); - buffer.append("000$1C2BM1304-3021010071204312*$572BM1304-30210100713 -2.52E-10 +3.02E-14 -000000002000 00000"); + buffer.append("000$1C2BM1304-3021010071204312*$572BM1304-30210100713 +0.000000000000 +0.000000000000 -000000002000 00000"); this->dataReceivedHandler(buffer); QTimer::singleShot(20, this, [=](){ diff --git a/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp b/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp index 77e60da..18e7199 100644 --- a/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp +++ b/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp @@ -47,8 +47,8 @@ QList subValues = content.split(0x20); if (subValues.size() == 6) { - ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjust = subValues.at(1).toDouble(); - ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjustAcc = subValues.at(2).toDouble(); + ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjust = subValues.at(1).toDouble() * CALCULATE_FACTOR; + ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjustAcc = subValues.at(2).toDouble() * CALCULATE_FACTOR; ((FrequencyTuningStatusFreqDto *)ftFrameData)->phaseShift = subValues.at(3).toLongLong(); ((FrequencyTuningStatusFreqDto *)ftFrameData)->pulseWidth = subValues.at(4).toLongLong(); ((FrequencyTuningStatusFreqDto *)ftFrameData)->phaseAdjust = subValues.at(5).toDouble(); @@ -87,7 +87,8 @@ { // 频率偏移设置 or 频率偏移步进量设置 commandBytes.append(0x20); - QString valueStr = QString::number(valueSet.toDouble(), 'e', 2).toUpper(); + double value = valueSet.toDouble() / CALCULATE_FACTOR; + QString valueStr = QString::number(value, 'f', 12); if (valueSet.toDouble() >= 0) { valueStr.prepend('+'); diff --git a/CounterRealTime/CounterRealTime_zh_CN.ts b/CounterRealTime/CounterRealTime_zh_CN.ts new file mode 100644 index 0000000..3cc47a9 --- /dev/null +++ b/CounterRealTime/CounterRealTime_zh_CN.ts @@ -0,0 +1,3 @@ + + + diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index d2fe9ed..47f7c2d 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -407,10 +407,11 @@ continue; } + CounterChannel * channel = ConstCache::getInstance().channelMap.value(deviceId + "-" + channelNo); // 从map中找到对应的通道 + if (channelDataJsonMap.contains(channelNo) == true) { QJsonObject channelDataItem = channelDataJsonMap.value(channelNo); - CounterChannel * channel = ConstCache::getInstance().channelMap.value(deviceId + "-" + channelNo); // 从map中找到对应的通道 // 通道Label的序号 int channelIdx = devIdx * 16 + channelDataItem.value("channelNo").toInt() - 1; @@ -450,9 +451,22 @@ channelValueList.at(channelIdx)->setText(""); } } else { + // 计数器返回的无测量值的通道处理逻辑 + int channelIdx = devIdx * 16 + i; + // 没有测量值的通道清空 - channelNameList.at(devIdx * 16 + i)->setText(QString("CH%1:%2").arg(channelNoStr).arg("-")); - channelValueList.at(devIdx * 16 + i)->setText(""); + channelNameList.at(channelIdx)->setText(QString("CH%1:%2").arg(channelNoStr).arg("-")); + channelValueList.at(channelIdx)->setText(""); + + // 当通道启用时显示通道离线 不再判断后台传回来的状态 + // 当通道未启用时显示正常状态 + if (channel != nullptr && channel->isActive() == true) { + channelNameList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value("channelOffline")); + channelValueList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value("channelOffline")); + } else { + channelNameList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value(channelNameList.at(channelIdx)->property("labType").toString())); + channelValueList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value(channelValueList.at(channelIdx)->property("labType").toString())); + } } } } @@ -477,18 +491,19 @@ } // 是设备级的报警 - if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true && alarmDev.contains(deviceId) == false) { - if (alarmCode == "DEVICE_OFFLINE") { + if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true) { + if (alarmCode == "DEVICE_OFFLINE" && offlineDev.contains(deviceId) == false) { offlineDev.append(deviceId); - } else if (alarmCode == "DEVICE_ALARM") { + } else if (alarmCode == "DEVICE_ALARM" && alarmDev.contains(deviceId) == false) { alarmDev.append(deviceId); } } - if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true && alarmChannel.contains(channelId) == false) { - if (alarmCode == "COUNTER_NO_DATA") { + if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true) { + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == false) { offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") { + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && + alarmChannel.contains(channelId) == false) { alarmChannel.append(channelId); } } @@ -686,9 +701,9 @@ if (status == "0") { // 之前是正常的状态 新增报警状态 - if (alarmCode == "COUNTER_NO_DATA" && alarmChannel.contains(channelId) == false) { + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == false) { offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION" && + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && alarmChannel.contains(channelId) == false) { alarmChannel.append(channelId); } @@ -697,7 +712,7 @@ // 消警的逻辑 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" && + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && alarmChannel.contains(channelId) == true) { alarmChannel.removeOne(channelId); } diff --git a/CounterRealTime/common/HttpRequestController.cpp b/CounterRealTime/common/HttpRequestController.cpp index 3d6d9a3..58ac632 100644 --- a/CounterRealTime/common/HttpRequestController.cpp +++ b/CounterRealTime/common/HttpRequestController.cpp @@ -59,6 +59,7 @@ resultObj.insert("code", 200); // + delete reply; qDebug() << resultObj; return resultObj; @@ -94,6 +95,7 @@ resultObj.insert("code", -1); } + delete reply; // qDebug() << resultObj; return resultObj; @@ -127,6 +129,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -161,6 +164,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -195,6 +199,7 @@ return 0; } + delete reply; qDebug() << resultObj; return resultObj.value("data").toInt(); @@ -233,6 +238,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -262,6 +268,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; diff --git a/CounterRealTime/common/HttpServer.cpp b/CounterRealTime/common/HttpServer.cpp index c1a1b48..08887d4 100644 --- a/CounterRealTime/common/HttpServer.cpp +++ b/CounterRealTime/common/HttpServer.cpp @@ -26,16 +26,15 @@ void HttpServer::newConnection() { QTcpSocket * m_socket = httpServer->nextPendingConnection(); - QObject::connect(m_socket, &QTcpSocket::readyRead, this, &HttpServer::readyRead); + connect(m_socket, &QTcpSocket::readyRead, this, &HttpServer::readyRead); } void HttpServer::readyRead() { QTcpSocket * socket = qobject_cast(sender()); if(socket) { - QByteArray request = socket->readAll(); - - qDebug() << "Request Data:" << request; +// QByteArray request = socket->readAll(); +// qDebug() << "Request Data:" << request; QByteArray response = this->buildHeartBeatResponse().toUtf8(); @@ -50,6 +49,8 @@ socket->flush(); socket->waitForBytesWritten(http.size() + response.size()); socket->close(); + + socket->deleteLater(); } } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 36522e0..94e82b7 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -1,4 +1,4 @@ -#include "FrequencyTuning.h" +#include "FrequencyTuning.h" #include #include #include "DeviceHubWindow.h" @@ -38,7 +38,7 @@ // buffer.append("$GLN,0,192.168.1.126,255.255.255.0,192.168.1.1,255.255.255.255,3000,2000,2001*71").append("\r\n"); // buffer.append("$GLF,0,0,0,0,00000,0,0,0,0,0,0,0,0,0,0,0,1900,2355,0,0,0,0,0,1,1,1*4C").append("\r\n"); // buffer.append("$GLP,0,1000,0,100,20000*45").append("\r\n"); - buffer.append("000$1C2BM1304-3021010071204312*$572BM1304-30210100713 -2.52E-10 +3.02E-14 -000000002000 00000"); + buffer.append("000$1C2BM1304-3021010071204312*$572BM1304-30210100713 +0.000000000000 +0.000000000000 -000000002000 00000"); this->dataReceivedHandler(buffer); QTimer::singleShot(20, this, [=](){ diff --git a/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp b/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp index 77e60da..18e7199 100644 --- a/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp +++ b/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp @@ -47,8 +47,8 @@ QList subValues = content.split(0x20); if (subValues.size() == 6) { - ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjust = subValues.at(1).toDouble(); - ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjustAcc = subValues.at(2).toDouble(); + ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjust = subValues.at(1).toDouble() * CALCULATE_FACTOR; + ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjustAcc = subValues.at(2).toDouble() * CALCULATE_FACTOR; ((FrequencyTuningStatusFreqDto *)ftFrameData)->phaseShift = subValues.at(3).toLongLong(); ((FrequencyTuningStatusFreqDto *)ftFrameData)->pulseWidth = subValues.at(4).toLongLong(); ((FrequencyTuningStatusFreqDto *)ftFrameData)->phaseAdjust = subValues.at(5).toDouble(); @@ -87,7 +87,8 @@ { // 频率偏移设置 or 频率偏移步进量设置 commandBytes.append(0x20); - QString valueStr = QString::number(valueSet.toDouble(), 'e', 2).toUpper(); + double value = valueSet.toDouble() / CALCULATE_FACTOR; + QString valueStr = QString::number(value, 'f', 12); if (valueSet.toDouble() >= 0) { valueStr.prepend('+'); diff --git a/DeviceHub/protocol/FrequencyTuningProtocolTX.h b/DeviceHub/protocol/FrequencyTuningProtocolTX.h index ac3b903..f61a0f0 100644 --- a/DeviceHub/protocol/FrequencyTuningProtocolTX.h +++ b/DeviceHub/protocol/FrequencyTuningProtocolTX.h @@ -9,6 +9,8 @@ #include "dto/FrequencyTuningStatusLockDto.h" #include "dto/CommandReplyDto.h" +static const double CALCULATE_FACTOR = 1E-7; + class FrequencyTuningProtocolTX : public DeviceProtocolBase { public: diff --git a/CounterRealTime/CounterRealTime_zh_CN.ts b/CounterRealTime/CounterRealTime_zh_CN.ts new file mode 100644 index 0000000..3cc47a9 --- /dev/null +++ b/CounterRealTime/CounterRealTime_zh_CN.ts @@ -0,0 +1,3 @@ + + + diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index d2fe9ed..47f7c2d 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -407,10 +407,11 @@ continue; } + CounterChannel * channel = ConstCache::getInstance().channelMap.value(deviceId + "-" + channelNo); // 从map中找到对应的通道 + if (channelDataJsonMap.contains(channelNo) == true) { QJsonObject channelDataItem = channelDataJsonMap.value(channelNo); - CounterChannel * channel = ConstCache::getInstance().channelMap.value(deviceId + "-" + channelNo); // 从map中找到对应的通道 // 通道Label的序号 int channelIdx = devIdx * 16 + channelDataItem.value("channelNo").toInt() - 1; @@ -450,9 +451,22 @@ channelValueList.at(channelIdx)->setText(""); } } else { + // 计数器返回的无测量值的通道处理逻辑 + int channelIdx = devIdx * 16 + i; + // 没有测量值的通道清空 - channelNameList.at(devIdx * 16 + i)->setText(QString("CH%1:%2").arg(channelNoStr).arg("-")); - channelValueList.at(devIdx * 16 + i)->setText(""); + channelNameList.at(channelIdx)->setText(QString("CH%1:%2").arg(channelNoStr).arg("-")); + channelValueList.at(channelIdx)->setText(""); + + // 当通道启用时显示通道离线 不再判断后台传回来的状态 + // 当通道未启用时显示正常状态 + if (channel != nullptr && channel->isActive() == true) { + channelNameList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value("channelOffline")); + channelValueList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value("channelOffline")); + } else { + channelNameList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value(channelNameList.at(channelIdx)->property("labType").toString())); + channelValueList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value(channelValueList.at(channelIdx)->property("labType").toString())); + } } } } @@ -477,18 +491,19 @@ } // 是设备级的报警 - if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true && alarmDev.contains(deviceId) == false) { - if (alarmCode == "DEVICE_OFFLINE") { + if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true) { + if (alarmCode == "DEVICE_OFFLINE" && offlineDev.contains(deviceId) == false) { offlineDev.append(deviceId); - } else if (alarmCode == "DEVICE_ALARM") { + } else if (alarmCode == "DEVICE_ALARM" && alarmDev.contains(deviceId) == false) { alarmDev.append(deviceId); } } - if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true && alarmChannel.contains(channelId) == false) { - if (alarmCode == "COUNTER_NO_DATA") { + if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true) { + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == false) { offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") { + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && + alarmChannel.contains(channelId) == false) { alarmChannel.append(channelId); } } @@ -686,9 +701,9 @@ if (status == "0") { // 之前是正常的状态 新增报警状态 - if (alarmCode == "COUNTER_NO_DATA" && alarmChannel.contains(channelId) == false) { + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == false) { offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION" && + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && alarmChannel.contains(channelId) == false) { alarmChannel.append(channelId); } @@ -697,7 +712,7 @@ // 消警的逻辑 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" && + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && alarmChannel.contains(channelId) == true) { alarmChannel.removeOne(channelId); } diff --git a/CounterRealTime/common/HttpRequestController.cpp b/CounterRealTime/common/HttpRequestController.cpp index 3d6d9a3..58ac632 100644 --- a/CounterRealTime/common/HttpRequestController.cpp +++ b/CounterRealTime/common/HttpRequestController.cpp @@ -59,6 +59,7 @@ resultObj.insert("code", 200); // + delete reply; qDebug() << resultObj; return resultObj; @@ -94,6 +95,7 @@ resultObj.insert("code", -1); } + delete reply; // qDebug() << resultObj; return resultObj; @@ -127,6 +129,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -161,6 +164,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -195,6 +199,7 @@ return 0; } + delete reply; qDebug() << resultObj; return resultObj.value("data").toInt(); @@ -233,6 +238,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -262,6 +268,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; diff --git a/CounterRealTime/common/HttpServer.cpp b/CounterRealTime/common/HttpServer.cpp index c1a1b48..08887d4 100644 --- a/CounterRealTime/common/HttpServer.cpp +++ b/CounterRealTime/common/HttpServer.cpp @@ -26,16 +26,15 @@ void HttpServer::newConnection() { QTcpSocket * m_socket = httpServer->nextPendingConnection(); - QObject::connect(m_socket, &QTcpSocket::readyRead, this, &HttpServer::readyRead); + connect(m_socket, &QTcpSocket::readyRead, this, &HttpServer::readyRead); } void HttpServer::readyRead() { QTcpSocket * socket = qobject_cast(sender()); if(socket) { - QByteArray request = socket->readAll(); - - qDebug() << "Request Data:" << request; +// QByteArray request = socket->readAll(); +// qDebug() << "Request Data:" << request; QByteArray response = this->buildHeartBeatResponse().toUtf8(); @@ -50,6 +49,8 @@ socket->flush(); socket->waitForBytesWritten(http.size() + response.size()); socket->close(); + + socket->deleteLater(); } } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 36522e0..94e82b7 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -1,4 +1,4 @@ -#include "FrequencyTuning.h" +#include "FrequencyTuning.h" #include #include #include "DeviceHubWindow.h" @@ -38,7 +38,7 @@ // buffer.append("$GLN,0,192.168.1.126,255.255.255.0,192.168.1.1,255.255.255.255,3000,2000,2001*71").append("\r\n"); // buffer.append("$GLF,0,0,0,0,00000,0,0,0,0,0,0,0,0,0,0,0,1900,2355,0,0,0,0,0,1,1,1*4C").append("\r\n"); // buffer.append("$GLP,0,1000,0,100,20000*45").append("\r\n"); - buffer.append("000$1C2BM1304-3021010071204312*$572BM1304-30210100713 -2.52E-10 +3.02E-14 -000000002000 00000"); + buffer.append("000$1C2BM1304-3021010071204312*$572BM1304-30210100713 +0.000000000000 +0.000000000000 -000000002000 00000"); this->dataReceivedHandler(buffer); QTimer::singleShot(20, this, [=](){ diff --git a/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp b/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp index 77e60da..18e7199 100644 --- a/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp +++ b/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp @@ -47,8 +47,8 @@ QList subValues = content.split(0x20); if (subValues.size() == 6) { - ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjust = subValues.at(1).toDouble(); - ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjustAcc = subValues.at(2).toDouble(); + ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjust = subValues.at(1).toDouble() * CALCULATE_FACTOR; + ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjustAcc = subValues.at(2).toDouble() * CALCULATE_FACTOR; ((FrequencyTuningStatusFreqDto *)ftFrameData)->phaseShift = subValues.at(3).toLongLong(); ((FrequencyTuningStatusFreqDto *)ftFrameData)->pulseWidth = subValues.at(4).toLongLong(); ((FrequencyTuningStatusFreqDto *)ftFrameData)->phaseAdjust = subValues.at(5).toDouble(); @@ -87,7 +87,8 @@ { // 频率偏移设置 or 频率偏移步进量设置 commandBytes.append(0x20); - QString valueStr = QString::number(valueSet.toDouble(), 'e', 2).toUpper(); + double value = valueSet.toDouble() / CALCULATE_FACTOR; + QString valueStr = QString::number(value, 'f', 12); if (valueSet.toDouble() >= 0) { valueStr.prepend('+'); diff --git a/DeviceHub/protocol/FrequencyTuningProtocolTX.h b/DeviceHub/protocol/FrequencyTuningProtocolTX.h index ac3b903..f61a0f0 100644 --- a/DeviceHub/protocol/FrequencyTuningProtocolTX.h +++ b/DeviceHub/protocol/FrequencyTuningProtocolTX.h @@ -9,6 +9,8 @@ #include "dto/FrequencyTuningStatusLockDto.h" #include "dto/CommandReplyDto.h" +static const double CALCULATE_FACTOR = 1E-7; + class FrequencyTuningProtocolTX : public DeviceProtocolBase { public: diff --git a/DeviceHub/protocol/dto/FrequencyTuningStatusFreqDto.cpp b/DeviceHub/protocol/dto/FrequencyTuningStatusFreqDto.cpp index 406a141..2175f32 100644 --- a/DeviceHub/protocol/dto/FrequencyTuningStatusFreqDto.cpp +++ b/DeviceHub/protocol/dto/FrequencyTuningStatusFreqDto.cpp @@ -1,4 +1,4 @@ -#include "FrequencyTuningStatusFreqDto.h" +#include "FrequencyTuningStatusFreqDto.h" FrequencyTuningStatusFreqDto::FrequencyTuningStatusFreqDto(QObject *parent) : DeviceFrameBaseDto(parent) { @@ -11,8 +11,8 @@ QJsonObject dataObj; dataObj.insert("devStatus", devStatus); - dataObj.insert("freqAdjust", freqAdjust); - dataObj.insert("freqAdjustAcc", freqAdjustAcc); + dataObj.insert("freqAdjust", QString::number(freqAdjust, 'e', 4)); + dataObj.insert("freqAdjustAcc", QString::number(freqAdjustAcc, 'e', 4)); dataObj.insert("pulseWidth", pulseWidth); dataObj.insert("phaseAdjust", phaseAdjust); dataObj.insert("phaseShift", phaseShift); diff --git a/CounterRealTime/CounterRealTime_zh_CN.ts b/CounterRealTime/CounterRealTime_zh_CN.ts new file mode 100644 index 0000000..3cc47a9 --- /dev/null +++ b/CounterRealTime/CounterRealTime_zh_CN.ts @@ -0,0 +1,3 @@ + + + diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index d2fe9ed..47f7c2d 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -407,10 +407,11 @@ continue; } + CounterChannel * channel = ConstCache::getInstance().channelMap.value(deviceId + "-" + channelNo); // 从map中找到对应的通道 + if (channelDataJsonMap.contains(channelNo) == true) { QJsonObject channelDataItem = channelDataJsonMap.value(channelNo); - CounterChannel * channel = ConstCache::getInstance().channelMap.value(deviceId + "-" + channelNo); // 从map中找到对应的通道 // 通道Label的序号 int channelIdx = devIdx * 16 + channelDataItem.value("channelNo").toInt() - 1; @@ -450,9 +451,22 @@ channelValueList.at(channelIdx)->setText(""); } } else { + // 计数器返回的无测量值的通道处理逻辑 + int channelIdx = devIdx * 16 + i; + // 没有测量值的通道清空 - channelNameList.at(devIdx * 16 + i)->setText(QString("CH%1:%2").arg(channelNoStr).arg("-")); - channelValueList.at(devIdx * 16 + i)->setText(""); + channelNameList.at(channelIdx)->setText(QString("CH%1:%2").arg(channelNoStr).arg("-")); + channelValueList.at(channelIdx)->setText(""); + + // 当通道启用时显示通道离线 不再判断后台传回来的状态 + // 当通道未启用时显示正常状态 + if (channel != nullptr && channel->isActive() == true) { + channelNameList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value("channelOffline")); + channelValueList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value("channelOffline")); + } else { + channelNameList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value(channelNameList.at(channelIdx)->property("labType").toString())); + channelValueList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value(channelValueList.at(channelIdx)->property("labType").toString())); + } } } } @@ -477,18 +491,19 @@ } // 是设备级的报警 - if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true && alarmDev.contains(deviceId) == false) { - if (alarmCode == "DEVICE_OFFLINE") { + if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true) { + if (alarmCode == "DEVICE_OFFLINE" && offlineDev.contains(deviceId) == false) { offlineDev.append(deviceId); - } else if (alarmCode == "DEVICE_ALARM") { + } else if (alarmCode == "DEVICE_ALARM" && alarmDev.contains(deviceId) == false) { alarmDev.append(deviceId); } } - if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true && alarmChannel.contains(channelId) == false) { - if (alarmCode == "COUNTER_NO_DATA") { + if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true) { + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == false) { offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") { + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && + alarmChannel.contains(channelId) == false) { alarmChannel.append(channelId); } } @@ -686,9 +701,9 @@ if (status == "0") { // 之前是正常的状态 新增报警状态 - if (alarmCode == "COUNTER_NO_DATA" && alarmChannel.contains(channelId) == false) { + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == false) { offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION" && + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && alarmChannel.contains(channelId) == false) { alarmChannel.append(channelId); } @@ -697,7 +712,7 @@ // 消警的逻辑 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" && + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && alarmChannel.contains(channelId) == true) { alarmChannel.removeOne(channelId); } diff --git a/CounterRealTime/common/HttpRequestController.cpp b/CounterRealTime/common/HttpRequestController.cpp index 3d6d9a3..58ac632 100644 --- a/CounterRealTime/common/HttpRequestController.cpp +++ b/CounterRealTime/common/HttpRequestController.cpp @@ -59,6 +59,7 @@ resultObj.insert("code", 200); // + delete reply; qDebug() << resultObj; return resultObj; @@ -94,6 +95,7 @@ resultObj.insert("code", -1); } + delete reply; // qDebug() << resultObj; return resultObj; @@ -127,6 +129,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -161,6 +164,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -195,6 +199,7 @@ return 0; } + delete reply; qDebug() << resultObj; return resultObj.value("data").toInt(); @@ -233,6 +238,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -262,6 +268,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; diff --git a/CounterRealTime/common/HttpServer.cpp b/CounterRealTime/common/HttpServer.cpp index c1a1b48..08887d4 100644 --- a/CounterRealTime/common/HttpServer.cpp +++ b/CounterRealTime/common/HttpServer.cpp @@ -26,16 +26,15 @@ void HttpServer::newConnection() { QTcpSocket * m_socket = httpServer->nextPendingConnection(); - QObject::connect(m_socket, &QTcpSocket::readyRead, this, &HttpServer::readyRead); + connect(m_socket, &QTcpSocket::readyRead, this, &HttpServer::readyRead); } void HttpServer::readyRead() { QTcpSocket * socket = qobject_cast(sender()); if(socket) { - QByteArray request = socket->readAll(); - - qDebug() << "Request Data:" << request; +// QByteArray request = socket->readAll(); +// qDebug() << "Request Data:" << request; QByteArray response = this->buildHeartBeatResponse().toUtf8(); @@ -50,6 +49,8 @@ socket->flush(); socket->waitForBytesWritten(http.size() + response.size()); socket->close(); + + socket->deleteLater(); } } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 36522e0..94e82b7 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -1,4 +1,4 @@ -#include "FrequencyTuning.h" +#include "FrequencyTuning.h" #include #include #include "DeviceHubWindow.h" @@ -38,7 +38,7 @@ // buffer.append("$GLN,0,192.168.1.126,255.255.255.0,192.168.1.1,255.255.255.255,3000,2000,2001*71").append("\r\n"); // buffer.append("$GLF,0,0,0,0,00000,0,0,0,0,0,0,0,0,0,0,0,1900,2355,0,0,0,0,0,1,1,1*4C").append("\r\n"); // buffer.append("$GLP,0,1000,0,100,20000*45").append("\r\n"); - buffer.append("000$1C2BM1304-3021010071204312*$572BM1304-30210100713 -2.52E-10 +3.02E-14 -000000002000 00000"); + buffer.append("000$1C2BM1304-3021010071204312*$572BM1304-30210100713 +0.000000000000 +0.000000000000 -000000002000 00000"); this->dataReceivedHandler(buffer); QTimer::singleShot(20, this, [=](){ diff --git a/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp b/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp index 77e60da..18e7199 100644 --- a/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp +++ b/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp @@ -47,8 +47,8 @@ QList subValues = content.split(0x20); if (subValues.size() == 6) { - ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjust = subValues.at(1).toDouble(); - ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjustAcc = subValues.at(2).toDouble(); + ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjust = subValues.at(1).toDouble() * CALCULATE_FACTOR; + ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjustAcc = subValues.at(2).toDouble() * CALCULATE_FACTOR; ((FrequencyTuningStatusFreqDto *)ftFrameData)->phaseShift = subValues.at(3).toLongLong(); ((FrequencyTuningStatusFreqDto *)ftFrameData)->pulseWidth = subValues.at(4).toLongLong(); ((FrequencyTuningStatusFreqDto *)ftFrameData)->phaseAdjust = subValues.at(5).toDouble(); @@ -87,7 +87,8 @@ { // 频率偏移设置 or 频率偏移步进量设置 commandBytes.append(0x20); - QString valueStr = QString::number(valueSet.toDouble(), 'e', 2).toUpper(); + double value = valueSet.toDouble() / CALCULATE_FACTOR; + QString valueStr = QString::number(value, 'f', 12); if (valueSet.toDouble() >= 0) { valueStr.prepend('+'); diff --git a/DeviceHub/protocol/FrequencyTuningProtocolTX.h b/DeviceHub/protocol/FrequencyTuningProtocolTX.h index ac3b903..f61a0f0 100644 --- a/DeviceHub/protocol/FrequencyTuningProtocolTX.h +++ b/DeviceHub/protocol/FrequencyTuningProtocolTX.h @@ -9,6 +9,8 @@ #include "dto/FrequencyTuningStatusLockDto.h" #include "dto/CommandReplyDto.h" +static const double CALCULATE_FACTOR = 1E-7; + class FrequencyTuningProtocolTX : public DeviceProtocolBase { public: diff --git a/DeviceHub/protocol/dto/FrequencyTuningStatusFreqDto.cpp b/DeviceHub/protocol/dto/FrequencyTuningStatusFreqDto.cpp index 406a141..2175f32 100644 --- a/DeviceHub/protocol/dto/FrequencyTuningStatusFreqDto.cpp +++ b/DeviceHub/protocol/dto/FrequencyTuningStatusFreqDto.cpp @@ -1,4 +1,4 @@ -#include "FrequencyTuningStatusFreqDto.h" +#include "FrequencyTuningStatusFreqDto.h" FrequencyTuningStatusFreqDto::FrequencyTuningStatusFreqDto(QObject *parent) : DeviceFrameBaseDto(parent) { @@ -11,8 +11,8 @@ QJsonObject dataObj; dataObj.insert("devStatus", devStatus); - dataObj.insert("freqAdjust", freqAdjust); - dataObj.insert("freqAdjustAcc", freqAdjustAcc); + dataObj.insert("freqAdjust", QString::number(freqAdjust, 'e', 4)); + dataObj.insert("freqAdjustAcc", QString::number(freqAdjustAcc, 'e', 4)); dataObj.insert("pulseWidth", pulseWidth); dataObj.insert("phaseAdjust", phaseAdjust); dataObj.insert("phaseShift", phaseShift); diff --git a/PhaseCompAcq/common/HttpRequestController.cpp b/PhaseCompAcq/common/HttpRequestController.cpp index 4327e44..e782868 100644 --- a/PhaseCompAcq/common/HttpRequestController.cpp +++ b/PhaseCompAcq/common/HttpRequestController.cpp @@ -59,6 +59,7 @@ resultObj.insert("code", 200); // + delete reply; qDebug() << resultObj; return resultObj; @@ -94,6 +95,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -127,6 +129,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -156,6 +159,7 @@ resultObj.insert("code", -1); } + delete reply; // qDebug() << resultObj; return resultObj; diff --git a/CounterRealTime/CounterRealTime_zh_CN.ts b/CounterRealTime/CounterRealTime_zh_CN.ts new file mode 100644 index 0000000..3cc47a9 --- /dev/null +++ b/CounterRealTime/CounterRealTime_zh_CN.ts @@ -0,0 +1,3 @@ + + + diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index d2fe9ed..47f7c2d 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -407,10 +407,11 @@ continue; } + CounterChannel * channel = ConstCache::getInstance().channelMap.value(deviceId + "-" + channelNo); // 从map中找到对应的通道 + if (channelDataJsonMap.contains(channelNo) == true) { QJsonObject channelDataItem = channelDataJsonMap.value(channelNo); - CounterChannel * channel = ConstCache::getInstance().channelMap.value(deviceId + "-" + channelNo); // 从map中找到对应的通道 // 通道Label的序号 int channelIdx = devIdx * 16 + channelDataItem.value("channelNo").toInt() - 1; @@ -450,9 +451,22 @@ channelValueList.at(channelIdx)->setText(""); } } else { + // 计数器返回的无测量值的通道处理逻辑 + int channelIdx = devIdx * 16 + i; + // 没有测量值的通道清空 - channelNameList.at(devIdx * 16 + i)->setText(QString("CH%1:%2").arg(channelNoStr).arg("-")); - channelValueList.at(devIdx * 16 + i)->setText(""); + channelNameList.at(channelIdx)->setText(QString("CH%1:%2").arg(channelNoStr).arg("-")); + channelValueList.at(channelIdx)->setText(""); + + // 当通道启用时显示通道离线 不再判断后台传回来的状态 + // 当通道未启用时显示正常状态 + if (channel != nullptr && channel->isActive() == true) { + channelNameList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value("channelOffline")); + channelValueList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value("channelOffline")); + } else { + channelNameList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value(channelNameList.at(channelIdx)->property("labType").toString())); + channelValueList.at(channelIdx)->setStyleSheet(ConstCache::getInstance().qssConstMap.value(channelValueList.at(channelIdx)->property("labType").toString())); + } } } } @@ -477,18 +491,19 @@ } // 是设备级的报警 - if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true && alarmDev.contains(deviceId) == false) { - if (alarmCode == "DEVICE_OFFLINE") { + if (SettingConfig::getInstance().DEVICE_ALARM_CODES.contains(alarmCode) == true) { + if (alarmCode == "DEVICE_OFFLINE" && offlineDev.contains(deviceId) == false) { offlineDev.append(deviceId); - } else if (alarmCode == "DEVICE_ALARM") { + } else if (alarmCode == "DEVICE_ALARM" && alarmDev.contains(deviceId) == false) { alarmDev.append(deviceId); } } - if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true && alarmChannel.contains(channelId) == false) { - if (alarmCode == "COUNTER_NO_DATA") { + if (channelId.isEmpty() == false && SettingConfig::getInstance().CHANNEL_ALARM_CODES.contains(alarmCode) == true) { + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == false) { offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") { + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && + alarmChannel.contains(channelId) == false) { alarmChannel.append(channelId); } } @@ -686,9 +701,9 @@ if (status == "0") { // 之前是正常的状态 新增报警状态 - if (alarmCode == "COUNTER_NO_DATA" && alarmChannel.contains(channelId) == false) { + if (alarmCode == "COUNTER_NO_DATA" && offlineChannel.contains(channelId) == false) { offlineChannel.append(channelId); - } else if (alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION" && + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && alarmChannel.contains(channelId) == false) { alarmChannel.append(channelId); } @@ -697,7 +712,7 @@ // 消警的逻辑 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" && + } else if ((alarmCode == "FREQUENCY_HOPPING" || alarmCode == "PHASE_HOPPING" || alarmCode == "BAD_DATA" || alarmCode == "DATA_EXCEPTION") && alarmChannel.contains(channelId) == true) { alarmChannel.removeOne(channelId); } diff --git a/CounterRealTime/common/HttpRequestController.cpp b/CounterRealTime/common/HttpRequestController.cpp index 3d6d9a3..58ac632 100644 --- a/CounterRealTime/common/HttpRequestController.cpp +++ b/CounterRealTime/common/HttpRequestController.cpp @@ -59,6 +59,7 @@ resultObj.insert("code", 200); // + delete reply; qDebug() << resultObj; return resultObj; @@ -94,6 +95,7 @@ resultObj.insert("code", -1); } + delete reply; // qDebug() << resultObj; return resultObj; @@ -127,6 +129,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -161,6 +164,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -195,6 +199,7 @@ return 0; } + delete reply; qDebug() << resultObj; return resultObj.value("data").toInt(); @@ -233,6 +238,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -262,6 +268,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; diff --git a/CounterRealTime/common/HttpServer.cpp b/CounterRealTime/common/HttpServer.cpp index c1a1b48..08887d4 100644 --- a/CounterRealTime/common/HttpServer.cpp +++ b/CounterRealTime/common/HttpServer.cpp @@ -26,16 +26,15 @@ void HttpServer::newConnection() { QTcpSocket * m_socket = httpServer->nextPendingConnection(); - QObject::connect(m_socket, &QTcpSocket::readyRead, this, &HttpServer::readyRead); + connect(m_socket, &QTcpSocket::readyRead, this, &HttpServer::readyRead); } void HttpServer::readyRead() { QTcpSocket * socket = qobject_cast(sender()); if(socket) { - QByteArray request = socket->readAll(); - - qDebug() << "Request Data:" << request; +// QByteArray request = socket->readAll(); +// qDebug() << "Request Data:" << request; QByteArray response = this->buildHeartBeatResponse().toUtf8(); @@ -50,6 +49,8 @@ socket->flush(); socket->waitForBytesWritten(http.size() + response.size()); socket->close(); + + socket->deleteLater(); } } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 36522e0..94e82b7 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -1,4 +1,4 @@ -#include "FrequencyTuning.h" +#include "FrequencyTuning.h" #include #include #include "DeviceHubWindow.h" @@ -38,7 +38,7 @@ // buffer.append("$GLN,0,192.168.1.126,255.255.255.0,192.168.1.1,255.255.255.255,3000,2000,2001*71").append("\r\n"); // buffer.append("$GLF,0,0,0,0,00000,0,0,0,0,0,0,0,0,0,0,0,1900,2355,0,0,0,0,0,1,1,1*4C").append("\r\n"); // buffer.append("$GLP,0,1000,0,100,20000*45").append("\r\n"); - buffer.append("000$1C2BM1304-3021010071204312*$572BM1304-30210100713 -2.52E-10 +3.02E-14 -000000002000 00000"); + buffer.append("000$1C2BM1304-3021010071204312*$572BM1304-30210100713 +0.000000000000 +0.000000000000 -000000002000 00000"); this->dataReceivedHandler(buffer); QTimer::singleShot(20, this, [=](){ diff --git a/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp b/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp index 77e60da..18e7199 100644 --- a/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp +++ b/DeviceHub/protocol/FrequencyTuningProtocolTX.cpp @@ -47,8 +47,8 @@ QList subValues = content.split(0x20); if (subValues.size() == 6) { - ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjust = subValues.at(1).toDouble(); - ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjustAcc = subValues.at(2).toDouble(); + ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjust = subValues.at(1).toDouble() * CALCULATE_FACTOR; + ((FrequencyTuningStatusFreqDto *)ftFrameData)->freqAdjustAcc = subValues.at(2).toDouble() * CALCULATE_FACTOR; ((FrequencyTuningStatusFreqDto *)ftFrameData)->phaseShift = subValues.at(3).toLongLong(); ((FrequencyTuningStatusFreqDto *)ftFrameData)->pulseWidth = subValues.at(4).toLongLong(); ((FrequencyTuningStatusFreqDto *)ftFrameData)->phaseAdjust = subValues.at(5).toDouble(); @@ -87,7 +87,8 @@ { // 频率偏移设置 or 频率偏移步进量设置 commandBytes.append(0x20); - QString valueStr = QString::number(valueSet.toDouble(), 'e', 2).toUpper(); + double value = valueSet.toDouble() / CALCULATE_FACTOR; + QString valueStr = QString::number(value, 'f', 12); if (valueSet.toDouble() >= 0) { valueStr.prepend('+'); diff --git a/DeviceHub/protocol/FrequencyTuningProtocolTX.h b/DeviceHub/protocol/FrequencyTuningProtocolTX.h index ac3b903..f61a0f0 100644 --- a/DeviceHub/protocol/FrequencyTuningProtocolTX.h +++ b/DeviceHub/protocol/FrequencyTuningProtocolTX.h @@ -9,6 +9,8 @@ #include "dto/FrequencyTuningStatusLockDto.h" #include "dto/CommandReplyDto.h" +static const double CALCULATE_FACTOR = 1E-7; + class FrequencyTuningProtocolTX : public DeviceProtocolBase { public: diff --git a/DeviceHub/protocol/dto/FrequencyTuningStatusFreqDto.cpp b/DeviceHub/protocol/dto/FrequencyTuningStatusFreqDto.cpp index 406a141..2175f32 100644 --- a/DeviceHub/protocol/dto/FrequencyTuningStatusFreqDto.cpp +++ b/DeviceHub/protocol/dto/FrequencyTuningStatusFreqDto.cpp @@ -1,4 +1,4 @@ -#include "FrequencyTuningStatusFreqDto.h" +#include "FrequencyTuningStatusFreqDto.h" FrequencyTuningStatusFreqDto::FrequencyTuningStatusFreqDto(QObject *parent) : DeviceFrameBaseDto(parent) { @@ -11,8 +11,8 @@ QJsonObject dataObj; dataObj.insert("devStatus", devStatus); - dataObj.insert("freqAdjust", freqAdjust); - dataObj.insert("freqAdjustAcc", freqAdjustAcc); + dataObj.insert("freqAdjust", QString::number(freqAdjust, 'e', 4)); + dataObj.insert("freqAdjustAcc", QString::number(freqAdjustAcc, 'e', 4)); dataObj.insert("pulseWidth", pulseWidth); dataObj.insert("phaseAdjust", phaseAdjust); dataObj.insert("phaseShift", phaseShift); diff --git a/PhaseCompAcq/common/HttpRequestController.cpp b/PhaseCompAcq/common/HttpRequestController.cpp index 4327e44..e782868 100644 --- a/PhaseCompAcq/common/HttpRequestController.cpp +++ b/PhaseCompAcq/common/HttpRequestController.cpp @@ -59,6 +59,7 @@ resultObj.insert("code", 200); // + delete reply; qDebug() << resultObj; return resultObj; @@ -94,6 +95,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -127,6 +129,7 @@ resultObj.insert("code", -1); } + delete reply; qDebug() << resultObj; return resultObj; @@ -156,6 +159,7 @@ resultObj.insert("code", -1); } + delete reply; // qDebug() << resultObj; return resultObj; diff --git a/PhaseCompAcq/common/HttpServer.cpp b/PhaseCompAcq/common/HttpServer.cpp index c1a1b48..08887d4 100644 --- a/PhaseCompAcq/common/HttpServer.cpp +++ b/PhaseCompAcq/common/HttpServer.cpp @@ -26,16 +26,15 @@ void HttpServer::newConnection() { QTcpSocket * m_socket = httpServer->nextPendingConnection(); - QObject::connect(m_socket, &QTcpSocket::readyRead, this, &HttpServer::readyRead); + connect(m_socket, &QTcpSocket::readyRead, this, &HttpServer::readyRead); } void HttpServer::readyRead() { QTcpSocket * socket = qobject_cast(sender()); if(socket) { - QByteArray request = socket->readAll(); - - qDebug() << "Request Data:" << request; +// QByteArray request = socket->readAll(); +// qDebug() << "Request Data:" << request; QByteArray response = this->buildHeartBeatResponse().toUtf8(); @@ -50,6 +49,8 @@ socket->flush(); socket->waitForBytesWritten(http.size() + response.size()); socket->close(); + + socket->deleteLater(); } }