diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index 502cffe..a5fe898 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -154,7 +154,11 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index 502cffe..a5fe898 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -154,7 +154,11 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); diff --git a/CounterRealTime/CounterDevice.cpp b/CounterRealTime/CounterDevice.cpp index c069623..10cc8ae 100644 --- a/CounterRealTime/CounterDevice.cpp +++ b/CounterRealTime/CounterDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() @@ -183,6 +185,7 @@ if (channelPtr != nullptr && channelPtr->isActive() == true) { // 通道时延值 并计算 减去时延值的测量值 + // 只处理绘图部分 界面显示部分在主线程端处理 存库部分在接收端后台处理 double delay = channelPtr->getDelays().isEmpty() == false ? channelPtr->getDelays().toDouble() : 0.0; double valueMinusDelay = counterData->channelDataArray.at(i-1).toDouble() - (delay * 1E-9) + (refDelay * 1E-9); channelPtr->appendHisData(QString::number(counterData->milisecond), QString::number(valueMinusDelay, 'f', 12)); @@ -205,15 +208,20 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); - QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(messageArray); } +// 计算分钟拟合值 暂时不再使用 void CounterDevice::calcResidualClockData(qlonglong tm) { qDebug() << devCode << " start: " << QDateTime::currentMSecsSinceEpoch(); diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index 502cffe..a5fe898 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -154,7 +154,11 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); diff --git a/CounterRealTime/CounterDevice.cpp b/CounterRealTime/CounterDevice.cpp index c069623..10cc8ae 100644 --- a/CounterRealTime/CounterDevice.cpp +++ b/CounterRealTime/CounterDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() @@ -183,6 +185,7 @@ if (channelPtr != nullptr && channelPtr->isActive() == true) { // 通道时延值 并计算 减去时延值的测量值 + // 只处理绘图部分 界面显示部分在主线程端处理 存库部分在接收端后台处理 double delay = channelPtr->getDelays().isEmpty() == false ? channelPtr->getDelays().toDouble() : 0.0; double valueMinusDelay = counterData->channelDataArray.at(i-1).toDouble() - (delay * 1E-9) + (refDelay * 1E-9); channelPtr->appendHisData(QString::number(counterData->milisecond), QString::number(valueMinusDelay, 'f', 12)); @@ -205,15 +208,20 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); - QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(messageArray); } +// 计算分钟拟合值 暂时不再使用 void CounterDevice::calcResidualClockData(qlonglong tm) { qDebug() << devCode << " start: " << QDateTime::currentMSecsSinceEpoch(); diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index 6583638..3a5fe34 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -67,21 +67,23 @@ ui->labTitle->setText(QString("钟差测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); - connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); - // kafka consumer - alarmMsgConsumer = new QKafkaConsumer(this); - alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); - alarmMsgConsumer->createConsumer(); - alarmMsgConsumer->start(); - connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + // kafka consumer + alarmMsgConsumer = new QKafkaConsumer(this); + alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); + alarmMsgConsumer->createConsumer(); + alarmMsgConsumer->start(); + connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + } // 绘制界面上的表格 initChannelForm(); diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index 502cffe..a5fe898 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -154,7 +154,11 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); diff --git a/CounterRealTime/CounterDevice.cpp b/CounterRealTime/CounterDevice.cpp index c069623..10cc8ae 100644 --- a/CounterRealTime/CounterDevice.cpp +++ b/CounterRealTime/CounterDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() @@ -183,6 +185,7 @@ if (channelPtr != nullptr && channelPtr->isActive() == true) { // 通道时延值 并计算 减去时延值的测量值 + // 只处理绘图部分 界面显示部分在主线程端处理 存库部分在接收端后台处理 double delay = channelPtr->getDelays().isEmpty() == false ? channelPtr->getDelays().toDouble() : 0.0; double valueMinusDelay = counterData->channelDataArray.at(i-1).toDouble() - (delay * 1E-9) + (refDelay * 1E-9); channelPtr->appendHisData(QString::number(counterData->milisecond), QString::number(valueMinusDelay, 'f', 12)); @@ -205,15 +208,20 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); - QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(messageArray); } +// 计算分钟拟合值 暂时不再使用 void CounterDevice::calcResidualClockData(qlonglong tm) { qDebug() << devCode << " start: " << QDateTime::currentMSecsSinceEpoch(); diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index 6583638..3a5fe34 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -67,21 +67,23 @@ ui->labTitle->setText(QString("钟差测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); - connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); - // kafka consumer - alarmMsgConsumer = new QKafkaConsumer(this); - alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); - alarmMsgConsumer->createConsumer(); - alarmMsgConsumer->start(); - connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + // kafka consumer + alarmMsgConsumer = new QKafkaConsumer(this); + alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); + alarmMsgConsumer->createConsumer(); + alarmMsgConsumer->start(); + connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + } // 绘制界面上的表格 initChannelForm(); diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index d52b5e2..45bee30 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -127,7 +127,11 @@ jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("master", SettingConfig::getInstance().MASTER); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index 502cffe..a5fe898 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -154,7 +154,11 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); diff --git a/CounterRealTime/CounterDevice.cpp b/CounterRealTime/CounterDevice.cpp index c069623..10cc8ae 100644 --- a/CounterRealTime/CounterDevice.cpp +++ b/CounterRealTime/CounterDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() @@ -183,6 +185,7 @@ if (channelPtr != nullptr && channelPtr->isActive() == true) { // 通道时延值 并计算 减去时延值的测量值 + // 只处理绘图部分 界面显示部分在主线程端处理 存库部分在接收端后台处理 double delay = channelPtr->getDelays().isEmpty() == false ? channelPtr->getDelays().toDouble() : 0.0; double valueMinusDelay = counterData->channelDataArray.at(i-1).toDouble() - (delay * 1E-9) + (refDelay * 1E-9); channelPtr->appendHisData(QString::number(counterData->milisecond), QString::number(valueMinusDelay, 'f', 12)); @@ -205,15 +208,20 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); - QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(messageArray); } +// 计算分钟拟合值 暂时不再使用 void CounterDevice::calcResidualClockData(qlonglong tm) { qDebug() << devCode << " start: " << QDateTime::currentMSecsSinceEpoch(); diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index 6583638..3a5fe34 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -67,21 +67,23 @@ ui->labTitle->setText(QString("钟差测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); - connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); - // kafka consumer - alarmMsgConsumer = new QKafkaConsumer(this); - alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); - alarmMsgConsumer->createConsumer(); - alarmMsgConsumer->start(); - connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + // kafka consumer + alarmMsgConsumer = new QKafkaConsumer(this); + alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); + alarmMsgConsumer->createConsumer(); + alarmMsgConsumer->start(); + connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + } // 绘制界面上的表格 initChannelForm(); diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index d52b5e2..45bee30 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -127,7 +127,11 @@ jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("master", SettingConfig::getInstance().MASTER); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 4b0eceb..6e2dddf 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -117,7 +117,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index 502cffe..a5fe898 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -154,7 +154,11 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); diff --git a/CounterRealTime/CounterDevice.cpp b/CounterRealTime/CounterDevice.cpp index c069623..10cc8ae 100644 --- a/CounterRealTime/CounterDevice.cpp +++ b/CounterRealTime/CounterDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() @@ -183,6 +185,7 @@ if (channelPtr != nullptr && channelPtr->isActive() == true) { // 通道时延值 并计算 减去时延值的测量值 + // 只处理绘图部分 界面显示部分在主线程端处理 存库部分在接收端后台处理 double delay = channelPtr->getDelays().isEmpty() == false ? channelPtr->getDelays().toDouble() : 0.0; double valueMinusDelay = counterData->channelDataArray.at(i-1).toDouble() - (delay * 1E-9) + (refDelay * 1E-9); channelPtr->appendHisData(QString::number(counterData->milisecond), QString::number(valueMinusDelay, 'f', 12)); @@ -205,15 +208,20 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); - QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(messageArray); } +// 计算分钟拟合值 暂时不再使用 void CounterDevice::calcResidualClockData(qlonglong tm) { qDebug() << devCode << " start: " << QDateTime::currentMSecsSinceEpoch(); diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index 6583638..3a5fe34 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -67,21 +67,23 @@ ui->labTitle->setText(QString("钟差测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); - connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); - // kafka consumer - alarmMsgConsumer = new QKafkaConsumer(this); - alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); - alarmMsgConsumer->createConsumer(); - alarmMsgConsumer->start(); - connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + // kafka consumer + alarmMsgConsumer = new QKafkaConsumer(this); + alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); + alarmMsgConsumer->createConsumer(); + alarmMsgConsumer->start(); + connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + } // 绘制界面上的表格 initChannelForm(); diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index d52b5e2..45bee30 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -127,7 +127,11 @@ jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("master", SettingConfig::getInstance().MASTER); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 4b0eceb..6e2dddf 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -117,7 +117,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index 411e6d1..c7ec95f 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -132,7 +132,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index 502cffe..a5fe898 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -154,7 +154,11 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); diff --git a/CounterRealTime/CounterDevice.cpp b/CounterRealTime/CounterDevice.cpp index c069623..10cc8ae 100644 --- a/CounterRealTime/CounterDevice.cpp +++ b/CounterRealTime/CounterDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() @@ -183,6 +185,7 @@ if (channelPtr != nullptr && channelPtr->isActive() == true) { // 通道时延值 并计算 减去时延值的测量值 + // 只处理绘图部分 界面显示部分在主线程端处理 存库部分在接收端后台处理 double delay = channelPtr->getDelays().isEmpty() == false ? channelPtr->getDelays().toDouble() : 0.0; double valueMinusDelay = counterData->channelDataArray.at(i-1).toDouble() - (delay * 1E-9) + (refDelay * 1E-9); channelPtr->appendHisData(QString::number(counterData->milisecond), QString::number(valueMinusDelay, 'f', 12)); @@ -205,15 +208,20 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); - QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(messageArray); } +// 计算分钟拟合值 暂时不再使用 void CounterDevice::calcResidualClockData(qlonglong tm) { qDebug() << devCode << " start: " << QDateTime::currentMSecsSinceEpoch(); diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index 6583638..3a5fe34 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -67,21 +67,23 @@ ui->labTitle->setText(QString("钟差测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); - connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); - // kafka consumer - alarmMsgConsumer = new QKafkaConsumer(this); - alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); - alarmMsgConsumer->createConsumer(); - alarmMsgConsumer->start(); - connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + // kafka consumer + alarmMsgConsumer = new QKafkaConsumer(this); + alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); + alarmMsgConsumer->createConsumer(); + alarmMsgConsumer->start(); + connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + } // 绘制界面上的表格 initChannelForm(); diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index d52b5e2..45bee30 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -127,7 +127,11 @@ jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("master", SettingConfig::getInstance().MASTER); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 4b0eceb..6e2dddf 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -117,7 +117,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index 411e6d1..c7ec95f 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -132,7 +132,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 926c351..36522e0 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -152,7 +152,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index 502cffe..a5fe898 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -154,7 +154,11 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); diff --git a/CounterRealTime/CounterDevice.cpp b/CounterRealTime/CounterDevice.cpp index c069623..10cc8ae 100644 --- a/CounterRealTime/CounterDevice.cpp +++ b/CounterRealTime/CounterDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() @@ -183,6 +185,7 @@ if (channelPtr != nullptr && channelPtr->isActive() == true) { // 通道时延值 并计算 减去时延值的测量值 + // 只处理绘图部分 界面显示部分在主线程端处理 存库部分在接收端后台处理 double delay = channelPtr->getDelays().isEmpty() == false ? channelPtr->getDelays().toDouble() : 0.0; double valueMinusDelay = counterData->channelDataArray.at(i-1).toDouble() - (delay * 1E-9) + (refDelay * 1E-9); channelPtr->appendHisData(QString::number(counterData->milisecond), QString::number(valueMinusDelay, 'f', 12)); @@ -205,15 +208,20 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); - QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(messageArray); } +// 计算分钟拟合值 暂时不再使用 void CounterDevice::calcResidualClockData(qlonglong tm) { qDebug() << devCode << " start: " << QDateTime::currentMSecsSinceEpoch(); diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index 6583638..3a5fe34 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -67,21 +67,23 @@ ui->labTitle->setText(QString("钟差测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); - connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); - // kafka consumer - alarmMsgConsumer = new QKafkaConsumer(this); - alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); - alarmMsgConsumer->createConsumer(); - alarmMsgConsumer->start(); - connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + // kafka consumer + alarmMsgConsumer = new QKafkaConsumer(this); + alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); + alarmMsgConsumer->createConsumer(); + alarmMsgConsumer->start(); + connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + } // 绘制界面上的表格 initChannelForm(); diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index d52b5e2..45bee30 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -127,7 +127,11 @@ jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("master", SettingConfig::getInstance().MASTER); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 4b0eceb..6e2dddf 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -117,7 +117,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index 411e6d1..c7ec95f 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -132,7 +132,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 926c351..36522e0 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -152,7 +152,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 9363dc5..c30f351 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -138,7 +138,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index 502cffe..a5fe898 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -154,7 +154,11 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); diff --git a/CounterRealTime/CounterDevice.cpp b/CounterRealTime/CounterDevice.cpp index c069623..10cc8ae 100644 --- a/CounterRealTime/CounterDevice.cpp +++ b/CounterRealTime/CounterDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() @@ -183,6 +185,7 @@ if (channelPtr != nullptr && channelPtr->isActive() == true) { // 通道时延值 并计算 减去时延值的测量值 + // 只处理绘图部分 界面显示部分在主线程端处理 存库部分在接收端后台处理 double delay = channelPtr->getDelays().isEmpty() == false ? channelPtr->getDelays().toDouble() : 0.0; double valueMinusDelay = counterData->channelDataArray.at(i-1).toDouble() - (delay * 1E-9) + (refDelay * 1E-9); channelPtr->appendHisData(QString::number(counterData->milisecond), QString::number(valueMinusDelay, 'f', 12)); @@ -205,15 +208,20 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); - QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(messageArray); } +// 计算分钟拟合值 暂时不再使用 void CounterDevice::calcResidualClockData(qlonglong tm) { qDebug() << devCode << " start: " << QDateTime::currentMSecsSinceEpoch(); diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index 6583638..3a5fe34 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -67,21 +67,23 @@ ui->labTitle->setText(QString("钟差测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); - connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); - // kafka consumer - alarmMsgConsumer = new QKafkaConsumer(this); - alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); - alarmMsgConsumer->createConsumer(); - alarmMsgConsumer->start(); - connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + // kafka consumer + alarmMsgConsumer = new QKafkaConsumer(this); + alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); + alarmMsgConsumer->createConsumer(); + alarmMsgConsumer->start(); + connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + } // 绘制界面上的表格 initChannelForm(); diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index d52b5e2..45bee30 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -127,7 +127,11 @@ jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("master", SettingConfig::getInstance().MASTER); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 4b0eceb..6e2dddf 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -117,7 +117,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index 411e6d1..c7ec95f 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -132,7 +132,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 926c351..36522e0 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -152,7 +152,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 9363dc5..c30f351 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -138,7 +138,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index a6dc0d9..1a43418 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -131,7 +131,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index 502cffe..a5fe898 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -154,7 +154,11 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); diff --git a/CounterRealTime/CounterDevice.cpp b/CounterRealTime/CounterDevice.cpp index c069623..10cc8ae 100644 --- a/CounterRealTime/CounterDevice.cpp +++ b/CounterRealTime/CounterDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() @@ -183,6 +185,7 @@ if (channelPtr != nullptr && channelPtr->isActive() == true) { // 通道时延值 并计算 减去时延值的测量值 + // 只处理绘图部分 界面显示部分在主线程端处理 存库部分在接收端后台处理 double delay = channelPtr->getDelays().isEmpty() == false ? channelPtr->getDelays().toDouble() : 0.0; double valueMinusDelay = counterData->channelDataArray.at(i-1).toDouble() - (delay * 1E-9) + (refDelay * 1E-9); channelPtr->appendHisData(QString::number(counterData->milisecond), QString::number(valueMinusDelay, 'f', 12)); @@ -205,15 +208,20 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); - QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(messageArray); } +// 计算分钟拟合值 暂时不再使用 void CounterDevice::calcResidualClockData(qlonglong tm) { qDebug() << devCode << " start: " << QDateTime::currentMSecsSinceEpoch(); diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index 6583638..3a5fe34 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -67,21 +67,23 @@ ui->labTitle->setText(QString("钟差测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); - connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); - // kafka consumer - alarmMsgConsumer = new QKafkaConsumer(this); - alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); - alarmMsgConsumer->createConsumer(); - alarmMsgConsumer->start(); - connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + // kafka consumer + alarmMsgConsumer = new QKafkaConsumer(this); + alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); + alarmMsgConsumer->createConsumer(); + alarmMsgConsumer->start(); + connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + } // 绘制界面上的表格 initChannelForm(); diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index d52b5e2..45bee30 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -127,7 +127,11 @@ jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("master", SettingConfig::getInstance().MASTER); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 4b0eceb..6e2dddf 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -117,7 +117,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index 411e6d1..c7ec95f 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -132,7 +132,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 926c351..36522e0 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -152,7 +152,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 9363dc5..c30f351 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -138,7 +138,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index a6dc0d9..1a43418 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -131,7 +131,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index b2476f6..1291335 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -148,7 +148,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index 502cffe..a5fe898 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -154,7 +154,11 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); diff --git a/CounterRealTime/CounterDevice.cpp b/CounterRealTime/CounterDevice.cpp index c069623..10cc8ae 100644 --- a/CounterRealTime/CounterDevice.cpp +++ b/CounterRealTime/CounterDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() @@ -183,6 +185,7 @@ if (channelPtr != nullptr && channelPtr->isActive() == true) { // 通道时延值 并计算 减去时延值的测量值 + // 只处理绘图部分 界面显示部分在主线程端处理 存库部分在接收端后台处理 double delay = channelPtr->getDelays().isEmpty() == false ? channelPtr->getDelays().toDouble() : 0.0; double valueMinusDelay = counterData->channelDataArray.at(i-1).toDouble() - (delay * 1E-9) + (refDelay * 1E-9); channelPtr->appendHisData(QString::number(counterData->milisecond), QString::number(valueMinusDelay, 'f', 12)); @@ -205,15 +208,20 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); - QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(messageArray); } +// 计算分钟拟合值 暂时不再使用 void CounterDevice::calcResidualClockData(qlonglong tm) { qDebug() << devCode << " start: " << QDateTime::currentMSecsSinceEpoch(); diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index 6583638..3a5fe34 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -67,21 +67,23 @@ ui->labTitle->setText(QString("钟差测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); - connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); - // kafka consumer - alarmMsgConsumer = new QKafkaConsumer(this); - alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); - alarmMsgConsumer->createConsumer(); - alarmMsgConsumer->start(); - connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + // kafka consumer + alarmMsgConsumer = new QKafkaConsumer(this); + alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); + alarmMsgConsumer->createConsumer(); + alarmMsgConsumer->start(); + connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + } // 绘制界面上的表格 initChannelForm(); diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index d52b5e2..45bee30 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -127,7 +127,11 @@ jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("master", SettingConfig::getInstance().MASTER); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 4b0eceb..6e2dddf 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -117,7 +117,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index 411e6d1..c7ec95f 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -132,7 +132,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 926c351..36522e0 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -152,7 +152,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 9363dc5..c30f351 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -138,7 +138,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index a6dc0d9..1a43418 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -131,7 +131,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index b2476f6..1291335 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -148,7 +148,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 32e1e6c..bdeadad 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -129,7 +129,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index 502cffe..a5fe898 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -154,7 +154,11 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); diff --git a/CounterRealTime/CounterDevice.cpp b/CounterRealTime/CounterDevice.cpp index c069623..10cc8ae 100644 --- a/CounterRealTime/CounterDevice.cpp +++ b/CounterRealTime/CounterDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() @@ -183,6 +185,7 @@ if (channelPtr != nullptr && channelPtr->isActive() == true) { // 通道时延值 并计算 减去时延值的测量值 + // 只处理绘图部分 界面显示部分在主线程端处理 存库部分在接收端后台处理 double delay = channelPtr->getDelays().isEmpty() == false ? channelPtr->getDelays().toDouble() : 0.0; double valueMinusDelay = counterData->channelDataArray.at(i-1).toDouble() - (delay * 1E-9) + (refDelay * 1E-9); channelPtr->appendHisData(QString::number(counterData->milisecond), QString::number(valueMinusDelay, 'f', 12)); @@ -205,15 +208,20 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); - QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(messageArray); } +// 计算分钟拟合值 暂时不再使用 void CounterDevice::calcResidualClockData(qlonglong tm) { qDebug() << devCode << " start: " << QDateTime::currentMSecsSinceEpoch(); diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index 6583638..3a5fe34 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -67,21 +67,23 @@ ui->labTitle->setText(QString("钟差测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); - connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); - // kafka consumer - alarmMsgConsumer = new QKafkaConsumer(this); - alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); - alarmMsgConsumer->createConsumer(); - alarmMsgConsumer->start(); - connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + // kafka consumer + alarmMsgConsumer = new QKafkaConsumer(this); + alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); + alarmMsgConsumer->createConsumer(); + alarmMsgConsumer->start(); + connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + } // 绘制界面上的表格 initChannelForm(); diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index d52b5e2..45bee30 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -127,7 +127,11 @@ jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("master", SettingConfig::getInstance().MASTER); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 4b0eceb..6e2dddf 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -117,7 +117,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index 411e6d1..c7ec95f 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -132,7 +132,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 926c351..36522e0 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -152,7 +152,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 9363dc5..c30f351 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -138,7 +138,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index a6dc0d9..1a43418 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -131,7 +131,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index b2476f6..1291335 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -148,7 +148,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 32e1e6c..bdeadad 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -129,7 +129,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/PhaseCompAcq/PhaseDevice.cpp b/PhaseCompAcq/PhaseDevice.cpp index f8a6300..c5466bb 100644 --- a/PhaseCompAcq/PhaseDevice.cpp +++ b/PhaseCompAcq/PhaseDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } PhaseDevice::~PhaseDevice() @@ -72,11 +74,6 @@ this->serialUtil.sendData(startCmd.toLocal8Bit()); QThread::msleep(100); } - - // temp code: auto stop after started AUTO_STOP_TIME hour -// QTimer::singleShot(SettingConfig::getInstance().AUTO_STOP_TIME * 3600 * 1000, [=](){ -// stopWork(); -// }); } void PhaseDevice::stopWork() @@ -138,6 +135,7 @@ QLogUtil::writeRawDataLogByDate(date, filename, content); QJsonArray messageArray; + QString msgLogFilename = "msg_" + devCode + ".log"; // 2.2 各个通道的相差数据 for (int i = 1; i <= phaseData->channelActive.size(); i++) @@ -166,17 +164,23 @@ } // 3. 输出到中间件,执行后续处理过程 + QJsonObject statusObj = phaseData->toStatusJSON(); + statusObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); + statusObj.insert("deviceId", deviceId); + statusObj.insert("master", SettingConfig::getInstance().MASTER); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - QJsonObject statusObj = phaseData->toStatusJSON(); - statusObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - statusObj.insert("deviceId", deviceId); - statusObj.insert("master", SettingConfig::getInstance().MASTER); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(phaseData); } diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index 502cffe..a5fe898 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -154,7 +154,11 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); diff --git a/CounterRealTime/CounterDevice.cpp b/CounterRealTime/CounterDevice.cpp index c069623..10cc8ae 100644 --- a/CounterRealTime/CounterDevice.cpp +++ b/CounterRealTime/CounterDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() @@ -183,6 +185,7 @@ if (channelPtr != nullptr && channelPtr->isActive() == true) { // 通道时延值 并计算 减去时延值的测量值 + // 只处理绘图部分 界面显示部分在主线程端处理 存库部分在接收端后台处理 double delay = channelPtr->getDelays().isEmpty() == false ? channelPtr->getDelays().toDouble() : 0.0; double valueMinusDelay = counterData->channelDataArray.at(i-1).toDouble() - (delay * 1E-9) + (refDelay * 1E-9); channelPtr->appendHisData(QString::number(counterData->milisecond), QString::number(valueMinusDelay, 'f', 12)); @@ -205,15 +208,20 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); - QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(messageArray); } +// 计算分钟拟合值 暂时不再使用 void CounterDevice::calcResidualClockData(qlonglong tm) { qDebug() << devCode << " start: " << QDateTime::currentMSecsSinceEpoch(); diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index 6583638..3a5fe34 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -67,21 +67,23 @@ ui->labTitle->setText(QString("钟差测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); - connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); - // kafka consumer - alarmMsgConsumer = new QKafkaConsumer(this); - alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); - alarmMsgConsumer->createConsumer(); - alarmMsgConsumer->start(); - connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + // kafka consumer + alarmMsgConsumer = new QKafkaConsumer(this); + alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); + alarmMsgConsumer->createConsumer(); + alarmMsgConsumer->start(); + connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + } // 绘制界面上的表格 initChannelForm(); diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index d52b5e2..45bee30 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -127,7 +127,11 @@ jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("master", SettingConfig::getInstance().MASTER); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 4b0eceb..6e2dddf 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -117,7 +117,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index 411e6d1..c7ec95f 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -132,7 +132,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 926c351..36522e0 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -152,7 +152,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 9363dc5..c30f351 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -138,7 +138,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index a6dc0d9..1a43418 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -131,7 +131,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index b2476f6..1291335 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -148,7 +148,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 32e1e6c..bdeadad 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -129,7 +129,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/PhaseCompAcq/PhaseDevice.cpp b/PhaseCompAcq/PhaseDevice.cpp index f8a6300..c5466bb 100644 --- a/PhaseCompAcq/PhaseDevice.cpp +++ b/PhaseCompAcq/PhaseDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } PhaseDevice::~PhaseDevice() @@ -72,11 +74,6 @@ this->serialUtil.sendData(startCmd.toLocal8Bit()); QThread::msleep(100); } - - // temp code: auto stop after started AUTO_STOP_TIME hour -// QTimer::singleShot(SettingConfig::getInstance().AUTO_STOP_TIME * 3600 * 1000, [=](){ -// stopWork(); -// }); } void PhaseDevice::stopWork() @@ -138,6 +135,7 @@ QLogUtil::writeRawDataLogByDate(date, filename, content); QJsonArray messageArray; + QString msgLogFilename = "msg_" + devCode + ".log"; // 2.2 各个通道的相差数据 for (int i = 1; i <= phaseData->channelActive.size(); i++) @@ -166,17 +164,23 @@ } // 3. 输出到中间件,执行后续处理过程 + QJsonObject statusObj = phaseData->toStatusJSON(); + statusObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); + statusObj.insert("deviceId", deviceId); + statusObj.insert("master", SettingConfig::getInstance().MASTER); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - QJsonObject statusObj = phaseData->toStatusJSON(); - statusObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - statusObj.insert("deviceId", deviceId); - statusObj.insert("master", SettingConfig::getInstance().MASTER); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(phaseData); } diff --git a/PhaseCompAcq/PhaseWindow.cpp b/PhaseCompAcq/PhaseWindow.cpp index 916d816..514b271 100644 --- a/PhaseCompAcq/PhaseWindow.cpp +++ b/PhaseCompAcq/PhaseWindow.cpp @@ -37,6 +37,8 @@ ui->scrollArea->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + ui->logo->setText(QString("相位测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); + httpReq = new HttpRequestController(this); // 1. 获取访问接口需要的token int retCode = this->initHttpToken(); diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index 502cffe..a5fe898 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -154,7 +154,11 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); diff --git a/CounterRealTime/CounterDevice.cpp b/CounterRealTime/CounterDevice.cpp index c069623..10cc8ae 100644 --- a/CounterRealTime/CounterDevice.cpp +++ b/CounterRealTime/CounterDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() @@ -183,6 +185,7 @@ if (channelPtr != nullptr && channelPtr->isActive() == true) { // 通道时延值 并计算 减去时延值的测量值 + // 只处理绘图部分 界面显示部分在主线程端处理 存库部分在接收端后台处理 double delay = channelPtr->getDelays().isEmpty() == false ? channelPtr->getDelays().toDouble() : 0.0; double valueMinusDelay = counterData->channelDataArray.at(i-1).toDouble() - (delay * 1E-9) + (refDelay * 1E-9); channelPtr->appendHisData(QString::number(counterData->milisecond), QString::number(valueMinusDelay, 'f', 12)); @@ -205,15 +208,20 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); - QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(messageArray); } +// 计算分钟拟合值 暂时不再使用 void CounterDevice::calcResidualClockData(qlonglong tm) { qDebug() << devCode << " start: " << QDateTime::currentMSecsSinceEpoch(); diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index 6583638..3a5fe34 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -67,21 +67,23 @@ ui->labTitle->setText(QString("钟差测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); - connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); - // kafka consumer - alarmMsgConsumer = new QKafkaConsumer(this); - alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); - alarmMsgConsumer->createConsumer(); - alarmMsgConsumer->start(); - connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + // kafka consumer + alarmMsgConsumer = new QKafkaConsumer(this); + alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); + alarmMsgConsumer->createConsumer(); + alarmMsgConsumer->start(); + connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + } // 绘制界面上的表格 initChannelForm(); diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index d52b5e2..45bee30 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -127,7 +127,11 @@ jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("master", SettingConfig::getInstance().MASTER); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 4b0eceb..6e2dddf 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -117,7 +117,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index 411e6d1..c7ec95f 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -132,7 +132,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 926c351..36522e0 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -152,7 +152,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 9363dc5..c30f351 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -138,7 +138,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index a6dc0d9..1a43418 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -131,7 +131,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index b2476f6..1291335 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -148,7 +148,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 32e1e6c..bdeadad 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -129,7 +129,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/PhaseCompAcq/PhaseDevice.cpp b/PhaseCompAcq/PhaseDevice.cpp index f8a6300..c5466bb 100644 --- a/PhaseCompAcq/PhaseDevice.cpp +++ b/PhaseCompAcq/PhaseDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } PhaseDevice::~PhaseDevice() @@ -72,11 +74,6 @@ this->serialUtil.sendData(startCmd.toLocal8Bit()); QThread::msleep(100); } - - // temp code: auto stop after started AUTO_STOP_TIME hour -// QTimer::singleShot(SettingConfig::getInstance().AUTO_STOP_TIME * 3600 * 1000, [=](){ -// stopWork(); -// }); } void PhaseDevice::stopWork() @@ -138,6 +135,7 @@ QLogUtil::writeRawDataLogByDate(date, filename, content); QJsonArray messageArray; + QString msgLogFilename = "msg_" + devCode + ".log"; // 2.2 各个通道的相差数据 for (int i = 1; i <= phaseData->channelActive.size(); i++) @@ -166,17 +164,23 @@ } // 3. 输出到中间件,执行后续处理过程 + QJsonObject statusObj = phaseData->toStatusJSON(); + statusObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); + statusObj.insert("deviceId", deviceId); + statusObj.insert("master", SettingConfig::getInstance().MASTER); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - QJsonObject statusObj = phaseData->toStatusJSON(); - statusObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - statusObj.insert("deviceId", deviceId); - statusObj.insert("master", SettingConfig::getInstance().MASTER); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(phaseData); } diff --git a/PhaseCompAcq/PhaseWindow.cpp b/PhaseCompAcq/PhaseWindow.cpp index 916d816..514b271 100644 --- a/PhaseCompAcq/PhaseWindow.cpp +++ b/PhaseCompAcq/PhaseWindow.cpp @@ -37,6 +37,8 @@ ui->scrollArea->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + ui->logo->setText(QString("相位测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); + httpReq = new HttpRequestController(this); // 1. 获取访问接口需要的token int retCode = this->initHttpToken(); diff --git a/PhaseCompAcq/PhaseWindow.ui b/PhaseCompAcq/PhaseWindow.ui index 85c26c2..2df6062 100644 --- a/PhaseCompAcq/PhaseWindow.ui +++ b/PhaseCompAcq/PhaseWindow.ui @@ -51,7 +51,7 @@ - 400 + 450 10 250 40 @@ -61,7 +61,7 @@ - 250 + 300 0 150 60 @@ -104,7 +104,7 @@ 20 0 - 200 + 300 60 diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index 502cffe..a5fe898 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -154,7 +154,11 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); diff --git a/CounterRealTime/CounterDevice.cpp b/CounterRealTime/CounterDevice.cpp index c069623..10cc8ae 100644 --- a/CounterRealTime/CounterDevice.cpp +++ b/CounterRealTime/CounterDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() @@ -183,6 +185,7 @@ if (channelPtr != nullptr && channelPtr->isActive() == true) { // 通道时延值 并计算 减去时延值的测量值 + // 只处理绘图部分 界面显示部分在主线程端处理 存库部分在接收端后台处理 double delay = channelPtr->getDelays().isEmpty() == false ? channelPtr->getDelays().toDouble() : 0.0; double valueMinusDelay = counterData->channelDataArray.at(i-1).toDouble() - (delay * 1E-9) + (refDelay * 1E-9); channelPtr->appendHisData(QString::number(counterData->milisecond), QString::number(valueMinusDelay, 'f', 12)); @@ -205,15 +208,20 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); - QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(messageArray); } +// 计算分钟拟合值 暂时不再使用 void CounterDevice::calcResidualClockData(qlonglong tm) { qDebug() << devCode << " start: " << QDateTime::currentMSecsSinceEpoch(); diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index 6583638..3a5fe34 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -67,21 +67,23 @@ ui->labTitle->setText(QString("钟差测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); - connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); - // kafka consumer - alarmMsgConsumer = new QKafkaConsumer(this); - alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); - alarmMsgConsumer->createConsumer(); - alarmMsgConsumer->start(); - connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + // kafka consumer + alarmMsgConsumer = new QKafkaConsumer(this); + alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); + alarmMsgConsumer->createConsumer(); + alarmMsgConsumer->start(); + connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + } // 绘制界面上的表格 initChannelForm(); diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index d52b5e2..45bee30 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -127,7 +127,11 @@ jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("master", SettingConfig::getInstance().MASTER); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 4b0eceb..6e2dddf 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -117,7 +117,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index 411e6d1..c7ec95f 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -132,7 +132,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 926c351..36522e0 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -152,7 +152,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 9363dc5..c30f351 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -138,7 +138,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index a6dc0d9..1a43418 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -131,7 +131,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index b2476f6..1291335 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -148,7 +148,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 32e1e6c..bdeadad 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -129,7 +129,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/PhaseCompAcq/PhaseDevice.cpp b/PhaseCompAcq/PhaseDevice.cpp index f8a6300..c5466bb 100644 --- a/PhaseCompAcq/PhaseDevice.cpp +++ b/PhaseCompAcq/PhaseDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } PhaseDevice::~PhaseDevice() @@ -72,11 +74,6 @@ this->serialUtil.sendData(startCmd.toLocal8Bit()); QThread::msleep(100); } - - // temp code: auto stop after started AUTO_STOP_TIME hour -// QTimer::singleShot(SettingConfig::getInstance().AUTO_STOP_TIME * 3600 * 1000, [=](){ -// stopWork(); -// }); } void PhaseDevice::stopWork() @@ -138,6 +135,7 @@ QLogUtil::writeRawDataLogByDate(date, filename, content); QJsonArray messageArray; + QString msgLogFilename = "msg_" + devCode + ".log"; // 2.2 各个通道的相差数据 for (int i = 1; i <= phaseData->channelActive.size(); i++) @@ -166,17 +164,23 @@ } // 3. 输出到中间件,执行后续处理过程 + QJsonObject statusObj = phaseData->toStatusJSON(); + statusObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); + statusObj.insert("deviceId", deviceId); + statusObj.insert("master", SettingConfig::getInstance().MASTER); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - QJsonObject statusObj = phaseData->toStatusJSON(); - statusObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - statusObj.insert("deviceId", deviceId); - statusObj.insert("master", SettingConfig::getInstance().MASTER); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(phaseData); } diff --git a/PhaseCompAcq/PhaseWindow.cpp b/PhaseCompAcq/PhaseWindow.cpp index 916d816..514b271 100644 --- a/PhaseCompAcq/PhaseWindow.cpp +++ b/PhaseCompAcq/PhaseWindow.cpp @@ -37,6 +37,8 @@ ui->scrollArea->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + ui->logo->setText(QString("相位测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); + httpReq = new HttpRequestController(this); // 1. 获取访问接口需要的token int retCode = this->initHttpToken(); diff --git a/PhaseCompAcq/PhaseWindow.ui b/PhaseCompAcq/PhaseWindow.ui index 85c26c2..2df6062 100644 --- a/PhaseCompAcq/PhaseWindow.ui +++ b/PhaseCompAcq/PhaseWindow.ui @@ -51,7 +51,7 @@ - 400 + 450 10 250 40 @@ -61,7 +61,7 @@ - 250 + 300 0 150 60 @@ -104,7 +104,7 @@ 20 0 - 200 + 300 60 diff --git a/PhaseCompAcq/common/utils/QKafkaUtil.cpp b/PhaseCompAcq/common/utils/QKafkaUtil.cpp index 17f10c0..2ebd237 100644 --- a/PhaseCompAcq/common/utils/QKafkaUtil.cpp +++ b/PhaseCompAcq/common/utils/QKafkaUtil.cpp @@ -65,8 +65,8 @@ RdKafka::err2str(retCode) << std::endl; } else { - std::cerr << "Enqueued message (" << message.size() << " bytes) " << - "for topic " << topic.toStdString() << "[" << message.toStdString() <<"]" << std::endl; +// std::cerr << "Enqueued message (" << message.size() << " bytes) " << +// "for topic " << topic.toStdString() << "[" << message.toStdString() <<"]" << std::endl; } return retCode; diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index 502cffe..a5fe898 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -154,7 +154,11 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); diff --git a/CounterRealTime/CounterDevice.cpp b/CounterRealTime/CounterDevice.cpp index c069623..10cc8ae 100644 --- a/CounterRealTime/CounterDevice.cpp +++ b/CounterRealTime/CounterDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() @@ -183,6 +185,7 @@ if (channelPtr != nullptr && channelPtr->isActive() == true) { // 通道时延值 并计算 减去时延值的测量值 + // 只处理绘图部分 界面显示部分在主线程端处理 存库部分在接收端后台处理 double delay = channelPtr->getDelays().isEmpty() == false ? channelPtr->getDelays().toDouble() : 0.0; double valueMinusDelay = counterData->channelDataArray.at(i-1).toDouble() - (delay * 1E-9) + (refDelay * 1E-9); channelPtr->appendHisData(QString::number(counterData->milisecond), QString::number(valueMinusDelay, 'f', 12)); @@ -205,15 +208,20 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); - QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(messageArray); } +// 计算分钟拟合值 暂时不再使用 void CounterDevice::calcResidualClockData(qlonglong tm) { qDebug() << devCode << " start: " << QDateTime::currentMSecsSinceEpoch(); diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index 6583638..3a5fe34 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -67,21 +67,23 @@ ui->labTitle->setText(QString("钟差测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); - connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); - // kafka consumer - alarmMsgConsumer = new QKafkaConsumer(this); - alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); - alarmMsgConsumer->createConsumer(); - alarmMsgConsumer->start(); - connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + // kafka consumer + alarmMsgConsumer = new QKafkaConsumer(this); + alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); + alarmMsgConsumer->createConsumer(); + alarmMsgConsumer->start(); + connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + } // 绘制界面上的表格 initChannelForm(); diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index d52b5e2..45bee30 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -127,7 +127,11 @@ jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("master", SettingConfig::getInstance().MASTER); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 4b0eceb..6e2dddf 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -117,7 +117,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index 411e6d1..c7ec95f 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -132,7 +132,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 926c351..36522e0 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -152,7 +152,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 9363dc5..c30f351 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -138,7 +138,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index a6dc0d9..1a43418 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -131,7 +131,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index b2476f6..1291335 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -148,7 +148,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 32e1e6c..bdeadad 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -129,7 +129,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/PhaseCompAcq/PhaseDevice.cpp b/PhaseCompAcq/PhaseDevice.cpp index f8a6300..c5466bb 100644 --- a/PhaseCompAcq/PhaseDevice.cpp +++ b/PhaseCompAcq/PhaseDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } PhaseDevice::~PhaseDevice() @@ -72,11 +74,6 @@ this->serialUtil.sendData(startCmd.toLocal8Bit()); QThread::msleep(100); } - - // temp code: auto stop after started AUTO_STOP_TIME hour -// QTimer::singleShot(SettingConfig::getInstance().AUTO_STOP_TIME * 3600 * 1000, [=](){ -// stopWork(); -// }); } void PhaseDevice::stopWork() @@ -138,6 +135,7 @@ QLogUtil::writeRawDataLogByDate(date, filename, content); QJsonArray messageArray; + QString msgLogFilename = "msg_" + devCode + ".log"; // 2.2 各个通道的相差数据 for (int i = 1; i <= phaseData->channelActive.size(); i++) @@ -166,17 +164,23 @@ } // 3. 输出到中间件,执行后续处理过程 + QJsonObject statusObj = phaseData->toStatusJSON(); + statusObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); + statusObj.insert("deviceId", deviceId); + statusObj.insert("master", SettingConfig::getInstance().MASTER); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - QJsonObject statusObj = phaseData->toStatusJSON(); - statusObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - statusObj.insert("deviceId", deviceId); - statusObj.insert("master", SettingConfig::getInstance().MASTER); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(phaseData); } diff --git a/PhaseCompAcq/PhaseWindow.cpp b/PhaseCompAcq/PhaseWindow.cpp index 916d816..514b271 100644 --- a/PhaseCompAcq/PhaseWindow.cpp +++ b/PhaseCompAcq/PhaseWindow.cpp @@ -37,6 +37,8 @@ ui->scrollArea->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + ui->logo->setText(QString("相位测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); + httpReq = new HttpRequestController(this); // 1. 获取访问接口需要的token int retCode = this->initHttpToken(); diff --git a/PhaseCompAcq/PhaseWindow.ui b/PhaseCompAcq/PhaseWindow.ui index 85c26c2..2df6062 100644 --- a/PhaseCompAcq/PhaseWindow.ui +++ b/PhaseCompAcq/PhaseWindow.ui @@ -51,7 +51,7 @@ - 400 + 450 10 250 40 @@ -61,7 +61,7 @@ - 250 + 300 0 150 60 @@ -104,7 +104,7 @@ 20 0 - 200 + 300 60 diff --git a/PhaseCompAcq/common/utils/QKafkaUtil.cpp b/PhaseCompAcq/common/utils/QKafkaUtil.cpp index 17f10c0..2ebd237 100644 --- a/PhaseCompAcq/common/utils/QKafkaUtil.cpp +++ b/PhaseCompAcq/common/utils/QKafkaUtil.cpp @@ -65,8 +65,8 @@ RdKafka::err2str(retCode) << std::endl; } else { - std::cerr << "Enqueued message (" << message.size() << " bytes) " << - "for topic " << topic.toStdString() << "[" << message.toStdString() <<"]" << std::endl; +// std::cerr << "Enqueued message (" << message.size() << " bytes) " << +// "for topic " << topic.toStdString() << "[" << message.toStdString() <<"]" << std::endl; } return retCode; diff --git a/PhaseCompAcq/common/utils/QSerialPortUtil.cpp b/PhaseCompAcq/common/utils/QSerialPortUtil.cpp index cca499f..6b8c44e 100644 --- a/PhaseCompAcq/common/utils/QSerialPortUtil.cpp +++ b/PhaseCompAcq/common/utils/QSerialPortUtil.cpp @@ -44,7 +44,7 @@ void QSerialPortUtil::sendData(QByteArray data) { - std::cout << data.toStdString() << std::endl; + // std::cout << data.toStdString() << std::endl; if (this->open == true) { serial.write(data); diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index 502cffe..a5fe898 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -154,7 +154,11 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); diff --git a/CounterRealTime/CounterDevice.cpp b/CounterRealTime/CounterDevice.cpp index c069623..10cc8ae 100644 --- a/CounterRealTime/CounterDevice.cpp +++ b/CounterRealTime/CounterDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() @@ -183,6 +185,7 @@ if (channelPtr != nullptr && channelPtr->isActive() == true) { // 通道时延值 并计算 减去时延值的测量值 + // 只处理绘图部分 界面显示部分在主线程端处理 存库部分在接收端后台处理 double delay = channelPtr->getDelays().isEmpty() == false ? channelPtr->getDelays().toDouble() : 0.0; double valueMinusDelay = counterData->channelDataArray.at(i-1).toDouble() - (delay * 1E-9) + (refDelay * 1E-9); channelPtr->appendHisData(QString::number(counterData->milisecond), QString::number(valueMinusDelay, 'f', 12)); @@ -205,15 +208,20 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); - QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(messageArray); } +// 计算分钟拟合值 暂时不再使用 void CounterDevice::calcResidualClockData(qlonglong tm) { qDebug() << devCode << " start: " << QDateTime::currentMSecsSinceEpoch(); diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index 6583638..3a5fe34 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -67,21 +67,23 @@ ui->labTitle->setText(QString("钟差测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); - connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); - // kafka consumer - alarmMsgConsumer = new QKafkaConsumer(this); - alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); - alarmMsgConsumer->createConsumer(); - alarmMsgConsumer->start(); - connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + // kafka consumer + alarmMsgConsumer = new QKafkaConsumer(this); + alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); + alarmMsgConsumer->createConsumer(); + alarmMsgConsumer->start(); + connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + } // 绘制界面上的表格 initChannelForm(); diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index d52b5e2..45bee30 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -127,7 +127,11 @@ jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("master", SettingConfig::getInstance().MASTER); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 4b0eceb..6e2dddf 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -117,7 +117,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index 411e6d1..c7ec95f 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -132,7 +132,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 926c351..36522e0 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -152,7 +152,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 9363dc5..c30f351 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -138,7 +138,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index a6dc0d9..1a43418 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -131,7 +131,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index b2476f6..1291335 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -148,7 +148,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 32e1e6c..bdeadad 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -129,7 +129,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/PhaseCompAcq/PhaseDevice.cpp b/PhaseCompAcq/PhaseDevice.cpp index f8a6300..c5466bb 100644 --- a/PhaseCompAcq/PhaseDevice.cpp +++ b/PhaseCompAcq/PhaseDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } PhaseDevice::~PhaseDevice() @@ -72,11 +74,6 @@ this->serialUtil.sendData(startCmd.toLocal8Bit()); QThread::msleep(100); } - - // temp code: auto stop after started AUTO_STOP_TIME hour -// QTimer::singleShot(SettingConfig::getInstance().AUTO_STOP_TIME * 3600 * 1000, [=](){ -// stopWork(); -// }); } void PhaseDevice::stopWork() @@ -138,6 +135,7 @@ QLogUtil::writeRawDataLogByDate(date, filename, content); QJsonArray messageArray; + QString msgLogFilename = "msg_" + devCode + ".log"; // 2.2 各个通道的相差数据 for (int i = 1; i <= phaseData->channelActive.size(); i++) @@ -166,17 +164,23 @@ } // 3. 输出到中间件,执行后续处理过程 + QJsonObject statusObj = phaseData->toStatusJSON(); + statusObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); + statusObj.insert("deviceId", deviceId); + statusObj.insert("master", SettingConfig::getInstance().MASTER); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - QJsonObject statusObj = phaseData->toStatusJSON(); - statusObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - statusObj.insert("deviceId", deviceId); - statusObj.insert("master", SettingConfig::getInstance().MASTER); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(phaseData); } diff --git a/PhaseCompAcq/PhaseWindow.cpp b/PhaseCompAcq/PhaseWindow.cpp index 916d816..514b271 100644 --- a/PhaseCompAcq/PhaseWindow.cpp +++ b/PhaseCompAcq/PhaseWindow.cpp @@ -37,6 +37,8 @@ ui->scrollArea->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + ui->logo->setText(QString("相位测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); + httpReq = new HttpRequestController(this); // 1. 获取访问接口需要的token int retCode = this->initHttpToken(); diff --git a/PhaseCompAcq/PhaseWindow.ui b/PhaseCompAcq/PhaseWindow.ui index 85c26c2..2df6062 100644 --- a/PhaseCompAcq/PhaseWindow.ui +++ b/PhaseCompAcq/PhaseWindow.ui @@ -51,7 +51,7 @@ - 400 + 450 10 250 40 @@ -61,7 +61,7 @@ - 250 + 300 0 150 60 @@ -104,7 +104,7 @@ 20 0 - 200 + 300 60 diff --git a/PhaseCompAcq/common/utils/QKafkaUtil.cpp b/PhaseCompAcq/common/utils/QKafkaUtil.cpp index 17f10c0..2ebd237 100644 --- a/PhaseCompAcq/common/utils/QKafkaUtil.cpp +++ b/PhaseCompAcq/common/utils/QKafkaUtil.cpp @@ -65,8 +65,8 @@ RdKafka::err2str(retCode) << std::endl; } else { - std::cerr << "Enqueued message (" << message.size() << " bytes) " << - "for topic " << topic.toStdString() << "[" << message.toStdString() <<"]" << std::endl; +// std::cerr << "Enqueued message (" << message.size() << " bytes) " << +// "for topic " << topic.toStdString() << "[" << message.toStdString() <<"]" << std::endl; } return retCode; diff --git a/PhaseCompAcq/common/utils/QSerialPortUtil.cpp b/PhaseCompAcq/common/utils/QSerialPortUtil.cpp index cca499f..6b8c44e 100644 --- a/PhaseCompAcq/common/utils/QSerialPortUtil.cpp +++ b/PhaseCompAcq/common/utils/QSerialPortUtil.cpp @@ -44,7 +44,7 @@ void QSerialPortUtil::sendData(QByteArray data) { - std::cout << data.toStdString() << std::endl; + // std::cout << data.toStdString() << std::endl; if (this->open == true) { serial.write(data); diff --git a/PhaseCompAcq/protocol/PhaseProtocolBM.cpp b/PhaseCompAcq/protocol/PhaseProtocolBM.cpp index fd6229c..b70b72c 100644 --- a/PhaseCompAcq/protocol/PhaseProtocolBM.cpp +++ b/PhaseCompAcq/protocol/PhaseProtocolBM.cpp @@ -46,14 +46,14 @@ dataObj->channelActive.append("1"); dataObj->channelData.append(phase); dataObj->channelDataStr.append(QString::number(phase, 'f', 15)); - dataObj->channelRawDataStr.append(QString::number((channelRawData - CALCULATE_OFFSET))); + dataObj->channelRawDataStr.append(QString::number((channelRawData - CALCULATE_OFFSET), 'f', 0)); } else { - double phase = -(CALCULATE_OFFSET - channelRawData) * CALCULATE_FACTOR; // rawData是无符号long 相位有正有负 小于CALCULATE_OFFSET时是负值 + double phase = -1.0 * (CALCULATE_OFFSET - channelRawData) * CALCULATE_FACTOR; // rawData是无符号long 相位有正有负 小于CALCULATE_OFFSET时是负值 dataObj->channelActive.append("1"); dataObj->channelData.append(phase); dataObj->channelDataStr.append(QString::number(phase, 'f', 15)); - dataObj->channelRawDataStr.append(QString::number((channelRawData - CALCULATE_OFFSET))); + dataObj->channelRawDataStr.append(QString::number(-1.0 * (CALCULATE_OFFSET - channelRawData), 'f', 0)); } } diff --git a/CounterAcq/CounterDevice.cpp b/CounterAcq/CounterDevice.cpp index 502cffe..a5fe898 100644 --- a/CounterAcq/CounterDevice.cpp +++ b/CounterAcq/CounterDevice.cpp @@ -154,7 +154,11 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); diff --git a/CounterRealTime/CounterDevice.cpp b/CounterRealTime/CounterDevice.cpp index c069623..10cc8ae 100644 --- a/CounterRealTime/CounterDevice.cpp +++ b/CounterRealTime/CounterDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &CounterDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } CounterDevice::~CounterDevice() @@ -183,6 +185,7 @@ if (channelPtr != nullptr && channelPtr->isActive() == true) { // 通道时延值 并计算 减去时延值的测量值 + // 只处理绘图部分 界面显示部分在主线程端处理 存库部分在接收端后台处理 double delay = channelPtr->getDelays().isEmpty() == false ? channelPtr->getDelays().toDouble() : 0.0; double valueMinusDelay = counterData->channelDataArray.at(i-1).toDouble() - (delay * 1E-9) + (refDelay * 1E-9); channelPtr->appendHisData(QString::number(counterData->milisecond), QString::number(valueMinusDelay, 'f', 12)); @@ -205,15 +208,20 @@ if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); - QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(messageArray); } +// 计算分钟拟合值 暂时不再使用 void CounterDevice::calcResidualClockData(qlonglong tm) { qDebug() << devCode << " start: " << QDateTime::currentMSecsSinceEpoch(); diff --git a/CounterRealTime/CounterWindowRT.cpp b/CounterRealTime/CounterWindowRT.cpp index 6583638..3a5fe34 100644 --- a/CounterRealTime/CounterWindowRT.cpp +++ b/CounterRealTime/CounterWindowRT.cpp @@ -67,21 +67,23 @@ ui->labTitle->setText(QString("钟差测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); - connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_MSG_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + connect(kafkaConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onKafkaMessageReceived); - // kafka consumer - alarmMsgConsumer = new QKafkaConsumer(this); - alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); - alarmMsgConsumer->createConsumer(); - alarmMsgConsumer->start(); - connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + // kafka consumer + alarmMsgConsumer = new QKafkaConsumer(this); + alarmMsgConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + alarmMsgConsumer->setTopic(SettingConfig::getInstance().KAFKA_ALARM_TOPIC); + alarmMsgConsumer->createConsumer(); + alarmMsgConsumer->start(); + connect(alarmMsgConsumer, &QKafkaConsumer::messageRecieved, this, &CounterWindowRT::onAlarmMessageReceived); + } // 绘制界面上的表格 initChannelForm(); diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index d52b5e2..45bee30 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -127,7 +127,11 @@ jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("master", SettingConfig::getInstance().MASTER); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 4b0eceb..6e2dddf 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -117,7 +117,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index 411e6d1..c7ec95f 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -132,7 +132,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 926c351..36522e0 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -152,7 +152,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 9363dc5..c30f351 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -138,7 +138,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index a6dc0d9..1a43418 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -131,7 +131,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index b2476f6..1291335 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -148,7 +148,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 32e1e6c..bdeadad 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -129,7 +129,11 @@ QJsonObject jsonObj = frameDto->toJSON(); jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); jsonObj.insert("deviceId", deviceId); - kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaProducer.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); + } } // 4. 在界面上简单显示相差数据结果 diff --git a/PhaseCompAcq/PhaseDevice.cpp b/PhaseCompAcq/PhaseDevice.cpp index f8a6300..c5466bb 100644 --- a/PhaseCompAcq/PhaseDevice.cpp +++ b/PhaseCompAcq/PhaseDevice.cpp @@ -9,9 +9,11 @@ connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaUtil.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaUtil.createProducer(); + } } PhaseDevice::~PhaseDevice() @@ -72,11 +74,6 @@ this->serialUtil.sendData(startCmd.toLocal8Bit()); QThread::msleep(100); } - - // temp code: auto stop after started AUTO_STOP_TIME hour -// QTimer::singleShot(SettingConfig::getInstance().AUTO_STOP_TIME * 3600 * 1000, [=](){ -// stopWork(); -// }); } void PhaseDevice::stopWork() @@ -138,6 +135,7 @@ QLogUtil::writeRawDataLogByDate(date, filename, content); QJsonArray messageArray; + QString msgLogFilename = "msg_" + devCode + ".log"; // 2.2 各个通道的相差数据 for (int i = 1; i <= phaseData->channelActive.size(); i++) @@ -166,17 +164,23 @@ } // 3. 输出到中间件,执行后续处理过程 + QJsonObject statusObj = phaseData->toStatusJSON(); + statusObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); + statusObj.insert("deviceId", deviceId); + statusObj.insert("master", SettingConfig::getInstance().MASTER); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { kafkaUtil.produceMessage(QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); - QJsonObject statusObj = phaseData->toStatusJSON(); - statusObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - statusObj.insert("deviceId", deviceId); - statusObj.insert("master", SettingConfig::getInstance().MASTER); - kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + // 每10秒发送一次设备状态信息 + if (QDateTime::currentDateTime().time().second() % 10 == 0) { + kafkaUtil.produceMessage(SettingConfig::getInstance().KAFKA_STATUS_TOPIC, QString(QJsonDocument(statusObj).toJson(QJsonDocument::Compact))); + } } + QLogUtil::writeChannelDataLogByDate(date, msgLogFilename, QString(QJsonDocument(messageArray).toJson(QJsonDocument::Compact))); + // 4. 在界面上简单显示相差数据结果 emit this->sendDataToDraw(phaseData); } diff --git a/PhaseCompAcq/PhaseWindow.cpp b/PhaseCompAcq/PhaseWindow.cpp index 916d816..514b271 100644 --- a/PhaseCompAcq/PhaseWindow.cpp +++ b/PhaseCompAcq/PhaseWindow.cpp @@ -37,6 +37,8 @@ ui->scrollArea->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + ui->logo->setText(QString("相位测量数据采集软件——%1").arg(SettingConfig::getInstance().MASTER == 1 ? "主" : "备")); + httpReq = new HttpRequestController(this); // 1. 获取访问接口需要的token int retCode = this->initHttpToken(); diff --git a/PhaseCompAcq/PhaseWindow.ui b/PhaseCompAcq/PhaseWindow.ui index 85c26c2..2df6062 100644 --- a/PhaseCompAcq/PhaseWindow.ui +++ b/PhaseCompAcq/PhaseWindow.ui @@ -51,7 +51,7 @@ - 400 + 450 10 250 40 @@ -61,7 +61,7 @@ - 250 + 300 0 150 60 @@ -104,7 +104,7 @@ 20 0 - 200 + 300 60 diff --git a/PhaseCompAcq/common/utils/QKafkaUtil.cpp b/PhaseCompAcq/common/utils/QKafkaUtil.cpp index 17f10c0..2ebd237 100644 --- a/PhaseCompAcq/common/utils/QKafkaUtil.cpp +++ b/PhaseCompAcq/common/utils/QKafkaUtil.cpp @@ -65,8 +65,8 @@ RdKafka::err2str(retCode) << std::endl; } else { - std::cerr << "Enqueued message (" << message.size() << " bytes) " << - "for topic " << topic.toStdString() << "[" << message.toStdString() <<"]" << std::endl; +// std::cerr << "Enqueued message (" << message.size() << " bytes) " << +// "for topic " << topic.toStdString() << "[" << message.toStdString() <<"]" << std::endl; } return retCode; diff --git a/PhaseCompAcq/common/utils/QSerialPortUtil.cpp b/PhaseCompAcq/common/utils/QSerialPortUtil.cpp index cca499f..6b8c44e 100644 --- a/PhaseCompAcq/common/utils/QSerialPortUtil.cpp +++ b/PhaseCompAcq/common/utils/QSerialPortUtil.cpp @@ -44,7 +44,7 @@ void QSerialPortUtil::sendData(QByteArray data) { - std::cout << data.toStdString() << std::endl; + // std::cout << data.toStdString() << std::endl; if (this->open == true) { serial.write(data); diff --git a/PhaseCompAcq/protocol/PhaseProtocolBM.cpp b/PhaseCompAcq/protocol/PhaseProtocolBM.cpp index fd6229c..b70b72c 100644 --- a/PhaseCompAcq/protocol/PhaseProtocolBM.cpp +++ b/PhaseCompAcq/protocol/PhaseProtocolBM.cpp @@ -46,14 +46,14 @@ dataObj->channelActive.append("1"); dataObj->channelData.append(phase); dataObj->channelDataStr.append(QString::number(phase, 'f', 15)); - dataObj->channelRawDataStr.append(QString::number((channelRawData - CALCULATE_OFFSET))); + dataObj->channelRawDataStr.append(QString::number((channelRawData - CALCULATE_OFFSET), 'f', 0)); } else { - double phase = -(CALCULATE_OFFSET - channelRawData) * CALCULATE_FACTOR; // rawData是无符号long 相位有正有负 小于CALCULATE_OFFSET时是负值 + double phase = -1.0 * (CALCULATE_OFFSET - channelRawData) * CALCULATE_FACTOR; // rawData是无符号long 相位有正有负 小于CALCULATE_OFFSET时是负值 dataObj->channelActive.append("1"); dataObj->channelData.append(phase); dataObj->channelDataStr.append(QString::number(phase, 'f', 15)); - dataObj->channelRawDataStr.append(QString::number((channelRawData - CALCULATE_OFFSET))); + dataObj->channelRawDataStr.append(QString::number(-1.0 * (CALCULATE_OFFSET - channelRawData), 'f', 0)); } } diff --git a/ZXSSCJ.pro b/ZXSSCJ.pro index 56718ba..26983b2 100644 --- a/ZXSSCJ.pro +++ b/ZXSSCJ.pro @@ -8,7 +8,7 @@ SUBDIRS += CounterRealTime SUBDIRS += PhaseCompAcq #比相仪数据采集 #SUBDIRS += DevStatusAcq -#SUBDIRS += DeviceHub # +SUBDIRS += DeviceHub # #SUBDIRS += HClockAcq #氢钟状态数据采集 -SUBDIRS += ClockUtils #钟差数据处理小工具 +#SUBDIRS += ClockUtils #钟差数据处理小工具