Compare commits

...

8 Commits
shiyi ... main

@ -14,7 +14,7 @@ QMAKE_PROJECT_DEPTH = 0
# QMAKE_LFLAGS += /MANIFESTUAC:\"level=\'requireAdministrator\' uiAccess=\'false\'\" # QMAKE_LFLAGS += /MANIFESTUAC:\"level=\'requireAdministrator\' uiAccess=\'false\'\"
#程序版本 #程序版本
VERSION = 1.1.0.2 VERSION = 1.1.0.5
#程序版本 #程序版本
QMAKE_TARGET_COMPANY = "HTSDFP" QMAKE_TARGET_COMPANY = "HTSDFP"

@ -0,0 +1,47 @@
# Git提交规范
## 提交格式
commit 提交信息时,必须是 **git commit -m '【提交类型】: [改动功能模块]【修改内容描述】'** 符合类型的才可以,**需要注意的是类型的后面需要用英文的 :,并且冒号后面是需要空一格的**。例如git commit -m "fix: [光电吊舱]修复配置参数保存失效问题;"
### git提交类型
```
'feat', //新特性、新功能
'fix', //修改bug
'docs', //文档修改
'style', //代码格式修改, 注意不是 css 修改
'refactor',//代码重构
'perf', //优化相关,比如提升性能、体验
'test', //测试用例修改
'chore', //其他修改, 比如改变构建流程、或者增加依赖库、工具等
'revert', //回滚到上一个版本
'build', //编译相关的修改,例如发布版本、对项目构建或者依赖的改动
'style', //代码风格调整
'ci', /持续集成
security,//安全相关
'i18n', //国际化
l10n, //本地化
'merge', //合并分支
'hotfix', //紧急修复
'dependencies',//依赖管理
```
## 环境:
Qt版本要求6.5.3以上建议使用LTS版本6.5.3或最新LTS6.8.1。编译器采用MSVC。
依赖的Qt组件
- Qt5 Compatibility Module
- Qt Location
- Qt Positioning
- Qt WebChannel
- Qt WebSockets
- Qt WebView
- Qt WebEngine
第三方库:
- FFmpeg

@ -348,7 +348,7 @@ void GDDCCmdDlg::on_pushButton_3_4_released() {
clearTJDCCmdBuffer(); clearTJDCCmdBuffer();
TJDCCmdBuffer[0] = (std::byte)0x45; TJDCCmdBuffer[0] = (std::byte)0x45;
TJDCCmdBuffer[1] = (std::byte)0x00; TJDCCmdBuffer[1] = (std::byte)0x00;
sendCurDate(TJDCCmdBuffer, 1); sendCurDate(TJDCCmdBuffer, 3);
} }
// 变倍- // 变倍-

@ -97,7 +97,7 @@
<rect> <rect>
<x>174</x> <x>174</x>
<y>150</y> <y>150</y>
<width>161</width> <width>168</width>
<height>106</height> <height>106</height>
</rect> </rect>
</property> </property>

