From 03fcfc0981108eb9ed8b3e04040312119a0297c5 Mon Sep 17 00:00:00 2001 From: caoyuhui <1152604503@qq.com> Date: Mon, 26 Aug 2024 14:40:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=BB=E9=A1=B5=E3=80=81?= =?UTF-8?q?=E7=BD=91=E5=9D=80=E8=AE=BE=E7=BD=AE=E9=A1=B5=E9=9D=A2=E3=80=81?= =?UTF-8?q?=E7=BD=91=E7=BB=9C=E7=9B=91=E6=B5=8B=E9=A1=B5=E9=9D=A2=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=92=8C=E4=BA=A4=E4=BA=92=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Src/GDDC/gddcdlg.cpp | 12 +++-- Src/HomePage/deviceStateDlg.cpp | 15 ++++-- Src/HomePage/deviceStateDlg.h | 2 + Src/HomePage/homepagedlg.cpp | 37 ++------------ Src/HomePage/homepagedlg.h | 14 ++---- Src/HomePage/homepagesetingwidget.cpp | 72 ++++++++++++++------------- Src/HomePage/homepagesetingwidget.h | 38 +++++++------- mainwindow.cpp | 9 +--- 8 files changed, 86 insertions(+), 113 deletions(-) diff --git a/Src/GDDC/gddcdlg.cpp b/Src/GDDC/gddcdlg.cpp index 4084841..519dee3 100644 --- a/Src/GDDC/gddcdlg.cpp +++ b/Src/GDDC/gddcdlg.cpp @@ -534,11 +534,13 @@ void GDDCdlg::stopPushURL() { // 推流进程未自动关闭,手动关闭 int pids = GetmPid(L"ffmpeg.exe"); qDebug() << "ffmpeg.exe进程的pid为:" << pids; - // QString cmd; - // cmd = "taskkill /pid "+QString::number(pids)+" -f"; - QStringList m_cmd; - m_cmd << "/c" << "taskkill /pid " << QString::number(pids) << " -f"; - QProcess::startDetached("cmd", m_cmd); + if (pids != 0) { + // QString cmd; + // cmd = "taskkill /pid "+QString::number(pids)+" -f"; + QStringList m_cmd; + m_cmd << "/c" << "taskkill /pid " << QString::number(pids) << " -f"; + QProcess::startDetached("cmd", m_cmd); + } } connectFlag[5] = false; } diff --git a/Src/HomePage/deviceStateDlg.cpp b/Src/HomePage/deviceStateDlg.cpp index b55e13b..c3b86af 100644 --- a/Src/HomePage/deviceStateDlg.cpp +++ b/Src/HomePage/deviceStateDlg.cpp @@ -159,9 +159,11 @@ void deviceStateDlg::setDeviceIP(int id, QString ip) { } // 字符串网络地址截取 QString deviceStateDlg::stringIPSelect(QString str) { - int start, end; // str = https://192.168.1.2/22 + int start = -1; + int end = -1; + // str = https://192.168.1.2/22 start = str.indexOf("//"); - if (start != 0) { + if (start != -1) { start += 2; QString str2 = str.remove(0, start); // 192.168.1.2/224//115 end = str2.indexOf("/"); @@ -184,7 +186,14 @@ QString deviceStateDlg::stringIPSelect(QString str) { } // index = str.indexOf("http://") } - +// 获得url地址 +void deviceStateDlg::setUrl(std::unordered_map &urlMap) { + m_urlMap = urlMap; + setDeviceIP(HomePageSetingWidget::GDDC, m_urlMap["光电吊舱"]); + setDeviceIP(HomePageSetingWidget::L_Link, m_urlMap["L链"]); + setDeviceIP(HomePageSetingWidget::Adhoc_Network, m_urlMap["宽带自组网"]); + setDeviceIP(HomePageSetingWidget::Satelite_Comm, m_urlMap["机载卫通"]); +} // 开始网络监测 void deviceStateDlg::startNetDetn() { for (int i = 0; i < deviceNum; ++i) { diff --git a/Src/HomePage/deviceStateDlg.h b/Src/HomePage/deviceStateDlg.h index 4bd18c9..1ebc1b5 100644 --- a/Src/HomePage/deviceStateDlg.h +++ b/Src/HomePage/deviceStateDlg.h @@ -55,6 +55,8 @@ public: QTimer *m_timer; void setDeviceIP(int, QString); QString stringIPSelect(QString); + std::unordered_map m_urlMap; // 存储url地址 + void setUrl(std::unordered_map &urlMap); // 获得url地址 void startNetDetn(); void stopNetDetn(); public slots: diff --git a/Src/HomePage/homepagedlg.cpp b/Src/HomePage/homepagedlg.cpp index 22cce8e..71cf7bf 100644 --- a/Src/HomePage/homepagedlg.cpp +++ b/Src/HomePage/homepagedlg.cpp @@ -5,8 +5,7 @@ #include HomePageDlg::HomePageDlg(QWidget *parent) - : QWidget(parent), ui(new Ui::HomePageDlg), _lLinkIp(""), _adHocNetwork(""), - _satelliteComm("") { + : QWidget(parent), ui(new Ui::HomePageDlg) { ui->setupUi(this); QPalette palette; // 设置主窗口背景颜色 @@ -21,44 +20,14 @@ HomePageDlg::HomePageDlg(QWidget *parent) m_deviceStateDlg = new deviceStateDlg(this); // 状态嵌入窗口 m_deviceStateDlg->show(); + std::unordered_map urlmap = settingWidget->getUrl(); + m_deviceStateDlg->setUrl(urlmap); - initSettingUrl(); initButton(); } HomePageDlg::~HomePageDlg() { delete ui; } -/************************************************* - * @func getUrl - * @brief 获取设备url - * @param - **************************************************/ -void HomePageDlg::getUrl(std::unordered_map &urlMap) { - urlMap = _urlMap; -} - -/************************************************* - * @func - * @brief 初始化配置文件 - * @param - * @return - **************************************************/ -void HomePageDlg::initSettingUrl() { - QString urlFile = QCoreApplication::applicationDirPath() + "/config.ini"; - std::unique_ptr configIni = - std::make_unique(urlFile, QSettings::IniFormat); - _GDDCIp = configIni->value("光电吊舱/IP").toString(); - _lLinkIp = configIni->value("L链/IP").toString(); - _adHocNetwork = configIni->value("宽带自组网/IP").toString(); - _satelliteComm = configIni->value("机载卫通/IP").toString(); - - _urlMap.insert({"光电吊舱", _GDDCIp}); - _urlMap.insert({"L链", _lLinkIp}); - _urlMap.insert({"宽带自组网", _adHocNetwork}); - _urlMap.insert({"机载卫通", _satelliteComm}); - - settingWidget->setUrl(_urlMap); -} /** * @brief HomePageDlg::initButton 初始化按钮位置 */ diff --git a/Src/HomePage/homepagedlg.h b/Src/HomePage/homepagedlg.h index 3f4b4c6..4f678fe 100644 --- a/Src/HomePage/homepagedlg.h +++ b/Src/HomePage/homepagedlg.h @@ -18,21 +18,13 @@ public: explicit HomePageDlg(QWidget *parent = nullptr); ~HomePageDlg(); QPixmap m_pixmap; - HomePageSetingWidget *settingWidget; - deviceStateDlg *m_deviceStateDlg; - void getUrl(std::unordered_map &urlMap); + HomePageSetingWidget *settingWidget; // 通信设置页面 + deviceStateDlg *m_deviceStateDlg; // 设备状态信息页面 private: Ui::HomePageDlg *ui; - void initSettingUrl(); void initButton(); - - QString _GDDCIp; - QString _lLinkIp; - QString _adHocNetwork; - QString _satelliteComm; - std::unordered_map _urlMap; - QPushButton *m_settingBtn; + QPushButton *m_settingBtn; // 通信设置按钮 protected: void resizeEvent(QResizeEvent *event); diff --git a/Src/HomePage/homepagesetingwidget.cpp b/Src/HomePage/homepagesetingwidget.cpp index 355f1ae..c31cfc3 100644 --- a/Src/HomePage/homepagesetingwidget.cpp +++ b/Src/HomePage/homepagesetingwidget.cpp @@ -5,34 +5,40 @@ HomePageSetingWidget::HomePageSetingWidget(QWidget *parent) : QWidget(parent), ui(new Ui::HomePageSetingWidget), _GDDCIp(""), _lLinkIp(""), _adHocNetwork(""), _satelliteComm("") { ui->setupUi(this); + init(); +} +HomePageSetingWidget::~HomePageSetingWidget() { delete ui; } + +void HomePageSetingWidget::init() { + // 选择配置文件 urlFile = QCoreApplication::applicationDirPath() + "/config.ini"; _configIni = std::make_unique(urlFile, QSettings::IniFormat); -} -HomePageSetingWidget::~HomePageSetingWidget() { delete ui; } + // 读取配置信息 + _GDDCIp = _configIni->value("光电吊舱/IP").toString(); + _lLinkIp = _configIni->value("L链/IP").toString(); + _adHocNetwork = _configIni->value("宽带自组网/IP").toString(); + _satelliteComm = _configIni->value("机载卫通/IP").toString(); -/** - * @brief HomePageSetingWidget::setUrl 初始话后从.ini文件中读取的数据显示 - * @param urlMap - */ -void HomePageSetingWidget::setUrl( - std::unordered_map &urlMap) { - _GDDCIp = urlMap["光电吊舱"]; - _lLinkIp = urlMap["L链"]; - _adHocNetwork = urlMap["宽带自组网"]; - _satelliteComm = urlMap["机载卫通"]; - initEdit(); -} + // 存储配置信息到MAP容器中 + _urlMap.insert({"光电吊舱", _GDDCIp}); + _urlMap.insert({"L链", _lLinkIp}); + _urlMap.insert({"宽带自组网", _adHocNetwork}); + _urlMap.insert({"机载卫通", _satelliteComm}); -/** - * @brief HomePageSetingWidget::initEdit 初始化Edit控件参数 - */ -void HomePageSetingWidget::initEdit() { + // 显示到配置页面 ui->GDDCLineEdit->setText(_GDDCIp); ui->lLinkLineEdit->setText(_lLinkIp); ui->netLineEdit->setText(_adHocNetwork); ui->sateliteLineEdit->setText(_satelliteComm); + + // 发送消息到其他页面 + emit sendOnlyUrl(GDDC, _GDDCIp); + emit sendOnlyUrl(L_Link, _lLinkIp); + emit sendOnlyUrl(Adhoc_Network, _adHocNetwork); + emit sendOnlyUrl(Satelite_Comm, _satelliteComm); } + void HomePageSetingWidget::on_GDDCPushButton_clicked() { // 写参数到配置文件 _GDDCIp = ui->GDDCLineEdit->text(); @@ -59,22 +65,18 @@ void HomePageSetingWidget::on_sateliteButton_clicked() { _configIni->setValue("机载卫通/IP", _satelliteComm); emit sendOnlyUrl(Satelite_Comm, _satelliteComm); } - +// 一键配置 void HomePageSetingWidget::on_oneKeyButton_clicked() { - // 写参数到配置文件 - _GDDCIp = ui->GDDCLineEdit->text(); - _configIni->setValue("光电吊舱/IP", _GDDCIp); - _lLinkIp = ui->lLinkLineEdit->text(); - _configIni->setValue("L链/IP", _lLinkIp); - _adHocNetwork = ui->netLineEdit->text(); - _configIni->setValue("宽带自组网/IP", _adHocNetwork); - _satelliteComm = ui->sateliteLineEdit->text(); - _configIni->setValue("机载卫通/IP", _satelliteComm); - - std::unordered_map urlMap; - urlMap.insert({"光电吊舱", _GDDCIp}); - urlMap.insert({"L链", _lLinkIp}); - urlMap.insert({"宽带自组网", _adHocNetwork}); - urlMap.insert({"机载卫通", _satelliteComm}); - emit sendAllUrl(urlMap); + on_GDDCPushButton_clicked(); + on_lLinkButton_clicked(); + on_netButton_clicked(); + on_sateliteButton_clicked(); +} +/************************************************* + * @func getUrl + * @brief 向外部提供接口 获取配置文件中的所有url信息 + * @param + **************************************************/ +std::unordered_map HomePageSetingWidget::getUrl() { + return _urlMap; } diff --git a/Src/HomePage/homepagesetingwidget.h b/Src/HomePage/homepagesetingwidget.h index 3506345..0b412f0 100644 --- a/Src/HomePage/homepagesetingwidget.h +++ b/Src/HomePage/homepagesetingwidget.h @@ -17,17 +17,29 @@ public: private: Ui::HomePageSetingWidget *ui; - QString _GDDCIp; // 光电吊舱 - QString _lLinkIp; // L链 - QString _adHocNetwork; // 自组网 - QString _satelliteComm; // PDT - std::unique_ptr _configIni; // 配置文件写入 - QString urlFile; // 配置文件路径 -private: - void initEdit(); + QString _GDDCIp; // 光电吊舱 + QString _lLinkIp; // L链 + QString _adHocNetwork; // 自组网 + QString _satelliteComm; // PDT + std::unique_ptr _configIni; // 配置文件写入 + QString urlFile; // 配置文件路径 + std::unordered_map _urlMap; // map容器存储url +public: + void init(); + /************************************************* + * @func getUrl + * @brief 向外部提供接口 获取配置文件中的所有url信息 + * @param + **************************************************/ + std::unordered_map getUrl(); public: - void setUrl(std::unordered_map &urlMap); + enum urlEnum : unsigned char { + GDDC = 1, + L_Link, + Adhoc_Network, + Satelite_Comm + }; private slots: void on_lLinkButton_clicked(); @@ -39,14 +51,6 @@ private slots: signals: void sendOnlyUrl(unsigned char urlIndex, QString url); // 发送信号给网页显示 void sendAllUrl(std::unordered_map urlMap); - -public: - enum urlEnum : unsigned char { - GDDC = 1, - L_Link, - Adhoc_Network, - Satelite_Comm - }; }; #endif // HOMEPAGESETINGWIDGET_H diff --git a/mainwindow.cpp b/mainwindow.cpp index 55cb956..bce6123 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -79,7 +79,7 @@ void MainWindow::initWindow() { m_rescueLoadWidget = new RescueLoadWidget(this); // 使用类中的get方法获取配置文件中的IP - m_HomePagedlg->getUrl(m_urlMap); + m_urlMap = m_HomePagedlg->settingWidget->getUrl(); qDebug() << "=============设备配置================"; qDebug() << "光电吊舱" << m_urlMap["光电吊舱"]; @@ -124,13 +124,6 @@ void MainWindow::initWindow() { } }); - // 接收主页面设置窗口的url数据传递并设置 一键设置 - connect(m_HomePagedlg->settingWidget, &HomePageSetingWidget::sendAllUrl, this, - [&](std::unordered_map urlMap) { - lLinkWeb->load(QUrl(urlMap["L链"])); - adHocNetworkWeb->load(QUrl(urlMap["宽带自组网"])); - satelliteCommWeb->load(QUrl(urlMap["机载卫通"])); - }); // 设置栈窗口,多页面共享同一窗口 ui->stackedWidget->addWidget(m_SDFPDlg); ui->stackedWidget->addWidget(m_HomePagedlg);