增加主页设置三维建模通信设置及状态监测

pull/9/head
caoyuhui 7 months ago
parent f67967ff71
commit 1aa55856c5

@ -13,7 +13,7 @@ GDDCSet::GDDCSet(QWidget *parent) : QWidget(parent), ui(new Ui::GDDCSet) {
GDDCSet::~GDDCSet() { delete ui; } GDDCSet::~GDDCSet() { delete ui; }
void GDDCSet::initWindow() { void GDDCSet::initWindow() {
this->setWindowTitle("通信设置"); setWindowTitle("通信设置");
setAttribute(Qt::WA_QuitOnClose, false); setAttribute(Qt::WA_QuitOnClose, false);
// 交付时隐藏部分未开发接口 // 交付时隐藏部分未开发接口

@ -74,6 +74,7 @@ void GDDCdlg::initWindow() {
hide(); hide();
m_DlgGDDCSet = new GDDCSet(); m_DlgGDDCSet = new GDDCSet();
m_DlgGDDCSet->setWindowFlags(Qt::Window); // 设置为独立窗口
m_GDDCCmdDlg = new GDDCCmdDlg(this); m_GDDCCmdDlg = new GDDCCmdDlg(this);
m_GDDCStateDlg = new GDDCStateInfo(this); m_GDDCStateDlg = new GDDCStateInfo(this);
ui->pushButShowStatePage->setIcon(QIcon(":/res/right.png")); ui->pushButShowStatePage->setIcon(QIcon(":/res/right.png"));
@ -527,7 +528,7 @@ void GDDCdlg::stopPushURL() {
// 设置页面弹出 // 设置页面弹出
void GDDCdlg::pushButtonSet_clicked() { void GDDCdlg::pushButtonSet_clicked() {
m_DlgGDDCSet->show(); m_DlgGDDCSet->show();
m_DlgGDDCSet->activateWindow(); m_DlgGDDCSet->activateWindow(); // 置为顶层
} }
// udp数据接收 // udp数据接收

@ -1,15 +1,13 @@
#ifndef STRUCTDEFINEMYSLEF_H #ifndef STRUCTDEFINEMYSLEF_H
#define STRUCTDEFINEMYSLEF_H #define STRUCTDEFINEMYSLEF_H
#include <QString>
#include <QHostAddress> #include <QHostAddress>
#include <QString>
struct MyPairNetwork struct MyPairNetwork {
{
public: public:
MyPairNetwork(){}; MyPairNetwork() {};
MyPairNetwork(QString a,int b,QString c,int d){ MyPairNetwork(QString a, int b, QString c, int d) {
localIP = a; localIP = a;
localPort = b; localPort = b;
remoteIP = c; remoteIP = c;
@ -17,6 +15,7 @@ public:
localAddr.setAddress(localIP); localAddr.setAddress(localIP);
remoteAddr.setAddress(remoteIP); remoteAddr.setAddress(remoteIP);
} }
private: private:
QString localIP; QString localIP;
quint16 localPort; quint16 localPort;
@ -26,27 +25,45 @@ private:
QHostAddress remoteAddr; QHostAddress remoteAddr;
public: public:
void setLocalIP(QString ip){ void setLocalIP(QString ip) {
localIP = ip; localIP = ip;
localAddr.setAddress(localIP); localAddr.setAddress(localIP);
} }
void setLocalPort(quint16 port){ void setLocalPort(quint16 port) { localPort = port; }
localPort = port; void setRemoteIP(QString ip) {
}
void setRemoteIP(QString ip){
remoteIP = ip; remoteIP = ip;
remoteAddr.setAddress(remoteIP); remoteAddr.setAddress(remoteIP);
} }
void setRemotePort(quint16 port){ void setRemotePort(quint16 port) { remotePort = port; }
remotePort = port; QString getLocalIP() { return localIP; }
} quint16 getLocalPort() { return localPort; }
QString getLocalIP(){return localIP;} QHostAddress getLocalAddr() { return localAddr; }
quint16 getLocalPort(){return localPort;} QString getRemoteIP() { return remoteIP; }
QHostAddress getLocalAddr(){return localAddr;} quint16 getRemotePort() { return remotePort; }
QString getRemoteIP(){return remoteIP;} QHostAddress getRemoteAddr() { return remoteAddr; }
quint16 getRemotePort(){return remotePort;}
QHostAddress getRemoteAddr(){return remoteAddr;}
}; };
// 串口
struct serialStruct {
QString serialId;
int baudrate;
};
// 网口
struct netStruct {
QString localIp;
QString remoteIp;
int localPort;
int remotePort;
};
// 设置结构体
struct settingStruct {
public:
settingStruct() {};
// settingStruct(QString str1, QString str2, int d) { url = str1; }
public:
QString url; // 网址
serialStruct serial; // 串口
netStruct net; // 网口
};
#endif // STRUCTDEFINEMYSLEF_H #endif // STRUCTDEFINEMYSLEF_H

@ -124,35 +124,51 @@ void deviceStateDlg::receiveResult(int id, QString result) {
QIcon(":/res/lamp/red.png")); QIcon(":/res/lamp/red.png"));
} }
break; break;
case 4:
if (result == "在线") {
ui->pushButton_state_3DCamra->setIcon(QIcon(":/res/lamp/green.png"));
} else {
ui->pushButton_state_3DCamra->setIcon(QIcon(":/res/lamp/red.png"));
}
break;
default: default:
break; break;
} }
} }
// 接收更改的IP // 接收更改的IP
void deviceStateDlg::setDeviceIP(int id, QString ip) { void deviceStateDlg::setDeviceIP(int id, settingStruct param) {
QString strIp; QString strIp;
strIp = stringIPSelect(ip);
switch (id) { switch (id) {
case HomePageSetingWidget::GDDC: case HomePageSetingWidget::GDDC:
strIp = stringIPSelect(param.net.remoteIp);
cmdlist[0].clear(); cmdlist[0].clear();
cmdlist[0] << "/c" << "ping" << strIp; cmdlist[0] << "/c" << "ping" << strIp;
m_networkDetection[0]->DyChangeCmdList(cmdlist[0]); // 更新到网络检测线程 m_networkDetection[0]->DyChangeCmdList(cmdlist[0]); // 更新到网络检测线程
break; break;
case HomePageSetingWidget::L_Link: case HomePageSetingWidget::L_Link:
strIp = stringIPSelect(param.url);
cmdlist[1].clear(); cmdlist[1].clear();
cmdlist[1] << "/c" << "ping" << strIp; cmdlist[1] << "/c" << "ping" << strIp;
m_networkDetection[1]->DyChangeCmdList(cmdlist[1]); // 更新到网络检测线程 m_networkDetection[1]->DyChangeCmdList(cmdlist[1]); // 更新到网络检测线程
break; break;
case HomePageSetingWidget::Adhoc_Network: case HomePageSetingWidget::Adhoc_Network:
strIp = stringIPSelect(param.url);
cmdlist[2].clear(); cmdlist[2].clear();
cmdlist[2] << "/c" << "ping" << strIp; cmdlist[2] << "/c" << "ping" << strIp;
m_networkDetection[2]->DyChangeCmdList(cmdlist[2]); // 更新到网络检测线程 m_networkDetection[2]->DyChangeCmdList(cmdlist[2]); // 更新到网络检测线程
break; break;
case HomePageSetingWidget::Satelite_Comm: case HomePageSetingWidget::Satelite_Comm:
strIp = stringIPSelect(param.url);
cmdlist[3].clear(); cmdlist[3].clear();
cmdlist[3] << "/c" << "ping" << strIp; cmdlist[3] << "/c" << "ping" << strIp;
m_networkDetection[3]->DyChangeCmdList(cmdlist[3]); // 更新到网络检测线程 m_networkDetection[3]->DyChangeCmdList(cmdlist[3]); // 更新到网络检测线程
break; break;
case HomePageSetingWidget::ModelCamera:
strIp = stringIPSelect(param.net.remoteIp);
cmdlist[4].clear();
cmdlist[4] << "/c" << "ping" << strIp;
m_networkDetection[4]->DyChangeCmdList(cmdlist[4]); // 更新到网络检测线程
break;
default: default:
break; break;
} }
@ -168,7 +184,7 @@ QString deviceStateDlg::stringIPSelect(QString str) {
QString str2 = str.remove(0, start); // 192.168.1.2/224//115 QString str2 = str.remove(0, start); // 192.168.1.2/224//115
end = str2.indexOf("/"); end = str2.indexOf("/");
if (end != -1) { if (end != -1) {
end += 1; // end += 1;
str2.truncate(end); str2.truncate(end);
return str2; return str2;
} else { } else {
@ -177,7 +193,7 @@ QString deviceStateDlg::stringIPSelect(QString str) {
} else { } else {
end = str.indexOf("/"); end = str.indexOf("/");
if (end != -1) { if (end != -1) {
end += 1; // end += 1;
str.truncate(end); str.truncate(end);
return str; return str;
} else { } else {
@ -187,12 +203,14 @@ QString deviceStateDlg::stringIPSelect(QString str) {
// index = str.indexOf("http://") // index = str.indexOf("http://")
} }
// 获得url地址 // 获得url地址
void deviceStateDlg::setUrl(std::unordered_map<QString, QString> &urlMap) { void deviceStateDlg::setUrl(
std::unordered_map<QString, settingStruct> &urlMap) {
m_urlMap = urlMap; m_urlMap = urlMap;
setDeviceIP(HomePageSetingWidget::GDDC, m_urlMap["光电吊舱"]); setDeviceIP(HomePageSetingWidget::GDDC, m_urlMap["光电吊舱"]);
setDeviceIP(HomePageSetingWidget::L_Link, m_urlMap["L链"]); setDeviceIP(HomePageSetingWidget::L_Link, m_urlMap["L链"]);
setDeviceIP(HomePageSetingWidget::Adhoc_Network, m_urlMap["宽带自组网"]); setDeviceIP(HomePageSetingWidget::Adhoc_Network, m_urlMap["宽带自组网"]);
setDeviceIP(HomePageSetingWidget::Satelite_Comm, m_urlMap["机载卫通"]); setDeviceIP(HomePageSetingWidget::Satelite_Comm, m_urlMap["机载卫通"]);
setDeviceIP(HomePageSetingWidget::ModelCamera, m_urlMap["三维建模"]);
} }
// 开始网络监测 // 开始网络监测
void deviceStateDlg::startNetDetn() { void deviceStateDlg::startNetDetn() {

@ -49,14 +49,20 @@ private:
Ui::deviceStateDlg *ui; Ui::deviceStateDlg *ui;
public: public:
QStringList cmdlist[deviceNum]; // 0光电吊舱1L链 2 自组网3ku卫通 4 // 0光电吊舱
// 1L链
// 2 自组网
// 3ku卫通
// 4三维相机
QStringList cmdlist[deviceNum];
networkDetection *m_networkDetection[deviceNum]; networkDetection *m_networkDetection[deviceNum];
QThread *m_workerThread[deviceNum]; QThread *m_workerThread[deviceNum];
QTimer *m_timer; QTimer *m_timer;
void setDeviceIP(int, QString); void setDeviceIP(int, settingStruct);
QString stringIPSelect(QString); QString stringIPSelect(QString);
std::unordered_map<QString, QString> m_urlMap; // 存储url地址 std::unordered_map<QString, settingStruct> m_urlMap;
void setUrl(std::unordered_map<QString, QString> &urlMap); // 获得url地址 void setUrl(std::unordered_map<QString, settingStruct> &urlMap);
void startNetDetn(); void startNetDetn();
void stopNetDetn(); void stopNetDetn();
public slots: public slots:

@ -20,8 +20,9 @@ HomePageDlg::HomePageDlg(QWidget *parent)
m_deviceStateDlg = new deviceStateDlg(this); // 状态嵌入窗口 m_deviceStateDlg = new deviceStateDlg(this); // 状态嵌入窗口
m_deviceStateDlg->show(); m_deviceStateDlg->show();
std::unordered_map<QString, QString> urlmap = settingWidget->getUrl(); std::unordered_map<QString, settingStruct> allParam =
m_deviceStateDlg->setUrl(urlmap); settingWidget->getAllParam();
m_deviceStateDlg->setUrl(allParam);
initButton(); initButton();
} }
@ -51,8 +52,8 @@ void HomePageDlg::initButton() {
}); });
// 设置页面设置ip后更新网络检测页面ip // 设置页面设置ip后更新网络检测页面ip
connect(settingWidget, &HomePageSetingWidget::sendOnlyUrl, this, connect(settingWidget, &HomePageSetingWidget::sendOneSet, this,
[&](unsigned char urlIndex, QString url) { [&](unsigned char urlIndex, settingStruct url) {
m_deviceStateDlg->setDeviceIP(urlIndex, url); m_deviceStateDlg->setDeviceIP(urlIndex, url);
}); });
} }

@ -5,7 +5,6 @@
#include "Src/HomePage/homepagesetingwidget.h" #include "Src/HomePage/homepagesetingwidget.h"
#include "deviceStateDlg.h" #include "deviceStateDlg.h"
#include <QWidget> #include <QWidget>
#include <unordered_map>
namespace Ui { namespace Ui {
class HomePageDlg; class HomePageDlg;

@ -2,8 +2,7 @@
#include "ui_homepagesetingwidget.h" #include "ui_homepagesetingwidget.h"
HomePageSetingWidget::HomePageSetingWidget(QWidget *parent) HomePageSetingWidget::HomePageSetingWidget(QWidget *parent)
: QWidget(parent), ui(new Ui::HomePageSetingWidget), _GDDCIp(""), : QWidget(parent), ui(new Ui::HomePageSetingWidget) {
_lLinkIp(""), _adHocNetwork(""), _satelliteComm("") {
ui->setupUi(this); ui->setupUi(this);
init(); init();
} }
@ -15,55 +14,83 @@ void HomePageSetingWidget::init() {
_configIni = std::make_unique<QSettings>(urlFile, QSettings::IniFormat); _configIni = std::make_unique<QSettings>(urlFile, QSettings::IniFormat);
// 读取配置信息 // 读取配置信息
_GDDCIp = _configIni->value("光电吊舱/IP").toString(); _GDDC.net.remoteIp = _configIni->value("光电吊舱/IP").toString();
_lLinkIp = _configIni->value("L链/IP").toString(); _GDDC.net.remotePort = _configIni->value("光电吊舱/Port").toInt();
_adHocNetwork = _configIni->value("宽带自组网/IP").toString(); _lLink.url = _configIni->value("L链/IP").toString();
_satelliteComm = _configIni->value("机载卫通/IP").toString(); _adHocNetwork.url = _configIni->value("宽带自组网/IP").toString();
_satelliteComm.url = _configIni->value("机载卫通/IP").toString();
_ModelCamera.net.remoteIp = _configIni->value("三维建模/remoteIp").toString();
_ModelCamera.net.remotePort =
_configIni->value("三维建模/remotePort").toInt();
_ModelCamera.net.localIp = _configIni->value("三维建模/localIp").toString();
_ModelCamera.net.localPort = _configIni->value("三维建模/localPort").toInt();
// 存储配置信息到MAP容器中 // 存储配置信息到MAP容器中
_urlMap.insert({"光电吊舱", _GDDCIp}); _allParamMap.insert({"光电吊舱", _GDDC});
_urlMap.insert({"L链", _lLinkIp}); _allParamMap.insert({"L链", _lLink});
_urlMap.insert({"宽带自组网", _adHocNetwork}); _allParamMap.insert({"宽带自组网", _adHocNetwork});
_urlMap.insert({"机载卫通", _satelliteComm}); _allParamMap.insert({"机载卫通", _satelliteComm});
_allParamMap.insert({"三维建模", _ModelCamera});
// 显示到配置页面 // 显示到配置页面
ui->GDDCLineEdit->setText(_GDDCIp); ui->GDDCLineEdit->setText(_GDDC.net.remoteIp);
ui->lLinkLineEdit->setText(_lLinkIp); ui->lLinkLineEdit->setText(_lLink.url);
ui->netLineEdit->setText(_adHocNetwork); ui->netLineEdit->setText(_adHocNetwork.url);
ui->sateliteLineEdit->setText(_satelliteComm); ui->sateliteLineEdit->setText(_satelliteComm.url);
ui->modelCameraLineEditRemoteIp->setText(_ModelCamera.net.remoteIp);
ui->modelCameraLineEditRemotePort->setText(
QString::number(_ModelCamera.net.remotePort));
ui->modelCameraLineEditLocalIp->setText(_ModelCamera.net.localIp);
ui->modelCameraLineEditLocalPort->setText(
QString::number(_ModelCamera.net.localPort));
// 发送消息到其他页面 // 发送消息到其他页面
emit sendOnlyUrl(GDDC, _GDDCIp); emit sendOneSet(GDDC, _GDDC);
emit sendOnlyUrl(L_Link, _lLinkIp); emit sendOneSet(L_Link, _lLink);
emit sendOnlyUrl(Adhoc_Network, _adHocNetwork); emit sendOneSet(Adhoc_Network, _adHocNetwork);
emit sendOnlyUrl(Satelite_Comm, _satelliteComm); emit sendOneSet(Satelite_Comm, _satelliteComm);
emit sendOneSet(ModelCamera, _ModelCamera);
} }
void HomePageSetingWidget::on_GDDCPushButton_clicked() { void HomePageSetingWidget::on_GDDCPushButton_clicked() {
// 写参数到配置文件 // 写参数到配置文件
_GDDCIp = ui->GDDCLineEdit->text(); _GDDC.net.remoteIp = ui->GDDCLineEdit->text();
_configIni->setValue("光电吊舱/IP", _GDDCIp); _configIni->setValue("光电吊舱/IP", _GDDC.net.remoteIp);
emit sendOnlyUrl(GDDC, _GDDCIp); emit sendOneSet(GDDC, _GDDC);
} }
void HomePageSetingWidget::on_lLinkButton_clicked() { void HomePageSetingWidget::on_lLinkButton_clicked() {
// 写参数到配置文件 // 写参数到配置文件
_lLinkIp = ui->lLinkLineEdit->text(); _lLink.url = ui->lLinkLineEdit->text();
_configIni->setValue("L链/IP", _lLinkIp); _configIni->setValue("L链/IP", _lLink.url);
emit sendOnlyUrl(L_Link, _lLinkIp); emit sendOneSet(L_Link, _lLink);
} }
void HomePageSetingWidget::on_netButton_clicked() { void HomePageSetingWidget::on_netButton_clicked() {
// 写参数到配置文件 // 写参数到配置文件
_adHocNetwork = ui->netLineEdit->text(); _adHocNetwork.url = ui->netLineEdit->text();
_configIni->setValue("宽带自组网/IP", _adHocNetwork); _configIni->setValue("宽带自组网/IP", _adHocNetwork.url);
emit sendOnlyUrl(Adhoc_Network, _adHocNetwork); emit sendOneSet(Adhoc_Network, _adHocNetwork);
} }
void HomePageSetingWidget::on_sateliteButton_clicked() { void HomePageSetingWidget::on_sateliteButton_clicked() {
// 写参数到配置文件 // 写参数到配置文件
_satelliteComm = ui->sateliteLineEdit->text(); _satelliteComm.url = ui->sateliteLineEdit->text();
_configIni->setValue("机载卫通/IP", _satelliteComm); _configIni->setValue("机载卫通/IP", _satelliteComm.url);
emit sendOnlyUrl(Satelite_Comm, _satelliteComm); emit sendOneSet(Satelite_Comm, _satelliteComm);
}
// 三维相机
void HomePageSetingWidget::on_modelCameraButton_clicked() {
// 写参数到配置文件
_ModelCamera.net.remoteIp = ui->modelCameraLineEditRemoteIp->text();
_ModelCamera.net.remotePort =
ui->modelCameraLineEditRemotePort->text().toInt();
_ModelCamera.net.localIp = ui->modelCameraLineEditLocalIp->text();
_ModelCamera.net.localPort = ui->modelCameraLineEditLocalPort->text().toInt();
_configIni->setValue("三维建模/remoteIp", _ModelCamera.net.remoteIp);
_configIni->setValue("三维建模/remotePort", _ModelCamera.net.remotePort);
_configIni->setValue("三维建模/localIp", _ModelCamera.net.localIp);
_configIni->setValue("三维建模/localPort", _ModelCamera.net.localPort);
emit sendOneSet(ModelCamera, _ModelCamera);
} }
// 一键配置 // 一键配置
void HomePageSetingWidget::on_oneKeyButton_clicked() { void HomePageSetingWidget::on_oneKeyButton_clicked() {
@ -73,10 +100,10 @@ void HomePageSetingWidget::on_oneKeyButton_clicked() {
on_sateliteButton_clicked(); on_sateliteButton_clicked();
} }
/************************************************* /*************************************************
* @func getUrl * @func getAllParam
* @brief url * @brief url
* @param * @param
**************************************************/ **************************************************/
std::unordered_map<QString, QString> HomePageSetingWidget::getUrl() { std::unordered_map<QString, settingStruct> HomePageSetingWidget::getAllParam() {
return _urlMap; return _allParamMap;
} }

@ -1,6 +1,7 @@
#ifndef HOMEPAGESETINGWIDGET_H #ifndef HOMEPAGESETINGWIDGET_H
#define HOMEPAGESETINGWIDGET_H #define HOMEPAGESETINGWIDGET_H
#include "Src/GDDC/structDefineMyslef.h"
#include <QSettings> #include <QSettings>
#include <QWidget> #include <QWidget>
@ -17,28 +18,30 @@ public:
private: private:
Ui::HomePageSetingWidget *ui; Ui::HomePageSetingWidget *ui;
QString _GDDCIp; // 光电吊舱
QString _lLinkIp; // L链
QString _adHocNetwork; // 自组网
QString _satelliteComm; // PDT
std::unique_ptr<QSettings> _configIni; // 配置文件写入 std::unique_ptr<QSettings> _configIni; // 配置文件写入
QString urlFile; // 配置文件路径 QString urlFile; // 配置文件路径
std::unordered_map<QString, QString> _urlMap; // map容器存储url settingStruct _GDDC; // 光电吊舱
settingStruct _lLink; // L链
settingStruct _adHocNetwork; // 自组网
settingStruct _satelliteComm; // PDT
settingStruct _ModelCamera; // 三维建模
std::unordered_map<QString, settingStruct> _allParamMap; // 存储所有设置信息
public: public:
void init(); void init();
/************************************************* /*************************************************
* @func getUrl * @func getAllParam
* @brief url * @brief url
* @param * @param
**************************************************/ **************************************************/
std::unordered_map<QString, QString> getUrl(); std::unordered_map<QString, settingStruct> getAllParam();
public: public:
enum urlEnum : unsigned char { enum urlEnum : unsigned char {
GDDC = 1, GDDC = 1,
L_Link, L_Link,
Adhoc_Network, Adhoc_Network,
Satelite_Comm Satelite_Comm,
ModelCamera
}; };
private slots: private slots:
@ -48,9 +51,11 @@ private slots:
void on_oneKeyButton_clicked(); void on_oneKeyButton_clicked();
void on_GDDCPushButton_clicked(); void on_GDDCPushButton_clicked();
void on_modelCameraButton_clicked();
signals: signals:
void sendOnlyUrl(unsigned char urlIndex, QString url); // 发送信号给网页显示 // 发送信号给网页显示
void sendAllUrl(std::unordered_map<QString, QString> urlMap); void sendOneSet(unsigned char, settingStruct);
}; };
#endif // HOMEPAGESETINGWIDGET_H #endif // HOMEPAGESETINGWIDGET_H

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>725</width> <width>725</width>
<height>404</height> <height>532</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -280,6 +280,100 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item>
<widget class="QGroupBox" name="modelCameraGroupBox">
<property name="title">
<string>三维建模</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>远端IP:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="modelCameraLineEditRemoteIp"/>
</item>
<item row="0" column="2">
<widget class="QLabel" name="label_6">
<property name="text">
<string>远端端口:</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QLineEdit" name="modelCameraLineEditRemotePort"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>本地IP:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="modelCameraLineEditLocalIp"/>
</item>
<item row="1" column="2">
<widget class="QLabel" name="label_8">
<property name="text">
<string>本地端口:</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QLineEdit" name="modelCameraLineEditLocalPort"/>
</item>
<item row="1" column="4">
<layout class="QHBoxLayout" name="horizontalLayout_8">
<item>
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Policy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="modelCameraButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>100</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>200</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>设置</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>

@ -29,7 +29,8 @@ void EncodeModelCamera::SendCMD(QByteArray cmdDataArray) {
stream << crc16; stream << crc16;
cmdArray.append(byteArray); cmdArray.append(byteArray);
cameraUDP->writeDatagram(cmdArray, QHostAddress("127.0.0.1"), 8181); cameraUDP->writeDatagram(cmdArray, QHostAddress(m_net.remoteIp),
m_net.remotePort);
} }
// upd socket收到数据 // upd socket收到数据
@ -51,5 +52,13 @@ void EncodeModelCamera::ReadData() {
if (crc16 == Rcrc) { if (crc16 == Rcrc) {
emit UDP_Receive(array); emit UDP_Receive(array);
} }
cameraUDP->writeDatagram(cmdArray, QHostAddress("172.10.1.237"), 10001); cameraUDP->writeDatagram(cmdArray, QHostAddress(m_net.remoteIp),
m_net.remotePort);
}
void EncodeModelCamera::setIPandPort(netStruct net) {
m_net = net;
// 断开 重连
// cameraUDP->abort();
cameraUDP->bind(QHostAddress(m_net.localIp), m_net.localPort);
} }

