diff --git a/ChannelItem.ui b/ChannelItem.ui index 897632a..1b750a3 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -255,7 +255,7 @@ - 1000 + 10000 diff --git a/ChannelItem.ui b/ChannelItem.ui index 897632a..1b750a3 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -255,7 +255,7 @@ - 1000 + 10000 diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 90f1b4d..58674c7 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -1,31 +1,21 @@ #include "PhaseDevice.h" +#include "common/utils/QLogUtil.h" #include #include PhaseDevice::PhaseDevice(QObject *parent) : QObject(parent) { - connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, + clientUtil = new UDPClientUtil(this); + connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - -// kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); -// kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); -// kafkaUtil.createProducer(); } PhaseDevice::~PhaseDevice() { - disconnect(&this->serialUtil, &QSerialPortUtil::dataRecieved, - this, &PhaseDevice::dataReceivedHandler); + } -void PhaseDevice::setComName(QString comName) -{ - this->comName = comName; -} -void PhaseDevice::setBaudRate(int baudRate) -{ - this->baudRate = baudRate; -} + QString PhaseDevice::getDevCode() { return this->devCode; @@ -39,25 +29,17 @@ this->deviceId = deviceId; } -bool PhaseDevice::isSerialOpen() -{ - return this->serialUtil.isOpen(); -} - -void PhaseDevice::initSerialPort() -{ - this->serialUtil.openSerialPort(this->comName, this->baudRate); -} void PhaseDevice::startWork() { - QString startCommand = PhaseProtocolBM::startMessure(); - this->serialUtil.sendData(startCommand.toLocal8Bit()); + QString startCmd = PhaseProtocolBM::startMessure(); + clientUtil->sendData(startCmd.toLocal8Bit()); } void PhaseDevice::stopWork() { - + QString stopCmd = PhaseProtocolBM::stopMessure(); + clientUtil->sendData(stopCmd.toLocal8Bit()); } void PhaseDevice::dataReceivedHandler(QByteArray data) @@ -125,15 +107,6 @@ QString channelDataStr = QString("%1 [%2] %3").arg(phaseData->timestamp).arg(phaseData->frameId).arg(phaseData->channelDataStr.at(i-1)); QLogUtil::writeChannelDataLogByDate(date, chFilename, channelDataStr); - - // 3. 输出到中间件,执行后续处理过程 - if (SettingConfig::getInstance().NEED_KAFKA == 1) - { - QJsonObject jsonObj = phaseData->toJSON(i - 1); - jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - jsonObj.insert("deviceId", deviceId); -// kafkaUtil.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); - } } } diff --git a/ChannelItem.ui b/ChannelItem.ui index 897632a..1b750a3 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -255,7 +255,7 @@ - 1000 + 10000 diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 90f1b4d..58674c7 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -1,31 +1,21 @@ #include "PhaseDevice.h" +#include "common/utils/QLogUtil.h" #include #include PhaseDevice::PhaseDevice(QObject *parent) : QObject(parent) { - connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, + clientUtil = new UDPClientUtil(this); + connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - -// kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); -// kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); -// kafkaUtil.createProducer(); } PhaseDevice::~PhaseDevice() { - disconnect(&this->serialUtil, &QSerialPortUtil::dataRecieved, - this, &PhaseDevice::dataReceivedHandler); + } -void PhaseDevice::setComName(QString comName) -{ - this->comName = comName; -} -void PhaseDevice::setBaudRate(int baudRate) -{ - this->baudRate = baudRate; -} + QString PhaseDevice::getDevCode() { return this->devCode; @@ -39,25 +29,17 @@ this->deviceId = deviceId; } -bool PhaseDevice::isSerialOpen() -{ - return this->serialUtil.isOpen(); -} - -void PhaseDevice::initSerialPort() -{ - this->serialUtil.openSerialPort(this->comName, this->baudRate); -} void PhaseDevice::startWork() { - QString startCommand = PhaseProtocolBM::startMessure(); - this->serialUtil.sendData(startCommand.toLocal8Bit()); + QString startCmd = PhaseProtocolBM::startMessure(); + clientUtil->sendData(startCmd.toLocal8Bit()); } void PhaseDevice::stopWork() { - + QString stopCmd = PhaseProtocolBM::stopMessure(); + clientUtil->sendData(stopCmd.toLocal8Bit()); } void PhaseDevice::dataReceivedHandler(QByteArray data) @@ -125,15 +107,6 @@ QString channelDataStr = QString("%1 [%2] %3").arg(phaseData->timestamp).arg(phaseData->frameId).arg(phaseData->channelDataStr.at(i-1)); QLogUtil::writeChannelDataLogByDate(date, chFilename, channelDataStr); - - // 3. 输出到中间件,执行后续处理过程 - if (SettingConfig::getInstance().NEED_KAFKA == 1) - { - QJsonObject jsonObj = phaseData->toJSON(i - 1); - jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - jsonObj.insert("deviceId", deviceId); -// kafkaUtil.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); - } } } diff --git a/PhaseDevice.h b/PhaseDevice.h index aa7d822..f69839c 100644 --- a/PhaseDevice.h +++ b/PhaseDevice.h @@ -2,10 +2,8 @@ #define PHASEDEVICE_H #include -#include "common/utils/QSerialPortUtil.h" -#include "common/utils/QLogUtil.h" #include "common/utils/SettingConfig.h" -//#include "common/utils/QKafkaUtil.h" +#include "common/utils/UDPClientUtil.h" #include "protocol/PhaseProtocolBM.h" class PhaseDevice : public QObject @@ -15,14 +13,11 @@ explicit PhaseDevice(QObject *parent = nullptr); ~PhaseDevice(); - void initSerialPort(); void startWork(); void stopWork(); void afterFramePhase(PhaseDataDto * phaseData); - void setComName(QString comName); - void setBaudRate(int baudRate); QString getDevCode(); void setDevCode(QString devCode); void setDeviceId(QString deviceId); @@ -31,11 +26,9 @@ private: QString deviceId; QString devCode; - QString comName; - int baudRate; - QSerialPortUtil serialUtil; -// QKafkaUtil kafkaUtil; + UDPClientUtil * clientUtil; + QByteArray dataBuff; signals: diff --git a/ChannelItem.ui b/ChannelItem.ui index 897632a..1b750a3 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -255,7 +255,7 @@ - 1000 + 10000 diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 90f1b4d..58674c7 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -1,31 +1,21 @@ #include "PhaseDevice.h" +#include "common/utils/QLogUtil.h" #include #include PhaseDevice::PhaseDevice(QObject *parent) : QObject(parent) { - connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, + clientUtil = new UDPClientUtil(this); + connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - -// kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); -// kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); -// kafkaUtil.createProducer(); } PhaseDevice::~PhaseDevice() { - disconnect(&this->serialUtil, &QSerialPortUtil::dataRecieved, - this, &PhaseDevice::dataReceivedHandler); + } -void PhaseDevice::setComName(QString comName) -{ - this->comName = comName; -} -void PhaseDevice::setBaudRate(int baudRate) -{ - this->baudRate = baudRate; -} + QString PhaseDevice::getDevCode() { return this->devCode; @@ -39,25 +29,17 @@ this->deviceId = deviceId; } -bool PhaseDevice::isSerialOpen() -{ - return this->serialUtil.isOpen(); -} - -void PhaseDevice::initSerialPort() -{ - this->serialUtil.openSerialPort(this->comName, this->baudRate); -} void PhaseDevice::startWork() { - QString startCommand = PhaseProtocolBM::startMessure(); - this->serialUtil.sendData(startCommand.toLocal8Bit()); + QString startCmd = PhaseProtocolBM::startMessure(); + clientUtil->sendData(startCmd.toLocal8Bit()); } void PhaseDevice::stopWork() { - + QString stopCmd = PhaseProtocolBM::stopMessure(); + clientUtil->sendData(stopCmd.toLocal8Bit()); } void PhaseDevice::dataReceivedHandler(QByteArray data) @@ -125,15 +107,6 @@ QString channelDataStr = QString("%1 [%2] %3").arg(phaseData->timestamp).arg(phaseData->frameId).arg(phaseData->channelDataStr.at(i-1)); QLogUtil::writeChannelDataLogByDate(date, chFilename, channelDataStr); - - // 3. 输出到中间件,执行后续处理过程 - if (SettingConfig::getInstance().NEED_KAFKA == 1) - { - QJsonObject jsonObj = phaseData->toJSON(i - 1); - jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - jsonObj.insert("deviceId", deviceId); -// kafkaUtil.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); - } } } diff --git a/PhaseDevice.h b/PhaseDevice.h index aa7d822..f69839c 100644 --- a/PhaseDevice.h +++ b/PhaseDevice.h @@ -2,10 +2,8 @@ #define PHASEDEVICE_H #include -#include "common/utils/QSerialPortUtil.h" -#include "common/utils/QLogUtil.h" #include "common/utils/SettingConfig.h" -//#include "common/utils/QKafkaUtil.h" +#include "common/utils/UDPClientUtil.h" #include "protocol/PhaseProtocolBM.h" class PhaseDevice : public QObject @@ -15,14 +13,11 @@ explicit PhaseDevice(QObject *parent = nullptr); ~PhaseDevice(); - void initSerialPort(); void startWork(); void stopWork(); void afterFramePhase(PhaseDataDto * phaseData); - void setComName(QString comName); - void setBaudRate(int baudRate); QString getDevCode(); void setDevCode(QString devCode); void setDeviceId(QString deviceId); @@ -31,11 +26,9 @@ private: QString deviceId; QString devCode; - QString comName; - int baudRate; - QSerialPortUtil serialUtil; -// QKafkaUtil kafkaUtil; + UDPClientUtil * clientUtil; + QByteArray dataBuff; signals: diff --git a/PhaseMeasure.pro b/PhaseMeasure.pro index dc1c3b6..424394d 100644 --- a/PhaseMeasure.pro +++ b/PhaseMeasure.pro @@ -1,22 +1,21 @@ -QT += core gui serialport network +QT += core gui network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 -FORMS += \ - ChannelItem.ui \ - PhaseWindow.ui +FORMS += ChannelItem.ui +FORMS += PhaseWindow.ui include(common/common.pri) include(protocol/protocol.pri) -HEADERS += PhaseDevice.h \ - ChannelItem.h +HEADERS += PhaseDevice.h +HEADERS += ChannelItem.h HEADERS += PhaseWindow.h -SOURCES += PhaseDevice.cpp \ - ChannelItem.cpp +SOURCES += PhaseDevice.cpp +SOURCES += ChannelItem.cpp SOURCES += PhaseWindow.cpp SOURCES += main.cpp @@ -25,11 +24,6 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target -#unix:!macx: LIBS += -L$$PWD/lib/librdkafka/ -lrdkafka -lrdkafka++ -#INCLUDEPATH += $$PWD/include/librdkafka -#DEPENDPATH += $$PWD/include/librdkafka - DISTFILES += conf/config.ini -RESOURCES += \ - images.qrc +RESOURCES += images.qrc diff --git a/ChannelItem.ui b/ChannelItem.ui index 897632a..1b750a3 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -255,7 +255,7 @@ - 1000 + 10000 diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 90f1b4d..58674c7 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -1,31 +1,21 @@ #include "PhaseDevice.h" +#include "common/utils/QLogUtil.h" #include #include PhaseDevice::PhaseDevice(QObject *parent) : QObject(parent) { - connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, + clientUtil = new UDPClientUtil(this); + connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - -// kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); -// kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); -// kafkaUtil.createProducer(); } PhaseDevice::~PhaseDevice() { - disconnect(&this->serialUtil, &QSerialPortUtil::dataRecieved, - this, &PhaseDevice::dataReceivedHandler); + } -void PhaseDevice::setComName(QString comName) -{ - this->comName = comName; -} -void PhaseDevice::setBaudRate(int baudRate) -{ - this->baudRate = baudRate; -} + QString PhaseDevice::getDevCode() { return this->devCode; @@ -39,25 +29,17 @@ this->deviceId = deviceId; } -bool PhaseDevice::isSerialOpen() -{ - return this->serialUtil.isOpen(); -} - -void PhaseDevice::initSerialPort() -{ - this->serialUtil.openSerialPort(this->comName, this->baudRate); -} void PhaseDevice::startWork() { - QString startCommand = PhaseProtocolBM::startMessure(); - this->serialUtil.sendData(startCommand.toLocal8Bit()); + QString startCmd = PhaseProtocolBM::startMessure(); + clientUtil->sendData(startCmd.toLocal8Bit()); } void PhaseDevice::stopWork() { - + QString stopCmd = PhaseProtocolBM::stopMessure(); + clientUtil->sendData(stopCmd.toLocal8Bit()); } void PhaseDevice::dataReceivedHandler(QByteArray data) @@ -125,15 +107,6 @@ QString channelDataStr = QString("%1 [%2] %3").arg(phaseData->timestamp).arg(phaseData->frameId).arg(phaseData->channelDataStr.at(i-1)); QLogUtil::writeChannelDataLogByDate(date, chFilename, channelDataStr); - - // 3. 输出到中间件,执行后续处理过程 - if (SettingConfig::getInstance().NEED_KAFKA == 1) - { - QJsonObject jsonObj = phaseData->toJSON(i - 1); - jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - jsonObj.insert("deviceId", deviceId); -// kafkaUtil.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); - } } } diff --git a/PhaseDevice.h b/PhaseDevice.h index aa7d822..f69839c 100644 --- a/PhaseDevice.h +++ b/PhaseDevice.h @@ -2,10 +2,8 @@ #define PHASEDEVICE_H #include -#include "common/utils/QSerialPortUtil.h" -#include "common/utils/QLogUtil.h" #include "common/utils/SettingConfig.h" -//#include "common/utils/QKafkaUtil.h" +#include "common/utils/UDPClientUtil.h" #include "protocol/PhaseProtocolBM.h" class PhaseDevice : public QObject @@ -15,14 +13,11 @@ explicit PhaseDevice(QObject *parent = nullptr); ~PhaseDevice(); - void initSerialPort(); void startWork(); void stopWork(); void afterFramePhase(PhaseDataDto * phaseData); - void setComName(QString comName); - void setBaudRate(int baudRate); QString getDevCode(); void setDevCode(QString devCode); void setDeviceId(QString deviceId); @@ -31,11 +26,9 @@ private: QString deviceId; QString devCode; - QString comName; - int baudRate; - QSerialPortUtil serialUtil; -// QKafkaUtil kafkaUtil; + UDPClientUtil * clientUtil; + QByteArray dataBuff; signals: diff --git a/PhaseMeasure.pro b/PhaseMeasure.pro index dc1c3b6..424394d 100644 --- a/PhaseMeasure.pro +++ b/PhaseMeasure.pro @@ -1,22 +1,21 @@ -QT += core gui serialport network +QT += core gui network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 -FORMS += \ - ChannelItem.ui \ - PhaseWindow.ui +FORMS += ChannelItem.ui +FORMS += PhaseWindow.ui include(common/common.pri) include(protocol/protocol.pri) -HEADERS += PhaseDevice.h \ - ChannelItem.h +HEADERS += PhaseDevice.h +HEADERS += ChannelItem.h HEADERS += PhaseWindow.h -SOURCES += PhaseDevice.cpp \ - ChannelItem.cpp +SOURCES += PhaseDevice.cpp +SOURCES += ChannelItem.cpp SOURCES += PhaseWindow.cpp SOURCES += main.cpp @@ -25,11 +24,6 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target -#unix:!macx: LIBS += -L$$PWD/lib/librdkafka/ -lrdkafka -lrdkafka++ -#INCLUDEPATH += $$PWD/include/librdkafka -#DEPENDPATH += $$PWD/include/librdkafka - DISTFILES += conf/config.ini -RESOURCES += \ - images.qrc +RESOURCES += images.qrc diff --git a/PhaseMeasure.pro.user b/PhaseMeasure.pro.user index 5658fcc..89c42e4 100644 --- a/PhaseMeasure.pro.user +++ b/PhaseMeasure.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {58895c32-e1e9-4248-b30e-d2ac0dfba9c9} + {b3715025-e290-4df4-afaa-42a38b3e40c1} ProjectExplorer.Project.ActiveTarget @@ -64,14 +64,14 @@ ProjectExplorer.Project.Target.0 - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit + Desktop Qt 5.12.8 MinGW 64-bit + Desktop Qt 5.12.8 MinGW 64-bit + qt.qt5.5128.win64_mingw73_kit 0 0 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug true @@ -119,7 +119,7 @@ 2 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Release + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Release true @@ -167,7 +167,7 @@ 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Profile true @@ -287,8 +287,8 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro - E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro + Qt4ProjectManager.Qt4RunConfiguration:D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro + D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro false @@ -299,257 +299,14 @@ false true - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - - ProjectExplorer.CustomExecutableRunConfiguration - - - false - - false - true - false - false - true - - + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug 1 ProjectExplorer.Project.TargetCount - 2 + 1 ProjectExplorer.Project.Updater.FileVersion diff --git a/ChannelItem.ui b/ChannelItem.ui index 897632a..1b750a3 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -255,7 +255,7 @@ - 1000 + 10000 diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 90f1b4d..58674c7 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -1,31 +1,21 @@ #include "PhaseDevice.h" +#include "common/utils/QLogUtil.h" #include #include PhaseDevice::PhaseDevice(QObject *parent) : QObject(parent) { - connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, + clientUtil = new UDPClientUtil(this); + connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - -// kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); -// kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); -// kafkaUtil.createProducer(); } PhaseDevice::~PhaseDevice() { - disconnect(&this->serialUtil, &QSerialPortUtil::dataRecieved, - this, &PhaseDevice::dataReceivedHandler); + } -void PhaseDevice::setComName(QString comName) -{ - this->comName = comName; -} -void PhaseDevice::setBaudRate(int baudRate) -{ - this->baudRate = baudRate; -} + QString PhaseDevice::getDevCode() { return this->devCode; @@ -39,25 +29,17 @@ this->deviceId = deviceId; } -bool PhaseDevice::isSerialOpen() -{ - return this->serialUtil.isOpen(); -} - -void PhaseDevice::initSerialPort() -{ - this->serialUtil.openSerialPort(this->comName, this->baudRate); -} void PhaseDevice::startWork() { - QString startCommand = PhaseProtocolBM::startMessure(); - this->serialUtil.sendData(startCommand.toLocal8Bit()); + QString startCmd = PhaseProtocolBM::startMessure(); + clientUtil->sendData(startCmd.toLocal8Bit()); } void PhaseDevice::stopWork() { - + QString stopCmd = PhaseProtocolBM::stopMessure(); + clientUtil->sendData(stopCmd.toLocal8Bit()); } void PhaseDevice::dataReceivedHandler(QByteArray data) @@ -125,15 +107,6 @@ QString channelDataStr = QString("%1 [%2] %3").arg(phaseData->timestamp).arg(phaseData->frameId).arg(phaseData->channelDataStr.at(i-1)); QLogUtil::writeChannelDataLogByDate(date, chFilename, channelDataStr); - - // 3. 输出到中间件,执行后续处理过程 - if (SettingConfig::getInstance().NEED_KAFKA == 1) - { - QJsonObject jsonObj = phaseData->toJSON(i - 1); - jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - jsonObj.insert("deviceId", deviceId); -// kafkaUtil.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); - } } } diff --git a/PhaseDevice.h b/PhaseDevice.h index aa7d822..f69839c 100644 --- a/PhaseDevice.h +++ b/PhaseDevice.h @@ -2,10 +2,8 @@ #define PHASEDEVICE_H #include -#include "common/utils/QSerialPortUtil.h" -#include "common/utils/QLogUtil.h" #include "common/utils/SettingConfig.h" -//#include "common/utils/QKafkaUtil.h" +#include "common/utils/UDPClientUtil.h" #include "protocol/PhaseProtocolBM.h" class PhaseDevice : public QObject @@ -15,14 +13,11 @@ explicit PhaseDevice(QObject *parent = nullptr); ~PhaseDevice(); - void initSerialPort(); void startWork(); void stopWork(); void afterFramePhase(PhaseDataDto * phaseData); - void setComName(QString comName); - void setBaudRate(int baudRate); QString getDevCode(); void setDevCode(QString devCode); void setDeviceId(QString deviceId); @@ -31,11 +26,9 @@ private: QString deviceId; QString devCode; - QString comName; - int baudRate; - QSerialPortUtil serialUtil; -// QKafkaUtil kafkaUtil; + UDPClientUtil * clientUtil; + QByteArray dataBuff; signals: diff --git a/PhaseMeasure.pro b/PhaseMeasure.pro index dc1c3b6..424394d 100644 --- a/PhaseMeasure.pro +++ b/PhaseMeasure.pro @@ -1,22 +1,21 @@ -QT += core gui serialport network +QT += core gui network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 -FORMS += \ - ChannelItem.ui \ - PhaseWindow.ui +FORMS += ChannelItem.ui +FORMS += PhaseWindow.ui include(common/common.pri) include(protocol/protocol.pri) -HEADERS += PhaseDevice.h \ - ChannelItem.h +HEADERS += PhaseDevice.h +HEADERS += ChannelItem.h HEADERS += PhaseWindow.h -SOURCES += PhaseDevice.cpp \ - ChannelItem.cpp +SOURCES += PhaseDevice.cpp +SOURCES += ChannelItem.cpp SOURCES += PhaseWindow.cpp SOURCES += main.cpp @@ -25,11 +24,6 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target -#unix:!macx: LIBS += -L$$PWD/lib/librdkafka/ -lrdkafka -lrdkafka++ -#INCLUDEPATH += $$PWD/include/librdkafka -#DEPENDPATH += $$PWD/include/librdkafka - DISTFILES += conf/config.ini -RESOURCES += \ - images.qrc +RESOURCES += images.qrc diff --git a/PhaseMeasure.pro.user b/PhaseMeasure.pro.user index 5658fcc..89c42e4 100644 --- a/PhaseMeasure.pro.user +++ b/PhaseMeasure.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {58895c32-e1e9-4248-b30e-d2ac0dfba9c9} + {b3715025-e290-4df4-afaa-42a38b3e40c1} ProjectExplorer.Project.ActiveTarget @@ -64,14 +64,14 @@ ProjectExplorer.Project.Target.0 - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit + Desktop Qt 5.12.8 MinGW 64-bit + Desktop Qt 5.12.8 MinGW 64-bit + qt.qt5.5128.win64_mingw73_kit 0 0 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug true @@ -119,7 +119,7 @@ 2 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Release + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Release true @@ -167,7 +167,7 @@ 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Profile true @@ -287,8 +287,8 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro - E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro + Qt4ProjectManager.Qt4RunConfiguration:D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro + D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro false @@ -299,257 +299,14 @@ false true - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - - ProjectExplorer.CustomExecutableRunConfiguration - - - false - - false - true - false - false - true - - + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug 1 ProjectExplorer.Project.TargetCount - 2 + 1 ProjectExplorer.Project.Updater.FileVersion diff --git a/PhaseWindow.cpp b/PhaseWindow.cpp index 27af4fc..9f3a373 100644 --- a/PhaseWindow.cpp +++ b/PhaseWindow.cpp @@ -39,19 +39,14 @@ ui->scrollArea->setGeometry(0, 90, screenRect.width(), screenRect.height() - 90); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); -// httpReq = new HttpRequestController(this); -// // 1. 获取访问接口需要的token -// int retCode = this->initHttpToken(); -// if (retCode != 200) -// { -// QMessageBox::information(this, "错误", "获取http请求的token失败,程序即将退出"); - -// QTimer::singleShot(1000, qApp, SLOT(quit())); -// } - // 2. 获取字典值:设备类型 -// retCode = this->initDictDeviceTypes(); + ui->tim3->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")); this->generateWidgetForDevice(); + + device = new PhaseDevice(this); + device->startWork(); + connect(device, &PhaseDevice::sendDataToDraw, + this, &PhaseWindow::drawPhaseDataOnPage); } PhaseWindow::~PhaseWindow() @@ -61,27 +56,20 @@ void PhaseWindow::drawPhaseDataOnPage(PhaseDataDto * phaseData) { - // 当前显示的设备编号 -// QString currentDevCode = ui->devSelect->currentData().toString(); - - // 如果不是当前设备的帧,直接返回 -// if (phaseData->devCode != currentDevCode) -// { -// return; -// } + ui->tim3->setText(phaseData->timestamp); // 更新所有通道BOX的值 - for (int i = 0; i < phaseData->channelActive.size(); i++) - { - // 获取对应的通道BOX - QGroupBox * channelBox = (QGroupBox *)ui->scrollContents->children().at(i + 1); +// for (int i = 0; i < phaseData->channelActive.size(); i++) +// { +// // 获取对应的通道BOX +// QGroupBox * channelBox = (QGroupBox *)ui->scrollContents->children().at(i + 1); - // 赋值,对应的lineEdit/label - ((QLineEdit *)channelBox->children().at(2))->setText(phaseData->timestamp); - ((QLineEdit *)channelBox->children().at(4))->setText(QString("%1 s").arg(phaseData->channelDataStr.at(i))); - ((QLineEdit *)channelBox->children().at(6))->setText(phaseData->frameId); - ((QLabel *)channelBox->children().at(7))->setText(phaseData->channelActive.at(i) == "1" ? "有效" : "无效"); - } +// // 赋值,对应的lineEdit/label +// ((QLineEdit *)channelBox->children().at(2))->setText(phaseData->timestamp); +// ((QLineEdit *)channelBox->children().at(4))->setText(QString("%1 s").arg(phaseData->channelDataStr.at(i))); +// ((QLineEdit *)channelBox->children().at(6))->setText(phaseData->frameId); +// ((QLabel *)channelBox->children().at(7))->setText(phaseData->channelActive.at(i) == "1" ? "有效" : "无效"); +// } } void PhaseWindow::generateWidgetForDevice() @@ -110,27 +98,9 @@ vbox->addWidget(widget); group->setLayout(vbox); layout->addWidget(group); - - } } -int PhaseWindow::initHttpToken() -{ - QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, - SettingConfig::getInstance().APP_KEY); - return response.find("code")->toInt(); -} -int PhaseWindow::initDictDeviceTypes() -{ - QJsonObject response = httpReq->initDictDeviceType(); - return response.find("code")->toInt(); -} -QJsonObject PhaseWindow::initDeviceList() -{ - QJsonObject response = httpReq->initDeviceList("比相仪"); - return response; -} void PhaseWindow::on_minButt_clicked() { diff --git a/ChannelItem.ui b/ChannelItem.ui index 897632a..1b750a3 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -255,7 +255,7 @@ - 1000 + 10000 diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 90f1b4d..58674c7 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -1,31 +1,21 @@ #include "PhaseDevice.h" +#include "common/utils/QLogUtil.h" #include #include PhaseDevice::PhaseDevice(QObject *parent) : QObject(parent) { - connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, + clientUtil = new UDPClientUtil(this); + connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - -// kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); -// kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); -// kafkaUtil.createProducer(); } PhaseDevice::~PhaseDevice() { - disconnect(&this->serialUtil, &QSerialPortUtil::dataRecieved, - this, &PhaseDevice::dataReceivedHandler); + } -void PhaseDevice::setComName(QString comName) -{ - this->comName = comName; -} -void PhaseDevice::setBaudRate(int baudRate) -{ - this->baudRate = baudRate; -} + QString PhaseDevice::getDevCode() { return this->devCode; @@ -39,25 +29,17 @@ this->deviceId = deviceId; } -bool PhaseDevice::isSerialOpen() -{ - return this->serialUtil.isOpen(); -} - -void PhaseDevice::initSerialPort() -{ - this->serialUtil.openSerialPort(this->comName, this->baudRate); -} void PhaseDevice::startWork() { - QString startCommand = PhaseProtocolBM::startMessure(); - this->serialUtil.sendData(startCommand.toLocal8Bit()); + QString startCmd = PhaseProtocolBM::startMessure(); + clientUtil->sendData(startCmd.toLocal8Bit()); } void PhaseDevice::stopWork() { - + QString stopCmd = PhaseProtocolBM::stopMessure(); + clientUtil->sendData(stopCmd.toLocal8Bit()); } void PhaseDevice::dataReceivedHandler(QByteArray data) @@ -125,15 +107,6 @@ QString channelDataStr = QString("%1 [%2] %3").arg(phaseData->timestamp).arg(phaseData->frameId).arg(phaseData->channelDataStr.at(i-1)); QLogUtil::writeChannelDataLogByDate(date, chFilename, channelDataStr); - - // 3. 输出到中间件,执行后续处理过程 - if (SettingConfig::getInstance().NEED_KAFKA == 1) - { - QJsonObject jsonObj = phaseData->toJSON(i - 1); - jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - jsonObj.insert("deviceId", deviceId); -// kafkaUtil.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); - } } } diff --git a/PhaseDevice.h b/PhaseDevice.h index aa7d822..f69839c 100644 --- a/PhaseDevice.h +++ b/PhaseDevice.h @@ -2,10 +2,8 @@ #define PHASEDEVICE_H #include -#include "common/utils/QSerialPortUtil.h" -#include "common/utils/QLogUtil.h" #include "common/utils/SettingConfig.h" -//#include "common/utils/QKafkaUtil.h" +#include "common/utils/UDPClientUtil.h" #include "protocol/PhaseProtocolBM.h" class PhaseDevice : public QObject @@ -15,14 +13,11 @@ explicit PhaseDevice(QObject *parent = nullptr); ~PhaseDevice(); - void initSerialPort(); void startWork(); void stopWork(); void afterFramePhase(PhaseDataDto * phaseData); - void setComName(QString comName); - void setBaudRate(int baudRate); QString getDevCode(); void setDevCode(QString devCode); void setDeviceId(QString deviceId); @@ -31,11 +26,9 @@ private: QString deviceId; QString devCode; - QString comName; - int baudRate; - QSerialPortUtil serialUtil; -// QKafkaUtil kafkaUtil; + UDPClientUtil * clientUtil; + QByteArray dataBuff; signals: diff --git a/PhaseMeasure.pro b/PhaseMeasure.pro index dc1c3b6..424394d 100644 --- a/PhaseMeasure.pro +++ b/PhaseMeasure.pro @@ -1,22 +1,21 @@ -QT += core gui serialport network +QT += core gui network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 -FORMS += \ - ChannelItem.ui \ - PhaseWindow.ui +FORMS += ChannelItem.ui +FORMS += PhaseWindow.ui include(common/common.pri) include(protocol/protocol.pri) -HEADERS += PhaseDevice.h \ - ChannelItem.h +HEADERS += PhaseDevice.h +HEADERS += ChannelItem.h HEADERS += PhaseWindow.h -SOURCES += PhaseDevice.cpp \ - ChannelItem.cpp +SOURCES += PhaseDevice.cpp +SOURCES += ChannelItem.cpp SOURCES += PhaseWindow.cpp SOURCES += main.cpp @@ -25,11 +24,6 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target -#unix:!macx: LIBS += -L$$PWD/lib/librdkafka/ -lrdkafka -lrdkafka++ -#INCLUDEPATH += $$PWD/include/librdkafka -#DEPENDPATH += $$PWD/include/librdkafka - DISTFILES += conf/config.ini -RESOURCES += \ - images.qrc +RESOURCES += images.qrc diff --git a/PhaseMeasure.pro.user b/PhaseMeasure.pro.user index 5658fcc..89c42e4 100644 --- a/PhaseMeasure.pro.user +++ b/PhaseMeasure.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {58895c32-e1e9-4248-b30e-d2ac0dfba9c9} + {b3715025-e290-4df4-afaa-42a38b3e40c1} ProjectExplorer.Project.ActiveTarget @@ -64,14 +64,14 @@ ProjectExplorer.Project.Target.0 - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit + Desktop Qt 5.12.8 MinGW 64-bit + Desktop Qt 5.12.8 MinGW 64-bit + qt.qt5.5128.win64_mingw73_kit 0 0 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug true @@ -119,7 +119,7 @@ 2 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Release + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Release true @@ -167,7 +167,7 @@ 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Profile true @@ -287,8 +287,8 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro - E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro + Qt4ProjectManager.Qt4RunConfiguration:D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro + D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro false @@ -299,257 +299,14 @@ false true - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - - ProjectExplorer.CustomExecutableRunConfiguration - - - false - - false - true - false - false - true - - + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug 1 ProjectExplorer.Project.TargetCount - 2 + 1 ProjectExplorer.Project.Updater.FileVersion diff --git a/PhaseWindow.cpp b/PhaseWindow.cpp index 27af4fc..9f3a373 100644 --- a/PhaseWindow.cpp +++ b/PhaseWindow.cpp @@ -39,19 +39,14 @@ ui->scrollArea->setGeometry(0, 90, screenRect.width(), screenRect.height() - 90); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); -// httpReq = new HttpRequestController(this); -// // 1. 获取访问接口需要的token -// int retCode = this->initHttpToken(); -// if (retCode != 200) -// { -// QMessageBox::information(this, "错误", "获取http请求的token失败,程序即将退出"); - -// QTimer::singleShot(1000, qApp, SLOT(quit())); -// } - // 2. 获取字典值:设备类型 -// retCode = this->initDictDeviceTypes(); + ui->tim3->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")); this->generateWidgetForDevice(); + + device = new PhaseDevice(this); + device->startWork(); + connect(device, &PhaseDevice::sendDataToDraw, + this, &PhaseWindow::drawPhaseDataOnPage); } PhaseWindow::~PhaseWindow() @@ -61,27 +56,20 @@ void PhaseWindow::drawPhaseDataOnPage(PhaseDataDto * phaseData) { - // 当前显示的设备编号 -// QString currentDevCode = ui->devSelect->currentData().toString(); - - // 如果不是当前设备的帧,直接返回 -// if (phaseData->devCode != currentDevCode) -// { -// return; -// } + ui->tim3->setText(phaseData->timestamp); // 更新所有通道BOX的值 - for (int i = 0; i < phaseData->channelActive.size(); i++) - { - // 获取对应的通道BOX - QGroupBox * channelBox = (QGroupBox *)ui->scrollContents->children().at(i + 1); +// for (int i = 0; i < phaseData->channelActive.size(); i++) +// { +// // 获取对应的通道BOX +// QGroupBox * channelBox = (QGroupBox *)ui->scrollContents->children().at(i + 1); - // 赋值,对应的lineEdit/label - ((QLineEdit *)channelBox->children().at(2))->setText(phaseData->timestamp); - ((QLineEdit *)channelBox->children().at(4))->setText(QString("%1 s").arg(phaseData->channelDataStr.at(i))); - ((QLineEdit *)channelBox->children().at(6))->setText(phaseData->frameId); - ((QLabel *)channelBox->children().at(7))->setText(phaseData->channelActive.at(i) == "1" ? "有效" : "无效"); - } +// // 赋值,对应的lineEdit/label +// ((QLineEdit *)channelBox->children().at(2))->setText(phaseData->timestamp); +// ((QLineEdit *)channelBox->children().at(4))->setText(QString("%1 s").arg(phaseData->channelDataStr.at(i))); +// ((QLineEdit *)channelBox->children().at(6))->setText(phaseData->frameId); +// ((QLabel *)channelBox->children().at(7))->setText(phaseData->channelActive.at(i) == "1" ? "有效" : "无效"); +// } } void PhaseWindow::generateWidgetForDevice() @@ -110,27 +98,9 @@ vbox->addWidget(widget); group->setLayout(vbox); layout->addWidget(group); - - } } -int PhaseWindow::initHttpToken() -{ - QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, - SettingConfig::getInstance().APP_KEY); - return response.find("code")->toInt(); -} -int PhaseWindow::initDictDeviceTypes() -{ - QJsonObject response = httpReq->initDictDeviceType(); - return response.find("code")->toInt(); -} -QJsonObject PhaseWindow::initDeviceList() -{ - QJsonObject response = httpReq->initDeviceList("比相仪"); - return response; -} void PhaseWindow::on_minButt_clicked() { diff --git a/PhaseWindow.h b/PhaseWindow.h index 02a7908..8f2314d 100644 --- a/PhaseWindow.h +++ b/PhaseWindow.h @@ -8,7 +8,6 @@ #include "PhaseDevice.h" #include "common/utils/SettingConfig.h" -#include "common/HttpRequestController.h" namespace Ui { class PhaseWindow; @@ -27,19 +26,12 @@ private slots: void on_minButt_clicked(); - void on_exitButt_clicked(); private: - int initHttpToken(); - int initDictDeviceTypes(); - QJsonObject initDeviceList(); - Ui::PhaseWindow *ui; - HttpRequestController * httpReq; - - QList deviceList; + PhaseDevice * device; void generateWidgetForDevice(); }; diff --git a/ChannelItem.ui b/ChannelItem.ui index 897632a..1b750a3 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -255,7 +255,7 @@ - 1000 + 10000 diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 90f1b4d..58674c7 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -1,31 +1,21 @@ #include "PhaseDevice.h" +#include "common/utils/QLogUtil.h" #include #include PhaseDevice::PhaseDevice(QObject *parent) : QObject(parent) { - connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, + clientUtil = new UDPClientUtil(this); + connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - -// kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); -// kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); -// kafkaUtil.createProducer(); } PhaseDevice::~PhaseDevice() { - disconnect(&this->serialUtil, &QSerialPortUtil::dataRecieved, - this, &PhaseDevice::dataReceivedHandler); + } -void PhaseDevice::setComName(QString comName) -{ - this->comName = comName; -} -void PhaseDevice::setBaudRate(int baudRate) -{ - this->baudRate = baudRate; -} + QString PhaseDevice::getDevCode() { return this->devCode; @@ -39,25 +29,17 @@ this->deviceId = deviceId; } -bool PhaseDevice::isSerialOpen() -{ - return this->serialUtil.isOpen(); -} - -void PhaseDevice::initSerialPort() -{ - this->serialUtil.openSerialPort(this->comName, this->baudRate); -} void PhaseDevice::startWork() { - QString startCommand = PhaseProtocolBM::startMessure(); - this->serialUtil.sendData(startCommand.toLocal8Bit()); + QString startCmd = PhaseProtocolBM::startMessure(); + clientUtil->sendData(startCmd.toLocal8Bit()); } void PhaseDevice::stopWork() { - + QString stopCmd = PhaseProtocolBM::stopMessure(); + clientUtil->sendData(stopCmd.toLocal8Bit()); } void PhaseDevice::dataReceivedHandler(QByteArray data) @@ -125,15 +107,6 @@ QString channelDataStr = QString("%1 [%2] %3").arg(phaseData->timestamp).arg(phaseData->frameId).arg(phaseData->channelDataStr.at(i-1)); QLogUtil::writeChannelDataLogByDate(date, chFilename, channelDataStr); - - // 3. 输出到中间件,执行后续处理过程 - if (SettingConfig::getInstance().NEED_KAFKA == 1) - { - QJsonObject jsonObj = phaseData->toJSON(i - 1); - jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - jsonObj.insert("deviceId", deviceId); -// kafkaUtil.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); - } } } diff --git a/PhaseDevice.h b/PhaseDevice.h index aa7d822..f69839c 100644 --- a/PhaseDevice.h +++ b/PhaseDevice.h @@ -2,10 +2,8 @@ #define PHASEDEVICE_H #include -#include "common/utils/QSerialPortUtil.h" -#include "common/utils/QLogUtil.h" #include "common/utils/SettingConfig.h" -//#include "common/utils/QKafkaUtil.h" +#include "common/utils/UDPClientUtil.h" #include "protocol/PhaseProtocolBM.h" class PhaseDevice : public QObject @@ -15,14 +13,11 @@ explicit PhaseDevice(QObject *parent = nullptr); ~PhaseDevice(); - void initSerialPort(); void startWork(); void stopWork(); void afterFramePhase(PhaseDataDto * phaseData); - void setComName(QString comName); - void setBaudRate(int baudRate); QString getDevCode(); void setDevCode(QString devCode); void setDeviceId(QString deviceId); @@ -31,11 +26,9 @@ private: QString deviceId; QString devCode; - QString comName; - int baudRate; - QSerialPortUtil serialUtil; -// QKafkaUtil kafkaUtil; + UDPClientUtil * clientUtil; + QByteArray dataBuff; signals: diff --git a/PhaseMeasure.pro b/PhaseMeasure.pro index dc1c3b6..424394d 100644 --- a/PhaseMeasure.pro +++ b/PhaseMeasure.pro @@ -1,22 +1,21 @@ -QT += core gui serialport network +QT += core gui network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 -FORMS += \ - ChannelItem.ui \ - PhaseWindow.ui +FORMS += ChannelItem.ui +FORMS += PhaseWindow.ui include(common/common.pri) include(protocol/protocol.pri) -HEADERS += PhaseDevice.h \ - ChannelItem.h +HEADERS += PhaseDevice.h +HEADERS += ChannelItem.h HEADERS += PhaseWindow.h -SOURCES += PhaseDevice.cpp \ - ChannelItem.cpp +SOURCES += PhaseDevice.cpp +SOURCES += ChannelItem.cpp SOURCES += PhaseWindow.cpp SOURCES += main.cpp @@ -25,11 +24,6 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target -#unix:!macx: LIBS += -L$$PWD/lib/librdkafka/ -lrdkafka -lrdkafka++ -#INCLUDEPATH += $$PWD/include/librdkafka -#DEPENDPATH += $$PWD/include/librdkafka - DISTFILES += conf/config.ini -RESOURCES += \ - images.qrc +RESOURCES += images.qrc diff --git a/PhaseMeasure.pro.user b/PhaseMeasure.pro.user index 5658fcc..89c42e4 100644 --- a/PhaseMeasure.pro.user +++ b/PhaseMeasure.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {58895c32-e1e9-4248-b30e-d2ac0dfba9c9} + {b3715025-e290-4df4-afaa-42a38b3e40c1} ProjectExplorer.Project.ActiveTarget @@ -64,14 +64,14 @@ ProjectExplorer.Project.Target.0 - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit + Desktop Qt 5.12.8 MinGW 64-bit + Desktop Qt 5.12.8 MinGW 64-bit + qt.qt5.5128.win64_mingw73_kit 0 0 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug true @@ -119,7 +119,7 @@ 2 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Release + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Release true @@ -167,7 +167,7 @@ 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Profile true @@ -287,8 +287,8 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro - E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro + Qt4ProjectManager.Qt4RunConfiguration:D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro + D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro false @@ -299,257 +299,14 @@ false true - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - - ProjectExplorer.CustomExecutableRunConfiguration - - - false - - false - true - false - false - true - - + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug 1 ProjectExplorer.Project.TargetCount - 2 + 1 ProjectExplorer.Project.Updater.FileVersion diff --git a/PhaseWindow.cpp b/PhaseWindow.cpp index 27af4fc..9f3a373 100644 --- a/PhaseWindow.cpp +++ b/PhaseWindow.cpp @@ -39,19 +39,14 @@ ui->scrollArea->setGeometry(0, 90, screenRect.width(), screenRect.height() - 90); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); -// httpReq = new HttpRequestController(this); -// // 1. 获取访问接口需要的token -// int retCode = this->initHttpToken(); -// if (retCode != 200) -// { -// QMessageBox::information(this, "错误", "获取http请求的token失败,程序即将退出"); - -// QTimer::singleShot(1000, qApp, SLOT(quit())); -// } - // 2. 获取字典值:设备类型 -// retCode = this->initDictDeviceTypes(); + ui->tim3->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")); this->generateWidgetForDevice(); + + device = new PhaseDevice(this); + device->startWork(); + connect(device, &PhaseDevice::sendDataToDraw, + this, &PhaseWindow::drawPhaseDataOnPage); } PhaseWindow::~PhaseWindow() @@ -61,27 +56,20 @@ void PhaseWindow::drawPhaseDataOnPage(PhaseDataDto * phaseData) { - // 当前显示的设备编号 -// QString currentDevCode = ui->devSelect->currentData().toString(); - - // 如果不是当前设备的帧,直接返回 -// if (phaseData->devCode != currentDevCode) -// { -// return; -// } + ui->tim3->setText(phaseData->timestamp); // 更新所有通道BOX的值 - for (int i = 0; i < phaseData->channelActive.size(); i++) - { - // 获取对应的通道BOX - QGroupBox * channelBox = (QGroupBox *)ui->scrollContents->children().at(i + 1); +// for (int i = 0; i < phaseData->channelActive.size(); i++) +// { +// // 获取对应的通道BOX +// QGroupBox * channelBox = (QGroupBox *)ui->scrollContents->children().at(i + 1); - // 赋值,对应的lineEdit/label - ((QLineEdit *)channelBox->children().at(2))->setText(phaseData->timestamp); - ((QLineEdit *)channelBox->children().at(4))->setText(QString("%1 s").arg(phaseData->channelDataStr.at(i))); - ((QLineEdit *)channelBox->children().at(6))->setText(phaseData->frameId); - ((QLabel *)channelBox->children().at(7))->setText(phaseData->channelActive.at(i) == "1" ? "有效" : "无效"); - } +// // 赋值,对应的lineEdit/label +// ((QLineEdit *)channelBox->children().at(2))->setText(phaseData->timestamp); +// ((QLineEdit *)channelBox->children().at(4))->setText(QString("%1 s").arg(phaseData->channelDataStr.at(i))); +// ((QLineEdit *)channelBox->children().at(6))->setText(phaseData->frameId); +// ((QLabel *)channelBox->children().at(7))->setText(phaseData->channelActive.at(i) == "1" ? "有效" : "无效"); +// } } void PhaseWindow::generateWidgetForDevice() @@ -110,27 +98,9 @@ vbox->addWidget(widget); group->setLayout(vbox); layout->addWidget(group); - - } } -int PhaseWindow::initHttpToken() -{ - QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, - SettingConfig::getInstance().APP_KEY); - return response.find("code")->toInt(); -} -int PhaseWindow::initDictDeviceTypes() -{ - QJsonObject response = httpReq->initDictDeviceType(); - return response.find("code")->toInt(); -} -QJsonObject PhaseWindow::initDeviceList() -{ - QJsonObject response = httpReq->initDeviceList("比相仪"); - return response; -} void PhaseWindow::on_minButt_clicked() { diff --git a/PhaseWindow.h b/PhaseWindow.h index 02a7908..8f2314d 100644 --- a/PhaseWindow.h +++ b/PhaseWindow.h @@ -8,7 +8,6 @@ #include "PhaseDevice.h" #include "common/utils/SettingConfig.h" -#include "common/HttpRequestController.h" namespace Ui { class PhaseWindow; @@ -27,19 +26,12 @@ private slots: void on_minButt_clicked(); - void on_exitButt_clicked(); private: - int initHttpToken(); - int initDictDeviceTypes(); - QJsonObject initDeviceList(); - Ui::PhaseWindow *ui; - HttpRequestController * httpReq; - - QList deviceList; + PhaseDevice * device; void generateWidgetForDevice(); }; diff --git a/PhaseWindow.ui b/PhaseWindow.ui index 97edbe1..f7742fe 100644 --- a/PhaseWindow.ui +++ b/PhaseWindow.ui @@ -23,7 +23,7 @@ 0 - 0 + 100 100 30 @@ -73,21 +73,24 @@ - 100 + 0 0 200 - 41 + 50 微软雅黑 - 14 + 16 比相仪测量软件 + + Qt::AlignCenter + @@ -140,16 +143,16 @@ - 40 - 40 - 141 - 51 + 0 + 50 + 240 + 40 微软雅黑 - 14 + 12 75 true @@ -158,8 +161,7 @@ Qt::RightToLeft - 2021-12-10 -10:00:00 + 2021-12-10 10:00:00 Qt::AlignCenter diff --git a/ChannelItem.ui b/ChannelItem.ui index 897632a..1b750a3 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -255,7 +255,7 @@ - 1000 + 10000 diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 90f1b4d..58674c7 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -1,31 +1,21 @@ #include "PhaseDevice.h" +#include "common/utils/QLogUtil.h" #include #include PhaseDevice::PhaseDevice(QObject *parent) : QObject(parent) { - connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, + clientUtil = new UDPClientUtil(this); + connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - -// kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); -// kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); -// kafkaUtil.createProducer(); } PhaseDevice::~PhaseDevice() { - disconnect(&this->serialUtil, &QSerialPortUtil::dataRecieved, - this, &PhaseDevice::dataReceivedHandler); + } -void PhaseDevice::setComName(QString comName) -{ - this->comName = comName; -} -void PhaseDevice::setBaudRate(int baudRate) -{ - this->baudRate = baudRate; -} + QString PhaseDevice::getDevCode() { return this->devCode; @@ -39,25 +29,17 @@ this->deviceId = deviceId; } -bool PhaseDevice::isSerialOpen() -{ - return this->serialUtil.isOpen(); -} - -void PhaseDevice::initSerialPort() -{ - this->serialUtil.openSerialPort(this->comName, this->baudRate); -} void PhaseDevice::startWork() { - QString startCommand = PhaseProtocolBM::startMessure(); - this->serialUtil.sendData(startCommand.toLocal8Bit()); + QString startCmd = PhaseProtocolBM::startMessure(); + clientUtil->sendData(startCmd.toLocal8Bit()); } void PhaseDevice::stopWork() { - + QString stopCmd = PhaseProtocolBM::stopMessure(); + clientUtil->sendData(stopCmd.toLocal8Bit()); } void PhaseDevice::dataReceivedHandler(QByteArray data) @@ -125,15 +107,6 @@ QString channelDataStr = QString("%1 [%2] %3").arg(phaseData->timestamp).arg(phaseData->frameId).arg(phaseData->channelDataStr.at(i-1)); QLogUtil::writeChannelDataLogByDate(date, chFilename, channelDataStr); - - // 3. 输出到中间件,执行后续处理过程 - if (SettingConfig::getInstance().NEED_KAFKA == 1) - { - QJsonObject jsonObj = phaseData->toJSON(i - 1); - jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - jsonObj.insert("deviceId", deviceId); -// kafkaUtil.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); - } } } diff --git a/PhaseDevice.h b/PhaseDevice.h index aa7d822..f69839c 100644 --- a/PhaseDevice.h +++ b/PhaseDevice.h @@ -2,10 +2,8 @@ #define PHASEDEVICE_H #include -#include "common/utils/QSerialPortUtil.h" -#include "common/utils/QLogUtil.h" #include "common/utils/SettingConfig.h" -//#include "common/utils/QKafkaUtil.h" +#include "common/utils/UDPClientUtil.h" #include "protocol/PhaseProtocolBM.h" class PhaseDevice : public QObject @@ -15,14 +13,11 @@ explicit PhaseDevice(QObject *parent = nullptr); ~PhaseDevice(); - void initSerialPort(); void startWork(); void stopWork(); void afterFramePhase(PhaseDataDto * phaseData); - void setComName(QString comName); - void setBaudRate(int baudRate); QString getDevCode(); void setDevCode(QString devCode); void setDeviceId(QString deviceId); @@ -31,11 +26,9 @@ private: QString deviceId; QString devCode; - QString comName; - int baudRate; - QSerialPortUtil serialUtil; -// QKafkaUtil kafkaUtil; + UDPClientUtil * clientUtil; + QByteArray dataBuff; signals: diff --git a/PhaseMeasure.pro b/PhaseMeasure.pro index dc1c3b6..424394d 100644 --- a/PhaseMeasure.pro +++ b/PhaseMeasure.pro @@ -1,22 +1,21 @@ -QT += core gui serialport network +QT += core gui network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 -FORMS += \ - ChannelItem.ui \ - PhaseWindow.ui +FORMS += ChannelItem.ui +FORMS += PhaseWindow.ui include(common/common.pri) include(protocol/protocol.pri) -HEADERS += PhaseDevice.h \ - ChannelItem.h +HEADERS += PhaseDevice.h +HEADERS += ChannelItem.h HEADERS += PhaseWindow.h -SOURCES += PhaseDevice.cpp \ - ChannelItem.cpp +SOURCES += PhaseDevice.cpp +SOURCES += ChannelItem.cpp SOURCES += PhaseWindow.cpp SOURCES += main.cpp @@ -25,11 +24,6 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target -#unix:!macx: LIBS += -L$$PWD/lib/librdkafka/ -lrdkafka -lrdkafka++ -#INCLUDEPATH += $$PWD/include/librdkafka -#DEPENDPATH += $$PWD/include/librdkafka - DISTFILES += conf/config.ini -RESOURCES += \ - images.qrc +RESOURCES += images.qrc diff --git a/PhaseMeasure.pro.user b/PhaseMeasure.pro.user index 5658fcc..89c42e4 100644 --- a/PhaseMeasure.pro.user +++ b/PhaseMeasure.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {58895c32-e1e9-4248-b30e-d2ac0dfba9c9} + {b3715025-e290-4df4-afaa-42a38b3e40c1} ProjectExplorer.Project.ActiveTarget @@ -64,14 +64,14 @@ ProjectExplorer.Project.Target.0 - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit + Desktop Qt 5.12.8 MinGW 64-bit + Desktop Qt 5.12.8 MinGW 64-bit + qt.qt5.5128.win64_mingw73_kit 0 0 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug true @@ -119,7 +119,7 @@ 2 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Release + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Release true @@ -167,7 +167,7 @@ 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Profile true @@ -287,8 +287,8 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro - E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro + Qt4ProjectManager.Qt4RunConfiguration:D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro + D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro false @@ -299,257 +299,14 @@ false true - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - - ProjectExplorer.CustomExecutableRunConfiguration - - - false - - false - true - false - false - true - - + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug 1 ProjectExplorer.Project.TargetCount - 2 + 1 ProjectExplorer.Project.Updater.FileVersion diff --git a/PhaseWindow.cpp b/PhaseWindow.cpp index 27af4fc..9f3a373 100644 --- a/PhaseWindow.cpp +++ b/PhaseWindow.cpp @@ -39,19 +39,14 @@ ui->scrollArea->setGeometry(0, 90, screenRect.width(), screenRect.height() - 90); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); -// httpReq = new HttpRequestController(this); -// // 1. 获取访问接口需要的token -// int retCode = this->initHttpToken(); -// if (retCode != 200) -// { -// QMessageBox::information(this, "错误", "获取http请求的token失败,程序即将退出"); - -// QTimer::singleShot(1000, qApp, SLOT(quit())); -// } - // 2. 获取字典值:设备类型 -// retCode = this->initDictDeviceTypes(); + ui->tim3->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")); this->generateWidgetForDevice(); + + device = new PhaseDevice(this); + device->startWork(); + connect(device, &PhaseDevice::sendDataToDraw, + this, &PhaseWindow::drawPhaseDataOnPage); } PhaseWindow::~PhaseWindow() @@ -61,27 +56,20 @@ void PhaseWindow::drawPhaseDataOnPage(PhaseDataDto * phaseData) { - // 当前显示的设备编号 -// QString currentDevCode = ui->devSelect->currentData().toString(); - - // 如果不是当前设备的帧,直接返回 -// if (phaseData->devCode != currentDevCode) -// { -// return; -// } + ui->tim3->setText(phaseData->timestamp); // 更新所有通道BOX的值 - for (int i = 0; i < phaseData->channelActive.size(); i++) - { - // 获取对应的通道BOX - QGroupBox * channelBox = (QGroupBox *)ui->scrollContents->children().at(i + 1); +// for (int i = 0; i < phaseData->channelActive.size(); i++) +// { +// // 获取对应的通道BOX +// QGroupBox * channelBox = (QGroupBox *)ui->scrollContents->children().at(i + 1); - // 赋值,对应的lineEdit/label - ((QLineEdit *)channelBox->children().at(2))->setText(phaseData->timestamp); - ((QLineEdit *)channelBox->children().at(4))->setText(QString("%1 s").arg(phaseData->channelDataStr.at(i))); - ((QLineEdit *)channelBox->children().at(6))->setText(phaseData->frameId); - ((QLabel *)channelBox->children().at(7))->setText(phaseData->channelActive.at(i) == "1" ? "有效" : "无效"); - } +// // 赋值,对应的lineEdit/label +// ((QLineEdit *)channelBox->children().at(2))->setText(phaseData->timestamp); +// ((QLineEdit *)channelBox->children().at(4))->setText(QString("%1 s").arg(phaseData->channelDataStr.at(i))); +// ((QLineEdit *)channelBox->children().at(6))->setText(phaseData->frameId); +// ((QLabel *)channelBox->children().at(7))->setText(phaseData->channelActive.at(i) == "1" ? "有效" : "无效"); +// } } void PhaseWindow::generateWidgetForDevice() @@ -110,27 +98,9 @@ vbox->addWidget(widget); group->setLayout(vbox); layout->addWidget(group); - - } } -int PhaseWindow::initHttpToken() -{ - QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, - SettingConfig::getInstance().APP_KEY); - return response.find("code")->toInt(); -} -int PhaseWindow::initDictDeviceTypes() -{ - QJsonObject response = httpReq->initDictDeviceType(); - return response.find("code")->toInt(); -} -QJsonObject PhaseWindow::initDeviceList() -{ - QJsonObject response = httpReq->initDeviceList("比相仪"); - return response; -} void PhaseWindow::on_minButt_clicked() { diff --git a/PhaseWindow.h b/PhaseWindow.h index 02a7908..8f2314d 100644 --- a/PhaseWindow.h +++ b/PhaseWindow.h @@ -8,7 +8,6 @@ #include "PhaseDevice.h" #include "common/utils/SettingConfig.h" -#include "common/HttpRequestController.h" namespace Ui { class PhaseWindow; @@ -27,19 +26,12 @@ private slots: void on_minButt_clicked(); - void on_exitButt_clicked(); private: - int initHttpToken(); - int initDictDeviceTypes(); - QJsonObject initDeviceList(); - Ui::PhaseWindow *ui; - HttpRequestController * httpReq; - - QList deviceList; + PhaseDevice * device; void generateWidgetForDevice(); }; diff --git a/PhaseWindow.ui b/PhaseWindow.ui index 97edbe1..f7742fe 100644 --- a/PhaseWindow.ui +++ b/PhaseWindow.ui @@ -23,7 +23,7 @@ 0 - 0 + 100 100 30 @@ -73,21 +73,24 @@ - 100 + 0 0 200 - 41 + 50 微软雅黑 - 14 + 16 比相仪测量软件 + + Qt::AlignCenter + @@ -140,16 +143,16 @@ - 40 - 40 - 141 - 51 + 0 + 50 + 240 + 40 微软雅黑 - 14 + 12 75 true @@ -158,8 +161,7 @@ Qt::RightToLeft - 2021-12-10 -10:00:00 + 2021-12-10 10:00:00 Qt::AlignCenter diff --git a/common/common.pri b/common/common.pri index 84f57ae..81ad04d 100644 --- a/common/common.pri +++ b/common/common.pri @@ -1,20 +1,10 @@ -SOURCES += $$PWD/utils/SettingConfig.cpp -SOURCES += $$PWD/utils/QByteUtil.cpp -SOURCES += $$PWD/utils/QSerialPortUtil.cpp -SOURCES += $$PWD/utils/QLogUtil.cpp -#SOURCES += $$PWD/utils/QKafkaUtil.cpp -SOURCES += $$PWD/utils/HttpRequestUtil.cpp -SOURCES += $$PWD/utils/MD5.cpp -SOURCES += $$PWD/HttpRequestController.cpp - HEADERS += $$PWD/utils/SettingConfig.h HEADERS += $$PWD/utils/QByteUtil.h -HEADERS += $$PWD/utils/QSerialPortUtil.h HEADERS += $$PWD/utils/QLogUtil.h -#HEADERS += $$PWD/utils/QKafkaUtil.h -HEADERS += $$PWD/utils/HttpRequestUtil.h -HEADERS += $$PWD/utils/DefHead.h -HEADERS += $$PWD/utils/MD5.h -HEADERS += $$PWD/HttpRequestController.h -HEADERS += $$PWD/ConstCache.h +HEADERS += $$PWD/utils/UDPClientUtil.h + +SOURCES += $$PWD/utils/SettingConfig.cpp +SOURCES += $$PWD/utils/QByteUtil.cpp +SOURCES += $$PWD/utils/QLogUtil.cpp +SOURCES += $$PWD/utils/UDPClientUtil.cpp diff --git a/ChannelItem.ui b/ChannelItem.ui index 897632a..1b750a3 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -255,7 +255,7 @@ - 1000 + 10000 diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 90f1b4d..58674c7 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -1,31 +1,21 @@ #include "PhaseDevice.h" +#include "common/utils/QLogUtil.h" #include #include PhaseDevice::PhaseDevice(QObject *parent) : QObject(parent) { - connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, + clientUtil = new UDPClientUtil(this); + connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - -// kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); -// kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); -// kafkaUtil.createProducer(); } PhaseDevice::~PhaseDevice() { - disconnect(&this->serialUtil, &QSerialPortUtil::dataRecieved, - this, &PhaseDevice::dataReceivedHandler); + } -void PhaseDevice::setComName(QString comName) -{ - this->comName = comName; -} -void PhaseDevice::setBaudRate(int baudRate) -{ - this->baudRate = baudRate; -} + QString PhaseDevice::getDevCode() { return this->devCode; @@ -39,25 +29,17 @@ this->deviceId = deviceId; } -bool PhaseDevice::isSerialOpen() -{ - return this->serialUtil.isOpen(); -} - -void PhaseDevice::initSerialPort() -{ - this->serialUtil.openSerialPort(this->comName, this->baudRate); -} void PhaseDevice::startWork() { - QString startCommand = PhaseProtocolBM::startMessure(); - this->serialUtil.sendData(startCommand.toLocal8Bit()); + QString startCmd = PhaseProtocolBM::startMessure(); + clientUtil->sendData(startCmd.toLocal8Bit()); } void PhaseDevice::stopWork() { - + QString stopCmd = PhaseProtocolBM::stopMessure(); + clientUtil->sendData(stopCmd.toLocal8Bit()); } void PhaseDevice::dataReceivedHandler(QByteArray data) @@ -125,15 +107,6 @@ QString channelDataStr = QString("%1 [%2] %3").arg(phaseData->timestamp).arg(phaseData->frameId).arg(phaseData->channelDataStr.at(i-1)); QLogUtil::writeChannelDataLogByDate(date, chFilename, channelDataStr); - - // 3. 输出到中间件,执行后续处理过程 - if (SettingConfig::getInstance().NEED_KAFKA == 1) - { - QJsonObject jsonObj = phaseData->toJSON(i - 1); - jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - jsonObj.insert("deviceId", deviceId); -// kafkaUtil.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); - } } } diff --git a/PhaseDevice.h b/PhaseDevice.h index aa7d822..f69839c 100644 --- a/PhaseDevice.h +++ b/PhaseDevice.h @@ -2,10 +2,8 @@ #define PHASEDEVICE_H #include -#include "common/utils/QSerialPortUtil.h" -#include "common/utils/QLogUtil.h" #include "common/utils/SettingConfig.h" -//#include "common/utils/QKafkaUtil.h" +#include "common/utils/UDPClientUtil.h" #include "protocol/PhaseProtocolBM.h" class PhaseDevice : public QObject @@ -15,14 +13,11 @@ explicit PhaseDevice(QObject *parent = nullptr); ~PhaseDevice(); - void initSerialPort(); void startWork(); void stopWork(); void afterFramePhase(PhaseDataDto * phaseData); - void setComName(QString comName); - void setBaudRate(int baudRate); QString getDevCode(); void setDevCode(QString devCode); void setDeviceId(QString deviceId); @@ -31,11 +26,9 @@ private: QString deviceId; QString devCode; - QString comName; - int baudRate; - QSerialPortUtil serialUtil; -// QKafkaUtil kafkaUtil; + UDPClientUtil * clientUtil; + QByteArray dataBuff; signals: diff --git a/PhaseMeasure.pro b/PhaseMeasure.pro index dc1c3b6..424394d 100644 --- a/PhaseMeasure.pro +++ b/PhaseMeasure.pro @@ -1,22 +1,21 @@ -QT += core gui serialport network +QT += core gui network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 -FORMS += \ - ChannelItem.ui \ - PhaseWindow.ui +FORMS += ChannelItem.ui +FORMS += PhaseWindow.ui include(common/common.pri) include(protocol/protocol.pri) -HEADERS += PhaseDevice.h \ - ChannelItem.h +HEADERS += PhaseDevice.h +HEADERS += ChannelItem.h HEADERS += PhaseWindow.h -SOURCES += PhaseDevice.cpp \ - ChannelItem.cpp +SOURCES += PhaseDevice.cpp +SOURCES += ChannelItem.cpp SOURCES += PhaseWindow.cpp SOURCES += main.cpp @@ -25,11 +24,6 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target -#unix:!macx: LIBS += -L$$PWD/lib/librdkafka/ -lrdkafka -lrdkafka++ -#INCLUDEPATH += $$PWD/include/librdkafka -#DEPENDPATH += $$PWD/include/librdkafka - DISTFILES += conf/config.ini -RESOURCES += \ - images.qrc +RESOURCES += images.qrc diff --git a/PhaseMeasure.pro.user b/PhaseMeasure.pro.user index 5658fcc..89c42e4 100644 --- a/PhaseMeasure.pro.user +++ b/PhaseMeasure.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {58895c32-e1e9-4248-b30e-d2ac0dfba9c9} + {b3715025-e290-4df4-afaa-42a38b3e40c1} ProjectExplorer.Project.ActiveTarget @@ -64,14 +64,14 @@ ProjectExplorer.Project.Target.0 - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit + Desktop Qt 5.12.8 MinGW 64-bit + Desktop Qt 5.12.8 MinGW 64-bit + qt.qt5.5128.win64_mingw73_kit 0 0 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug true @@ -119,7 +119,7 @@ 2 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Release + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Release true @@ -167,7 +167,7 @@ 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Profile true @@ -287,8 +287,8 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro - E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro + Qt4ProjectManager.Qt4RunConfiguration:D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro + D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro false @@ -299,257 +299,14 @@ false true - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - - ProjectExplorer.CustomExecutableRunConfiguration - - - false - - false - true - false - false - true - - + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug 1 ProjectExplorer.Project.TargetCount - 2 + 1 ProjectExplorer.Project.Updater.FileVersion diff --git a/PhaseWindow.cpp b/PhaseWindow.cpp index 27af4fc..9f3a373 100644 --- a/PhaseWindow.cpp +++ b/PhaseWindow.cpp @@ -39,19 +39,14 @@ ui->scrollArea->setGeometry(0, 90, screenRect.width(), screenRect.height() - 90); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); -// httpReq = new HttpRequestController(this); -// // 1. 获取访问接口需要的token -// int retCode = this->initHttpToken(); -// if (retCode != 200) -// { -// QMessageBox::information(this, "错误", "获取http请求的token失败,程序即将退出"); - -// QTimer::singleShot(1000, qApp, SLOT(quit())); -// } - // 2. 获取字典值:设备类型 -// retCode = this->initDictDeviceTypes(); + ui->tim3->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")); this->generateWidgetForDevice(); + + device = new PhaseDevice(this); + device->startWork(); + connect(device, &PhaseDevice::sendDataToDraw, + this, &PhaseWindow::drawPhaseDataOnPage); } PhaseWindow::~PhaseWindow() @@ -61,27 +56,20 @@ void PhaseWindow::drawPhaseDataOnPage(PhaseDataDto * phaseData) { - // 当前显示的设备编号 -// QString currentDevCode = ui->devSelect->currentData().toString(); - - // 如果不是当前设备的帧,直接返回 -// if (phaseData->devCode != currentDevCode) -// { -// return; -// } + ui->tim3->setText(phaseData->timestamp); // 更新所有通道BOX的值 - for (int i = 0; i < phaseData->channelActive.size(); i++) - { - // 获取对应的通道BOX - QGroupBox * channelBox = (QGroupBox *)ui->scrollContents->children().at(i + 1); +// for (int i = 0; i < phaseData->channelActive.size(); i++) +// { +// // 获取对应的通道BOX +// QGroupBox * channelBox = (QGroupBox *)ui->scrollContents->children().at(i + 1); - // 赋值,对应的lineEdit/label - ((QLineEdit *)channelBox->children().at(2))->setText(phaseData->timestamp); - ((QLineEdit *)channelBox->children().at(4))->setText(QString("%1 s").arg(phaseData->channelDataStr.at(i))); - ((QLineEdit *)channelBox->children().at(6))->setText(phaseData->frameId); - ((QLabel *)channelBox->children().at(7))->setText(phaseData->channelActive.at(i) == "1" ? "有效" : "无效"); - } +// // 赋值,对应的lineEdit/label +// ((QLineEdit *)channelBox->children().at(2))->setText(phaseData->timestamp); +// ((QLineEdit *)channelBox->children().at(4))->setText(QString("%1 s").arg(phaseData->channelDataStr.at(i))); +// ((QLineEdit *)channelBox->children().at(6))->setText(phaseData->frameId); +// ((QLabel *)channelBox->children().at(7))->setText(phaseData->channelActive.at(i) == "1" ? "有效" : "无效"); +// } } void PhaseWindow::generateWidgetForDevice() @@ -110,27 +98,9 @@ vbox->addWidget(widget); group->setLayout(vbox); layout->addWidget(group); - - } } -int PhaseWindow::initHttpToken() -{ - QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, - SettingConfig::getInstance().APP_KEY); - return response.find("code")->toInt(); -} -int PhaseWindow::initDictDeviceTypes() -{ - QJsonObject response = httpReq->initDictDeviceType(); - return response.find("code")->toInt(); -} -QJsonObject PhaseWindow::initDeviceList() -{ - QJsonObject response = httpReq->initDeviceList("比相仪"); - return response; -} void PhaseWindow::on_minButt_clicked() { diff --git a/PhaseWindow.h b/PhaseWindow.h index 02a7908..8f2314d 100644 --- a/PhaseWindow.h +++ b/PhaseWindow.h @@ -8,7 +8,6 @@ #include "PhaseDevice.h" #include "common/utils/SettingConfig.h" -#include "common/HttpRequestController.h" namespace Ui { class PhaseWindow; @@ -27,19 +26,12 @@ private slots: void on_minButt_clicked(); - void on_exitButt_clicked(); private: - int initHttpToken(); - int initDictDeviceTypes(); - QJsonObject initDeviceList(); - Ui::PhaseWindow *ui; - HttpRequestController * httpReq; - - QList deviceList; + PhaseDevice * device; void generateWidgetForDevice(); }; diff --git a/PhaseWindow.ui b/PhaseWindow.ui index 97edbe1..f7742fe 100644 --- a/PhaseWindow.ui +++ b/PhaseWindow.ui @@ -23,7 +23,7 @@ 0 - 0 + 100 100 30 @@ -73,21 +73,24 @@ - 100 + 0 0 200 - 41 + 50 微软雅黑 - 14 + 16 比相仪测量软件 + + Qt::AlignCenter + @@ -140,16 +143,16 @@ - 40 - 40 - 141 - 51 + 0 + 50 + 240 + 40 微软雅黑 - 14 + 12 75 true @@ -158,8 +161,7 @@ Qt::RightToLeft - 2021-12-10 -10:00:00 + 2021-12-10 10:00:00 Qt::AlignCenter diff --git a/common/common.pri b/common/common.pri index 84f57ae..81ad04d 100644 --- a/common/common.pri +++ b/common/common.pri @@ -1,20 +1,10 @@ -SOURCES += $$PWD/utils/SettingConfig.cpp -SOURCES += $$PWD/utils/QByteUtil.cpp -SOURCES += $$PWD/utils/QSerialPortUtil.cpp -SOURCES += $$PWD/utils/QLogUtil.cpp -#SOURCES += $$PWD/utils/QKafkaUtil.cpp -SOURCES += $$PWD/utils/HttpRequestUtil.cpp -SOURCES += $$PWD/utils/MD5.cpp -SOURCES += $$PWD/HttpRequestController.cpp - HEADERS += $$PWD/utils/SettingConfig.h HEADERS += $$PWD/utils/QByteUtil.h -HEADERS += $$PWD/utils/QSerialPortUtil.h HEADERS += $$PWD/utils/QLogUtil.h -#HEADERS += $$PWD/utils/QKafkaUtil.h -HEADERS += $$PWD/utils/HttpRequestUtil.h -HEADERS += $$PWD/utils/DefHead.h -HEADERS += $$PWD/utils/MD5.h -HEADERS += $$PWD/HttpRequestController.h -HEADERS += $$PWD/ConstCache.h +HEADERS += $$PWD/utils/UDPClientUtil.h + +SOURCES += $$PWD/utils/SettingConfig.cpp +SOURCES += $$PWD/utils/QByteUtil.cpp +SOURCES += $$PWD/utils/QLogUtil.cpp +SOURCES += $$PWD/utils/UDPClientUtil.cpp diff --git a/common/utils/SettingConfig.cpp b/common/utils/SettingConfig.cpp index 9a84a43..a9421d9 100644 --- a/common/utils/SettingConfig.cpp +++ b/common/utils/SettingConfig.cpp @@ -5,19 +5,10 @@ filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); - BAUD_RATE = getProperty("com", "baudRate").toInt(); - - NEED_KAFKA = getProperty("kafka", "needKafka").toInt(); - KAFKA_BROKERS = getProperty("kafka", "brokers").toString(); - KAFKA_DATA_TOPIC = getProperty("kafka", "dataTopic").toString(); - NEED_SASL = getProperty("kafka", "needSasl").toInt(); - SASL_USERNAME = getProperty("kafka", "saslUsername").toString(); - SASL_PASSWORD = getProperty("kafka", "saslPassword").toString(); - - CLIENT_ID = getProperty("client", "clientId").toString(); - APP_KEY = getProperty("client", "appKey").toString(); - - BASE_URL = getProperty("http", "baseUrl").toString(); + NET_TYPE = getProperty("net", "type").toString(); + DEVICE_HOST = getProperty("net", "deviceHost").toString(); + DEVICE_PORT = getProperty("net", "devicePort").toUInt(); + LISTEN_PORT = getProperty("net", "listenPort").toUInt(); BASE_LOG_PATH = getProperty("log", "basePath").toString(); } diff --git a/ChannelItem.ui b/ChannelItem.ui index 897632a..1b750a3 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -255,7 +255,7 @@ - 1000 + 10000 diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 90f1b4d..58674c7 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -1,31 +1,21 @@ #include "PhaseDevice.h" +#include "common/utils/QLogUtil.h" #include #include PhaseDevice::PhaseDevice(QObject *parent) : QObject(parent) { - connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, + clientUtil = new UDPClientUtil(this); + connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - -// kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); -// kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); -// kafkaUtil.createProducer(); } PhaseDevice::~PhaseDevice() { - disconnect(&this->serialUtil, &QSerialPortUtil::dataRecieved, - this, &PhaseDevice::dataReceivedHandler); + } -void PhaseDevice::setComName(QString comName) -{ - this->comName = comName; -} -void PhaseDevice::setBaudRate(int baudRate) -{ - this->baudRate = baudRate; -} + QString PhaseDevice::getDevCode() { return this->devCode; @@ -39,25 +29,17 @@ this->deviceId = deviceId; } -bool PhaseDevice::isSerialOpen() -{ - return this->serialUtil.isOpen(); -} - -void PhaseDevice::initSerialPort() -{ - this->serialUtil.openSerialPort(this->comName, this->baudRate); -} void PhaseDevice::startWork() { - QString startCommand = PhaseProtocolBM::startMessure(); - this->serialUtil.sendData(startCommand.toLocal8Bit()); + QString startCmd = PhaseProtocolBM::startMessure(); + clientUtil->sendData(startCmd.toLocal8Bit()); } void PhaseDevice::stopWork() { - + QString stopCmd = PhaseProtocolBM::stopMessure(); + clientUtil->sendData(stopCmd.toLocal8Bit()); } void PhaseDevice::dataReceivedHandler(QByteArray data) @@ -125,15 +107,6 @@ QString channelDataStr = QString("%1 [%2] %3").arg(phaseData->timestamp).arg(phaseData->frameId).arg(phaseData->channelDataStr.at(i-1)); QLogUtil::writeChannelDataLogByDate(date, chFilename, channelDataStr); - - // 3. 输出到中间件,执行后续处理过程 - if (SettingConfig::getInstance().NEED_KAFKA == 1) - { - QJsonObject jsonObj = phaseData->toJSON(i - 1); - jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - jsonObj.insert("deviceId", deviceId); -// kafkaUtil.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); - } } } diff --git a/PhaseDevice.h b/PhaseDevice.h index aa7d822..f69839c 100644 --- a/PhaseDevice.h +++ b/PhaseDevice.h @@ -2,10 +2,8 @@ #define PHASEDEVICE_H #include -#include "common/utils/QSerialPortUtil.h" -#include "common/utils/QLogUtil.h" #include "common/utils/SettingConfig.h" -//#include "common/utils/QKafkaUtil.h" +#include "common/utils/UDPClientUtil.h" #include "protocol/PhaseProtocolBM.h" class PhaseDevice : public QObject @@ -15,14 +13,11 @@ explicit PhaseDevice(QObject *parent = nullptr); ~PhaseDevice(); - void initSerialPort(); void startWork(); void stopWork(); void afterFramePhase(PhaseDataDto * phaseData); - void setComName(QString comName); - void setBaudRate(int baudRate); QString getDevCode(); void setDevCode(QString devCode); void setDeviceId(QString deviceId); @@ -31,11 +26,9 @@ private: QString deviceId; QString devCode; - QString comName; - int baudRate; - QSerialPortUtil serialUtil; -// QKafkaUtil kafkaUtil; + UDPClientUtil * clientUtil; + QByteArray dataBuff; signals: diff --git a/PhaseMeasure.pro b/PhaseMeasure.pro index dc1c3b6..424394d 100644 --- a/PhaseMeasure.pro +++ b/PhaseMeasure.pro @@ -1,22 +1,21 @@ -QT += core gui serialport network +QT += core gui network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 -FORMS += \ - ChannelItem.ui \ - PhaseWindow.ui +FORMS += ChannelItem.ui +FORMS += PhaseWindow.ui include(common/common.pri) include(protocol/protocol.pri) -HEADERS += PhaseDevice.h \ - ChannelItem.h +HEADERS += PhaseDevice.h +HEADERS += ChannelItem.h HEADERS += PhaseWindow.h -SOURCES += PhaseDevice.cpp \ - ChannelItem.cpp +SOURCES += PhaseDevice.cpp +SOURCES += ChannelItem.cpp SOURCES += PhaseWindow.cpp SOURCES += main.cpp @@ -25,11 +24,6 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target -#unix:!macx: LIBS += -L$$PWD/lib/librdkafka/ -lrdkafka -lrdkafka++ -#INCLUDEPATH += $$PWD/include/librdkafka -#DEPENDPATH += $$PWD/include/librdkafka - DISTFILES += conf/config.ini -RESOURCES += \ - images.qrc +RESOURCES += images.qrc diff --git a/PhaseMeasure.pro.user b/PhaseMeasure.pro.user index 5658fcc..89c42e4 100644 --- a/PhaseMeasure.pro.user +++ b/PhaseMeasure.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {58895c32-e1e9-4248-b30e-d2ac0dfba9c9} + {b3715025-e290-4df4-afaa-42a38b3e40c1} ProjectExplorer.Project.ActiveTarget @@ -64,14 +64,14 @@ ProjectExplorer.Project.Target.0 - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit + Desktop Qt 5.12.8 MinGW 64-bit + Desktop Qt 5.12.8 MinGW 64-bit + qt.qt5.5128.win64_mingw73_kit 0 0 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug true @@ -119,7 +119,7 @@ 2 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Release + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Release true @@ -167,7 +167,7 @@ 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Profile true @@ -287,8 +287,8 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro - E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro + Qt4ProjectManager.Qt4RunConfiguration:D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro + D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro false @@ -299,257 +299,14 @@ false true - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - - ProjectExplorer.CustomExecutableRunConfiguration - - - false - - false - true - false - false - true - - + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug 1 ProjectExplorer.Project.TargetCount - 2 + 1 ProjectExplorer.Project.Updater.FileVersion diff --git a/PhaseWindow.cpp b/PhaseWindow.cpp index 27af4fc..9f3a373 100644 --- a/PhaseWindow.cpp +++ b/PhaseWindow.cpp @@ -39,19 +39,14 @@ ui->scrollArea->setGeometry(0, 90, screenRect.width(), screenRect.height() - 90); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); -// httpReq = new HttpRequestController(this); -// // 1. 获取访问接口需要的token -// int retCode = this->initHttpToken(); -// if (retCode != 200) -// { -// QMessageBox::information(this, "错误", "获取http请求的token失败,程序即将退出"); - -// QTimer::singleShot(1000, qApp, SLOT(quit())); -// } - // 2. 获取字典值:设备类型 -// retCode = this->initDictDeviceTypes(); + ui->tim3->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")); this->generateWidgetForDevice(); + + device = new PhaseDevice(this); + device->startWork(); + connect(device, &PhaseDevice::sendDataToDraw, + this, &PhaseWindow::drawPhaseDataOnPage); } PhaseWindow::~PhaseWindow() @@ -61,27 +56,20 @@ void PhaseWindow::drawPhaseDataOnPage(PhaseDataDto * phaseData) { - // 当前显示的设备编号 -// QString currentDevCode = ui->devSelect->currentData().toString(); - - // 如果不是当前设备的帧,直接返回 -// if (phaseData->devCode != currentDevCode) -// { -// return; -// } + ui->tim3->setText(phaseData->timestamp); // 更新所有通道BOX的值 - for (int i = 0; i < phaseData->channelActive.size(); i++) - { - // 获取对应的通道BOX - QGroupBox * channelBox = (QGroupBox *)ui->scrollContents->children().at(i + 1); +// for (int i = 0; i < phaseData->channelActive.size(); i++) +// { +// // 获取对应的通道BOX +// QGroupBox * channelBox = (QGroupBox *)ui->scrollContents->children().at(i + 1); - // 赋值,对应的lineEdit/label - ((QLineEdit *)channelBox->children().at(2))->setText(phaseData->timestamp); - ((QLineEdit *)channelBox->children().at(4))->setText(QString("%1 s").arg(phaseData->channelDataStr.at(i))); - ((QLineEdit *)channelBox->children().at(6))->setText(phaseData->frameId); - ((QLabel *)channelBox->children().at(7))->setText(phaseData->channelActive.at(i) == "1" ? "有效" : "无效"); - } +// // 赋值,对应的lineEdit/label +// ((QLineEdit *)channelBox->children().at(2))->setText(phaseData->timestamp); +// ((QLineEdit *)channelBox->children().at(4))->setText(QString("%1 s").arg(phaseData->channelDataStr.at(i))); +// ((QLineEdit *)channelBox->children().at(6))->setText(phaseData->frameId); +// ((QLabel *)channelBox->children().at(7))->setText(phaseData->channelActive.at(i) == "1" ? "有效" : "无效"); +// } } void PhaseWindow::generateWidgetForDevice() @@ -110,27 +98,9 @@ vbox->addWidget(widget); group->setLayout(vbox); layout->addWidget(group); - - } } -int PhaseWindow::initHttpToken() -{ - QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, - SettingConfig::getInstance().APP_KEY); - return response.find("code")->toInt(); -} -int PhaseWindow::initDictDeviceTypes() -{ - QJsonObject response = httpReq->initDictDeviceType(); - return response.find("code")->toInt(); -} -QJsonObject PhaseWindow::initDeviceList() -{ - QJsonObject response = httpReq->initDeviceList("比相仪"); - return response; -} void PhaseWindow::on_minButt_clicked() { diff --git a/PhaseWindow.h b/PhaseWindow.h index 02a7908..8f2314d 100644 --- a/PhaseWindow.h +++ b/PhaseWindow.h @@ -8,7 +8,6 @@ #include "PhaseDevice.h" #include "common/utils/SettingConfig.h" -#include "common/HttpRequestController.h" namespace Ui { class PhaseWindow; @@ -27,19 +26,12 @@ private slots: void on_minButt_clicked(); - void on_exitButt_clicked(); private: - int initHttpToken(); - int initDictDeviceTypes(); - QJsonObject initDeviceList(); - Ui::PhaseWindow *ui; - HttpRequestController * httpReq; - - QList deviceList; + PhaseDevice * device; void generateWidgetForDevice(); }; diff --git a/PhaseWindow.ui b/PhaseWindow.ui index 97edbe1..f7742fe 100644 --- a/PhaseWindow.ui +++ b/PhaseWindow.ui @@ -23,7 +23,7 @@ 0 - 0 + 100 100 30 @@ -73,21 +73,24 @@ - 100 + 0 0 200 - 41 + 50 微软雅黑 - 14 + 16 比相仪测量软件 + + Qt::AlignCenter + @@ -140,16 +143,16 @@ - 40 - 40 - 141 - 51 + 0 + 50 + 240 + 40 微软雅黑 - 14 + 12 75 true @@ -158,8 +161,7 @@ Qt::RightToLeft - 2021-12-10 -10:00:00 + 2021-12-10 10:00:00 Qt::AlignCenter diff --git a/common/common.pri b/common/common.pri index 84f57ae..81ad04d 100644 --- a/common/common.pri +++ b/common/common.pri @@ -1,20 +1,10 @@ -SOURCES += $$PWD/utils/SettingConfig.cpp -SOURCES += $$PWD/utils/QByteUtil.cpp -SOURCES += $$PWD/utils/QSerialPortUtil.cpp -SOURCES += $$PWD/utils/QLogUtil.cpp -#SOURCES += $$PWD/utils/QKafkaUtil.cpp -SOURCES += $$PWD/utils/HttpRequestUtil.cpp -SOURCES += $$PWD/utils/MD5.cpp -SOURCES += $$PWD/HttpRequestController.cpp - HEADERS += $$PWD/utils/SettingConfig.h HEADERS += $$PWD/utils/QByteUtil.h -HEADERS += $$PWD/utils/QSerialPortUtil.h HEADERS += $$PWD/utils/QLogUtil.h -#HEADERS += $$PWD/utils/QKafkaUtil.h -HEADERS += $$PWD/utils/HttpRequestUtil.h -HEADERS += $$PWD/utils/DefHead.h -HEADERS += $$PWD/utils/MD5.h -HEADERS += $$PWD/HttpRequestController.h -HEADERS += $$PWD/ConstCache.h +HEADERS += $$PWD/utils/UDPClientUtil.h + +SOURCES += $$PWD/utils/SettingConfig.cpp +SOURCES += $$PWD/utils/QByteUtil.cpp +SOURCES += $$PWD/utils/QLogUtil.cpp +SOURCES += $$PWD/utils/UDPClientUtil.cpp diff --git a/common/utils/SettingConfig.cpp b/common/utils/SettingConfig.cpp index 9a84a43..a9421d9 100644 --- a/common/utils/SettingConfig.cpp +++ b/common/utils/SettingConfig.cpp @@ -5,19 +5,10 @@ filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); - BAUD_RATE = getProperty("com", "baudRate").toInt(); - - NEED_KAFKA = getProperty("kafka", "needKafka").toInt(); - KAFKA_BROKERS = getProperty("kafka", "brokers").toString(); - KAFKA_DATA_TOPIC = getProperty("kafka", "dataTopic").toString(); - NEED_SASL = getProperty("kafka", "needSasl").toInt(); - SASL_USERNAME = getProperty("kafka", "saslUsername").toString(); - SASL_PASSWORD = getProperty("kafka", "saslPassword").toString(); - - CLIENT_ID = getProperty("client", "clientId").toString(); - APP_KEY = getProperty("client", "appKey").toString(); - - BASE_URL = getProperty("http", "baseUrl").toString(); + NET_TYPE = getProperty("net", "type").toString(); + DEVICE_HOST = getProperty("net", "deviceHost").toString(); + DEVICE_PORT = getProperty("net", "devicePort").toUInt(); + LISTEN_PORT = getProperty("net", "listenPort").toUInt(); BASE_LOG_PATH = getProperty("log", "basePath").toString(); } diff --git a/common/utils/SettingConfig.h b/common/utils/SettingConfig.h index 0038ecc..0674ffd 100644 --- a/common/utils/SettingConfig.h +++ b/common/utils/SettingConfig.h @@ -27,19 +27,10 @@ QVariant getProperty(QString nodeName, QString keyName); /******** 以下为需要的各类参数 ********/ - int BAUD_RATE; - - int NEED_KAFKA; - QString KAFKA_BROKERS; - QString KAFKA_DATA_TOPIC; - int NEED_SASL; - QString SASL_USERNAME; - QString SASL_PASSWORD; - - QString CLIENT_ID; - QString APP_KEY; - - QString BASE_URL; + QString NET_TYPE; + QString DEVICE_HOST; + quint16 DEVICE_PORT; + quint16 LISTEN_PORT; QString BASE_LOG_PATH; diff --git a/ChannelItem.ui b/ChannelItem.ui index 897632a..1b750a3 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -255,7 +255,7 @@ - 1000 + 10000 diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 90f1b4d..58674c7 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -1,31 +1,21 @@ #include "PhaseDevice.h" +#include "common/utils/QLogUtil.h" #include #include PhaseDevice::PhaseDevice(QObject *parent) : QObject(parent) { - connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, + clientUtil = new UDPClientUtil(this); + connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - -// kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); -// kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); -// kafkaUtil.createProducer(); } PhaseDevice::~PhaseDevice() { - disconnect(&this->serialUtil, &QSerialPortUtil::dataRecieved, - this, &PhaseDevice::dataReceivedHandler); + } -void PhaseDevice::setComName(QString comName) -{ - this->comName = comName; -} -void PhaseDevice::setBaudRate(int baudRate) -{ - this->baudRate = baudRate; -} + QString PhaseDevice::getDevCode() { return this->devCode; @@ -39,25 +29,17 @@ this->deviceId = deviceId; } -bool PhaseDevice::isSerialOpen() -{ - return this->serialUtil.isOpen(); -} - -void PhaseDevice::initSerialPort() -{ - this->serialUtil.openSerialPort(this->comName, this->baudRate); -} void PhaseDevice::startWork() { - QString startCommand = PhaseProtocolBM::startMessure(); - this->serialUtil.sendData(startCommand.toLocal8Bit()); + QString startCmd = PhaseProtocolBM::startMessure(); + clientUtil->sendData(startCmd.toLocal8Bit()); } void PhaseDevice::stopWork() { - + QString stopCmd = PhaseProtocolBM::stopMessure(); + clientUtil->sendData(stopCmd.toLocal8Bit()); } void PhaseDevice::dataReceivedHandler(QByteArray data) @@ -125,15 +107,6 @@ QString channelDataStr = QString("%1 [%2] %3").arg(phaseData->timestamp).arg(phaseData->frameId).arg(phaseData->channelDataStr.at(i-1)); QLogUtil::writeChannelDataLogByDate(date, chFilename, channelDataStr); - - // 3. 输出到中间件,执行后续处理过程 - if (SettingConfig::getInstance().NEED_KAFKA == 1) - { - QJsonObject jsonObj = phaseData->toJSON(i - 1); - jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - jsonObj.insert("deviceId", deviceId); -// kafkaUtil.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); - } } } diff --git a/PhaseDevice.h b/PhaseDevice.h index aa7d822..f69839c 100644 --- a/PhaseDevice.h +++ b/PhaseDevice.h @@ -2,10 +2,8 @@ #define PHASEDEVICE_H #include -#include "common/utils/QSerialPortUtil.h" -#include "common/utils/QLogUtil.h" #include "common/utils/SettingConfig.h" -//#include "common/utils/QKafkaUtil.h" +#include "common/utils/UDPClientUtil.h" #include "protocol/PhaseProtocolBM.h" class PhaseDevice : public QObject @@ -15,14 +13,11 @@ explicit PhaseDevice(QObject *parent = nullptr); ~PhaseDevice(); - void initSerialPort(); void startWork(); void stopWork(); void afterFramePhase(PhaseDataDto * phaseData); - void setComName(QString comName); - void setBaudRate(int baudRate); QString getDevCode(); void setDevCode(QString devCode); void setDeviceId(QString deviceId); @@ -31,11 +26,9 @@ private: QString deviceId; QString devCode; - QString comName; - int baudRate; - QSerialPortUtil serialUtil; -// QKafkaUtil kafkaUtil; + UDPClientUtil * clientUtil; + QByteArray dataBuff; signals: diff --git a/PhaseMeasure.pro b/PhaseMeasure.pro index dc1c3b6..424394d 100644 --- a/PhaseMeasure.pro +++ b/PhaseMeasure.pro @@ -1,22 +1,21 @@ -QT += core gui serialport network +QT += core gui network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 -FORMS += \ - ChannelItem.ui \ - PhaseWindow.ui +FORMS += ChannelItem.ui +FORMS += PhaseWindow.ui include(common/common.pri) include(protocol/protocol.pri) -HEADERS += PhaseDevice.h \ - ChannelItem.h +HEADERS += PhaseDevice.h +HEADERS += ChannelItem.h HEADERS += PhaseWindow.h -SOURCES += PhaseDevice.cpp \ - ChannelItem.cpp +SOURCES += PhaseDevice.cpp +SOURCES += ChannelItem.cpp SOURCES += PhaseWindow.cpp SOURCES += main.cpp @@ -25,11 +24,6 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target -#unix:!macx: LIBS += -L$$PWD/lib/librdkafka/ -lrdkafka -lrdkafka++ -#INCLUDEPATH += $$PWD/include/librdkafka -#DEPENDPATH += $$PWD/include/librdkafka - DISTFILES += conf/config.ini -RESOURCES += \ - images.qrc +RESOURCES += images.qrc diff --git a/PhaseMeasure.pro.user b/PhaseMeasure.pro.user index 5658fcc..89c42e4 100644 --- a/PhaseMeasure.pro.user +++ b/PhaseMeasure.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {58895c32-e1e9-4248-b30e-d2ac0dfba9c9} + {b3715025-e290-4df4-afaa-42a38b3e40c1} ProjectExplorer.Project.ActiveTarget @@ -64,14 +64,14 @@ ProjectExplorer.Project.Target.0 - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit + Desktop Qt 5.12.8 MinGW 64-bit + Desktop Qt 5.12.8 MinGW 64-bit + qt.qt5.5128.win64_mingw73_kit 0 0 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug true @@ -119,7 +119,7 @@ 2 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Release + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Release true @@ -167,7 +167,7 @@ 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Profile true @@ -287,8 +287,8 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro - E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro + Qt4ProjectManager.Qt4RunConfiguration:D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro + D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro false @@ -299,257 +299,14 @@ false true - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - - ProjectExplorer.CustomExecutableRunConfiguration - - - false - - false - true - false - false - true - - + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug 1 ProjectExplorer.Project.TargetCount - 2 + 1 ProjectExplorer.Project.Updater.FileVersion diff --git a/PhaseWindow.cpp b/PhaseWindow.cpp index 27af4fc..9f3a373 100644 --- a/PhaseWindow.cpp +++ b/PhaseWindow.cpp @@ -39,19 +39,14 @@ ui->scrollArea->setGeometry(0, 90, screenRect.width(), screenRect.height() - 90); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); -// httpReq = new HttpRequestController(this); -// // 1. 获取访问接口需要的token -// int retCode = this->initHttpToken(); -// if (retCode != 200) -// { -// QMessageBox::information(this, "错误", "获取http请求的token失败,程序即将退出"); - -// QTimer::singleShot(1000, qApp, SLOT(quit())); -// } - // 2. 获取字典值:设备类型 -// retCode = this->initDictDeviceTypes(); + ui->tim3->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")); this->generateWidgetForDevice(); + + device = new PhaseDevice(this); + device->startWork(); + connect(device, &PhaseDevice::sendDataToDraw, + this, &PhaseWindow::drawPhaseDataOnPage); } PhaseWindow::~PhaseWindow() @@ -61,27 +56,20 @@ void PhaseWindow::drawPhaseDataOnPage(PhaseDataDto * phaseData) { - // 当前显示的设备编号 -// QString currentDevCode = ui->devSelect->currentData().toString(); - - // 如果不是当前设备的帧,直接返回 -// if (phaseData->devCode != currentDevCode) -// { -// return; -// } + ui->tim3->setText(phaseData->timestamp); // 更新所有通道BOX的值 - for (int i = 0; i < phaseData->channelActive.size(); i++) - { - // 获取对应的通道BOX - QGroupBox * channelBox = (QGroupBox *)ui->scrollContents->children().at(i + 1); +// for (int i = 0; i < phaseData->channelActive.size(); i++) +// { +// // 获取对应的通道BOX +// QGroupBox * channelBox = (QGroupBox *)ui->scrollContents->children().at(i + 1); - // 赋值,对应的lineEdit/label - ((QLineEdit *)channelBox->children().at(2))->setText(phaseData->timestamp); - ((QLineEdit *)channelBox->children().at(4))->setText(QString("%1 s").arg(phaseData->channelDataStr.at(i))); - ((QLineEdit *)channelBox->children().at(6))->setText(phaseData->frameId); - ((QLabel *)channelBox->children().at(7))->setText(phaseData->channelActive.at(i) == "1" ? "有效" : "无效"); - } +// // 赋值,对应的lineEdit/label +// ((QLineEdit *)channelBox->children().at(2))->setText(phaseData->timestamp); +// ((QLineEdit *)channelBox->children().at(4))->setText(QString("%1 s").arg(phaseData->channelDataStr.at(i))); +// ((QLineEdit *)channelBox->children().at(6))->setText(phaseData->frameId); +// ((QLabel *)channelBox->children().at(7))->setText(phaseData->channelActive.at(i) == "1" ? "有效" : "无效"); +// } } void PhaseWindow::generateWidgetForDevice() @@ -110,27 +98,9 @@ vbox->addWidget(widget); group->setLayout(vbox); layout->addWidget(group); - - } } -int PhaseWindow::initHttpToken() -{ - QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, - SettingConfig::getInstance().APP_KEY); - return response.find("code")->toInt(); -} -int PhaseWindow::initDictDeviceTypes() -{ - QJsonObject response = httpReq->initDictDeviceType(); - return response.find("code")->toInt(); -} -QJsonObject PhaseWindow::initDeviceList() -{ - QJsonObject response = httpReq->initDeviceList("比相仪"); - return response; -} void PhaseWindow::on_minButt_clicked() { diff --git a/PhaseWindow.h b/PhaseWindow.h index 02a7908..8f2314d 100644 --- a/PhaseWindow.h +++ b/PhaseWindow.h @@ -8,7 +8,6 @@ #include "PhaseDevice.h" #include "common/utils/SettingConfig.h" -#include "common/HttpRequestController.h" namespace Ui { class PhaseWindow; @@ -27,19 +26,12 @@ private slots: void on_minButt_clicked(); - void on_exitButt_clicked(); private: - int initHttpToken(); - int initDictDeviceTypes(); - QJsonObject initDeviceList(); - Ui::PhaseWindow *ui; - HttpRequestController * httpReq; - - QList deviceList; + PhaseDevice * device; void generateWidgetForDevice(); }; diff --git a/PhaseWindow.ui b/PhaseWindow.ui index 97edbe1..f7742fe 100644 --- a/PhaseWindow.ui +++ b/PhaseWindow.ui @@ -23,7 +23,7 @@ 0 - 0 + 100 100 30 @@ -73,21 +73,24 @@ - 100 + 0 0 200 - 41 + 50 微软雅黑 - 14 + 16 比相仪测量软件 + + Qt::AlignCenter + @@ -140,16 +143,16 @@ - 40 - 40 - 141 - 51 + 0 + 50 + 240 + 40 微软雅黑 - 14 + 12 75 true @@ -158,8 +161,7 @@ Qt::RightToLeft - 2021-12-10 -10:00:00 + 2021-12-10 10:00:00 Qt::AlignCenter diff --git a/common/common.pri b/common/common.pri index 84f57ae..81ad04d 100644 --- a/common/common.pri +++ b/common/common.pri @@ -1,20 +1,10 @@ -SOURCES += $$PWD/utils/SettingConfig.cpp -SOURCES += $$PWD/utils/QByteUtil.cpp -SOURCES += $$PWD/utils/QSerialPortUtil.cpp -SOURCES += $$PWD/utils/QLogUtil.cpp -#SOURCES += $$PWD/utils/QKafkaUtil.cpp -SOURCES += $$PWD/utils/HttpRequestUtil.cpp -SOURCES += $$PWD/utils/MD5.cpp -SOURCES += $$PWD/HttpRequestController.cpp - HEADERS += $$PWD/utils/SettingConfig.h HEADERS += $$PWD/utils/QByteUtil.h -HEADERS += $$PWD/utils/QSerialPortUtil.h HEADERS += $$PWD/utils/QLogUtil.h -#HEADERS += $$PWD/utils/QKafkaUtil.h -HEADERS += $$PWD/utils/HttpRequestUtil.h -HEADERS += $$PWD/utils/DefHead.h -HEADERS += $$PWD/utils/MD5.h -HEADERS += $$PWD/HttpRequestController.h -HEADERS += $$PWD/ConstCache.h +HEADERS += $$PWD/utils/UDPClientUtil.h + +SOURCES += $$PWD/utils/SettingConfig.cpp +SOURCES += $$PWD/utils/QByteUtil.cpp +SOURCES += $$PWD/utils/QLogUtil.cpp +SOURCES += $$PWD/utils/UDPClientUtil.cpp diff --git a/common/utils/SettingConfig.cpp b/common/utils/SettingConfig.cpp index 9a84a43..a9421d9 100644 --- a/common/utils/SettingConfig.cpp +++ b/common/utils/SettingConfig.cpp @@ -5,19 +5,10 @@ filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); - BAUD_RATE = getProperty("com", "baudRate").toInt(); - - NEED_KAFKA = getProperty("kafka", "needKafka").toInt(); - KAFKA_BROKERS = getProperty("kafka", "brokers").toString(); - KAFKA_DATA_TOPIC = getProperty("kafka", "dataTopic").toString(); - NEED_SASL = getProperty("kafka", "needSasl").toInt(); - SASL_USERNAME = getProperty("kafka", "saslUsername").toString(); - SASL_PASSWORD = getProperty("kafka", "saslPassword").toString(); - - CLIENT_ID = getProperty("client", "clientId").toString(); - APP_KEY = getProperty("client", "appKey").toString(); - - BASE_URL = getProperty("http", "baseUrl").toString(); + NET_TYPE = getProperty("net", "type").toString(); + DEVICE_HOST = getProperty("net", "deviceHost").toString(); + DEVICE_PORT = getProperty("net", "devicePort").toUInt(); + LISTEN_PORT = getProperty("net", "listenPort").toUInt(); BASE_LOG_PATH = getProperty("log", "basePath").toString(); } diff --git a/common/utils/SettingConfig.h b/common/utils/SettingConfig.h index 0038ecc..0674ffd 100644 --- a/common/utils/SettingConfig.h +++ b/common/utils/SettingConfig.h @@ -27,19 +27,10 @@ QVariant getProperty(QString nodeName, QString keyName); /******** 以下为需要的各类参数 ********/ - int BAUD_RATE; - - int NEED_KAFKA; - QString KAFKA_BROKERS; - QString KAFKA_DATA_TOPIC; - int NEED_SASL; - QString SASL_USERNAME; - QString SASL_PASSWORD; - - QString CLIENT_ID; - QString APP_KEY; - - QString BASE_URL; + QString NET_TYPE; + QString DEVICE_HOST; + quint16 DEVICE_PORT; + quint16 LISTEN_PORT; QString BASE_LOG_PATH; diff --git a/common/utils/UDPClientUtil.cpp b/common/utils/UDPClientUtil.cpp new file mode 100644 index 0000000..6695afe --- /dev/null +++ b/common/utils/UDPClientUtil.cpp @@ -0,0 +1,42 @@ +#include "UDPClientUtil.h" +#include "SettingConfig.h" +#include "QByteUtil.h" +#include + +UDPClientUtil::UDPClientUtil(QObject *parent) : QObject(parent) +{ + client = new QUdpSocket(this); + + client->bind(QHostAddress("127.0.0.1"), SettingConfig::getInstance().LISTEN_PORT); + connect(client, &QUdpSocket::readyRead, + this, &UDPClientUtil::readData); +} + +UDPClientUtil::~UDPClientUtil() +{ + +} + + +void UDPClientUtil::sendData(QByteArray data) +{ + client->writeDatagram(data, + QHostAddress(SettingConfig::getInstance().DEVICE_HOST), + SettingConfig::getInstance().DEVICE_PORT); + + std::cout << "[send]" << data.toStdString() << std::endl; +} + +void UDPClientUtil::readData() +{ + QByteArray ba; + while(client->hasPendingDatagrams()) + { + ba.resize(client->pendingDatagramSize()); + client->readDatagram(ba.data(), ba.size()); + + std::cout << "[recv]" << QByteUtil::binToHexString(ba).toStdString() << std::endl; + + emit dataRecieved(ba); + } +} diff --git a/ChannelItem.ui b/ChannelItem.ui index 897632a..1b750a3 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -255,7 +255,7 @@ - 1000 + 10000 diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 90f1b4d..58674c7 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -1,31 +1,21 @@ #include "PhaseDevice.h" +#include "common/utils/QLogUtil.h" #include #include PhaseDevice::PhaseDevice(QObject *parent) : QObject(parent) { - connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, + clientUtil = new UDPClientUtil(this); + connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - -// kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); -// kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); -// kafkaUtil.createProducer(); } PhaseDevice::~PhaseDevice() { - disconnect(&this->serialUtil, &QSerialPortUtil::dataRecieved, - this, &PhaseDevice::dataReceivedHandler); + } -void PhaseDevice::setComName(QString comName) -{ - this->comName = comName; -} -void PhaseDevice::setBaudRate(int baudRate) -{ - this->baudRate = baudRate; -} + QString PhaseDevice::getDevCode() { return this->devCode; @@ -39,25 +29,17 @@ this->deviceId = deviceId; } -bool PhaseDevice::isSerialOpen() -{ - return this->serialUtil.isOpen(); -} - -void PhaseDevice::initSerialPort() -{ - this->serialUtil.openSerialPort(this->comName, this->baudRate); -} void PhaseDevice::startWork() { - QString startCommand = PhaseProtocolBM::startMessure(); - this->serialUtil.sendData(startCommand.toLocal8Bit()); + QString startCmd = PhaseProtocolBM::startMessure(); + clientUtil->sendData(startCmd.toLocal8Bit()); } void PhaseDevice::stopWork() { - + QString stopCmd = PhaseProtocolBM::stopMessure(); + clientUtil->sendData(stopCmd.toLocal8Bit()); } void PhaseDevice::dataReceivedHandler(QByteArray data) @@ -125,15 +107,6 @@ QString channelDataStr = QString("%1 [%2] %3").arg(phaseData->timestamp).arg(phaseData->frameId).arg(phaseData->channelDataStr.at(i-1)); QLogUtil::writeChannelDataLogByDate(date, chFilename, channelDataStr); - - // 3. 输出到中间件,执行后续处理过程 - if (SettingConfig::getInstance().NEED_KAFKA == 1) - { - QJsonObject jsonObj = phaseData->toJSON(i - 1); - jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - jsonObj.insert("deviceId", deviceId); -// kafkaUtil.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); - } } } diff --git a/PhaseDevice.h b/PhaseDevice.h index aa7d822..f69839c 100644 --- a/PhaseDevice.h +++ b/PhaseDevice.h @@ -2,10 +2,8 @@ #define PHASEDEVICE_H #include -#include "common/utils/QSerialPortUtil.h" -#include "common/utils/QLogUtil.h" #include "common/utils/SettingConfig.h" -//#include "common/utils/QKafkaUtil.h" +#include "common/utils/UDPClientUtil.h" #include "protocol/PhaseProtocolBM.h" class PhaseDevice : public QObject @@ -15,14 +13,11 @@ explicit PhaseDevice(QObject *parent = nullptr); ~PhaseDevice(); - void initSerialPort(); void startWork(); void stopWork(); void afterFramePhase(PhaseDataDto * phaseData); - void setComName(QString comName); - void setBaudRate(int baudRate); QString getDevCode(); void setDevCode(QString devCode); void setDeviceId(QString deviceId); @@ -31,11 +26,9 @@ private: QString deviceId; QString devCode; - QString comName; - int baudRate; - QSerialPortUtil serialUtil; -// QKafkaUtil kafkaUtil; + UDPClientUtil * clientUtil; + QByteArray dataBuff; signals: diff --git a/PhaseMeasure.pro b/PhaseMeasure.pro index dc1c3b6..424394d 100644 --- a/PhaseMeasure.pro +++ b/PhaseMeasure.pro @@ -1,22 +1,21 @@ -QT += core gui serialport network +QT += core gui network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 -FORMS += \ - ChannelItem.ui \ - PhaseWindow.ui +FORMS += ChannelItem.ui +FORMS += PhaseWindow.ui include(common/common.pri) include(protocol/protocol.pri) -HEADERS += PhaseDevice.h \ - ChannelItem.h +HEADERS += PhaseDevice.h +HEADERS += ChannelItem.h HEADERS += PhaseWindow.h -SOURCES += PhaseDevice.cpp \ - ChannelItem.cpp +SOURCES += PhaseDevice.cpp +SOURCES += ChannelItem.cpp SOURCES += PhaseWindow.cpp SOURCES += main.cpp @@ -25,11 +24,6 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target -#unix:!macx: LIBS += -L$$PWD/lib/librdkafka/ -lrdkafka -lrdkafka++ -#INCLUDEPATH += $$PWD/include/librdkafka -#DEPENDPATH += $$PWD/include/librdkafka - DISTFILES += conf/config.ini -RESOURCES += \ - images.qrc +RESOURCES += images.qrc diff --git a/PhaseMeasure.pro.user b/PhaseMeasure.pro.user index 5658fcc..89c42e4 100644 --- a/PhaseMeasure.pro.user +++ b/PhaseMeasure.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {58895c32-e1e9-4248-b30e-d2ac0dfba9c9} + {b3715025-e290-4df4-afaa-42a38b3e40c1} ProjectExplorer.Project.ActiveTarget @@ -64,14 +64,14 @@ ProjectExplorer.Project.Target.0 - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit + Desktop Qt 5.12.8 MinGW 64-bit + Desktop Qt 5.12.8 MinGW 64-bit + qt.qt5.5128.win64_mingw73_kit 0 0 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug true @@ -119,7 +119,7 @@ 2 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Release + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Release true @@ -167,7 +167,7 @@ 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Profile true @@ -287,8 +287,8 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro - E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro + Qt4ProjectManager.Qt4RunConfiguration:D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro + D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro false @@ -299,257 +299,14 @@ false true - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - - ProjectExplorer.CustomExecutableRunConfiguration - - - false - - false - true - false - false - true - - + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug 1 ProjectExplorer.Project.TargetCount - 2 + 1 ProjectExplorer.Project.Updater.FileVersion diff --git a/PhaseWindow.cpp b/PhaseWindow.cpp index 27af4fc..9f3a373 100644 --- a/PhaseWindow.cpp +++ b/PhaseWindow.cpp @@ -39,19 +39,14 @@ ui->scrollArea->setGeometry(0, 90, screenRect.width(), screenRect.height() - 90); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); -// httpReq = new HttpRequestController(this); -// // 1. 获取访问接口需要的token -// int retCode = this->initHttpToken(); -// if (retCode != 200) -// { -// QMessageBox::information(this, "错误", "获取http请求的token失败,程序即将退出"); - -// QTimer::singleShot(1000, qApp, SLOT(quit())); -// } - // 2. 获取字典值:设备类型 -// retCode = this->initDictDeviceTypes(); + ui->tim3->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")); this->generateWidgetForDevice(); + + device = new PhaseDevice(this); + device->startWork(); + connect(device, &PhaseDevice::sendDataToDraw, + this, &PhaseWindow::drawPhaseDataOnPage); } PhaseWindow::~PhaseWindow() @@ -61,27 +56,20 @@ void PhaseWindow::drawPhaseDataOnPage(PhaseDataDto * phaseData) { - // 当前显示的设备编号 -// QString currentDevCode = ui->devSelect->currentData().toString(); - - // 如果不是当前设备的帧,直接返回 -// if (phaseData->devCode != currentDevCode) -// { -// return; -// } + ui->tim3->setText(phaseData->timestamp); // 更新所有通道BOX的值 - for (int i = 0; i < phaseData->channelActive.size(); i++) - { - // 获取对应的通道BOX - QGroupBox * channelBox = (QGroupBox *)ui->scrollContents->children().at(i + 1); +// for (int i = 0; i < phaseData->channelActive.size(); i++) +// { +// // 获取对应的通道BOX +// QGroupBox * channelBox = (QGroupBox *)ui->scrollContents->children().at(i + 1); - // 赋值,对应的lineEdit/label - ((QLineEdit *)channelBox->children().at(2))->setText(phaseData->timestamp); - ((QLineEdit *)channelBox->children().at(4))->setText(QString("%1 s").arg(phaseData->channelDataStr.at(i))); - ((QLineEdit *)channelBox->children().at(6))->setText(phaseData->frameId); - ((QLabel *)channelBox->children().at(7))->setText(phaseData->channelActive.at(i) == "1" ? "有效" : "无效"); - } +// // 赋值,对应的lineEdit/label +// ((QLineEdit *)channelBox->children().at(2))->setText(phaseData->timestamp); +// ((QLineEdit *)channelBox->children().at(4))->setText(QString("%1 s").arg(phaseData->channelDataStr.at(i))); +// ((QLineEdit *)channelBox->children().at(6))->setText(phaseData->frameId); +// ((QLabel *)channelBox->children().at(7))->setText(phaseData->channelActive.at(i) == "1" ? "有效" : "无效"); +// } } void PhaseWindow::generateWidgetForDevice() @@ -110,27 +98,9 @@ vbox->addWidget(widget); group->setLayout(vbox); layout->addWidget(group); - - } } -int PhaseWindow::initHttpToken() -{ - QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, - SettingConfig::getInstance().APP_KEY); - return response.find("code")->toInt(); -} -int PhaseWindow::initDictDeviceTypes() -{ - QJsonObject response = httpReq->initDictDeviceType(); - return response.find("code")->toInt(); -} -QJsonObject PhaseWindow::initDeviceList() -{ - QJsonObject response = httpReq->initDeviceList("比相仪"); - return response; -} void PhaseWindow::on_minButt_clicked() { diff --git a/PhaseWindow.h b/PhaseWindow.h index 02a7908..8f2314d 100644 --- a/PhaseWindow.h +++ b/PhaseWindow.h @@ -8,7 +8,6 @@ #include "PhaseDevice.h" #include "common/utils/SettingConfig.h" -#include "common/HttpRequestController.h" namespace Ui { class PhaseWindow; @@ -27,19 +26,12 @@ private slots: void on_minButt_clicked(); - void on_exitButt_clicked(); private: - int initHttpToken(); - int initDictDeviceTypes(); - QJsonObject initDeviceList(); - Ui::PhaseWindow *ui; - HttpRequestController * httpReq; - - QList deviceList; + PhaseDevice * device; void generateWidgetForDevice(); }; diff --git a/PhaseWindow.ui b/PhaseWindow.ui index 97edbe1..f7742fe 100644 --- a/PhaseWindow.ui +++ b/PhaseWindow.ui @@ -23,7 +23,7 @@ 0 - 0 + 100 100 30 @@ -73,21 +73,24 @@ - 100 + 0 0 200 - 41 + 50 微软雅黑 - 14 + 16 比相仪测量软件 + + Qt::AlignCenter + @@ -140,16 +143,16 @@ - 40 - 40 - 141 - 51 + 0 + 50 + 240 + 40 微软雅黑 - 14 + 12 75 true @@ -158,8 +161,7 @@ Qt::RightToLeft - 2021-12-10 -10:00:00 + 2021-12-10 10:00:00 Qt::AlignCenter diff --git a/common/common.pri b/common/common.pri index 84f57ae..81ad04d 100644 --- a/common/common.pri +++ b/common/common.pri @@ -1,20 +1,10 @@ -SOURCES += $$PWD/utils/SettingConfig.cpp -SOURCES += $$PWD/utils/QByteUtil.cpp -SOURCES += $$PWD/utils/QSerialPortUtil.cpp -SOURCES += $$PWD/utils/QLogUtil.cpp -#SOURCES += $$PWD/utils/QKafkaUtil.cpp -SOURCES += $$PWD/utils/HttpRequestUtil.cpp -SOURCES += $$PWD/utils/MD5.cpp -SOURCES += $$PWD/HttpRequestController.cpp - HEADERS += $$PWD/utils/SettingConfig.h HEADERS += $$PWD/utils/QByteUtil.h -HEADERS += $$PWD/utils/QSerialPortUtil.h HEADERS += $$PWD/utils/QLogUtil.h -#HEADERS += $$PWD/utils/QKafkaUtil.h -HEADERS += $$PWD/utils/HttpRequestUtil.h -HEADERS += $$PWD/utils/DefHead.h -HEADERS += $$PWD/utils/MD5.h -HEADERS += $$PWD/HttpRequestController.h -HEADERS += $$PWD/ConstCache.h +HEADERS += $$PWD/utils/UDPClientUtil.h + +SOURCES += $$PWD/utils/SettingConfig.cpp +SOURCES += $$PWD/utils/QByteUtil.cpp +SOURCES += $$PWD/utils/QLogUtil.cpp +SOURCES += $$PWD/utils/UDPClientUtil.cpp diff --git a/common/utils/SettingConfig.cpp b/common/utils/SettingConfig.cpp index 9a84a43..a9421d9 100644 --- a/common/utils/SettingConfig.cpp +++ b/common/utils/SettingConfig.cpp @@ -5,19 +5,10 @@ filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); - BAUD_RATE = getProperty("com", "baudRate").toInt(); - - NEED_KAFKA = getProperty("kafka", "needKafka").toInt(); - KAFKA_BROKERS = getProperty("kafka", "brokers").toString(); - KAFKA_DATA_TOPIC = getProperty("kafka", "dataTopic").toString(); - NEED_SASL = getProperty("kafka", "needSasl").toInt(); - SASL_USERNAME = getProperty("kafka", "saslUsername").toString(); - SASL_PASSWORD = getProperty("kafka", "saslPassword").toString(); - - CLIENT_ID = getProperty("client", "clientId").toString(); - APP_KEY = getProperty("client", "appKey").toString(); - - BASE_URL = getProperty("http", "baseUrl").toString(); + NET_TYPE = getProperty("net", "type").toString(); + DEVICE_HOST = getProperty("net", "deviceHost").toString(); + DEVICE_PORT = getProperty("net", "devicePort").toUInt(); + LISTEN_PORT = getProperty("net", "listenPort").toUInt(); BASE_LOG_PATH = getProperty("log", "basePath").toString(); } diff --git a/common/utils/SettingConfig.h b/common/utils/SettingConfig.h index 0038ecc..0674ffd 100644 --- a/common/utils/SettingConfig.h +++ b/common/utils/SettingConfig.h @@ -27,19 +27,10 @@ QVariant getProperty(QString nodeName, QString keyName); /******** 以下为需要的各类参数 ********/ - int BAUD_RATE; - - int NEED_KAFKA; - QString KAFKA_BROKERS; - QString KAFKA_DATA_TOPIC; - int NEED_SASL; - QString SASL_USERNAME; - QString SASL_PASSWORD; - - QString CLIENT_ID; - QString APP_KEY; - - QString BASE_URL; + QString NET_TYPE; + QString DEVICE_HOST; + quint16 DEVICE_PORT; + quint16 LISTEN_PORT; QString BASE_LOG_PATH; diff --git a/common/utils/UDPClientUtil.cpp b/common/utils/UDPClientUtil.cpp new file mode 100644 index 0000000..6695afe --- /dev/null +++ b/common/utils/UDPClientUtil.cpp @@ -0,0 +1,42 @@ +#include "UDPClientUtil.h" +#include "SettingConfig.h" +#include "QByteUtil.h" +#include + +UDPClientUtil::UDPClientUtil(QObject *parent) : QObject(parent) +{ + client = new QUdpSocket(this); + + client->bind(QHostAddress("127.0.0.1"), SettingConfig::getInstance().LISTEN_PORT); + connect(client, &QUdpSocket::readyRead, + this, &UDPClientUtil::readData); +} + +UDPClientUtil::~UDPClientUtil() +{ + +} + + +void UDPClientUtil::sendData(QByteArray data) +{ + client->writeDatagram(data, + QHostAddress(SettingConfig::getInstance().DEVICE_HOST), + SettingConfig::getInstance().DEVICE_PORT); + + std::cout << "[send]" << data.toStdString() << std::endl; +} + +void UDPClientUtil::readData() +{ + QByteArray ba; + while(client->hasPendingDatagrams()) + { + ba.resize(client->pendingDatagramSize()); + client->readDatagram(ba.data(), ba.size()); + + std::cout << "[recv]" << QByteUtil::binToHexString(ba).toStdString() << std::endl; + + emit dataRecieved(ba); + } +} diff --git a/common/utils/UDPClientUtil.h b/common/utils/UDPClientUtil.h new file mode 100644 index 0000000..cf87e9d --- /dev/null +++ b/common/utils/UDPClientUtil.h @@ -0,0 +1,27 @@ +#ifndef UDPCLIENTUTIL_H +#define UDPCLIENTUTIL_H + +#include +#include + +class UDPClientUtil : public QObject +{ + Q_OBJECT +public: + explicit UDPClientUtil(QObject *parent = nullptr); + ~UDPClientUtil(); + + void sendData(QByteArray); + +private: + QUdpSocket * client; + +public slots: + void readData(); + +signals: + void dataRecieved(QByteArray data); + +}; + +#endif // UDPCLIENTUTIL_H diff --git a/ChannelItem.ui b/ChannelItem.ui index 897632a..1b750a3 100644 --- a/ChannelItem.ui +++ b/ChannelItem.ui @@ -255,7 +255,7 @@ - 1000 + 10000 diff --git a/PhaseDevice.cpp b/PhaseDevice.cpp index 90f1b4d..58674c7 100644 --- a/PhaseDevice.cpp +++ b/PhaseDevice.cpp @@ -1,31 +1,21 @@ #include "PhaseDevice.h" +#include "common/utils/QLogUtil.h" #include #include PhaseDevice::PhaseDevice(QObject *parent) : QObject(parent) { - connect(&this->serialUtil, &QSerialPortUtil::dataRecieved, + clientUtil = new UDPClientUtil(this); + connect(clientUtil, &UDPClientUtil::dataRecieved, this, &PhaseDevice::dataReceivedHandler); - -// kafkaUtil.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); -// kafkaUtil.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); -// kafkaUtil.createProducer(); } PhaseDevice::~PhaseDevice() { - disconnect(&this->serialUtil, &QSerialPortUtil::dataRecieved, - this, &PhaseDevice::dataReceivedHandler); + } -void PhaseDevice::setComName(QString comName) -{ - this->comName = comName; -} -void PhaseDevice::setBaudRate(int baudRate) -{ - this->baudRate = baudRate; -} + QString PhaseDevice::getDevCode() { return this->devCode; @@ -39,25 +29,17 @@ this->deviceId = deviceId; } -bool PhaseDevice::isSerialOpen() -{ - return this->serialUtil.isOpen(); -} - -void PhaseDevice::initSerialPort() -{ - this->serialUtil.openSerialPort(this->comName, this->baudRate); -} void PhaseDevice::startWork() { - QString startCommand = PhaseProtocolBM::startMessure(); - this->serialUtil.sendData(startCommand.toLocal8Bit()); + QString startCmd = PhaseProtocolBM::startMessure(); + clientUtil->sendData(startCmd.toLocal8Bit()); } void PhaseDevice::stopWork() { - + QString stopCmd = PhaseProtocolBM::stopMessure(); + clientUtil->sendData(stopCmd.toLocal8Bit()); } void PhaseDevice::dataReceivedHandler(QByteArray data) @@ -125,15 +107,6 @@ QString channelDataStr = QString("%1 [%2] %3").arg(phaseData->timestamp).arg(phaseData->frameId).arg(phaseData->channelDataStr.at(i-1)); QLogUtil::writeChannelDataLogByDate(date, chFilename, channelDataStr); - - // 3. 输出到中间件,执行后续处理过程 - if (SettingConfig::getInstance().NEED_KAFKA == 1) - { - QJsonObject jsonObj = phaseData->toJSON(i - 1); - jsonObj.insert("clientId", SettingConfig::getInstance().CLIENT_ID); - jsonObj.insert("deviceId", deviceId); -// kafkaUtil.produceMessage(QString(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact))); - } } } diff --git a/PhaseDevice.h b/PhaseDevice.h index aa7d822..f69839c 100644 --- a/PhaseDevice.h +++ b/PhaseDevice.h @@ -2,10 +2,8 @@ #define PHASEDEVICE_H #include -#include "common/utils/QSerialPortUtil.h" -#include "common/utils/QLogUtil.h" #include "common/utils/SettingConfig.h" -//#include "common/utils/QKafkaUtil.h" +#include "common/utils/UDPClientUtil.h" #include "protocol/PhaseProtocolBM.h" class PhaseDevice : public QObject @@ -15,14 +13,11 @@ explicit PhaseDevice(QObject *parent = nullptr); ~PhaseDevice(); - void initSerialPort(); void startWork(); void stopWork(); void afterFramePhase(PhaseDataDto * phaseData); - void setComName(QString comName); - void setBaudRate(int baudRate); QString getDevCode(); void setDevCode(QString devCode); void setDeviceId(QString deviceId); @@ -31,11 +26,9 @@ private: QString deviceId; QString devCode; - QString comName; - int baudRate; - QSerialPortUtil serialUtil; -// QKafkaUtil kafkaUtil; + UDPClientUtil * clientUtil; + QByteArray dataBuff; signals: diff --git a/PhaseMeasure.pro b/PhaseMeasure.pro index dc1c3b6..424394d 100644 --- a/PhaseMeasure.pro +++ b/PhaseMeasure.pro @@ -1,22 +1,21 @@ -QT += core gui serialport network +QT += core gui network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 -FORMS += \ - ChannelItem.ui \ - PhaseWindow.ui +FORMS += ChannelItem.ui +FORMS += PhaseWindow.ui include(common/common.pri) include(protocol/protocol.pri) -HEADERS += PhaseDevice.h \ - ChannelItem.h +HEADERS += PhaseDevice.h +HEADERS += ChannelItem.h HEADERS += PhaseWindow.h -SOURCES += PhaseDevice.cpp \ - ChannelItem.cpp +SOURCES += PhaseDevice.cpp +SOURCES += ChannelItem.cpp SOURCES += PhaseWindow.cpp SOURCES += main.cpp @@ -25,11 +24,6 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target -#unix:!macx: LIBS += -L$$PWD/lib/librdkafka/ -lrdkafka -lrdkafka++ -#INCLUDEPATH += $$PWD/include/librdkafka -#DEPENDPATH += $$PWD/include/librdkafka - DISTFILES += conf/config.ini -RESOURCES += \ - images.qrc +RESOURCES += images.qrc diff --git a/PhaseMeasure.pro.user b/PhaseMeasure.pro.user index 5658fcc..89c42e4 100644 --- a/PhaseMeasure.pro.user +++ b/PhaseMeasure.pro.user @@ -1,10 +1,10 @@ - + EnvironmentId - {58895c32-e1e9-4248-b30e-d2ac0dfba9c9} + {b3715025-e290-4df4-afaa-42a38b3e40c1} ProjectExplorer.Project.ActiveTarget @@ -64,14 +64,14 @@ ProjectExplorer.Project.Target.0 - Desktop Qt 5.14.2 MinGW 32-bit - Desktop Qt 5.14.2 MinGW 32-bit - qt.qt5.5142.win32_mingw73_kit + Desktop Qt 5.12.8 MinGW 64-bit + Desktop Qt 5.12.8 MinGW 64-bit + qt.qt5.5128.win64_mingw73_kit 0 0 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug true @@ -119,7 +119,7 @@ 2 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Release + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Release true @@ -167,7 +167,7 @@ 0 - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Profile + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Profile true @@ -287,8 +287,8 @@ 2 - Qt4ProjectManager.Qt4RunConfiguration:E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro - E:/workspace/ZXSSCJ/PhaseMeasure/PhaseMeasure.pro + Qt4ProjectManager.Qt4RunConfiguration:D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro + D:/Workspace Qt/PhaseMeasure/PhaseMeasure.pro false @@ -299,257 +299,14 @@ false true - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_32_bit-Debug - - 1 - - - - ProjectExplorer.Project.Target.1 - - Desktop Qt 5.14.2 MinGW 64-bit - Desktop Qt 5.14.2 MinGW 64-bit - qt.qt5.5142.win64_mingw73_kit - 0 - 0 - 0 - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Debug - - - true - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Release - - - true - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - - E:/workspace/ZXSSCJ/build-PhaseMeasure-Desktop_Qt_5_14_2_MinGW_64_bit-Profile - - - true - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - Build - ProjectExplorer.BuildSteps.Build - - - - true - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - Clean - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - - 3 - - - 0 - Deploy - Deploy - ProjectExplorer.BuildSteps.Deploy - - 1 - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - dwarf - - cpu-cycles - - - 250 - - -e - cpu-cycles - --call-graph - dwarf,4096 - -F - 250 - - -F - true - 4096 - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - kcachegrind - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - - ProjectExplorer.CustomExecutableRunConfiguration - - - false - - false - true - false - false - true - - + D:/Workspace Qt/build-PhaseMeasure-Desktop_Qt_5_12_8_MinGW_64_bit-Debug 1 ProjectExplorer.Project.TargetCount - 2 + 1 ProjectExplorer.Project.Updater.FileVersion diff --git a/PhaseWindow.cpp b/PhaseWindow.cpp index 27af4fc..9f3a373 100644 --- a/PhaseWindow.cpp +++ b/PhaseWindow.cpp @@ -39,19 +39,14 @@ ui->scrollArea->setGeometry(0, 90, screenRect.width(), screenRect.height() - 90); ui->scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); -// httpReq = new HttpRequestController(this); -// // 1. 获取访问接口需要的token -// int retCode = this->initHttpToken(); -// if (retCode != 200) -// { -// QMessageBox::information(this, "错误", "获取http请求的token失败,程序即将退出"); - -// QTimer::singleShot(1000, qApp, SLOT(quit())); -// } - // 2. 获取字典值:设备类型 -// retCode = this->initDictDeviceTypes(); + ui->tim3->setText(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")); this->generateWidgetForDevice(); + + device = new PhaseDevice(this); + device->startWork(); + connect(device, &PhaseDevice::sendDataToDraw, + this, &PhaseWindow::drawPhaseDataOnPage); } PhaseWindow::~PhaseWindow() @@ -61,27 +56,20 @@ void PhaseWindow::drawPhaseDataOnPage(PhaseDataDto * phaseData) { - // 当前显示的设备编号 -// QString currentDevCode = ui->devSelect->currentData().toString(); - - // 如果不是当前设备的帧,直接返回 -// if (phaseData->devCode != currentDevCode) -// { -// return; -// } + ui->tim3->setText(phaseData->timestamp); // 更新所有通道BOX的值 - for (int i = 0; i < phaseData->channelActive.size(); i++) - { - // 获取对应的通道BOX - QGroupBox * channelBox = (QGroupBox *)ui->scrollContents->children().at(i + 1); +// for (int i = 0; i < phaseData->channelActive.size(); i++) +// { +// // 获取对应的通道BOX +// QGroupBox * channelBox = (QGroupBox *)ui->scrollContents->children().at(i + 1); - // 赋值,对应的lineEdit/label - ((QLineEdit *)channelBox->children().at(2))->setText(phaseData->timestamp); - ((QLineEdit *)channelBox->children().at(4))->setText(QString("%1 s").arg(phaseData->channelDataStr.at(i))); - ((QLineEdit *)channelBox->children().at(6))->setText(phaseData->frameId); - ((QLabel *)channelBox->children().at(7))->setText(phaseData->channelActive.at(i) == "1" ? "有效" : "无效"); - } +// // 赋值,对应的lineEdit/label +// ((QLineEdit *)channelBox->children().at(2))->setText(phaseData->timestamp); +// ((QLineEdit *)channelBox->children().at(4))->setText(QString("%1 s").arg(phaseData->channelDataStr.at(i))); +// ((QLineEdit *)channelBox->children().at(6))->setText(phaseData->frameId); +// ((QLabel *)channelBox->children().at(7))->setText(phaseData->channelActive.at(i) == "1" ? "有效" : "无效"); +// } } void PhaseWindow::generateWidgetForDevice() @@ -110,27 +98,9 @@ vbox->addWidget(widget); group->setLayout(vbox); layout->addWidget(group); - - } } -int PhaseWindow::initHttpToken() -{ - QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, - SettingConfig::getInstance().APP_KEY); - return response.find("code")->toInt(); -} -int PhaseWindow::initDictDeviceTypes() -{ - QJsonObject response = httpReq->initDictDeviceType(); - return response.find("code")->toInt(); -} -QJsonObject PhaseWindow::initDeviceList() -{ - QJsonObject response = httpReq->initDeviceList("比相仪"); - return response; -} void PhaseWindow::on_minButt_clicked() { diff --git a/PhaseWindow.h b/PhaseWindow.h index 02a7908..8f2314d 100644 --- a/PhaseWindow.h +++ b/PhaseWindow.h @@ -8,7 +8,6 @@ #include "PhaseDevice.h" #include "common/utils/SettingConfig.h" -#include "common/HttpRequestController.h" namespace Ui { class PhaseWindow; @@ -27,19 +26,12 @@ private slots: void on_minButt_clicked(); - void on_exitButt_clicked(); private: - int initHttpToken(); - int initDictDeviceTypes(); - QJsonObject initDeviceList(); - Ui::PhaseWindow *ui; - HttpRequestController * httpReq; - - QList deviceList; + PhaseDevice * device; void generateWidgetForDevice(); }; diff --git a/PhaseWindow.ui b/PhaseWindow.ui index 97edbe1..f7742fe 100644 --- a/PhaseWindow.ui +++ b/PhaseWindow.ui @@ -23,7 +23,7 @@ 0 - 0 + 100 100 30 @@ -73,21 +73,24 @@ - 100 + 0 0 200 - 41 + 50 微软雅黑 - 14 + 16 比相仪测量软件 + + Qt::AlignCenter + @@ -140,16 +143,16 @@ - 40 - 40 - 141 - 51 + 0 + 50 + 240 + 40 微软雅黑 - 14 + 12 75 true @@ -158,8 +161,7 @@ Qt::RightToLeft - 2021-12-10 -10:00:00 + 2021-12-10 10:00:00 Qt::AlignCenter diff --git a/common/common.pri b/common/common.pri index 84f57ae..81ad04d 100644 --- a/common/common.pri +++ b/common/common.pri @@ -1,20 +1,10 @@ -SOURCES += $$PWD/utils/SettingConfig.cpp -SOURCES += $$PWD/utils/QByteUtil.cpp -SOURCES += $$PWD/utils/QSerialPortUtil.cpp -SOURCES += $$PWD/utils/QLogUtil.cpp -#SOURCES += $$PWD/utils/QKafkaUtil.cpp -SOURCES += $$PWD/utils/HttpRequestUtil.cpp -SOURCES += $$PWD/utils/MD5.cpp -SOURCES += $$PWD/HttpRequestController.cpp - HEADERS += $$PWD/utils/SettingConfig.h HEADERS += $$PWD/utils/QByteUtil.h -HEADERS += $$PWD/utils/QSerialPortUtil.h HEADERS += $$PWD/utils/QLogUtil.h -#HEADERS += $$PWD/utils/QKafkaUtil.h -HEADERS += $$PWD/utils/HttpRequestUtil.h -HEADERS += $$PWD/utils/DefHead.h -HEADERS += $$PWD/utils/MD5.h -HEADERS += $$PWD/HttpRequestController.h -HEADERS += $$PWD/ConstCache.h +HEADERS += $$PWD/utils/UDPClientUtil.h + +SOURCES += $$PWD/utils/SettingConfig.cpp +SOURCES += $$PWD/utils/QByteUtil.cpp +SOURCES += $$PWD/utils/QLogUtil.cpp +SOURCES += $$PWD/utils/UDPClientUtil.cpp diff --git a/common/utils/SettingConfig.cpp b/common/utils/SettingConfig.cpp index 9a84a43..a9421d9 100644 --- a/common/utils/SettingConfig.cpp +++ b/common/utils/SettingConfig.cpp @@ -5,19 +5,10 @@ filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); - BAUD_RATE = getProperty("com", "baudRate").toInt(); - - NEED_KAFKA = getProperty("kafka", "needKafka").toInt(); - KAFKA_BROKERS = getProperty("kafka", "brokers").toString(); - KAFKA_DATA_TOPIC = getProperty("kafka", "dataTopic").toString(); - NEED_SASL = getProperty("kafka", "needSasl").toInt(); - SASL_USERNAME = getProperty("kafka", "saslUsername").toString(); - SASL_PASSWORD = getProperty("kafka", "saslPassword").toString(); - - CLIENT_ID = getProperty("client", "clientId").toString(); - APP_KEY = getProperty("client", "appKey").toString(); - - BASE_URL = getProperty("http", "baseUrl").toString(); + NET_TYPE = getProperty("net", "type").toString(); + DEVICE_HOST = getProperty("net", "deviceHost").toString(); + DEVICE_PORT = getProperty("net", "devicePort").toUInt(); + LISTEN_PORT = getProperty("net", "listenPort").toUInt(); BASE_LOG_PATH = getProperty("log", "basePath").toString(); } diff --git a/common/utils/SettingConfig.h b/common/utils/SettingConfig.h index 0038ecc..0674ffd 100644 --- a/common/utils/SettingConfig.h +++ b/common/utils/SettingConfig.h @@ -27,19 +27,10 @@ QVariant getProperty(QString nodeName, QString keyName); /******** 以下为需要的各类参数 ********/ - int BAUD_RATE; - - int NEED_KAFKA; - QString KAFKA_BROKERS; - QString KAFKA_DATA_TOPIC; - int NEED_SASL; - QString SASL_USERNAME; - QString SASL_PASSWORD; - - QString CLIENT_ID; - QString APP_KEY; - - QString BASE_URL; + QString NET_TYPE; + QString DEVICE_HOST; + quint16 DEVICE_PORT; + quint16 LISTEN_PORT; QString BASE_LOG_PATH; diff --git a/common/utils/UDPClientUtil.cpp b/common/utils/UDPClientUtil.cpp new file mode 100644 index 0000000..6695afe --- /dev/null +++ b/common/utils/UDPClientUtil.cpp @@ -0,0 +1,42 @@ +#include "UDPClientUtil.h" +#include "SettingConfig.h" +#include "QByteUtil.h" +#include + +UDPClientUtil::UDPClientUtil(QObject *parent) : QObject(parent) +{ + client = new QUdpSocket(this); + + client->bind(QHostAddress("127.0.0.1"), SettingConfig::getInstance().LISTEN_PORT); + connect(client, &QUdpSocket::readyRead, + this, &UDPClientUtil::readData); +} + +UDPClientUtil::~UDPClientUtil() +{ + +} + + +void UDPClientUtil::sendData(QByteArray data) +{ + client->writeDatagram(data, + QHostAddress(SettingConfig::getInstance().DEVICE_HOST), + SettingConfig::getInstance().DEVICE_PORT); + + std::cout << "[send]" << data.toStdString() << std::endl; +} + +void UDPClientUtil::readData() +{ + QByteArray ba; + while(client->hasPendingDatagrams()) + { + ba.resize(client->pendingDatagramSize()); + client->readDatagram(ba.data(), ba.size()); + + std::cout << "[recv]" << QByteUtil::binToHexString(ba).toStdString() << std::endl; + + emit dataRecieved(ba); + } +} diff --git a/common/utils/UDPClientUtil.h b/common/utils/UDPClientUtil.h new file mode 100644 index 0000000..cf87e9d --- /dev/null +++ b/common/utils/UDPClientUtil.h @@ -0,0 +1,27 @@ +#ifndef UDPCLIENTUTIL_H +#define UDPCLIENTUTIL_H + +#include +#include + +class UDPClientUtil : public QObject +{ + Q_OBJECT +public: + explicit UDPClientUtil(QObject *parent = nullptr); + ~UDPClientUtil(); + + void sendData(QByteArray); + +private: + QUdpSocket * client; + +public slots: + void readData(); + +signals: + void dataRecieved(QByteArray data); + +}; + +#endif // UDPCLIENTUTIL_H diff --git a/conf/config.ini b/conf/config.ini index 46d97d7..73d6400 100644 --- a/conf/config.ini +++ b/conf/config.ini @@ -1,20 +1,7 @@ -[com] -baudRate=115200 - -[kafka] -needKafka=1 -brokers="111.198.10.15:12502" -dataTopic="cppTest" -needSasl=0 -sasl.username="admin" -sasl.password="casicss" - -[client] -clientId="phase" -appKey="bd593bdd20943d2db8af217c3712a460" - -[http] -baseUrl="http://111.198.10.15:11410" +[net] +deviceHost="192.168.1.20" +devicePort=233 +listenPort=243 [log] basePath="/home/admin/Qt/ZXSSCJ-Release/PhaseCompAcq/logs/"