diff --git a/Src/GDDC/gddcCmdDlg.cpp b/Src/GDDC/gddcCmdDlg.cpp index 13d0484..ced0e21 100644 --- a/Src/GDDC/gddcCmdDlg.cpp +++ b/Src/GDDC/gddcCmdDlg.cpp @@ -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); } // 变倍- diff --git a/Src/GDDC/gddcCmdDlg.ui b/Src/GDDC/gddcCmdDlg.ui index fd9a675..a195384 100644 --- a/Src/GDDC/gddcCmdDlg.ui +++ b/Src/GDDC/gddcCmdDlg.ui @@ -97,7 +97,7 @@ 174 150 - 161 + 168 106 diff --git a/Src/GDDC/gddcStateInfo.cpp b/Src/GDDC/gddcStateInfo.cpp index a237412..70680e8 100644 --- a/Src/GDDC/gddcStateInfo.cpp +++ b/Src/GDDC/gddcStateInfo.cpp @@ -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; diff --git a/Src/GDDC/gddcdlg.cpp b/Src/GDDC/gddcdlg.cpp index 58cb8eb..d316c0c 100644 --- a/Src/GDDC/gddcdlg.cpp +++ b/Src/GDDC/gddcdlg.cpp @@ -11,6 +11,7 @@ #include #include #include "ui_gddcdlg.h" +#include #pragma comment(lib, "Wtsapi32.lib") using namespace std; @@ -311,11 +312,34 @@ void GDDCdlg::mouseMoveEvent(QMouseEvent *event) { QPointF diff = event->pos() - _dragStartPositon; qDebug() << "x:" << diff.x() <<"y:" <setMoveParm(diff); - _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(); + + 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(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(); + } } } @@ -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(0)}; buffer[5] = (std::byte)0x70; buffer[6] = (std::byte)0x00; buffer[7] = (std::byte)0x00; diff --git a/Src/HomePage/deviceStateDlg.cpp b/Src/HomePage/deviceStateDlg.cpp index edf6d3e..6faf036 100644 --- a/Src/HomePage/deviceStateDlg.cpp +++ b/Src/HomePage/deviceStateDlg.cpp @@ -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 &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() { diff --git a/Src/HomePage/deviceStateDlg.h b/Src/HomePage/deviceStateDlg.h index 99eb15a..eec4fa2 100644 --- a/Src/HomePage/deviceStateDlg.h +++ b/Src/HomePage/deviceStateDlg.h @@ -7,7 +7,7 @@ #include #include #include -#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]; diff --git a/Src/HomePage/homepagesetingwidget.cpp b/Src/HomePage/homepagesetingwidget.cpp index faa35d8..cc125fa 100644 --- a/Src/HomePage/homepagesetingwidget.cpp +++ b/Src/HomePage/homepagesetingwidget.cpp @@ -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 HomePageSetingWidget::getAllParam() { return _allParamMap; } + + diff --git a/Src/HomePage/homepagesetingwidget.h b/Src/HomePage/homepagesetingwidget.h index 0c8b0e7..0614656 100644 --- a/Src/HomePage/homepagesetingwidget.h +++ b/Src/HomePage/homepagesetingwidget.h @@ -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 _allParamMap; // 存储所有设置信息 public: @@ -41,7 +43,9 @@ public: L_Link, Adhoc_Network, Satelite_Comm, - ModelCamera + ModelCamera, + RescueLoading, + PdtLoading }; private slots: @@ -50,10 +54,11 @@ 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: + signals: // 发送信号给网页显示 void sendOneSet(unsigned char, settingStruct); }; diff --git a/Src/HomePage/homepagesetingwidget.ui b/Src/HomePage/homepagesetingwidget.ui index deb4aa4..58aafa3 100644 --- a/Src/HomePage/homepagesetingwidget.ui +++ b/Src/HomePage/homepagesetingwidget.ui @@ -7,14 +7,14 @@ 0 0 725 - 532 + 611 设置 - + :/res/settings.png:/res/settings.png @@ -222,6 +222,9 @@ L链 + + + @@ -229,9 +232,6 @@ - - - @@ -281,21 +281,139 @@ - + - 三维建模 + 搜救载荷 - + + + + - + - 远端IP: + IP: + + + + + + Qt::Orientation::Horizontal + + + QSizePolicy::Policy::Fixed + + + + 20 + 20 + + + + + + + + + 100 + 0 + + + + + 100 + 0 + + + + + 200 + 16777215 + + + + 设置 + + + + + + + + + + + + PDT + + - + + + + + + IP: + + + + + + + + + Qt::Orientation::Horizontal + + + QSizePolicy::Policy::Fixed + + + + 20 + 20 + + + + + + + + + 100 + 0 + + + + + 100 + 0 + + + + + 200 + 16777215 + + + + 设置 + + + + + + + + + + + 三维建模 + + @@ -303,29 +421,25 @@ - - - - - + + - 本地IP: + 远端IP: + + + - - - - 本地端口: - - - + + + @@ -371,6 +485,20 @@ + + + + 本地IP: + + + + + + + 本地端口: + + + @@ -437,8 +565,6 @@ - - - + diff --git a/global.cpp b/global.cpp index a15b1c3..5910a8d 100644 --- a/global.cpp +++ b/global.cpp @@ -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;