@ -63,7 +63,8 @@ void GDDCSet::initParam() {
ui->radioButton_NetCtrlTCP->setChecked(false); ui->radioButton_NetCtrlTCP->setChecked(false);
// 读取本机网络设备 // 读取本机网络设备
QString urlFile = QCoreApplication::applicationDirPath() + "/config.ini"; QString urlFile =
QCoreApplication::applicationDirPath() + "/config_pod.ini";
// QString urlFile = QDir::currentPath() + "./config.ini"; // QString urlFile = QDir::currentPath() + "./config.ini";
m_configIniPath = urlFile.toLatin1(); m_configIniPath = urlFile.toLatin1();
char *strSysIniName = m_configIniPath.data(); // 系统配置文件路径 char *strSysIniName = m_configIniPath.data(); // 系统配置文件路径

@ -584,9 +584,9 @@ void GDDCStateInfo::UDPMessageReceive(QByteArray &da, int size) {
} }
bool GDDCStateInfo::checkdata(QByteArray buffer, int length, int type) { bool GDDCStateInfo::checkdata(QByteArray buffer, int length, int type) {
// if (length != 64) { if (length < 64) {
// return false; return false;
// } }
if ((buffer.at(0) != '\xFC') || (buffer.at(1) != '\x2C') || if ((buffer.at(0) != '\xFC') || (buffer.at(1) != '\x2C') ||
buffer.at(63) != '\xF0') { buffer.at(63) != '\xF0') {
return false; return false;

@ -11,6 +11,7 @@
#include <iostream> #include <iostream>
#include <QPixmap> #include <QPixmap>
#include "ui_gddcdlg.h" #include "ui_gddcdlg.h"
#include <QWidget>
#pragma comment(lib, "Wtsapi32.lib") #pragma comment(lib, "Wtsapi32.lib")
using namespace std; using namespace std;
@ -311,12 +312,35 @@ void GDDCdlg::mouseMoveEvent(QMouseEvent *event) {
QPointF diff = event->pos() - _dragStartPositon; QPointF diff = event->pos() - _dragStartPositon;
qDebug() << "x:" << diff.x() <<"y:" <<diff.y(); qDebug() << "x:" << diff.x() <<"y:" <<diff.y();
m_GDDCCmdDlg->setMoveParm(diff); m_GDDCCmdDlg->setMoveParm(diff);
if(qAbs(diff.x()) > 5 || qAbs(diff.y()) >5)//像素点超过5ptx才算移动否则为跟踪
{
_moveFlag = true; _moveFlag = true;
firstLocation->move((_dragStartPositon - QPoint(firstLocation->width()/2, firstLocation->height()/2)).toPoint()); firstLocation->move((_dragStartPositon - QPoint(firstLocation->width()/2, firstLocation->height()/2)).toPoint());
lastLocation->move(event->pos() - QPoint(lastLocation->width() / 2, lastLocation->height() / 2)); lastLocation->move(event->pos() - QPoint(lastLocation->width() / 2, lastLocation->height() / 2));
firstLocation->show(); firstLocation->show();
lastLocation->show(); lastLocation->show();
} }
QPointF widgetPos = mapFromGlobal(event->globalPosition());
//如果移动的时候超过了画面显示区域,则自动退出伺服控制
if(!ui->WgtffmpegVideo->rect().contains(widgetPos.toPoint()))
{
_moveFlag = false;
std::byte buffer[10] = {static_cast<std::byte>(0)};
buffer[5] = (std::byte)0x70;
buffer[6] = (std::byte)0x00;
buffer[7] = (std::byte)0x00;
buffer[8] = (std::byte)0x00;
buffer[9] = (std::byte)0x00;
// 发送3次
m_GDDCCmdDlg->sendCurDate(buffer, 3);
firstLocation->hide();
lastLocation->hide();
}
}
} }
void GDDCdlg::mouseReleaseEvent(QMouseEvent *event) void GDDCdlg::mouseReleaseEvent(QMouseEvent *event)
@ -326,7 +350,7 @@ void GDDCdlg::mouseReleaseEvent(QMouseEvent *event)
if(event->button() == Qt::LeftButton && _moveFlag) if(event->button() == Qt::LeftButton && _moveFlag)
{ {
_moveFlag = false; _moveFlag = false;
std::byte buffer[10]; std::byte buffer[10] = {static_cast<std::byte>(0)};
buffer[5] = (std::byte)0x70; buffer[5] = (std::byte)0x70;
buffer[6] = (std::byte)0x00; buffer[6] = (std::byte)0x00;
buffer[7] = (std::byte)0x00; buffer[7] = (std::byte)0x00;
@ -447,7 +471,7 @@ void GDDCdlg::resizeUI() {
void GDDCdlg::setGlobalSetMap( void GDDCdlg::setGlobalSetMap(
std::unordered_map<QString, settingStruct> &gSetMap) { std::unordered_map<QString, settingStruct> &gSetMap) {
if (m_DlgGDDCSet) { if (m_DlgGDDCSet) {
m_DlgGDDCSet->initPullURL(gSetMap["光电吊舱"].net.remoteIp); m_DlgGDDCSet->initPullURL(gSetMap["Pod"].net.remoteIp);
} }
} }

@ -101,6 +101,8 @@ void deviceStateDlg::initParam() {
cmdlist[2] << "/c" << "ping" << "www.baidu.com -n 2"; cmdlist[2] << "/c" << "ping" << "www.baidu.com -n 2";
cmdlist[3] << "/c" << "ping" << "www.baidu.com -n 2"; cmdlist[3] << "/c" << "ping" << "www.baidu.com -n 2";
cmdlist[4] << "/c" << "ping" << "www.baidu.com -n 2"; cmdlist[4] << "/c" << "ping" << "www.baidu.com -n 2";
cmdlist[5] << "/c" << "ping" << "www.baidu.com -n 2";
cmdlist[6] << "/c" << "ping" << "www.baidu.com -n 2";
startNetDetn(); startNetDetn();
} }
@ -148,6 +150,22 @@ void deviceStateDlg::receiveResult(int id, QString result,QString delay) {
} }
ui->pushButton_state_3DCamra->setToolTip(delay); ui->pushButton_state_3DCamra->setToolTip(delay);
break; break;
case 5:
if (result == "在线") {
ui->pushButton_state_rescue->setIcon(m_greenIcon);
} else {
ui->pushButton_state_rescue->setIcon(m_redIcon);
}
ui->pushButton_state_rescue->setToolTip(delay);
break;
case 6:
if (result == "在线") {
ui->pushButton_state_PDT->setIcon(m_greenIcon);
} else {
ui->pushButton_state_PDT->setIcon(m_redIcon);
}
ui->pushButton_state_PDT->setToolTip(delay);
break;
default: default:
break; break;
} }
@ -191,6 +209,20 @@ void deviceStateDlg::setDeviceIP(int id, settingStruct param) {
cmdlist[4] << strIp; cmdlist[4] << strIp;
m_networkDetection[4]->DyChangeCmdList(cmdlist[4]); // 更新到网络检测线程 m_networkDetection[4]->DyChangeCmdList(cmdlist[4]); // 更新到网络检测线程
break; break;
case HomePageSetingWidget::RescueLoading:
strIp = stringIPSelect(param.url);
strIp="/c ping " + strIp + " -n 1";
cmdlist[5].clear();
cmdlist[5] << strIp;
m_networkDetection[5]->DyChangeCmdList(cmdlist[5]); // 更新到网络检测线程
break;
case HomePageSetingWidget::PdtLoading:
strIp = stringIPSelect(param.url);
strIp="/c ping " + strIp + " -n 1";
cmdlist[6].clear();
cmdlist[6] << strIp;
m_networkDetection[6]->DyChangeCmdList(cmdlist[6]); // 更新到网络检测线程
break;
default: default:
break; break;
} }
@ -228,11 +260,13 @@ QString deviceStateDlg::stringIPSelect(QString str) {
void deviceStateDlg::setUrl( void deviceStateDlg::setUrl(
std::unordered_map<QString, settingStruct> &urlMap) { std::unordered_map<QString, settingStruct> &urlMap) {
m_urlMap = urlMap; m_urlMap = urlMap;
setDeviceIP(HomePageSetingWidget::GDDC, m_urlMap["光电吊舱"]); setDeviceIP(HomePageSetingWidget::GDDC, m_urlMap["Pod"]);
setDeviceIP(HomePageSetingWidget::L_Link, m_urlMap["L链"]); setDeviceIP(HomePageSetingWidget::L_Link, m_urlMap["L-Link"]);
setDeviceIP(HomePageSetingWidget::Adhoc_Network, m_urlMap["宽带自组网"]); setDeviceIP(HomePageSetingWidget::Adhoc_Network, m_urlMap["HocNetwork"]);
setDeviceIP(HomePageSetingWidget::Satelite_Comm, m_urlMap["机载卫通"]); setDeviceIP(HomePageSetingWidget::Satelite_Comm, m_urlMap["SatelliteComm"]);
setDeviceIP(HomePageSetingWidget::ModelCamera, m_urlMap["三维建模"]); setDeviceIP(HomePageSetingWidget::ModelCamera, m_urlMap["ModelCamera"]);
setDeviceIP(HomePageSetingWidget::RescueLoading, m_urlMap["RescueLoading"]);
setDeviceIP(HomePageSetingWidget::PdtLoading, m_urlMap["PdtLoading"]);
} }
// 开始网络监测 // 开始网络监测
void deviceStateDlg::startNetDetn() { void deviceStateDlg::startNetDetn() {

@ -7,7 +7,7 @@
#include <QThread> #include <QThread>
#include <QTimer> #include <QTimer>
#include <QWidget> #include <QWidget>
#define deviceNum 5 #define deviceNum 7
namespace Ui { namespace Ui {
class deviceStateDlg; class deviceStateDlg;
} }
@ -52,6 +52,8 @@ public:
// 2 自组网 // 2 自组网
// 3ku卫通 // 3ku卫通
// 4三维相机 // 4三维相机
// 5 搜救载荷
// 6 PDT
QStringList cmdlist[deviceNum]; QStringList cmdlist[deviceNum];
QIcon m_greyIcon,m_greenIcon,m_redIcon; QIcon m_greyIcon,m_greenIcon,m_redIcon;
networkDetection *m_networkDetection[deviceNum]; networkDetection *m_networkDetection[deviceNum];

@ -1,4 +1,5 @@
#include "homepagesetingwidget.h" #include "homepagesetingwidget.h"
#include "ui_homepagesetingwidget.h" #include "ui_homepagesetingwidget.h"
HomePageSetingWidget::HomePageSetingWidget(QWidget *parent) HomePageSetingWidget::HomePageSetingWidget(QWidget *parent)
@ -6,7 +7,9 @@ HomePageSetingWidget::HomePageSetingWidget(QWidget *parent)
ui->setupUi(this); ui->setupUi(this);
init(); init();
} }
HomePageSetingWidget::~HomePageSetingWidget() { delete ui; } HomePageSetingWidget::~HomePageSetingWidget() {
delete ui;
}
void HomePageSetingWidget::init() { void HomePageSetingWidget::init() {
// 选择配置文件 // 选择配置文件
@ -14,29 +17,38 @@ void HomePageSetingWidget::init() {
_configIni = std::make_unique<QSettings>(urlFile, QSettings::IniFormat); _configIni = std::make_unique<QSettings>(urlFile, QSettings::IniFormat);
// 读取配置信息 // 读取配置信息
_GDDC.net.remoteIp = _configIni->value("光电吊舱/IP").toString(); _GDDC.net.remoteIp = _configIni->value("Pod/IP").toString();
_GDDC.net.remotePort = _configIni->value("光电吊舱/Port").toInt(); _GDDC.net.remotePort = _configIni->value("Pod/Port").toInt();
_lLink.url = _configIni->value("L链/IP").toString(); _lLink.url = _configIni->value("L-Link/IP").toString();
_adHocNetwork.url = _configIni->value("宽带自组网/IP").toString(); _adHocNetwork.url = _configIni->value("HocNetwork/IP").toString();
_satelliteComm.url = _configIni->value("机载卫通/IP").toString(); _satelliteComm.url = _configIni->value("SatelliteComm/IP").toString();
_ModelCamera.net.remoteIp = _configIni->value("三维建模/remoteIp").toString(); _rescueLoad.url = _configIni->value("RescueLoading/IP").toString();
_pdtLoad.url = _configIni->value("PdtLoading/IP").toString();
_ModelCamera.net.remoteIp =
_configIni->value("ModelCamera/remoteIp").toString();
_ModelCamera.net.remotePort = _ModelCamera.net.remotePort =
_configIni->value("三维建模/remotePort").toInt(); _configIni->value("ModelCamera/remotePort").toInt();
_ModelCamera.net.localIp = _configIni->value("三维建模/localIp").toString(); _ModelCamera.net.localIp =
_ModelCamera.net.localPort = _configIni->value("三维建模/localPort").toInt(); _configIni->value("ModelCamera/localIp").toString();
_ModelCamera.net.localPort =
_configIni->value("ModelCamera/localPort").toInt();
// 存储配置信息到MAP容器中 // 存储配置信息到MAP容器中
_allParamMap.insert({"光电吊舱", _GDDC}); _allParamMap.insert({"Pod", _GDDC});
_allParamMap.insert({"L链", _lLink}); _allParamMap.insert({"L-Link", _lLink});
_allParamMap.insert({"宽带自组网", _adHocNetwork}); _allParamMap.insert({"HocNetwork", _adHocNetwork});
_allParamMap.insert({"机载卫通", _satelliteComm}); _allParamMap.insert({"SatelliteComm", _satelliteComm});
_allParamMap.insert({"三维建模", _ModelCamera}); _allParamMap.insert({"ModelCamera", _ModelCamera});
_allParamMap.insert({"RescueLoading", _rescueLoad});
_allParamMap.insert({"PdtLoading", _pdtLoad});
// 显示到配置页面 // 显示到配置页面
ui->GDDCLineEdit->setText(_GDDC.net.remoteIp); ui->GDDCLineEdit->setText(_GDDC.net.remoteIp);
ui->lLinkLineEdit->setText(_lLink.url); ui->lLinkLineEdit->setText(_lLink.url);
ui->netLineEdit->setText(_adHocNetwork.url); ui->netLineEdit->setText(_adHocNetwork.url);
ui->sateliteLineEdit->setText(_satelliteComm.url); ui->sateliteLineEdit->setText(_satelliteComm.url);
ui->RescueLineEdit->setText(_rescueLoad.url);
ui->PdtLineEdit->setText(_pdtLoad.url);
ui->modelCameraLineEditRemoteIp->setText(_ModelCamera.net.remoteIp); ui->modelCameraLineEditRemoteIp->setText(_ModelCamera.net.remoteIp);
ui->modelCameraLineEditRemotePort->setText( ui->modelCameraLineEditRemotePort->setText(
QString::number(_ModelCamera.net.remotePort)); QString::number(_ModelCamera.net.remotePort));
@ -55,29 +67,47 @@ void HomePageSetingWidget::init() {
void HomePageSetingWidget::on_GDDCPushButton_clicked() { void HomePageSetingWidget::on_GDDCPushButton_clicked() {
// 写参数到配置文件 // 写参数到配置文件
_GDDC.net.remoteIp = ui->GDDCLineEdit->text(); _GDDC.net.remoteIp = ui->GDDCLineEdit->text();
_configIni->setValue("光电吊舱/IP", _GDDC.net.remoteIp); _configIni->setValue("Pod/IP", _GDDC.net.remoteIp);
emit sendOneSet(GDDC, _GDDC); emit sendOneSet(GDDC, _GDDC);
} }
void HomePageSetingWidget::on_lLinkButton_clicked() { void HomePageSetingWidget::on_lLinkButton_clicked() {
// 写参数到配置文件 // 写参数到配置文件
_lLink.url = ui->lLinkLineEdit->text(); _lLink.url = ui->lLinkLineEdit->text();
_configIni->setValue("L/IP", _lLink.url); _configIni->setValue("L-Link/IP", _lLink.url);
emit sendOneSet(L_Link, _lLink); emit sendOneSet(L_Link, _lLink);
} }
void HomePageSetingWidget::on_netButton_clicked() { void HomePageSetingWidget::on_netButton_clicked() {
// 写参数到配置文件 // 写参数到配置文件
_adHocNetwork.url = ui->netLineEdit->text(); _adHocNetwork.url = ui->netLineEdit->text();
_configIni->setValue("宽带自组网/IP", _adHocNetwork.url); _configIni->setValue("HocNetwork/IP", _adHocNetwork.url);
emit sendOneSet(Adhoc_Network, _adHocNetwork); emit sendOneSet(Adhoc_Network, _adHocNetwork);
} }
void HomePageSetingWidget::on_sateliteButton_clicked() { void HomePageSetingWidget::on_sateliteButton_clicked() {
// 写参数到配置文件 // 写参数到配置文件
_satelliteComm.url = ui->sateliteLineEdit->text(); _satelliteComm.url = ui->sateliteLineEdit->text();
_configIni->setValue("机载卫通/IP", _satelliteComm.url); _configIni->setValue("SatelliteComm/IP", _satelliteComm.url);
emit sendOneSet(Satelite_Comm, _satelliteComm); emit sendOneSet(Satelite_Comm, _satelliteComm);
} }
//搜救载荷
void HomePageSetingWidget::on_RescueButton_clicked()
{
// 写参数到配置文件
_rescueLoad.url = ui->RescueLineEdit->text();
_configIni->setValue("RescueLoading/IP", _rescueLoad.url);
emit sendOneSet(RescueLoading, _rescueLoad);
}
void HomePageSetingWidget::on_PdtButton_clicked()
{
// 写参数到配置文件
_pdtLoad.url = ui->PdtLineEdit->text();
_configIni->setValue("PdtLoading/IP", _pdtLoad.url);
emit sendOneSet(PdtLoading, _pdtLoad);
}
// 三维相机 // 三维相机
void HomePageSetingWidget::on_modelCameraButton_clicked() { void HomePageSetingWidget::on_modelCameraButton_clicked() {
// 写参数到配置文件 // 写参数到配置文件
@ -85,11 +115,12 @@ void HomePageSetingWidget::on_modelCameraButton_clicked() {
_ModelCamera.net.remotePort = _ModelCamera.net.remotePort =
ui->modelCameraLineEditRemotePort->text().toInt(); ui->modelCameraLineEditRemotePort->text().toInt();
_ModelCamera.net.localIp = ui->modelCameraLineEditLocalIp->text(); _ModelCamera.net.localIp = ui->modelCameraLineEditLocalIp->text();
_ModelCamera.net.localPort = ui->modelCameraLineEditLocalPort->text().toInt(); _ModelCamera.net.localPort =
_configIni->setValue("三维建模/remoteIp", _ModelCamera.net.remoteIp); ui->modelCameraLineEditLocalPort->text().toInt();
_configIni->setValue("三维建模/remotePort", _ModelCamera.net.remotePort); _configIni->setValue("ModelCamera/remoteIp", _ModelCamera.net.remoteIp);
_configIni->setValue("三维建模/localIp", _ModelCamera.net.localIp); _configIni->setValue("ModelCamera/remotePort", _ModelCamera.net.remotePort);
_configIni->setValue("三维建模/localPort", _ModelCamera.net.localPort); _configIni->setValue("ModelCamera/localIp", _ModelCamera.net.localIp);
_configIni->setValue("ModelCamera/localPort", _ModelCamera.net.localPort);
emit sendOneSet(ModelCamera, _ModelCamera); emit sendOneSet(ModelCamera, _ModelCamera);
} }
// 一键配置 // 一键配置
@ -99,6 +130,9 @@ void HomePageSetingWidget::on_oneKeyButton_clicked() {
on_netButton_clicked(); on_netButton_clicked();
on_sateliteButton_clicked(); on_sateliteButton_clicked();
on_modelCameraButton_clicked(); on_modelCameraButton_clicked();
on_sateliteButton_clicked();
on_RescueButton_clicked();
on_PdtButton_clicked();
} }
/************************************************* /*************************************************
* @func getAllParam * @func getAllParam
@ -108,3 +142,5 @@ void HomePageSetingWidget::on_oneKeyButton_clicked() {
std::unordered_map<QString, settingStruct> HomePageSetingWidget::getAllParam() { std::unordered_map<QString, settingStruct> HomePageSetingWidget::getAllParam() {
return _allParamMap; return _allParamMap;
} }

@ -23,7 +23,9 @@ private:
settingStruct _GDDC; // 光电吊舱 settingStruct _GDDC; // 光电吊舱
settingStruct _lLink; // L链 settingStruct _lLink; // L链
settingStruct _adHocNetwork; // 自组网 settingStruct _adHocNetwork; // 自组网
settingStruct _satelliteComm; // PDT settingStruct _satelliteComm; // 卫通
settingStruct _rescueLoad; // 搜救载荷
settingStruct _pdtLoad; // PDT
settingStruct _ModelCamera; // 三维建模 settingStruct _ModelCamera; // 三维建模
std::unordered_map<QString, settingStruct> _allParamMap; // 存储所有设置信息 std::unordered_map<QString, settingStruct> _allParamMap; // 存储所有设置信息
public: public:
@ -41,7 +43,9 @@ public:
L_Link, L_Link,
Adhoc_Network, Adhoc_Network,
Satelite_Comm, Satelite_Comm,
ModelCamera ModelCamera,
RescueLoading,
PdtLoading
}; };
private slots: private slots:
@ -50,10 +54,11 @@ private slots:
void on_sateliteButton_clicked(); void on_sateliteButton_clicked();
void on_oneKeyButton_clicked(); void on_oneKeyButton_clicked();
void on_GDDCPushButton_clicked(); void on_GDDCPushButton_clicked();
void on_modelCameraButton_clicked(); void on_modelCameraButton_clicked();
void on_RescueButton_clicked();
void on_PdtButton_clicked();
signals: signals:
// 发送信号给网页显示 // 发送信号给网页显示
void sendOneSet(unsigned char, settingStruct); void sendOneSet(unsigned char, settingStruct);
}; };

@ -7,14 +7,14 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>725</width> <width>725</width>
<height>532</height> <height>611</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
<string>设置</string> <string>设置</string>
</property> </property>
<property name="windowIcon"> <property name="windowIcon">
<iconset resource="../../mainwindow.qrc"> <iconset>
<normaloff>:/res/settings.png</normaloff>:/res/settings.png</iconset> <normaloff>:/res/settings.png</normaloff>:/res/settings.png</iconset>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
@ -222,6 +222,9 @@
<string>L链</string> <string>L链</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="0" column="1">
<widget class="QLineEdit" name="lLinkLineEdit"/>
</item>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="label"> <widget class="QLabel" name="label">
<property name="text"> <property name="text">
@ -229,9 +232,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1">
<widget class="QLineEdit" name="lLinkLineEdit"/>
</item>
<item row="0" column="2"> <item row="0" column="2">
<layout class="QHBoxLayout" name="horizontalLayout_2"> <layout class="QHBoxLayout" name="horizontalLayout_2">
<item> <item>
@ -281,51 +281,165 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QGroupBox" name="modelCameraGroupBox"> <widget class="QGroupBox" name="RescueGroupBox">
<property name="title"> <property name="title">
<string>三维建模</string> <string>搜救载荷</string>
</property> </property>
<layout class="QGridLayout" name="gridLayout_4"> <layout class="QGridLayout" name="gridLayout_6">
<item row="0" column="1">
<widget class="QLineEdit" name="RescueLineEdit"/>
</item>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="label_5"> <widget class="QLabel" name="label_9">
<property name="text"> <property name="text">
<string>远端IP:</string> <string>IP:</string>
</property>
</widget>
</item>
<item row="0" column="2">
<layout class="QHBoxLayout" name="horizontalLayout_9">
<item>
<spacer name="horizontalSpacer_8">
<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="RescueButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>100</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property> </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> </widget>
</item> </item>
<item>
<widget class="QGroupBox" name="PdtGroupBox">
<property name="title">
<string>PDT</string>
</property>
<layout class="QGridLayout" name="gridLayout_7">
<item row="0" column="1"> <item row="0" column="1">
<widget class="QLineEdit" name="modelCameraLineEditRemoteIp"/> <widget class="QLineEdit" name="PdtLineEdit"/>
</item> </item>
<item row="0" column="2"> <item row="0" column="0">
<widget class="QLabel" name="label_6"> <widget class="QLabel" name="label_10">
<property name="text"> <property name="text">
<string>远端端口:</string> <string>IP:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="3"> <item row="0" column="2">
<widget class="QLineEdit" name="modelCameraLineEditRemotePort"/> <layout class="QHBoxLayout" name="horizontalLayout_10">
<item>
<spacer name="horizontalSpacer_9">
<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>
<item row="1" column="0"> <item>
<widget class="QLabel" name="label_7"> <widget class="QPushButton" name="PdtButton">
<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"> <property name="text">
<string>本地IP:</string> <string>设置</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1"> </layout>
<widget class="QLineEdit" name="modelCameraLineEditLocalIp"/>
</item> </item>
<item row="1" column="2"> </layout>
<widget class="QLabel" name="label_8"> </widget>
</item>
<item>
<widget class="QGroupBox" name="modelCameraGroupBox">
<property name="title">
<string>三维建模</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="2">
<widget class="QLabel" name="label_6">
<property name="text"> <property name="text">
<string>本地端口:</string> <string>远端端口:</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>远端IP:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="3">
<widget class="QLineEdit" name="modelCameraLineEditRemotePort"/>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="modelCameraLineEditLocalIp"/>
</item>
<item row="1" column="3"> <item row="1" column="3">
<widget class="QLineEdit" name="modelCameraLineEditLocalPort"/> <widget class="QLineEdit" name="modelCameraLineEditLocalPort"/>
</item> </item>
<item row="0" column="1">
<widget class="QLineEdit" name="modelCameraLineEditRemoteIp"/>
</item>
<item row="1" column="4"> <item row="1" column="4">
<layout class="QHBoxLayout" name="horizontalLayout_8"> <layout class="QHBoxLayout" name="horizontalLayout_8">
<item> <item>
@ -371,6 +485,20 @@
</item> </item>
</layout> </layout>
</item> </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="2">
<widget class="QLabel" name="label_8">
<property name="text">
<string>本地端口:</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>
@ -437,8 +565,6 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<resources> <resources/>
<include location="../../mainwindow.qrc"/>
</resources>
<connections/> <connections/>
</ui> </ui>

@ -195,9 +195,9 @@ bool DecodeStream::isValidAVFrame(AVFrame *frame) {
} }
// 如果需要,添加更多判断条件,例如时间戳或关键帧检查 // 如果需要,添加更多判断条件,例如时间戳或关键帧检查
if (frame->pts == AV_NOPTS_VALUE) { // if (frame->pts == AV_NOPTS_VALUE) {
return false; // return false;
} // }
return true; // 如果所有条件都通过,则认为 AVFrame 有效 return true; // 如果所有条件都通过,则认为 AVFrame 有效
} }
@ -214,10 +214,10 @@ bool DecodeStream::isValidAVPacket(AVPacket *pkt) {
} }
// 检查时间戳 // 检查时间戳
if (pkt->pts == AV_NOPTS_VALUE || pkt->dts == AV_NOPTS_VALUE) { // if (pkt->pts == AV_NOPTS_VALUE || pkt->dts == AV_NOPTS_VALUE) {
qDebug() << "Invalid AVPacket: pts or dts is AV_NOPTS_VALUE.\n"; // qDebug() << "Invalid AVPacket: pts or dts is AV_NOPTS_VALUE.\n";
return false; // return false;
} // }
// 检查流索引(如果是多流) // 检查流索引(如果是多流)
if (pkt->stream_index < 0) { if (pkt->stream_index < 0) {

@ -288,10 +288,10 @@ bool ReadStream::isValidAVPacket(AVPacket *pkt) {
} }
// 检查时间戳 // 检查时间戳
if (pkt->pts == AV_NOPTS_VALUE || pkt->dts == AV_NOPTS_VALUE) { // if (pkt->pts == AV_NOPTS_VALUE || pkt->dts == AV_NOPTS_VALUE) {
qDebug() << "Invalid AVPacket 0: pts or dts is AV_NOPTS_VALUE.\n"; // qDebug() << "Invalid AVPacket 0: pts or dts is AV_NOPTS_VALUE.\n";
return false; // return false;
} // }
// 检查流索引(如果是多流) // 检查流索引(如果是多流)
if (pkt->stream_index < 0) { if (pkt->stream_index < 0) {

@ -1,8 +1,9 @@
#include "cwebengineview.h" #include "cwebengineview.h"
#include "CWebEngineView.h"
#include <QWidget> #include <QWidget>
#include "CWebEngineView.h"
CWebEngineView::CWebEngineView(QWidget *parent) : QWebEngineView(parent) { CWebEngineView::CWebEngineView(QWidget *parent) : QWebEngineView(parent) {
// 记录首页URL // 记录首页URL
connect( connect(
@ -25,7 +26,8 @@ CWebEngineView::CWebEngineView(QWidget *parent) : QWebEngineView(parent) {
QWebEngineSettings *settings = page()->settings(); QWebEngineSettings *settings = page()->settings();
// 启用硬件加速 // 启用硬件加速
settings->setAttribute(QWebEngineSettings::Accelerated2dCanvasEnabled, true); settings->setAttribute(QWebEngineSettings::Accelerated2dCanvasEnabled,
true);
settings->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows, true); settings->setAttribute(QWebEngineSettings::JavascriptCanOpenWindows, true);
// 其他设置 // 其他设置
@ -44,15 +46,17 @@ CWebEngineView::~CWebEngineView() {
} }
} }
QWebEngineView * QWebEngineView *CWebEngineView::createWindow(
CWebEngineView::createWindow(QWebEnginePage::WebWindowType type) { QWebEnginePage::WebWindowType type) {
if (type == QWebEnginePage::WebBrowserTab) { if (type == QWebEnginePage::WebBrowserTab) {
QWebEnginePage *new_page = QWebEnginePage *new_page =
new QWebEnginePage(this->page()->profile(), this); new QWebEnginePage(this->page()->profile(), this);
this->setPage(new_page); this->setPage(new_page);
connect(new_page, &QWebEnginePage::destroyed, new_page, connect(new_page, &QWebEnginePage::destroyed, new_page, [new_page]() {
[new_page]() { new_page->deleteLater(); }); new_page->deleteLater();
// connect(page(), &QWebEnginePage::urlChanged, this, [&](const QUrl &url) { });
// connect(page(), &QWebEnginePage::urlChanged, this, [&](const QUrl
// &url) {
// qDebug() << "**********GoTo URL:" << url.toString(); // qDebug() << "**********GoTo URL:" << url.toString();
// }); // });
} }

@ -2,7 +2,7 @@
global::global() {} global::global() {}
QString g_SoftwareVersion = "版本号V1.1.0.2_20241202"; QString g_SoftwareVersion = "版本号V1.1.0.7_20250218";
NotifyManager *g_notifyManager = nullptr; NotifyManager *g_notifyManager = nullptr;

@ -5,7 +5,13 @@
#include <QAction> #include <QAction>
#include <QFile> #include <QFile>
#include <QFlags> #include <QFlags>
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
#include <QNetworkCookie>
#include <QToolBar> #include <QToolBar>
#include <QWebEngineCookieStore>
#include <QWebEngineProfile>
#include "Src/HomePage/homepagesetingwidget.h" #include "Src/HomePage/homepagesetingwidget.h"
#include "Src/WebPage/CustomWebEnginePage.h" #include "Src/WebPage/CustomWebEnginePage.h"
@ -87,7 +93,7 @@ void MainWindow::initWindow() {
// 使用类中的get方法获取配置文件中的IP // 使用类中的get方法获取配置文件中的IP
m_allSetMap = m_HomePagedlg->settingWidget->getAllParam(); m_allSetMap = m_HomePagedlg->settingWidget->getAllParam();
m_GDDCdlg->setGlobalSetMap(m_allSetMap); m_GDDCdlg->setGlobalSetMap(m_allSetMap);
qDebug() << "=============设备配置================"; /*qDebug() << "=============设备配置================";
qDebug() << "光电吊舱------"; qDebug() << "光电吊舱------";
qDebug() << "远端ip" << m_allSetMap["光电吊舱"].net.remoteIp; qDebug() << "远端ip" << m_allSetMap["光电吊舱"].net.remoteIp;
qDebug() << "L链----------"; qDebug() << "L链----------";
@ -100,32 +106,55 @@ void MainWindow::initWindow() {
qDebug() << "远端ip:" << m_allSetMap["三维建模"].net.remoteIp; qDebug() << "远端ip:" << m_allSetMap["三维建模"].net.remoteIp;
qDebug() << "远端端口:" << m_allSetMap["三维建模"].net.remotePort; qDebug() << "远端端口:" << m_allSetMap["三维建模"].net.remotePort;
qDebug() << "本地ip:" << m_allSetMap["三维建模"].net.localIp; qDebug() << "本地ip:" << m_allSetMap["三维建模"].net.localIp;
qDebug() << "本地端口:" << m_allSetMap["三维建模"].net.localPort; qDebug() << "本地端口:" << m_allSetMap["三维建模"].net.localPort;*/
// mWeb = new CWebEngineView(); // mWeb = new CWebEngineView();
// mWeb->setPage(new CustomWebEnginePage()); // mWeb->setPage(new CustomWebEnginePage());
// mWeb->load(QUrl("http://192.168.150.1")); // mWeb->load(QUrl("http://192.168.150.1"));
lLinkWeb = new CWebEngineView(); lLinkWeb = new CWebEngineView();
lLinkWeb->setPage(new CustomWebEnginePage()); lLinkWeb->setPage(new CustomWebEnginePage());
lLinkWeb->load(QUrl(m_allSetMap["L链"].url)); lLinkWeb->load(QUrl(m_allSetMap["L-Link"].url));
connect(lLinkWeb->page(), &QWebEnginePage::loadFinished, this, [=]() {
// QString jsScript = R"(
// var usernameField =
// document.querySelector('input[name="username"]'); if
// (usernameField) {
// usernameField.value = 'admin'; // 填充用户名
// }
// )";
QString jsScript = R"(
var button = document.getElementById('clickButt');
if (button) {
button.onclick = function(event){
var usernameField =
document.querySelector('input[name="username"]');
if(usernameField) {
usernameField.value = 'admin'; // 填充用户名
}
}
}
)";
lLinkWeb->page()->runJavaScript(jsScript);
});
adHocNetworkWeb = new CWebEngineView(); adHocNetworkWeb = new CWebEngineView();
adHocNetworkWeb->setPage(new CustomWebEnginePage()); adHocNetworkWeb->setPage(new CustomWebEnginePage());
adHocNetworkWeb->load(QUrl(m_allSetMap["宽带自组网"].url)); adHocNetworkWeb->load(QUrl(m_allSetMap["HocNetwork"].url));
satelliteCommWeb = new CWebEngineView(); satelliteCommWeb = new CWebEngineView();
satelliteCommWeb->setPage(new CustomWebEnginePage()); satelliteCommWeb->setPage(new CustomWebEnginePage());
satelliteCommWeb->load(QUrl(m_allSetMap["机载卫通"].url)); satelliteCommWeb->load(QUrl(m_allSetMap["SatelliteComm"].url));
m_ModelCameraDlg = new ModelCameraDlg(this); m_ModelCameraDlg = new ModelCameraDlg(this);
emit m_ModelCameraDlg->sendNetParam_signal(m_allSetMap["三维建模"].net); emit m_ModelCameraDlg->sendNetParam_signal(m_allSetMap["ModelCamera"].net);
// 接收主页面设置窗口的url数据传递并设置 // 接收主页面设置窗口的url数据传递并设置
connect(m_HomePagedlg->settingWidget, &HomePageSetingWidget::sendOneSet, connect(
this, [&](unsigned char urlIndex, settingStruct settings) { m_HomePagedlg->settingWidget, &HomePageSetingWidget::sendOneSet, this,
[&](unsigned char urlIndex, settingStruct settings) {
switch (urlIndex) { switch (urlIndex) {
case HomePageSetingWidget::GDDC: case HomePageSetingWidget::GDDC:
// dosomething // dosomething
m_GDDCdlg->m_DlgGDDCSet->initPullURL(settings.net.remoteIp);
break; break;
case HomePageSetingWidget::L_Link: case HomePageSetingWidget::L_Link:
lLinkWeb->load(QUrl(settings.url)); lLinkWeb->load(QUrl(settings.url));
@ -394,3 +423,19 @@ void MainWindow::initNotifyManager() {
g_notifyManager->setDisplayTime(2000); g_notifyManager->setDisplayTime(2000);
g_notifyManager->setNotifyWndSize(300, 60); g_notifyManager->setNotifyWndSize(300, 60);
} }
bool MainWindow::nativeEvent(const QByteArray &eventType, void *message,
qintptr *result) {
#ifdef Q_OS_WIN
MSG *msg = (MSG *)message;
if (msg->message == WM_SYSCOMMAND) {
if (61587 == msg->wParam) { // 单击事件
return true;
}
if (61539 == msg->wParam) { // 双击事件
return true;
}
}
#endif
return QMainWindow::nativeEvent(eventType, message, result);
}

@ -20,9 +20,9 @@
#include "Src/RescueLoad/rescueloadwidget.h" #include "Src/RescueLoad/rescueloadwidget.h"
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
// #include <QWindow> #include "windows.h"
// #include <WinUser.h> #include "windowsx.h"
// #include <windows.h> #pragma comment(lib, "user32.lib")
#endif #endif
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
namespace Ui { namespace Ui {
@ -46,6 +46,10 @@ public:
void initWindow(); void initWindow();
void initButton(); void initButton();
void initSignalSlot(); void initSignalSlot();
protected:
bool nativeEvent(const QByteArray &eventType, void *message,
qintptr *result);
private slots: private slots:
void toolButton_clicked(); void toolButton_clicked();
void toolButton_2_clicked(); void toolButton_2_clicked();

@ -261,7 +261,7 @@
</action> </action>
<action name="toolbar_action2"> <action name="toolbar_action2">
<property name="icon"> <property name="icon">
<iconset resource="mainwindow.qrc"> <iconset>
<normaloff>:/res/GDDC.png</normaloff>:/res/GDDC.png</iconset> <normaloff>:/res/GDDC.png</normaloff>:/res/GDDC.png</iconset>
</property> </property>
<property name="text"> <property name="text">
@ -273,7 +273,7 @@
</action> </action>
<action name="toolbar_action3"> <action name="toolbar_action3">
<property name="icon"> <property name="icon">
<iconset resource="mainwindow.qrc"> <iconset>
<normaloff>:/res/LChain.png</normaloff>:/res/LChain.png</iconset> <normaloff>:/res/LChain.png</normaloff>:/res/LChain.png</iconset>
</property> </property>
<property name="text"> <property name="text">
@ -347,8 +347,6 @@
</property> </property>
</action> </action>
</widget> </widget>
<resources> <resources/>
<include location="mainwindow.qrc"/>
</resources>
<connections/> <connections/>
</ui> </ui>

Loading…
Cancel
Save