优化主页、网址设置页面、网络监测页面接口和交互逻辑

pull/7/head
caoyuhui
parent 115375311f
commit 03fcfc0981

@ -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;
}

@ -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<QString, QString> &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) {

@ -55,6 +55,8 @@ public:
QTimer *m_timer;
void setDeviceIP(int, QString);
QString stringIPSelect(QString);
std::unordered_map<QString, QString> m_urlMap; // 存储url地址
void setUrl(std::unordered_map<QString, QString> &urlMap); // 获得url地址
void startNetDetn();
void stopNetDetn();
public slots:

@ -5,8 +5,7 @@
#include <qsettings.h>
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<QString, QString> urlmap = settingWidget->getUrl();
m_deviceStateDlg->setUrl(urlmap);
initSettingUrl();
initButton();
}
HomePageDlg::~HomePageDlg() { delete ui; }
/*************************************************
* @func getUrl
* @brief url
* @param
**************************************************/
void HomePageDlg::getUrl(std::unordered_map<QString, QString> &urlMap) {
urlMap = _urlMap;
}
/*************************************************
* @func
* @brief
* @param
* @return
**************************************************/
void HomePageDlg::initSettingUrl() {
QString urlFile = QCoreApplication::applicationDirPath() + "/config.ini";
std::unique_ptr<QSettings> configIni =
std::make_unique<QSettings>(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
*/

@ -18,21 +18,13 @@ public:
explicit HomePageDlg(QWidget *parent = nullptr);
~HomePageDlg();
QPixmap m_pixmap;
HomePageSetingWidget *settingWidget;
deviceStateDlg *m_deviceStateDlg;
void getUrl(std::unordered_map<QString, QString> &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<QString, QString> _urlMap;
QPushButton *m_settingBtn;
QPushButton *m_settingBtn; // 通信设置按钮
protected:
void resizeEvent(QResizeEvent *event);

@ -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<QSettings>(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<QString, QString> &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<QString, QString> 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<QString, QString> HomePageSetingWidget::getUrl() {
return _urlMap;
}

@ -17,17 +17,29 @@ public:
private:
Ui::HomePageSetingWidget *ui;
QString _GDDCIp; // 光电吊舱
QString _lLinkIp; // L链
QString _adHocNetwork; // 自组网
QString _satelliteComm; // PDT
std::unique_ptr<QSettings> _configIni; // 配置文件写入
QString urlFile; // 配置文件路径
private:
void initEdit();
QString _GDDCIp; // 光电吊舱
QString _lLinkIp; // L链
QString _adHocNetwork; // 自组网
QString _satelliteComm; // PDT
std::unique_ptr<QSettings> _configIni; // 配置文件写入
QString urlFile; // 配置文件路径
std::unordered_map<QString, QString> _urlMap; // map容器存储url
public:
void init();
/*************************************************
* @func getUrl
* @brief url
* @param
**************************************************/
std::unordered_map<QString, QString> getUrl();
public:
void setUrl(std::unordered_map<QString, QString> &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<QString, QString> urlMap);
public:
enum urlEnum : unsigned char {
GDDC = 1,
L_Link,
Adhoc_Network,
Satelite_Comm
};
};
#endif // HOMEPAGESETINGWIDGET_H

@ -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<QString, QString> urlMap) {
lLinkWeb->load(QUrl(urlMap["L链"]));
adHocNetworkWeb->load(QUrl(urlMap["宽带自组网"]));
satelliteCommWeb->load(QUrl(urlMap["机载卫通"]));
});
// 设置栈窗口,多页面共享同一窗口
ui->stackedWidget->addWidget(m_SDFPDlg);
ui->stackedWidget->addWidget(m_HomePagedlg);

Loading…
Cancel
Save