perf:优化光电吊舱人机交互,新增主页面指示灯,修复数组越界bug

main
wanghaoyu
parent 35eca6680c
commit 4f393a581c

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

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

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

@ -11,6 +11,7 @@
#include <iostream>
#include <QPixmap>
#include "ui_gddcdlg.h"
#include <QWidget>
#pragma comment(lib, "Wtsapi32.lib")
using namespace std;
@ -311,12 +312,35 @@ void GDDCdlg::mouseMoveEvent(QMouseEvent *event) {
QPointF diff = event->pos() - _dragStartPositon;
qDebug() << "x:" << diff.x() <<"y:" <<diff.y();
m_GDDCCmdDlg->setMoveParm(diff);
if(diff.x() > 5 || diff.y() >5)//像素点超过5ptx才算移动否则为跟踪
{
_moveFlag = true;
firstLocation->move((_dragStartPositon - QPoint(firstLocation->width()/2, firstLocation->height()/2)).toPoint());
lastLocation->move(event->pos() - QPoint(lastLocation->width() / 2, lastLocation->height() / 2));
firstLocation->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)
@ -326,7 +350,7 @@ void GDDCdlg::mouseReleaseEvent(QMouseEvent *event)
if(event->button() == Qt::LeftButton && _moveFlag)
{
_moveFlag = false;
std::byte buffer[10];
std::byte buffer[10] = {static_cast<std::byte>(0)};
buffer[5] = (std::byte)0x70;
buffer[6] = (std::byte)0x00;
buffer[7] = (std::byte)0x00;

@ -101,6 +101,8 @@ void deviceStateDlg::initParam() {
cmdlist[2] << "/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[5] << "/c" << "ping" << "www.baidu.com -n 2";
cmdlist[6] << "/c" << "ping" << "www.baidu.com -n 2";
startNetDetn();
}
@ -148,6 +150,22 @@ void deviceStateDlg::receiveResult(int id, QString result,QString delay) {
}
ui->pushButton_state_3DCamra->setToolTip(delay);
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:
break;
}
@ -191,6 +209,20 @@ void deviceStateDlg::setDeviceIP(int id, settingStruct param) {
cmdlist[4] << strIp;
m_networkDetection[4]->DyChangeCmdList(cmdlist[4]); // 更新到网络检测线程
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:
break;
}
@ -228,11 +260,13 @@ QString deviceStateDlg::stringIPSelect(QString str) {
void deviceStateDlg::setUrl(
std::unordered_map<QString, settingStruct> &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["机载卫通"]);
setDeviceIP(HomePageSetingWidget::ModelCamera, m_urlMap["三维建模"]);
setDeviceIP(HomePageSetingWidget::GDDC, m_urlMap["Pod"]);
setDeviceIP(HomePageSetingWidget::L_Link, m_urlMap["L-Link"]);
setDeviceIP(HomePageSetingWidget::Adhoc_Network, m_urlMap["HocNetwork"]);
setDeviceIP(HomePageSetingWidget::Satelite_Comm, m_urlMap["SatelliteComm"]);
setDeviceIP(HomePageSetingWidget::ModelCamera, m_urlMap["ModelCamera"]);
setDeviceIP(HomePageSetingWidget::RescueLoading, m_urlMap["RescueLoading"]);
setDeviceIP(HomePageSetingWidget::PdtLoading, m_urlMap["PdtLoading"]);
}
// 开始网络监测
void deviceStateDlg::startNetDetn() {

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

@ -22,6 +22,8 @@ void HomePageSetingWidget::init() {
_lLink.url = _configIni->value("L-Link/IP").toString();
_adHocNetwork.url = _configIni->value("HocNetwork/IP").toString();
_satelliteComm.url = _configIni->value("SatelliteComm/IP").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 =
@ -37,12 +39,16 @@ void HomePageSetingWidget::init() {
_allParamMap.insert({"HocNetwork", _adHocNetwork});
_allParamMap.insert({"SatelliteComm", _satelliteComm});
_allParamMap.insert({"ModelCamera", _ModelCamera});
_allParamMap.insert({"RescueLoading", _rescueLoad});
_allParamMap.insert({"PdtLoading", _pdtLoad});
// 显示到配置页面
ui->GDDCLineEdit->setText(_GDDC.net.remoteIp);
ui->lLinkLineEdit->setText(_lLink.url);
ui->netLineEdit->setText(_adHocNetwork.url);
ui->sateliteLineEdit->setText(_satelliteComm.url);
ui->RescueLineEdit->setText(_rescueLoad.url);
ui->PdtLineEdit->setText(_pdtLoad.url);
ui->modelCameraLineEditRemoteIp->setText(_ModelCamera.net.remoteIp);
ui->modelCameraLineEditRemotePort->setText(
QString::number(_ModelCamera.net.remotePort));
@ -84,6 +90,24 @@ void HomePageSetingWidget::on_sateliteButton_clicked() {
_configIni->setValue("SatelliteComm/IP", _satelliteComm.url);
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() {
// 写参数到配置文件
@ -106,6 +130,9 @@ void HomePageSetingWidget::on_oneKeyButton_clicked() {
on_netButton_clicked();
on_sateliteButton_clicked();
on_modelCameraButton_clicked();
on_sateliteButton_clicked();
on_RescueButton_clicked();
on_PdtButton_clicked();
}
/*************************************************
* @func getAllParam
@ -115,3 +142,5 @@ void HomePageSetingWidget::on_oneKeyButton_clicked() {
std::unordered_map<QString, settingStruct> HomePageSetingWidget::getAllParam() {
return _allParamMap;
}

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

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

@ -2,7 +2,7 @@
global::global() {}
QString g_SoftwareVersion = "版本号V1.1.0.4_20241226";
QString g_SoftwareVersion = "版本号V1.1.0.5_20250207";
NotifyManager *g_notifyManager = nullptr;

Loading…
Cancel
Save