diff --git a/DeviceHub/BCodeTerminalForm.cpp b/DeviceHub/BCodeTerminalForm.cpp index 71b6db4..ff620a0 100644 --- a/DeviceHub/BCodeTerminalForm.cpp +++ b/DeviceHub/BCodeTerminalForm.cpp @@ -28,6 +28,29 @@ if (frameData->frameType == "0701") { BCodeTerminalStatusDto * statusFrameDto = (BCodeTerminalStatusDto *) frameData; + ui->btDevStatus->setText(statusFrameDto->devStatus == "1" ? "正常" : "异常"); + ui->btBDCInStatus->setText(statusFrameDto->bdcInStatus == "1" ? "有效" : statusFrameDto->bdcInStatus == "2" ? "异常" : "无效"); + ui->btBACInStatus->setText(statusFrameDto->bacInStatus == "1" ? "有效" : statusFrameDto->bacInStatus == "2" ? "异常" : "无效"); + ui->btFiveInStatus->setText(statusFrameDto->fiveInStatus == "1" ? "有效" : statusFrameDto->fiveInStatus == "2" ? "异常" : "无效"); + ui->btRef->setText(statusFrameDto->ref == "0" ? "BDC" : statusFrameDto->ref == "1" ? "BAC" : "5M"); + QString trackStatusStr; + if (statusFrameDto->track == "0") trackStatusStr = "自由"; + else if (statusFrameDto->track == "1") trackStatusStr = "跟踪"; + else if (statusFrameDto->track == "2") trackStatusStr = "锁定"; + else if (statusFrameDto->track == "3") trackStatusStr = "守时"; + else if (statusFrameDto->track == "4") trackStatusStr = "预热"; + ui->btTrack->setText(trackStatusStr); + ui->btBacRatio->setText(QString("%1").arg(statusFrameDto->bacRatio)); + ui->btBacRange->setText(QString("%1").arg(statusFrameDto->bacRange)); + + QJsonObject dataObj = statusFrameDto->toJSON().find("data")->toObject(); + QJsonDocument doc; + + doc.setArray(dataObj.find("bdcOutStatusArray")->toArray()); + ui->btBDCOutStatus->setText(QString::fromUtf8(doc.toJson(QJsonDocument::Compact).constData())); + + doc.setArray(dataObj.find("bacOutStatusArray")->toArray()); + ui->btBACOutStatus->setText(QString::fromUtf8(doc.toJson(QJsonDocument::Compact).constData())); } } @@ -35,10 +58,10 @@ void BCodeTerminalForm::displayDeviceCommandOnForm(QJsonObject command) { QString deviceId = command.value("deviceId").toString(); - QList typeDevList = ((DeviceHubWindow *) this->parent()->parent())->allTypeDevList.value("04"); + QList typeDevList = ((DeviceHubWindow *) this->parent()->parent())->allTypeDevList.value("07"); for (int i = 0; i < ((DeviceHubWindow *)this->parent()->parent())->getDevTypeSelect()->count(); i++) { - if (((DeviceHubWindow *)this->parent()->parent())->getDevTypeSelect()->itemData(i) == "04") + if (((DeviceHubWindow *)this->parent()->parent())->getDevTypeSelect()->itemData(i) == "07") { ((DeviceHubWindow *)this->parent()->parent())->getDevTypeSelect()->setCurrentIndex(i); } @@ -54,10 +77,12 @@ QString commandType = command.value("command").toString(); if (commandType == "1") { - + ui->btRefSet->setText(command.value("params").toString()); + ui->btRefSetRaw->setText(command.value("rawCommand").toString()); } else if (commandType == "2") { - + ui->btBacRatioSet->setText(command.value("params").toString()); + ui->btBacRatioSetRaw->setText(command.value("rawCommand").toString()); } } diff --git a/DeviceHub/BCodeTerminalForm.cpp b/DeviceHub/BCodeTerminalForm.cpp index 71b6db4..ff620a0 100644 --- a/DeviceHub/BCodeTerminalForm.cpp +++ b/DeviceHub/BCodeTerminalForm.cpp @@ -28,6 +28,29 @@ if (frameData->frameType == "0701") { BCodeTerminalStatusDto * statusFrameDto = (BCodeTerminalStatusDto *) frameData; + ui->btDevStatus->setText(statusFrameDto->devStatus == "1" ? "正常" : "异常"); + ui->btBDCInStatus->setText(statusFrameDto->bdcInStatus == "1" ? "有效" : statusFrameDto->bdcInStatus == "2" ? "异常" : "无效"); + ui->btBACInStatus->setText(statusFrameDto->bacInStatus == "1" ? "有效" : statusFrameDto->bacInStatus == "2" ? "异常" : "无效"); + ui->btFiveInStatus->setText(statusFrameDto->fiveInStatus == "1" ? "有效" : statusFrameDto->fiveInStatus == "2" ? "异常" : "无效"); + ui->btRef->setText(statusFrameDto->ref == "0" ? "BDC" : statusFrameDto->ref == "1" ? "BAC" : "5M"); + QString trackStatusStr; + if (statusFrameDto->track == "0") trackStatusStr = "自由"; + else if (statusFrameDto->track == "1") trackStatusStr = "跟踪"; + else if (statusFrameDto->track == "2") trackStatusStr = "锁定"; + else if (statusFrameDto->track == "3") trackStatusStr = "守时"; + else if (statusFrameDto->track == "4") trackStatusStr = "预热"; + ui->btTrack->setText(trackStatusStr); + ui->btBacRatio->setText(QString("%1").arg(statusFrameDto->bacRatio)); + ui->btBacRange->setText(QString("%1").arg(statusFrameDto->bacRange)); + + QJsonObject dataObj = statusFrameDto->toJSON().find("data")->toObject(); + QJsonDocument doc; + + doc.setArray(dataObj.find("bdcOutStatusArray")->toArray()); + ui->btBDCOutStatus->setText(QString::fromUtf8(doc.toJson(QJsonDocument::Compact).constData())); + + doc.setArray(dataObj.find("bacOutStatusArray")->toArray()); + ui->btBACOutStatus->setText(QString::fromUtf8(doc.toJson(QJsonDocument::Compact).constData())); } } @@ -35,10 +58,10 @@ void BCodeTerminalForm::displayDeviceCommandOnForm(QJsonObject command) { QString deviceId = command.value("deviceId").toString(); - QList typeDevList = ((DeviceHubWindow *) this->parent()->parent())->allTypeDevList.value("04"); + QList typeDevList = ((DeviceHubWindow *) this->parent()->parent())->allTypeDevList.value("07"); for (int i = 0; i < ((DeviceHubWindow *)this->parent()->parent())->getDevTypeSelect()->count(); i++) { - if (((DeviceHubWindow *)this->parent()->parent())->getDevTypeSelect()->itemData(i) == "04") + if (((DeviceHubWindow *)this->parent()->parent())->getDevTypeSelect()->itemData(i) == "07") { ((DeviceHubWindow *)this->parent()->parent())->getDevTypeSelect()->setCurrentIndex(i); } @@ -54,10 +77,12 @@ QString commandType = command.value("command").toString(); if (commandType == "1") { - + ui->btRefSet->setText(command.value("params").toString()); + ui->btRefSetRaw->setText(command.value("rawCommand").toString()); } else if (commandType == "2") { - + ui->btBacRatioSet->setText(command.value("params").toString()); + ui->btBacRatioSetRaw->setText(command.value("rawCommand").toString()); } } diff --git a/DeviceHub/BCodeTerminalForm.ui b/DeviceHub/BCodeTerminalForm.ui index 11b3894..29dae63 100644 --- a/DeviceHub/BCodeTerminalForm.ui +++ b/DeviceHub/BCodeTerminalForm.ui @@ -369,7 +369,7 @@ - 460 + 560 330 80 30 @@ -419,7 +419,7 @@ 230 330 - 200 + 300 30 @@ -430,7 +430,7 @@ - 460 + 560 390 80 30 @@ -451,7 +451,7 @@ 230 390 - 200 + 300 30 @@ -475,7 +475,7 @@ - AC码调制比 + BAC输出幅度 @@ -488,67 +488,6 @@ - - - - 590 - 390 - 60 - 30 - - - - - 微软雅黑 - 10 - - - - AC码幅度 - - - - - - 800 - 390 - 200 - 30 - - - - true - - - - - - 1030 - 390 - 80 - 30 - - - - - 微软雅黑 - 10 - - - - send - - - - - - 670 - 390 - 100 - 30 - - - diff --git a/DeviceHub/BCodeTerminalForm.cpp b/DeviceHub/BCodeTerminalForm.cpp index 71b6db4..ff620a0 100644 --- a/DeviceHub/BCodeTerminalForm.cpp +++ b/DeviceHub/BCodeTerminalForm.cpp @@ -28,6 +28,29 @@ if (frameData->frameType == "0701") { BCodeTerminalStatusDto * statusFrameDto = (BCodeTerminalStatusDto *) frameData; + ui->btDevStatus->setText(statusFrameDto->devStatus == "1" ? "正常" : "异常"); + ui->btBDCInStatus->setText(statusFrameDto->bdcInStatus == "1" ? "有效" : statusFrameDto->bdcInStatus == "2" ? "异常" : "无效"); + ui->btBACInStatus->setText(statusFrameDto->bacInStatus == "1" ? "有效" : statusFrameDto->bacInStatus == "2" ? "异常" : "无效"); + ui->btFiveInStatus->setText(statusFrameDto->fiveInStatus == "1" ? "有效" : statusFrameDto->fiveInStatus == "2" ? "异常" : "无效"); + ui->btRef->setText(statusFrameDto->ref == "0" ? "BDC" : statusFrameDto->ref == "1" ? "BAC" : "5M"); + QString trackStatusStr; + if (statusFrameDto->track == "0") trackStatusStr = "自由"; + else if (statusFrameDto->track == "1") trackStatusStr = "跟踪"; + else if (statusFrameDto->track == "2") trackStatusStr = "锁定"; + else if (statusFrameDto->track == "3") trackStatusStr = "守时"; + else if (statusFrameDto->track == "4") trackStatusStr = "预热"; + ui->btTrack->setText(trackStatusStr); + ui->btBacRatio->setText(QString("%1").arg(statusFrameDto->bacRatio)); + ui->btBacRange->setText(QString("%1").arg(statusFrameDto->bacRange)); + + QJsonObject dataObj = statusFrameDto->toJSON().find("data")->toObject(); + QJsonDocument doc; + + doc.setArray(dataObj.find("bdcOutStatusArray")->toArray()); + ui->btBDCOutStatus->setText(QString::fromUtf8(doc.toJson(QJsonDocument::Compact).constData())); + + doc.setArray(dataObj.find("bacOutStatusArray")->toArray()); + ui->btBACOutStatus->setText(QString::fromUtf8(doc.toJson(QJsonDocument::Compact).constData())); } } @@ -35,10 +58,10 @@ void BCodeTerminalForm::displayDeviceCommandOnForm(QJsonObject command) { QString deviceId = command.value("deviceId").toString(); - QList typeDevList = ((DeviceHubWindow *) this->parent()->parent())->allTypeDevList.value("04"); + QList typeDevList = ((DeviceHubWindow *) this->parent()->parent())->allTypeDevList.value("07"); for (int i = 0; i < ((DeviceHubWindow *)this->parent()->parent())->getDevTypeSelect()->count(); i++) { - if (((DeviceHubWindow *)this->parent()->parent())->getDevTypeSelect()->itemData(i) == "04") + if (((DeviceHubWindow *)this->parent()->parent())->getDevTypeSelect()->itemData(i) == "07") { ((DeviceHubWindow *)this->parent()->parent())->getDevTypeSelect()->setCurrentIndex(i); } @@ -54,10 +77,12 @@ QString commandType = command.value("command").toString(); if (commandType == "1") { - + ui->btRefSet->setText(command.value("params").toString()); + ui->btRefSetRaw->setText(command.value("rawCommand").toString()); } else if (commandType == "2") { - + ui->btBacRatioSet->setText(command.value("params").toString()); + ui->btBacRatioSetRaw->setText(command.value("rawCommand").toString()); } } diff --git a/DeviceHub/BCodeTerminalForm.ui b/DeviceHub/BCodeTerminalForm.ui index 11b3894..29dae63 100644 --- a/DeviceHub/BCodeTerminalForm.ui +++ b/DeviceHub/BCodeTerminalForm.ui @@ -369,7 +369,7 @@ - 460 + 560 330 80 30 @@ -419,7 +419,7 @@ 230 330 - 200 + 300 30 @@ -430,7 +430,7 @@ - 460 + 560 390 80 30 @@ -451,7 +451,7 @@ 230 390 - 200 + 300 30 @@ -475,7 +475,7 @@ - AC码调制比 + BAC输出幅度 @@ -488,67 +488,6 @@ - - - - 590 - 390 - 60 - 30 - - - - - 微软雅黑 - 10 - - - - AC码幅度 - - - - - - 800 - 390 - 200 - 30 - - - - true - - - - - - 1030 - 390 - 80 - 30 - - - - - 微软雅黑 - 10 - - - - send - - - - - - 670 - 390 - 100 - 30 - - - diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index b792982..1e852a9 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -70,6 +70,8 @@ frameDto->milisecond = now.toMSecsSinceEpoch(); frameDto->rawFrame = frameByte; + frameDto->devCode = devCode; + this->afterFramePhase(frameDto); } @@ -87,6 +89,19 @@ std::cout << "frame type: " << typeid(* frameDto).name() << std::endl; std::cout << frameDto->rawFrame.toStdString() << std::endl; + // 0. 输出到日志文件中 + QString date = frameDto->timestamp.mid(0, 10); + + // 1. 原始字节数组数据 + QString filename = "raw_" + devCode + ".log"; + QString content = frameDto->timestamp + " [recv] " + frameDto->rawFrame.left(frameDto->rawFrame.size() - FRAME_TAIL.size()); + QLogUtil::writeRawDataLogByDate(date, filename, content); + + // 2. 解析后的json数据 + QString frameFilename = "frame_" + devCode + ".log"; + QString frameContent = frameDto->timestamp + " [recv] " + QJsonDocument(frameDto->toJSON()).toJson(QJsonDocument::Compact); + QLogUtil::writeChannelDataLogByDate(date, frameFilename, frameContent); + // 3. 输出到中间件,执行后续处理过程 if (SettingConfig::getInstance().NEED_KAFKA == 1) { @@ -95,6 +110,9 @@ jsonObj.insert("deviceId", deviceId); kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); } + + // 4. 在界面上简单显示相差数据结果 + emit this->sendDataToDraw(frameDto); } void BCodeTerminal::sendDataToSerial(QByteArray data) @@ -102,12 +120,12 @@ data.append(FRAME_TAIL); this->serialUtil.sendData(data); - // �������� - // 0. ���������������� + // 记录日志 + // 0. 输出到日志文件中 QDateTime now = QDateTime::currentDateTime(); QString date = now.toString("yyyy-MM-dd"); - // 1. ���������������� + // 1. 原始字节数组数据 QString filename = "raw_" + devCode + ".log"; QString content = now.toString("yyyy-MM-dd HH:mm:ss.zzz") + " [send] " + data.left(data.size() - FRAME_TAIL.size()); QLogUtil::writeRawDataLogByDate(date, filename, content); @@ -127,12 +145,12 @@ return; } - // �������� - // 0. ���������������� + // 记录日志 + // 0. 输出到日志文件中 QDateTime now = QDateTime::currentDateTime(); QString date = now.toString("yyyy-MM-dd"); - // 1. ���������������� + // 1. 原始字节数组数据 QString filename = "frame_" + devCode + ".log"; QString content = now.toString("yyyy-MM-dd HH:mm:ss.zzz") + " [send] " + command.find("cmdStr")->toString(); QLogUtil::writeChannelDataLogByDate(date, filename, content);