@ -1,18 +1,20 @@
#ifndef ENCODEMODELCAMERA_H #ifndef ENCODEMODELCAMERA_H
#define ENCODEMODELCAMERA_H #define ENCODEMODELCAMERA_H
#include "Src/GDDC/structDefineMyslef.h"
#include <QByteArray> #include <QByteArray>
#include <QDataStream> #include <QDataStream>
#include <QObject> #include <QObject>
#include <QUdpSocket> #include <QUdpSocket>
class EncodeModelCamera : public QObject { class EncodeModelCamera : public QObject {
Q_OBJECT Q_OBJECT
public: public:
explicit EncodeModelCamera(QObject *parent = nullptr); explicit EncodeModelCamera(QObject *parent = nullptr);
// ~EncodeModelCamera(); // ~EncodeModelCamera();
void setIPandPort(netStruct); // 设置ip和端口
private: private:
netStruct m_net;
QByteArray cmdArray; QByteArray cmdArray;
QUdpSocket *cameraUDP; QUdpSocket *cameraUDP;
public slots: public slots:

@ -27,6 +27,12 @@ ModelCameraDlg::~ModelCameraDlg() {
} }
} }
void ModelCameraDlg::setNetParam(netStruct net) {
if (encodeModelCamera != nullptr) {
encodeModelCamera->setIPandPort(net);
}
}
void ModelCameraDlg::InitialComboBox() { void ModelCameraDlg::InitialComboBox() {
ui->photoTimeDbSpinBox->setSuffix("s"); ui->photoTimeDbSpinBox->setSuffix("s");

@ -1,23 +1,24 @@
#ifndef MODELCAMERADLG_H #ifndef MODELCAMERADLG_H
#define MODELCAMERADLG_H #define MODELCAMERADLG_H
#include <QDialog> #include "Src/GDDC/structDefineMyslef.h"
#include "encodemodelcamera.h"
#include <QByteArray> #include <QByteArray>
#include <QDialog>
#include <QThread> #include <QThread>
#include "encodemodelcamera.h"
#include <qendian.h> #include <qendian.h>
namespace Ui { namespace Ui {
class ModelCameraDlg; class ModelCameraDlg;
} }
class ModelCameraDlg : public QDialog class ModelCameraDlg : public QDialog {
{
Q_OBJECT Q_OBJECT
public: public:
explicit ModelCameraDlg(QWidget *parent = nullptr); explicit ModelCameraDlg(QWidget *parent = nullptr);
~ModelCameraDlg(); ~ModelCameraDlg();
void setNetParam(netStruct);
signals: signals:
void on_sendCmdData_signal(QByteArray cmdDataArray); void on_sendCmdData_signal(QByteArray cmdDataArray);
private slots: private slots:
@ -42,6 +43,7 @@ private slots:
void on_ColorModelComboBox_activated(int index); void on_ColorModelComboBox_activated(int index);
void on_receiveUDP(QByteArray cmdDataArray); void on_receiveUDP(QByteArray cmdDataArray);
private: private:
void InitialComboBox(); void InitialComboBox();
// 状态查询指令 // 状态查询指令
@ -55,11 +57,12 @@ private:
void quireColorMode(); void quireColorMode();
void quireTempe(); void quireTempe();
void quirePicNumAll(); void quirePicNumAll();
private: private:
Ui::ModelCameraDlg *ui; Ui::ModelCameraDlg *ui;
QThread* cameraCMDThread; QThread *cameraCMDThread;
QByteArray cmdDataArray; QByteArray cmdDataArray;
EncodeModelCamera* encodeModelCamera; EncodeModelCamera *encodeModelCamera;
}; };
#endif // MODELCAMERADLG_H #endif // MODELCAMERADLG_H

@ -77,17 +77,24 @@ void MainWindow::initWindow() {
m_SDFPDlg = new SDFPDlg(this); m_SDFPDlg = new SDFPDlg(this);
m_GDDCdlg = new GDDCdlg(this); m_GDDCdlg = new GDDCdlg(this);
m_HomePagedlg = new HomePageDlg(this); m_HomePagedlg = new HomePageDlg(this);
m_ModelCameraDlg = new ModelCameraDlg(this);
m_rescueLoadWidget = new RescueLoadWidget(this); m_rescueLoadWidget = new RescueLoadWidget(this);
// 使用类中的get方法获取配置文件中的IP // 使用类中的get方法获取配置文件中的IP
m_urlMap = m_HomePagedlg->settingWidget->getUrl(); m_allSetMap = m_HomePagedlg->settingWidget->getAllParam();
qDebug() << "=============设备配置================"; qDebug() << "=============设备配置================";
qDebug() << "光电吊舱" << m_urlMap["光电吊舱"]; qDebug() << "光电吊舱------";
qDebug() << "L链" << m_urlMap["L链"]; qDebug() << "远端ip" << m_allSetMap["光电吊舱"].net.remoteIp;
qDebug() << "宽带自组网" << m_urlMap["宽带自组网"]; qDebug() << "L链----------";
qDebug() << "机载卫通" << m_urlMap["机载卫通"]; qDebug() << "ULR:" << m_allSetMap["L链"].url;
qDebug() << "宽带自组网-----";
qDebug() << "URL:" << m_allSetMap["宽带自组网"].url;
qDebug() << "机载卫通------";
qDebug() << "URL:" << m_allSetMap["机载卫通"].url;
qDebug() << "三维建模------";
qDebug() << "远端ip:" << m_allSetMap["三维建模"].net.remoteIp;
qDebug() << "远端端口:" << m_allSetMap["三维建模"].net.remotePort;
qDebug() << "本地ip:" << m_allSetMap["三维建模"].net.localIp;
qDebug() << "本地端口:" << m_allSetMap["三维建模"].net.localPort;
mWeb = new CWebEngineView(); mWeb = new CWebEngineView();
mWeb->setPage(new CustomWebEnginePage()); mWeb->setPage(new CustomWebEnginePage());
@ -95,31 +102,37 @@ void MainWindow::initWindow() {
lLinkWeb = new CWebEngineView(); lLinkWeb = new CWebEngineView();
lLinkWeb->setPage(new CustomWebEnginePage()); lLinkWeb->setPage(new CustomWebEnginePage());
lLinkWeb->load(QUrl(m_urlMap["L链"])); lLinkWeb->load(QUrl(m_allSetMap["L链"].url));
adHocNetworkWeb = new CWebEngineView(); adHocNetworkWeb = new CWebEngineView();
adHocNetworkWeb->setPage(new CustomWebEnginePage()); adHocNetworkWeb->setPage(new CustomWebEnginePage());
adHocNetworkWeb->load(QUrl(m_urlMap["宽带自组网"])); adHocNetworkWeb->load(QUrl(m_allSetMap["宽带自组网"].url));
satelliteCommWeb = new CWebEngineView(); satelliteCommWeb = new CWebEngineView();
satelliteCommWeb->setPage(new CustomWebEnginePage()); satelliteCommWeb->setPage(new CustomWebEnginePage());
satelliteCommWeb->load(QUrl(m_urlMap["机载卫通"])); satelliteCommWeb->load(QUrl(m_allSetMap["机载卫通"].url));
m_ModelCameraDlg = new ModelCameraDlg(this);
m_ModelCameraDlg->setNetParam(m_allSetMap["三维建模"].net);
// 接收主页面设置窗口的url数据传递并设置 // 接收主页面设置窗口的url数据传递并设置
connect(m_HomePagedlg->settingWidget, &HomePageSetingWidget::sendOnlyUrl, connect(m_HomePagedlg->settingWidget, &HomePageSetingWidget::sendOneSet, this,
this, [&](unsigned char urlIndex, QString url) { [&](unsigned char urlIndex, settingStruct settings) {
switch (urlIndex) { switch (urlIndex) {
case HomePageSetingWidget::GDDC: case HomePageSetingWidget::GDDC:
// dosomething // dosomething
break; break;
case HomePageSetingWidget::L_Link: case HomePageSetingWidget::L_Link:
lLinkWeb->load(QUrl(url)); lLinkWeb->load(QUrl(settings.url));
break; break;
case HomePageSetingWidget::Adhoc_Network: case HomePageSetingWidget::Adhoc_Network:
adHocNetworkWeb->load(QUrl(url)); adHocNetworkWeb->load(QUrl(settings.url));
break; break;
case HomePageSetingWidget::Satelite_Comm: case HomePageSetingWidget::Satelite_Comm:
satelliteCommWeb->load(QUrl(url)); satelliteCommWeb->load(QUrl(settings.url));
break;
case HomePageSetingWidget::ModelCamera:
m_ModelCameraDlg->setNetParam(settings.net);
break; break;
default: default:
break; break;
@ -332,6 +345,7 @@ void MainWindow::toolButton_clicked() {
ui->stackedWidget->setCurrentWidget(m_HomePagedlg); ui->stackedWidget->setCurrentWidget(m_HomePagedlg);
process->kill(); process->kill();
} }
// 光电吊舱 // 光电吊舱
void MainWindow::toolButton_2_clicked() { void MainWindow::toolButton_2_clicked() {
changeBtnColor(2); changeBtnColor(2);

@ -1,30 +1,29 @@
#ifndef MAINWINDOW_H #ifndef MAINWINDOW_H
#define MAINWINDOW_H #define MAINWINDOW_H
#include <QMainWindow> #include "SDFPDlg.h"
#include "Src/GDDC/gddcdlg.h" #include "Src/GDDC/gddcdlg.h"
#include "Src/ModelCamera/modelcameradlg.h"
#include "Src/HomePage/homepagedlg.h" #include "Src/HomePage/homepagedlg.h"
#include "Src/ModelCamera/modelcameradlg.h"
#include "Src/RescueLoad/rescueloadwidget.h" #include "Src/RescueLoad/rescueloadwidget.h"
#include "SDFPDlg.h"
#include <QPushButton>
#include <QLabel>
#include <QAction> #include <QAction>
#include <QGridLayout>
#include <QLabel>
#include <QLineEdit> #include <QLineEdit>
#include <QTextEdit> #include <QMainWindow>
#include <QMenu> #include <QMenu>
#include <QMenuBar> #include <QMenuBar>
#include <QGridLayout>
#include <QWebEngineView>
#include <QProcess> #include <QProcess>
#include <QPushButton>
#include <QTextEdit>
#include <QWebEngineView>
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace Ui { namespace Ui {
class MainWindow; class MainWindow;
} }
QT_END_NAMESPACE QT_END_NAMESPACE
class MainWindow : public QMainWindow class MainWindow : public QMainWindow {
{
Q_OBJECT Q_OBJECT
public: public:
@ -35,6 +34,7 @@ private:
Ui::MainWindow *ui; Ui::MainWindow *ui;
void initFile(); void initFile();
public: public:
void initWindow(); void initWindow();
void initButton(); void initButton();
@ -57,16 +57,16 @@ public:
HomePageDlg *m_HomePagedlg; HomePageDlg *m_HomePagedlg;
RescueLoadWidget *m_rescueLoadWidget; RescueLoadWidget *m_rescueLoadWidget;
SDFPDlg *m_SDFPDlg; SDFPDlg *m_SDFPDlg;
//QWeb *m_qWeb; // QWeb *m_qWeb;
QWebEngineView *mWeb; QWebEngineView *mWeb;
ModelCameraDlg* m_ModelCameraDlg; ModelCameraDlg *m_ModelCameraDlg;
QWebEngineView *lLinkWeb;//L链 QWebEngineView *lLinkWeb; // L链
QWebEngineView *adHocNetworkWeb;//自组网 QWebEngineView *adHocNetworkWeb; // 自组网
QWebEngineView *satelliteCommWeb;//卫通 QWebEngineView *satelliteCommWeb; // 卫通
private: private:
QProcess *process; QProcess *process;
QString exeDirPathName = ""; QString exeDirPathName = "";
std::unordered_map<QString,QString> m_urlMap; std::unordered_map<QString, settingStruct> m_allSetMap;
public: public:
void changeBtnColor(int num); void changeBtnColor(int num);

Loading…
Cancel
Save