diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index ac1650c..1948640 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -1,4 +1,4 @@ -#include "BCodeTerminal.h" +#include "BCodeTerminal.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &BCodeTerminal::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->bCodeTermForm, &BCodeTerminalForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &BCodeTerminal::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &BCodeTerminal::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index ac1650c..1948640 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -1,4 +1,4 @@ -#include "BCodeTerminal.h" +#include "BCodeTerminal.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &BCodeTerminal::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->bCodeTermForm, &BCodeTerminalForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &BCodeTerminal::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &BCodeTerminal::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 5830c78..9ea584e 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -1,4 +1,4 @@ -#include "FreqReplicator.h" +#include "FreqReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -12,9 +12,11 @@ connect(this, &FreqReplicator::sendDataToDraw, ((DeviceHubWindow *)this->parent())->freqRepForm, &FreqReplicatorForm::drawDeviceFrameOnForm); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index ac1650c..1948640 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -1,4 +1,4 @@ -#include "BCodeTerminal.h" +#include "BCodeTerminal.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &BCodeTerminal::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->bCodeTermForm, &BCodeTerminalForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &BCodeTerminal::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &BCodeTerminal::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 5830c78..9ea584e 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -1,4 +1,4 @@ -#include "FreqReplicator.h" +#include "FreqReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -12,9 +12,11 @@ connect(this, &FreqReplicator::sendDataToDraw, ((DeviceHubWindow *)this->parent())->freqRepForm, &FreqReplicatorForm::drawDeviceFrameOnForm); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index bd76658..f2f238d 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -1,4 +1,4 @@ -#include "FreqSwitcher.h" +#include "FreqSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &FreqSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqSwitForm, &FreqSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FreqSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FreqSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index ac1650c..1948640 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -1,4 +1,4 @@ -#include "BCodeTerminal.h" +#include "BCodeTerminal.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &BCodeTerminal::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->bCodeTermForm, &BCodeTerminalForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &BCodeTerminal::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &BCodeTerminal::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 5830c78..9ea584e 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -1,4 +1,4 @@ -#include "FreqReplicator.h" +#include "FreqReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -12,9 +12,11 @@ connect(this, &FreqReplicator::sendDataToDraw, ((DeviceHubWindow *)this->parent())->freqRepForm, &FreqReplicatorForm::drawDeviceFrameOnForm); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index bd76658..f2f238d 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -1,4 +1,4 @@ -#include "FreqSwitcher.h" +#include "FreqSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &FreqSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqSwitForm, &FreqSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FreqSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FreqSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 94e82b7..7965d92 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -14,12 +14,14 @@ connect(this, &FrequencyTuning::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqTunForm, &FrequencyTuningForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FrequencyTuning::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FrequencyTuning::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index ac1650c..1948640 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -1,4 +1,4 @@ -#include "BCodeTerminal.h" +#include "BCodeTerminal.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &BCodeTerminal::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->bCodeTermForm, &BCodeTerminalForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &BCodeTerminal::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &BCodeTerminal::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 5830c78..9ea584e 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -1,4 +1,4 @@ -#include "FreqReplicator.h" +#include "FreqReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -12,9 +12,11 @@ connect(this, &FreqReplicator::sendDataToDraw, ((DeviceHubWindow *)this->parent())->freqRepForm, &FreqReplicatorForm::drawDeviceFrameOnForm); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index bd76658..f2f238d 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -1,4 +1,4 @@ -#include "FreqSwitcher.h" +#include "FreqSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &FreqSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqSwitForm, &FreqSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FreqSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FreqSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 94e82b7..7965d92 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -14,12 +14,14 @@ connect(this, &FrequencyTuning::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqTunForm, &FrequencyTuningForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FrequencyTuning::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FrequencyTuning::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 7185e52..f3baa22 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -12,12 +12,14 @@ connect(this, &NtpServer::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->ntpServForm, &NtpServerForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &NtpServer::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &NtpServer::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index ac1650c..1948640 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -1,4 +1,4 @@ -#include "BCodeTerminal.h" +#include "BCodeTerminal.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &BCodeTerminal::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->bCodeTermForm, &BCodeTerminalForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &BCodeTerminal::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &BCodeTerminal::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 5830c78..9ea584e 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -1,4 +1,4 @@ -#include "FreqReplicator.h" +#include "FreqReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -12,9 +12,11 @@ connect(this, &FreqReplicator::sendDataToDraw, ((DeviceHubWindow *)this->parent())->freqRepForm, &FreqReplicatorForm::drawDeviceFrameOnForm); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index bd76658..f2f238d 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -1,4 +1,4 @@ -#include "FreqSwitcher.h" +#include "FreqSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &FreqSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqSwitForm, &FreqSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FreqSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FreqSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 94e82b7..7965d92 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -14,12 +14,14 @@ connect(this, &FrequencyTuning::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqTunForm, &FrequencyTuningForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FrequencyTuning::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FrequencyTuning::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 7185e52..f3baa22 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -12,12 +12,14 @@ connect(this, &NtpServer::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->ntpServForm, &NtpServerForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &NtpServer::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &NtpServer::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index d8fed40..a15958e 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -1,4 +1,4 @@ -#include "SignalGenerator.h" +#include "SignalGenerator.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &SignalGenerator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->signGenForm, &SignalGeneratorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &SignalGenerator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &SignalGenerator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index ac1650c..1948640 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -1,4 +1,4 @@ -#include "BCodeTerminal.h" +#include "BCodeTerminal.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &BCodeTerminal::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->bCodeTermForm, &BCodeTerminalForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &BCodeTerminal::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &BCodeTerminal::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 5830c78..9ea584e 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -1,4 +1,4 @@ -#include "FreqReplicator.h" +#include "FreqReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -12,9 +12,11 @@ connect(this, &FreqReplicator::sendDataToDraw, ((DeviceHubWindow *)this->parent())->freqRepForm, &FreqReplicatorForm::drawDeviceFrameOnForm); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index bd76658..f2f238d 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -1,4 +1,4 @@ -#include "FreqSwitcher.h" +#include "FreqSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &FreqSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqSwitForm, &FreqSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FreqSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FreqSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 94e82b7..7965d92 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -14,12 +14,14 @@ connect(this, &FrequencyTuning::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqTunForm, &FrequencyTuningForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FrequencyTuning::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FrequencyTuning::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 7185e52..f3baa22 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -12,12 +12,14 @@ connect(this, &NtpServer::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->ntpServForm, &NtpServerForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &NtpServer::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &NtpServer::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index d8fed40..a15958e 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -1,4 +1,4 @@ -#include "SignalGenerator.h" +#include "SignalGenerator.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &SignalGenerator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->signGenForm, &SignalGeneratorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &SignalGenerator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &SignalGenerator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index e3550a2..eb21e2e 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -1,4 +1,4 @@ -#include "TimeReplicator.h" +#include "TimeReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -15,12 +15,14 @@ connect(this, &TimeReplicator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->timeRepForm, &TimeReplicatorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeReplicator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeReplicator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index ac1650c..1948640 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -1,4 +1,4 @@ -#include "BCodeTerminal.h" +#include "BCodeTerminal.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &BCodeTerminal::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->bCodeTermForm, &BCodeTerminalForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &BCodeTerminal::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &BCodeTerminal::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 5830c78..9ea584e 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -1,4 +1,4 @@ -#include "FreqReplicator.h" +#include "FreqReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -12,9 +12,11 @@ connect(this, &FreqReplicator::sendDataToDraw, ((DeviceHubWindow *)this->parent())->freqRepForm, &FreqReplicatorForm::drawDeviceFrameOnForm); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index bd76658..f2f238d 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -1,4 +1,4 @@ -#include "FreqSwitcher.h" +#include "FreqSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &FreqSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqSwitForm, &FreqSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FreqSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FreqSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 94e82b7..7965d92 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -14,12 +14,14 @@ connect(this, &FrequencyTuning::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqTunForm, &FrequencyTuningForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FrequencyTuning::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FrequencyTuning::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 7185e52..f3baa22 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -12,12 +12,14 @@ connect(this, &NtpServer::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->ntpServForm, &NtpServerForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &NtpServer::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &NtpServer::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index d8fed40..a15958e 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -1,4 +1,4 @@ -#include "SignalGenerator.h" +#include "SignalGenerator.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &SignalGenerator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->signGenForm, &SignalGeneratorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &SignalGenerator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &SignalGenerator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index e3550a2..eb21e2e 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -1,4 +1,4 @@ -#include "TimeReplicator.h" +#include "TimeReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -15,12 +15,14 @@ connect(this, &TimeReplicator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->timeRepForm, &TimeReplicatorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeReplicator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeReplicator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 12b23f9..c00aaca 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -1,4 +1,4 @@ -#include "TimeSwitcher.h" +#include "TimeSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &TimeSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->tmSwitForm, &TimeSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index ac1650c..1948640 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -1,4 +1,4 @@ -#include "BCodeTerminal.h" +#include "BCodeTerminal.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &BCodeTerminal::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->bCodeTermForm, &BCodeTerminalForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &BCodeTerminal::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &BCodeTerminal::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 5830c78..9ea584e 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -1,4 +1,4 @@ -#include "FreqReplicator.h" +#include "FreqReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -12,9 +12,11 @@ connect(this, &FreqReplicator::sendDataToDraw, ((DeviceHubWindow *)this->parent())->freqRepForm, &FreqReplicatorForm::drawDeviceFrameOnForm); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index bd76658..f2f238d 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -1,4 +1,4 @@ -#include "FreqSwitcher.h" +#include "FreqSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &FreqSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqSwitForm, &FreqSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FreqSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FreqSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 94e82b7..7965d92 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -14,12 +14,14 @@ connect(this, &FrequencyTuning::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqTunForm, &FrequencyTuningForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FrequencyTuning::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FrequencyTuning::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 7185e52..f3baa22 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -12,12 +12,14 @@ connect(this, &NtpServer::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->ntpServForm, &NtpServerForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &NtpServer::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &NtpServer::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index d8fed40..a15958e 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -1,4 +1,4 @@ -#include "SignalGenerator.h" +#include "SignalGenerator.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &SignalGenerator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->signGenForm, &SignalGeneratorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &SignalGenerator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &SignalGenerator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index e3550a2..eb21e2e 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -1,4 +1,4 @@ -#include "TimeReplicator.h" +#include "TimeReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -15,12 +15,14 @@ connect(this, &TimeReplicator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->timeRepForm, &TimeReplicatorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeReplicator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeReplicator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 12b23f9..c00aaca 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -1,4 +1,4 @@ -#include "TimeSwitcher.h" +#include "TimeSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &TimeSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->tmSwitForm, &TimeSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/images/BTerm.png b/DeviceHub/images/BTerm.png new file mode 100644 index 0000000..eb2ebef --- /dev/null +++ b/DeviceHub/images/BTerm.png Binary files differ diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index ac1650c..1948640 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -1,4 +1,4 @@ -#include "BCodeTerminal.h" +#include "BCodeTerminal.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &BCodeTerminal::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->bCodeTermForm, &BCodeTerminalForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &BCodeTerminal::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &BCodeTerminal::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 5830c78..9ea584e 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -1,4 +1,4 @@ -#include "FreqReplicator.h" +#include "FreqReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -12,9 +12,11 @@ connect(this, &FreqReplicator::sendDataToDraw, ((DeviceHubWindow *)this->parent())->freqRepForm, &FreqReplicatorForm::drawDeviceFrameOnForm); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index bd76658..f2f238d 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -1,4 +1,4 @@ -#include "FreqSwitcher.h" +#include "FreqSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &FreqSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqSwitForm, &FreqSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FreqSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FreqSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 94e82b7..7965d92 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -14,12 +14,14 @@ connect(this, &FrequencyTuning::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqTunForm, &FrequencyTuningForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FrequencyTuning::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FrequencyTuning::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 7185e52..f3baa22 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -12,12 +12,14 @@ connect(this, &NtpServer::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->ntpServForm, &NtpServerForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &NtpServer::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &NtpServer::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index d8fed40..a15958e 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -1,4 +1,4 @@ -#include "SignalGenerator.h" +#include "SignalGenerator.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &SignalGenerator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->signGenForm, &SignalGeneratorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &SignalGenerator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &SignalGenerator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index e3550a2..eb21e2e 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -1,4 +1,4 @@ -#include "TimeReplicator.h" +#include "TimeReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -15,12 +15,14 @@ connect(this, &TimeReplicator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->timeRepForm, &TimeReplicatorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeReplicator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeReplicator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 12b23f9..c00aaca 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -1,4 +1,4 @@ -#include "TimeSwitcher.h" +#include "TimeSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &TimeSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->tmSwitForm, &TimeSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/images/BTerm.png b/DeviceHub/images/BTerm.png new file mode 100644 index 0000000..eb2ebef --- /dev/null +++ b/DeviceHub/images/BTerm.png Binary files differ diff --git a/DeviceHub/images/FreqRep.png b/DeviceHub/images/FreqRep.png new file mode 100644 index 0000000..fd09abc --- /dev/null +++ b/DeviceHub/images/FreqRep.png Binary files differ diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index ac1650c..1948640 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -1,4 +1,4 @@ -#include "BCodeTerminal.h" +#include "BCodeTerminal.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &BCodeTerminal::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->bCodeTermForm, &BCodeTerminalForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &BCodeTerminal::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &BCodeTerminal::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 5830c78..9ea584e 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -1,4 +1,4 @@ -#include "FreqReplicator.h" +#include "FreqReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -12,9 +12,11 @@ connect(this, &FreqReplicator::sendDataToDraw, ((DeviceHubWindow *)this->parent())->freqRepForm, &FreqReplicatorForm::drawDeviceFrameOnForm); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index bd76658..f2f238d 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -1,4 +1,4 @@ -#include "FreqSwitcher.h" +#include "FreqSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &FreqSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqSwitForm, &FreqSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FreqSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FreqSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 94e82b7..7965d92 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -14,12 +14,14 @@ connect(this, &FrequencyTuning::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqTunForm, &FrequencyTuningForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FrequencyTuning::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FrequencyTuning::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 7185e52..f3baa22 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -12,12 +12,14 @@ connect(this, &NtpServer::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->ntpServForm, &NtpServerForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &NtpServer::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &NtpServer::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index d8fed40..a15958e 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -1,4 +1,4 @@ -#include "SignalGenerator.h" +#include "SignalGenerator.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &SignalGenerator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->signGenForm, &SignalGeneratorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &SignalGenerator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &SignalGenerator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index e3550a2..eb21e2e 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -1,4 +1,4 @@ -#include "TimeReplicator.h" +#include "TimeReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -15,12 +15,14 @@ connect(this, &TimeReplicator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->timeRepForm, &TimeReplicatorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeReplicator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeReplicator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 12b23f9..c00aaca 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -1,4 +1,4 @@ -#include "TimeSwitcher.h" +#include "TimeSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &TimeSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->tmSwitForm, &TimeSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/images/BTerm.png b/DeviceHub/images/BTerm.png new file mode 100644 index 0000000..eb2ebef --- /dev/null +++ b/DeviceHub/images/BTerm.png Binary files differ diff --git a/DeviceHub/images/FreqRep.png b/DeviceHub/images/FreqRep.png new file mode 100644 index 0000000..fd09abc --- /dev/null +++ b/DeviceHub/images/FreqRep.png Binary files differ diff --git a/DeviceHub/images/FreqSwift.png b/DeviceHub/images/FreqSwift.png new file mode 100644 index 0000000..96d3a24 --- /dev/null +++ b/DeviceHub/images/FreqSwift.png Binary files differ diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index ac1650c..1948640 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -1,4 +1,4 @@ -#include "BCodeTerminal.h" +#include "BCodeTerminal.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &BCodeTerminal::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->bCodeTermForm, &BCodeTerminalForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &BCodeTerminal::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &BCodeTerminal::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 5830c78..9ea584e 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -1,4 +1,4 @@ -#include "FreqReplicator.h" +#include "FreqReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -12,9 +12,11 @@ connect(this, &FreqReplicator::sendDataToDraw, ((DeviceHubWindow *)this->parent())->freqRepForm, &FreqReplicatorForm::drawDeviceFrameOnForm); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index bd76658..f2f238d 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -1,4 +1,4 @@ -#include "FreqSwitcher.h" +#include "FreqSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &FreqSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqSwitForm, &FreqSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FreqSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FreqSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 94e82b7..7965d92 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -14,12 +14,14 @@ connect(this, &FrequencyTuning::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqTunForm, &FrequencyTuningForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FrequencyTuning::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FrequencyTuning::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 7185e52..f3baa22 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -12,12 +12,14 @@ connect(this, &NtpServer::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->ntpServForm, &NtpServerForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &NtpServer::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &NtpServer::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index d8fed40..a15958e 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -1,4 +1,4 @@ -#include "SignalGenerator.h" +#include "SignalGenerator.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &SignalGenerator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->signGenForm, &SignalGeneratorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &SignalGenerator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &SignalGenerator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index e3550a2..eb21e2e 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -1,4 +1,4 @@ -#include "TimeReplicator.h" +#include "TimeReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -15,12 +15,14 @@ connect(this, &TimeReplicator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->timeRepForm, &TimeReplicatorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeReplicator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeReplicator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 12b23f9..c00aaca 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -1,4 +1,4 @@ -#include "TimeSwitcher.h" +#include "TimeSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &TimeSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->tmSwitForm, &TimeSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/images/BTerm.png b/DeviceHub/images/BTerm.png new file mode 100644 index 0000000..eb2ebef --- /dev/null +++ b/DeviceHub/images/BTerm.png Binary files differ diff --git a/DeviceHub/images/FreqRep.png b/DeviceHub/images/FreqRep.png new file mode 100644 index 0000000..fd09abc --- /dev/null +++ b/DeviceHub/images/FreqRep.png Binary files differ diff --git a/DeviceHub/images/FreqSwift.png b/DeviceHub/images/FreqSwift.png new file mode 100644 index 0000000..96d3a24 --- /dev/null +++ b/DeviceHub/images/FreqSwift.png Binary files differ diff --git a/DeviceHub/images/FreqTunn.png b/DeviceHub/images/FreqTunn.png new file mode 100644 index 0000000..3d2c3a6 --- /dev/null +++ b/DeviceHub/images/FreqTunn.png Binary files differ diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index ac1650c..1948640 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -1,4 +1,4 @@ -#include "BCodeTerminal.h" +#include "BCodeTerminal.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &BCodeTerminal::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->bCodeTermForm, &BCodeTerminalForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &BCodeTerminal::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &BCodeTerminal::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 5830c78..9ea584e 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -1,4 +1,4 @@ -#include "FreqReplicator.h" +#include "FreqReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -12,9 +12,11 @@ connect(this, &FreqReplicator::sendDataToDraw, ((DeviceHubWindow *)this->parent())->freqRepForm, &FreqReplicatorForm::drawDeviceFrameOnForm); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index bd76658..f2f238d 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -1,4 +1,4 @@ -#include "FreqSwitcher.h" +#include "FreqSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &FreqSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqSwitForm, &FreqSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FreqSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FreqSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 94e82b7..7965d92 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -14,12 +14,14 @@ connect(this, &FrequencyTuning::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqTunForm, &FrequencyTuningForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FrequencyTuning::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FrequencyTuning::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 7185e52..f3baa22 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -12,12 +12,14 @@ connect(this, &NtpServer::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->ntpServForm, &NtpServerForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &NtpServer::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &NtpServer::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index d8fed40..a15958e 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -1,4 +1,4 @@ -#include "SignalGenerator.h" +#include "SignalGenerator.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &SignalGenerator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->signGenForm, &SignalGeneratorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &SignalGenerator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &SignalGenerator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index e3550a2..eb21e2e 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -1,4 +1,4 @@ -#include "TimeReplicator.h" +#include "TimeReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -15,12 +15,14 @@ connect(this, &TimeReplicator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->timeRepForm, &TimeReplicatorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeReplicator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeReplicator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 12b23f9..c00aaca 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -1,4 +1,4 @@ -#include "TimeSwitcher.h" +#include "TimeSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &TimeSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->tmSwitForm, &TimeSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/images/BTerm.png b/DeviceHub/images/BTerm.png new file mode 100644 index 0000000..eb2ebef --- /dev/null +++ b/DeviceHub/images/BTerm.png Binary files differ diff --git a/DeviceHub/images/FreqRep.png b/DeviceHub/images/FreqRep.png new file mode 100644 index 0000000..fd09abc --- /dev/null +++ b/DeviceHub/images/FreqRep.png Binary files differ diff --git a/DeviceHub/images/FreqSwift.png b/DeviceHub/images/FreqSwift.png new file mode 100644 index 0000000..96d3a24 --- /dev/null +++ b/DeviceHub/images/FreqSwift.png Binary files differ diff --git a/DeviceHub/images/FreqTunn.png b/DeviceHub/images/FreqTunn.png new file mode 100644 index 0000000..3d2c3a6 --- /dev/null +++ b/DeviceHub/images/FreqTunn.png Binary files differ diff --git a/DeviceHub/images/NtpServ.png b/DeviceHub/images/NtpServ.png new file mode 100644 index 0000000..8bd0759 --- /dev/null +++ b/DeviceHub/images/NtpServ.png Binary files differ diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index ac1650c..1948640 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -1,4 +1,4 @@ -#include "BCodeTerminal.h" +#include "BCodeTerminal.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &BCodeTerminal::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->bCodeTermForm, &BCodeTerminalForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &BCodeTerminal::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &BCodeTerminal::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 5830c78..9ea584e 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -1,4 +1,4 @@ -#include "FreqReplicator.h" +#include "FreqReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -12,9 +12,11 @@ connect(this, &FreqReplicator::sendDataToDraw, ((DeviceHubWindow *)this->parent())->freqRepForm, &FreqReplicatorForm::drawDeviceFrameOnForm); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index bd76658..f2f238d 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -1,4 +1,4 @@ -#include "FreqSwitcher.h" +#include "FreqSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &FreqSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqSwitForm, &FreqSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FreqSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FreqSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 94e82b7..7965d92 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -14,12 +14,14 @@ connect(this, &FrequencyTuning::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqTunForm, &FrequencyTuningForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FrequencyTuning::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FrequencyTuning::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 7185e52..f3baa22 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -12,12 +12,14 @@ connect(this, &NtpServer::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->ntpServForm, &NtpServerForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &NtpServer::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &NtpServer::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index d8fed40..a15958e 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -1,4 +1,4 @@ -#include "SignalGenerator.h" +#include "SignalGenerator.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &SignalGenerator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->signGenForm, &SignalGeneratorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &SignalGenerator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &SignalGenerator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index e3550a2..eb21e2e 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -1,4 +1,4 @@ -#include "TimeReplicator.h" +#include "TimeReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -15,12 +15,14 @@ connect(this, &TimeReplicator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->timeRepForm, &TimeReplicatorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeReplicator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeReplicator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 12b23f9..c00aaca 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -1,4 +1,4 @@ -#include "TimeSwitcher.h" +#include "TimeSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &TimeSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->tmSwitForm, &TimeSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/images/BTerm.png b/DeviceHub/images/BTerm.png new file mode 100644 index 0000000..eb2ebef --- /dev/null +++ b/DeviceHub/images/BTerm.png Binary files differ diff --git a/DeviceHub/images/FreqRep.png b/DeviceHub/images/FreqRep.png new file mode 100644 index 0000000..fd09abc --- /dev/null +++ b/DeviceHub/images/FreqRep.png Binary files differ diff --git a/DeviceHub/images/FreqSwift.png b/DeviceHub/images/FreqSwift.png new file mode 100644 index 0000000..96d3a24 --- /dev/null +++ b/DeviceHub/images/FreqSwift.png Binary files differ diff --git a/DeviceHub/images/FreqTunn.png b/DeviceHub/images/FreqTunn.png new file mode 100644 index 0000000..3d2c3a6 --- /dev/null +++ b/DeviceHub/images/FreqTunn.png Binary files differ diff --git a/DeviceHub/images/NtpServ.png b/DeviceHub/images/NtpServ.png new file mode 100644 index 0000000..8bd0759 --- /dev/null +++ b/DeviceHub/images/NtpServ.png Binary files differ diff --git a/DeviceHub/images/SignGen.png b/DeviceHub/images/SignGen.png new file mode 100644 index 0000000..2d44112 --- /dev/null +++ b/DeviceHub/images/SignGen.png Binary files differ diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index ac1650c..1948640 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -1,4 +1,4 @@ -#include "BCodeTerminal.h" +#include "BCodeTerminal.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &BCodeTerminal::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->bCodeTermForm, &BCodeTerminalForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &BCodeTerminal::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &BCodeTerminal::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 5830c78..9ea584e 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -1,4 +1,4 @@ -#include "FreqReplicator.h" +#include "FreqReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -12,9 +12,11 @@ connect(this, &FreqReplicator::sendDataToDraw, ((DeviceHubWindow *)this->parent())->freqRepForm, &FreqReplicatorForm::drawDeviceFrameOnForm); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index bd76658..f2f238d 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -1,4 +1,4 @@ -#include "FreqSwitcher.h" +#include "FreqSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &FreqSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqSwitForm, &FreqSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FreqSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FreqSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 94e82b7..7965d92 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -14,12 +14,14 @@ connect(this, &FrequencyTuning::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqTunForm, &FrequencyTuningForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FrequencyTuning::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FrequencyTuning::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 7185e52..f3baa22 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -12,12 +12,14 @@ connect(this, &NtpServer::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->ntpServForm, &NtpServerForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &NtpServer::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &NtpServer::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index d8fed40..a15958e 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -1,4 +1,4 @@ -#include "SignalGenerator.h" +#include "SignalGenerator.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &SignalGenerator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->signGenForm, &SignalGeneratorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &SignalGenerator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &SignalGenerator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index e3550a2..eb21e2e 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -1,4 +1,4 @@ -#include "TimeReplicator.h" +#include "TimeReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -15,12 +15,14 @@ connect(this, &TimeReplicator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->timeRepForm, &TimeReplicatorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeReplicator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeReplicator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 12b23f9..c00aaca 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -1,4 +1,4 @@ -#include "TimeSwitcher.h" +#include "TimeSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &TimeSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->tmSwitForm, &TimeSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/images/BTerm.png b/DeviceHub/images/BTerm.png new file mode 100644 index 0000000..eb2ebef --- /dev/null +++ b/DeviceHub/images/BTerm.png Binary files differ diff --git a/DeviceHub/images/FreqRep.png b/DeviceHub/images/FreqRep.png new file mode 100644 index 0000000..fd09abc --- /dev/null +++ b/DeviceHub/images/FreqRep.png Binary files differ diff --git a/DeviceHub/images/FreqSwift.png b/DeviceHub/images/FreqSwift.png new file mode 100644 index 0000000..96d3a24 --- /dev/null +++ b/DeviceHub/images/FreqSwift.png Binary files differ diff --git a/DeviceHub/images/FreqTunn.png b/DeviceHub/images/FreqTunn.png new file mode 100644 index 0000000..3d2c3a6 --- /dev/null +++ b/DeviceHub/images/FreqTunn.png Binary files differ diff --git a/DeviceHub/images/NtpServ.png b/DeviceHub/images/NtpServ.png new file mode 100644 index 0000000..8bd0759 --- /dev/null +++ b/DeviceHub/images/NtpServ.png Binary files differ diff --git a/DeviceHub/images/SignGen.png b/DeviceHub/images/SignGen.png new file mode 100644 index 0000000..2d44112 --- /dev/null +++ b/DeviceHub/images/SignGen.png Binary files differ diff --git a/DeviceHub/images/TimeRep.png b/DeviceHub/images/TimeRep.png new file mode 100644 index 0000000..66b9367 --- /dev/null +++ b/DeviceHub/images/TimeRep.png Binary files differ diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index ac1650c..1948640 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -1,4 +1,4 @@ -#include "BCodeTerminal.h" +#include "BCodeTerminal.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &BCodeTerminal::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->bCodeTermForm, &BCodeTerminalForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &BCodeTerminal::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &BCodeTerminal::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 5830c78..9ea584e 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -1,4 +1,4 @@ -#include "FreqReplicator.h" +#include "FreqReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -12,9 +12,11 @@ connect(this, &FreqReplicator::sendDataToDraw, ((DeviceHubWindow *)this->parent())->freqRepForm, &FreqReplicatorForm::drawDeviceFrameOnForm); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index bd76658..f2f238d 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -1,4 +1,4 @@ -#include "FreqSwitcher.h" +#include "FreqSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &FreqSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqSwitForm, &FreqSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FreqSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FreqSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 94e82b7..7965d92 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -14,12 +14,14 @@ connect(this, &FrequencyTuning::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqTunForm, &FrequencyTuningForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FrequencyTuning::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FrequencyTuning::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 7185e52..f3baa22 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -12,12 +12,14 @@ connect(this, &NtpServer::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->ntpServForm, &NtpServerForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &NtpServer::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &NtpServer::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index d8fed40..a15958e 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -1,4 +1,4 @@ -#include "SignalGenerator.h" +#include "SignalGenerator.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &SignalGenerator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->signGenForm, &SignalGeneratorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &SignalGenerator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &SignalGenerator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index e3550a2..eb21e2e 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -1,4 +1,4 @@ -#include "TimeReplicator.h" +#include "TimeReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -15,12 +15,14 @@ connect(this, &TimeReplicator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->timeRepForm, &TimeReplicatorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeReplicator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeReplicator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 12b23f9..c00aaca 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -1,4 +1,4 @@ -#include "TimeSwitcher.h" +#include "TimeSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &TimeSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->tmSwitForm, &TimeSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/images/BTerm.png b/DeviceHub/images/BTerm.png new file mode 100644 index 0000000..eb2ebef --- /dev/null +++ b/DeviceHub/images/BTerm.png Binary files differ diff --git a/DeviceHub/images/FreqRep.png b/DeviceHub/images/FreqRep.png new file mode 100644 index 0000000..fd09abc --- /dev/null +++ b/DeviceHub/images/FreqRep.png Binary files differ diff --git a/DeviceHub/images/FreqSwift.png b/DeviceHub/images/FreqSwift.png new file mode 100644 index 0000000..96d3a24 --- /dev/null +++ b/DeviceHub/images/FreqSwift.png Binary files differ diff --git a/DeviceHub/images/FreqTunn.png b/DeviceHub/images/FreqTunn.png new file mode 100644 index 0000000..3d2c3a6 --- /dev/null +++ b/DeviceHub/images/FreqTunn.png Binary files differ diff --git a/DeviceHub/images/NtpServ.png b/DeviceHub/images/NtpServ.png new file mode 100644 index 0000000..8bd0759 --- /dev/null +++ b/DeviceHub/images/NtpServ.png Binary files differ diff --git a/DeviceHub/images/SignGen.png b/DeviceHub/images/SignGen.png new file mode 100644 index 0000000..2d44112 --- /dev/null +++ b/DeviceHub/images/SignGen.png Binary files differ diff --git a/DeviceHub/images/TimeRep.png b/DeviceHub/images/TimeRep.png new file mode 100644 index 0000000..66b9367 --- /dev/null +++ b/DeviceHub/images/TimeRep.png Binary files differ diff --git a/DeviceHub/images/TimeSwift.png b/DeviceHub/images/TimeSwift.png new file mode 100644 index 0000000..a5c4ac9 --- /dev/null +++ b/DeviceHub/images/TimeSwift.png Binary files differ diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index ac1650c..1948640 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -1,4 +1,4 @@ -#include "BCodeTerminal.h" +#include "BCodeTerminal.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &BCodeTerminal::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->bCodeTermForm, &BCodeTerminalForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &BCodeTerminal::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &BCodeTerminal::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 5830c78..9ea584e 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -1,4 +1,4 @@ -#include "FreqReplicator.h" +#include "FreqReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -12,9 +12,11 @@ connect(this, &FreqReplicator::sendDataToDraw, ((DeviceHubWindow *)this->parent())->freqRepForm, &FreqReplicatorForm::drawDeviceFrameOnForm); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index bd76658..f2f238d 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -1,4 +1,4 @@ -#include "FreqSwitcher.h" +#include "FreqSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &FreqSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqSwitForm, &FreqSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FreqSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FreqSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 94e82b7..7965d92 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -14,12 +14,14 @@ connect(this, &FrequencyTuning::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqTunForm, &FrequencyTuningForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FrequencyTuning::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FrequencyTuning::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 7185e52..f3baa22 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -12,12 +12,14 @@ connect(this, &NtpServer::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->ntpServForm, &NtpServerForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &NtpServer::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &NtpServer::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index d8fed40..a15958e 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -1,4 +1,4 @@ -#include "SignalGenerator.h" +#include "SignalGenerator.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &SignalGenerator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->signGenForm, &SignalGeneratorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &SignalGenerator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &SignalGenerator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index e3550a2..eb21e2e 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -1,4 +1,4 @@ -#include "TimeReplicator.h" +#include "TimeReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -15,12 +15,14 @@ connect(this, &TimeReplicator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->timeRepForm, &TimeReplicatorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeReplicator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeReplicator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 12b23f9..c00aaca 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -1,4 +1,4 @@ -#include "TimeSwitcher.h" +#include "TimeSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &TimeSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->tmSwitForm, &TimeSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/images/BTerm.png b/DeviceHub/images/BTerm.png new file mode 100644 index 0000000..eb2ebef --- /dev/null +++ b/DeviceHub/images/BTerm.png Binary files differ diff --git a/DeviceHub/images/FreqRep.png b/DeviceHub/images/FreqRep.png new file mode 100644 index 0000000..fd09abc --- /dev/null +++ b/DeviceHub/images/FreqRep.png Binary files differ diff --git a/DeviceHub/images/FreqSwift.png b/DeviceHub/images/FreqSwift.png new file mode 100644 index 0000000..96d3a24 --- /dev/null +++ b/DeviceHub/images/FreqSwift.png Binary files differ diff --git a/DeviceHub/images/FreqTunn.png b/DeviceHub/images/FreqTunn.png new file mode 100644 index 0000000..3d2c3a6 --- /dev/null +++ b/DeviceHub/images/FreqTunn.png Binary files differ diff --git a/DeviceHub/images/NtpServ.png b/DeviceHub/images/NtpServ.png new file mode 100644 index 0000000..8bd0759 --- /dev/null +++ b/DeviceHub/images/NtpServ.png Binary files differ diff --git a/DeviceHub/images/SignGen.png b/DeviceHub/images/SignGen.png new file mode 100644 index 0000000..2d44112 --- /dev/null +++ b/DeviceHub/images/SignGen.png Binary files differ diff --git a/DeviceHub/images/TimeRep.png b/DeviceHub/images/TimeRep.png new file mode 100644 index 0000000..66b9367 --- /dev/null +++ b/DeviceHub/images/TimeRep.png Binary files differ diff --git a/DeviceHub/images/TimeSwift.png b/DeviceHub/images/TimeSwift.png new file mode 100644 index 0000000..a5c4ac9 --- /dev/null +++ b/DeviceHub/images/TimeSwift.png Binary files differ diff --git a/DeviceHub/protocol/TimeReplicatorProtocolBM.cpp b/DeviceHub/protocol/TimeReplicatorProtocolBM.cpp index 06acc1b..598bb3f 100644 --- a/DeviceHub/protocol/TimeReplicatorProtocolBM.cpp +++ b/DeviceHub/protocol/TimeReplicatorProtocolBM.cpp @@ -67,6 +67,8 @@ { QByteArray commandBytes; + devCode = "2101001"; // always set 2101001 + commandBytes.append("3"); commandBytes.append("1308-13").append(0x20); commandBytes.append(devCode); diff --git a/DeviceHub/DeviceHub.pro b/DeviceHub/DeviceHub.pro index e54f759..18da90e 100644 --- a/DeviceHub/DeviceHub.pro +++ b/DeviceHub/DeviceHub.pro @@ -61,3 +61,5 @@ INCLUDEPATH += $$PWD/include/librdkafka DEPENDPATH += $$PWD/include/librdkafka + +RESOURCES += res.qrc diff --git a/DeviceHub/DeviceHubWindow.cpp b/DeviceHub/DeviceHubWindow.cpp index de50156..993ba6a 100644 --- a/DeviceHub/DeviceHubWindow.cpp +++ b/DeviceHub/DeviceHubWindow.cpp @@ -1,4 +1,4 @@ -#include "DeviceHubWindow.h" +#include "DeviceHubWindow.h" #include "ui_DeviceHubWindow.h" #include @@ -14,15 +14,23 @@ // 无边框 this->setWindowFlags(Qt::FramelessWindowHint); + setWindowState(Qt::WindowFullScreen); + setWindowIcon(QIcon(":/images/CounterRealTime.png")); // 窗口大小为占满一屏 - QRect screenRect = QApplication::desktop()->availableGeometry(); + QRect screenRect = QApplication::desktop()->screenGeometry(); resize(screenRect.width(), screenRect.height()); // 将窗口移动到左上角 move(0, 0); ui->minButt->move(screenRect.width() - 80, 10); ui->line->setGeometry(0, 59, screenRect.width(), 1); + ui->logo->setText(SettingConfig::getInstance().CLIENT_TITLE); + + trayIcon = new QSystemTrayIcon(this); + trayIcon->setToolTip(SettingConfig::getInstance().CLIENT_TITLE); + + connect(trayIcon, &QSystemTrayIcon::activated, this, &DeviceHubWindow::onTrayIconActived); // 设置stackWidget的大小 ui->stackedWidget->setGeometry(0, 60, screenRect.width(), screenRect.height() - 60); @@ -34,12 +42,14 @@ this->initDeviceForm(devTypes.at(i)); } - // kafka consumer - kafkaConsumer = new QKafkaConsumer(this); - kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); - kafkaConsumer->createConsumer(); - kafkaConsumer->start(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + // kafka consumer + kafkaConsumer = new QKafkaConsumer(this); + kafkaConsumer->setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaConsumer->setTopic(SettingConfig::getInstance().KAFKA_CMD_TOPIC); + kafkaConsumer->createConsumer(); + kafkaConsumer->start(); + } // init device type and device list httpReq = new HttpRequestController(this); @@ -80,7 +90,7 @@ void DeviceHubWindow::on_minButt_clicked() { - setWindowState(Qt::WindowMinimized | windowState()); + this->hide(); } void DeviceHubWindow::on_devTypeSelect_currentIndexChanged(int index) @@ -110,6 +120,18 @@ currentDevIndex = index; } +void DeviceHubWindow::onTrayIconActived(QSystemTrayIcon::ActivationReason reason) +{ + switch (reason) { + case QSystemTrayIcon::Trigger: // left click + case QSystemTrayIcon::Context: // right click + this->show(); + break; + default: + break; + } +} + int DeviceHubWindow::initHttpToken() { QJsonObject response = httpReq->getTokenByClientId(SettingConfig::getInstance().CLIENT_ID, @@ -211,47 +233,65 @@ { freqTunForm = new FrequencyTuningForm(this); ui->stackedWidget->addWidget(freqTunForm); + + trayIcon->setIcon(QIcon(":/images/FreqTunn.png")); } if (devType == "04") { signGenForm = new SignalGeneratorForm(this); ui->stackedWidget->addWidget(signGenForm); + + trayIcon->setIcon(QIcon(":/images/SignGen.png")); } if (devType == "05") { tmSwitForm = new TimeSwitcherForm(this); ui->stackedWidget->addWidget(tmSwitForm); + + trayIcon->setIcon(QIcon(":/images/TimeSwift.png")); } if (devType == "06") { freqSwitForm = new FreqSwitcherForm(this); ui->stackedWidget->addWidget(freqSwitForm); + + trayIcon->setIcon(QIcon(":/images/FreqSwift.png")); } if (devType == "07") { bCodeTermForm = new BCodeTerminalForm(this); ui->stackedWidget->addWidget(bCodeTermForm); + + trayIcon->setIcon(QIcon(":/images/BTerm.png")); } if (devType == "09") { timeRepForm = new TimeReplicatorForm(this); ui->stackedWidget->addWidget(timeRepForm); + + trayIcon->setIcon(QIcon(":/images/TimeRep.png")); } if (devType == "10") { freqRepForm = new FreqReplicatorForm(this); ui->stackedWidget->addWidget(freqRepForm); + + trayIcon->setIcon(QIcon(":/images/FreqRep.png")); } if (devType == "11") { ntpServForm = new NtpServerForm(this); ui->stackedWidget->addWidget(ntpServForm); + + trayIcon->setIcon(QIcon(":/images/NtpServ.png")); } + + trayIcon->show(); } diff --git a/DeviceHub/DeviceHubWindow.h b/DeviceHub/DeviceHubWindow.h index 3b4c10a..f0ab58f 100644 --- a/DeviceHub/DeviceHubWindow.h +++ b/DeviceHub/DeviceHubWindow.h @@ -1,8 +1,9 @@ -#ifndef DEVICEHUBWINDOW_H +#ifndef DEVICEHUBWINDOW_H #define DEVICEHUBWINDOW_H #include #include +#include #include "common/HttpRequestController.h" #include "common/HttpServer.h" @@ -51,12 +52,14 @@ private slots: void on_minButt_clicked(); void on_devTypeSelect_currentIndexChanged(int index); - void on_devSelect_currentIndexChanged(int index); + void onTrayIconActived(QSystemTrayIcon::ActivationReason reason); private: Ui::DeviceHubWindow *ui; + QSystemTrayIcon * trayIcon; + // private objects HttpRequestController * httpReq; diff --git a/DeviceHub/DeviceHubWindow.ui b/DeviceHub/DeviceHubWindow.ui index 70c0618..482f85e 100644 --- a/DeviceHub/DeviceHubWindow.ui +++ b/DeviceHub/DeviceHubWindow.ui @@ -18,7 +18,7 @@ 20 0 - 200 + 300 60 @@ -35,7 +35,7 @@ - 250 + 320 0 150 60 @@ -60,9 +60,9 @@ - 400 + 480 10 - 250 + 200 40 diff --git a/DeviceHub/common/utils/SettingConfig.cpp b/DeviceHub/common/utils/SettingConfig.cpp index a811606..f1cdd51 100644 --- a/DeviceHub/common/utils/SettingConfig.cpp +++ b/DeviceHub/common/utils/SettingConfig.cpp @@ -1,9 +1,10 @@ -#include "SettingConfig.h" +#include "SettingConfig.h" SettingConfig::SettingConfig() { filename = QApplication::applicationDirPath() + "/conf/config.ini"; setting = new QSettings(this->filename, QSettings::IniFormat); + setting->setIniCodec("UTF-8"); PORT_NAMES = getProperty("com", "portNames").toString(); BAUD_RATE = getProperty("com", "baudRate").toUInt(); @@ -26,6 +27,7 @@ WORK_MODE = getProperty("client", "workMode").toString(); MASTER = getProperty("client", "master").toInt(); SERVER_PORT = getProperty("client", "serverPort").toInt(); + CLIENT_TITLE = getProperty("client", "title").toString(); BASE_URL = getProperty("http", "baseUrl").toString(); diff --git a/DeviceHub/common/utils/SettingConfig.h b/DeviceHub/common/utils/SettingConfig.h index 4cc00c9..04cce3d 100644 --- a/DeviceHub/common/utils/SettingConfig.h +++ b/DeviceHub/common/utils/SettingConfig.h @@ -1,4 +1,4 @@ -#ifndef SETTINGCONFIG_H +#ifndef SETTINGCONFIG_H #define SETTINGCONFIG_H #include @@ -48,6 +48,7 @@ QString WORK_MODE; int MASTER; quint16 SERVER_PORT; + QString CLIENT_TITLE; QString BASE_URL; diff --git a/DeviceHub/conf/config.ini b/DeviceHub/conf/config.ini index 2904619..af5bfb7 100644 --- a/DeviceHub/conf/config.ini +++ b/DeviceHub/conf/config.ini @@ -1,4 +1,4 @@ -[com] +[com] baudRate=115200 parity=2 #0=NoParity;2=EvenParity;3=OddParity @@ -20,6 +20,7 @@ workMode="mock" master=1 serverPort=5906 +title="" [http] baseUrl="http://111.198.10.15:11410" diff --git a/DeviceHub/device/BCodeTerminal.cpp b/DeviceHub/device/BCodeTerminal.cpp index ac1650c..1948640 100644 --- a/DeviceHub/device/BCodeTerminal.cpp +++ b/DeviceHub/device/BCodeTerminal.cpp @@ -1,4 +1,4 @@ -#include "BCodeTerminal.h" +#include "BCodeTerminal.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &BCodeTerminal::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->bCodeTermForm, &BCodeTerminalForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &BCodeTerminal::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &BCodeTerminal::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqReplicator.cpp b/DeviceHub/device/FreqReplicator.cpp index 5830c78..9ea584e 100644 --- a/DeviceHub/device/FreqReplicator.cpp +++ b/DeviceHub/device/FreqReplicator.cpp @@ -1,4 +1,4 @@ -#include "FreqReplicator.h" +#include "FreqReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -12,9 +12,11 @@ connect(this, &FreqReplicator::sendDataToDraw, ((DeviceHubWindow *)this->parent())->freqRepForm, &FreqReplicatorForm::drawDeviceFrameOnForm); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FreqSwitcher.cpp b/DeviceHub/device/FreqSwitcher.cpp index bd76658..f2f238d 100644 --- a/DeviceHub/device/FreqSwitcher.cpp +++ b/DeviceHub/device/FreqSwitcher.cpp @@ -1,4 +1,4 @@ -#include "FreqSwitcher.h" +#include "FreqSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &FreqSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqSwitForm, &FreqSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FreqSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FreqSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/FrequencyTuning.cpp b/DeviceHub/device/FrequencyTuning.cpp index 94e82b7..7965d92 100644 --- a/DeviceHub/device/FrequencyTuning.cpp +++ b/DeviceHub/device/FrequencyTuning.cpp @@ -14,12 +14,14 @@ connect(this, &FrequencyTuning::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->freqTunForm, &FrequencyTuningForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &FrequencyTuning::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &FrequencyTuning::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/NtpServer.cpp b/DeviceHub/device/NtpServer.cpp index 7185e52..f3baa22 100644 --- a/DeviceHub/device/NtpServer.cpp +++ b/DeviceHub/device/NtpServer.cpp @@ -12,12 +12,14 @@ connect(this, &NtpServer::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->ntpServForm, &NtpServerForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &NtpServer::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &NtpServer::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/SignalGenerator.cpp b/DeviceHub/device/SignalGenerator.cpp index d8fed40..a15958e 100644 --- a/DeviceHub/device/SignalGenerator.cpp +++ b/DeviceHub/device/SignalGenerator.cpp @@ -1,4 +1,4 @@ -#include "SignalGenerator.h" +#include "SignalGenerator.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &SignalGenerator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->signGenForm, &SignalGeneratorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &SignalGenerator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &SignalGenerator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeReplicator.cpp b/DeviceHub/device/TimeReplicator.cpp index e3550a2..eb21e2e 100644 --- a/DeviceHub/device/TimeReplicator.cpp +++ b/DeviceHub/device/TimeReplicator.cpp @@ -1,4 +1,4 @@ -#include "TimeReplicator.h" +#include "TimeReplicator.h" #include "DeviceHubWindow.h" #include #include @@ -15,12 +15,14 @@ connect(this, &TimeReplicator::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->timeRepForm, &TimeReplicatorForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeReplicator::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeReplicator::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/device/TimeSwitcher.cpp b/DeviceHub/device/TimeSwitcher.cpp index 12b23f9..c00aaca 100644 --- a/DeviceHub/device/TimeSwitcher.cpp +++ b/DeviceHub/device/TimeSwitcher.cpp @@ -1,4 +1,4 @@ -#include "TimeSwitcher.h" +#include "TimeSwitcher.h" #include "DeviceHubWindow.h" #include #include @@ -14,12 +14,14 @@ connect(this, &TimeSwitcher::sendCommandToDisplay, ((DeviceHubWindow *)this->parent())->tmSwitForm, &TimeSwitcherForm::displayDeviceCommandOnForm); - connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, - this, &TimeSwitcher::commandReceivedHandler); + if (SettingConfig::getInstance().NEED_KAFKA == 1) { + connect(((DeviceHubWindow *)this->parent())->kafkaConsumer, &QKafkaConsumer::messageRecieved, + this, &TimeSwitcher::commandReceivedHandler); - kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); - kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); - kafkaProducer.createProducer(); + kafkaProducer.setBrokers(SettingConfig::getInstance().KAFKA_BROKERS); + kafkaProducer.setTopic(SettingConfig::getInstance().KAFKA_DATA_TOPIC); + kafkaProducer.createProducer(); + } this->protocol = DeviceProtocolBase::deviceProtocolFactory(devType); } diff --git a/DeviceHub/images/BTerm.png b/DeviceHub/images/BTerm.png new file mode 100644 index 0000000..eb2ebef --- /dev/null +++ b/DeviceHub/images/BTerm.png Binary files differ diff --git a/DeviceHub/images/FreqRep.png b/DeviceHub/images/FreqRep.png new file mode 100644 index 0000000..fd09abc --- /dev/null +++ b/DeviceHub/images/FreqRep.png Binary files differ diff --git a/DeviceHub/images/FreqSwift.png b/DeviceHub/images/FreqSwift.png new file mode 100644 index 0000000..96d3a24 --- /dev/null +++ b/DeviceHub/images/FreqSwift.png Binary files differ diff --git a/DeviceHub/images/FreqTunn.png b/DeviceHub/images/FreqTunn.png new file mode 100644 index 0000000..3d2c3a6 --- /dev/null +++ b/DeviceHub/images/FreqTunn.png Binary files differ diff --git a/DeviceHub/images/NtpServ.png b/DeviceHub/images/NtpServ.png new file mode 100644 index 0000000..8bd0759 --- /dev/null +++ b/DeviceHub/images/NtpServ.png Binary files differ diff --git a/DeviceHub/images/SignGen.png b/DeviceHub/images/SignGen.png new file mode 100644 index 0000000..2d44112 --- /dev/null +++ b/DeviceHub/images/SignGen.png Binary files differ diff --git a/DeviceHub/images/TimeRep.png b/DeviceHub/images/TimeRep.png new file mode 100644 index 0000000..66b9367 --- /dev/null +++ b/DeviceHub/images/TimeRep.png Binary files differ diff --git a/DeviceHub/images/TimeSwift.png b/DeviceHub/images/TimeSwift.png new file mode 100644 index 0000000..a5c4ac9 --- /dev/null +++ b/DeviceHub/images/TimeSwift.png Binary files differ diff --git a/DeviceHub/protocol/TimeReplicatorProtocolBM.cpp b/DeviceHub/protocol/TimeReplicatorProtocolBM.cpp index 06acc1b..598bb3f 100644 --- a/DeviceHub/protocol/TimeReplicatorProtocolBM.cpp +++ b/DeviceHub/protocol/TimeReplicatorProtocolBM.cpp @@ -67,6 +67,8 @@ { QByteArray commandBytes; + devCode = "2101001"; // always set 2101001 + commandBytes.append("3"); commandBytes.append("1308-13").append(0x20); commandBytes.append(devCode); diff --git a/DeviceHub/res.qrc b/DeviceHub/res.qrc new file mode 100644 index 0000000..7139e52 --- /dev/null +++ b/DeviceHub/res.qrc @@ -0,0 +1,12 @@ + + + images/TimeSwift.png + images/TimeRep.png + images/SignGen.png + images/NtpServ.png + images/FreqTunn.png + images/FreqSwift.png + images/FreqRep.png + images/BTerm.png + +