From 5cd4255abf8d0b79ee94f5c40db39dc5d620483c Mon Sep 17 00:00:00 2001 From: caoyuhui <1152604503@qq.com> Date: Mon, 26 Aug 2024 15:47:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=85=89=E7=94=B5=E5=90=8A?= =?UTF-8?q?=E8=88=B1=E4=BB=A3=E7=A0=81=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Src/GDDC/gddcCmdDlg.cpp | 10 + Src/GDDC/gddcCmdDlg.h | 413 +++++++------ Src/GDDC/gddcSet.h | 69 ++- Src/GDDC/gddcStateInfo.cpp | 1178 ++++++++++++++++++------------------ Src/GDDC/gddcStateInfo.h | 95 ++- Src/GDDC/gddcdlg.cpp | 54 +- Src/GDDC/gddcdlg.h | 139 +++-- 7 files changed, 953 insertions(+), 1005 deletions(-) diff --git a/Src/GDDC/gddcCmdDlg.cpp b/Src/GDDC/gddcCmdDlg.cpp index a98c49a..cb4417d 100644 --- a/Src/GDDC/gddcCmdDlg.cpp +++ b/Src/GDDC/gddcCmdDlg.cpp @@ -100,6 +100,16 @@ void GDDCCmdDlg::initParam() { ui->lineEdit_6_2->setText("540"); detectionAreaSetting = false; } +// 设置tabwidget的几何位置 +void GDDCCmdDlg::setTabWidgetGeometry(int ax, int ay, int aw, int ah) { + ui->tabWidget->setGeometry(ax, ay, aw, ah); +} +// 设置AI监测lineEdit的内容 +void GDDCCmdDlg::setAIDetcLineEditText(QString str1, QString str2) { + ui->lineEdit_6_1->setText(str1); + ui->lineEdit_6_2->setText(str2); +} + // 更新m_DCcmdBuffer void GDDCCmdDlg::UpdateDataTJDC() { /******************模拟发送天进吊舱控制指令************************/ diff --git a/Src/GDDC/gddcCmdDlg.h b/Src/GDDC/gddcCmdDlg.h index 786b1f1..9a64938 100644 --- a/Src/GDDC/gddcCmdDlg.h +++ b/Src/GDDC/gddcCmdDlg.h @@ -1,239 +1,232 @@ #ifndef GDDCCMDDLG_H #define GDDCCMDDLG_H -#include -#include +#include +#include +#include #include -#include -#include #include -#include -#include -#include #include - -#include -#include -#include -#include +#include #include +#include #include #include +#include +#include +#include +#include #include -#include - #define cmdLength 44 namespace Ui { class GDDCCmdDlg; } -class GDDCCmdDlg : public QWidget -{ - Q_OBJECT - -public: - explicit GDDCCmdDlg(QWidget *parent = nullptr); - ~GDDCCmdDlg(); +class GDDCCmdDlg : public QWidget { + Q_OBJECT -//private: public: - Ui::GDDCCmdDlg *ui; - + explicit GDDCCmdDlg(QWidget *parent = nullptr); + ~GDDCCmdDlg(); + // private: +private: + Ui::GDDCCmdDlg *ui; public: - void initParam(); //初始化参数 + void initParam(); // 初始化参数 public: - QByteArray m_DCcmdBuffer;//存储吊舱控制指令 - std::byte TJDCCmdBuffer[10]; - void UpdateDataTJDC(); - void clearTJDCCmdBuffer(); - int sendTimes;//计划发送次数 - void sendCurDate(std::byte *,int);//发送当前数据:内容,发送次数 + QByteArray m_DCcmdBuffer; // 存储吊舱控制指令 + std::byte TJDCCmdBuffer[10]; + void UpdateDataTJDC(); + void clearTJDCCmdBuffer(); + int sendTimes; // 计划发送次数 + void sendCurDate(std::byte *, int); // 发送当前数据:内容,发送次数 - bool pointSelectionTracking = false; //选点跟踪 - bool param_pushButton_3_9; - int paramDigitalZoom;//电子放大参数 - bool paramIsFrame; //是否是框架/陀螺校准 - bool detectionAreaSetting;//检测区域设置 + bool pointSelectionTracking = false; // 选点跟踪 + bool param_pushButton_3_9; + int paramDigitalZoom; // 电子放大参数 + bool paramIsFrame; // 是否是框架/陀螺校准 + bool detectionAreaSetting; // 检测区域设置 + void setTabWidgetGeometry(int, int, int, int); // 设置tabwidget的几何位置 + void setAIDetcLineEditText(QString, QString); // 设置AI监测lineEdit的内容 private slots: - /*系统控制*/ - void on_pushButton_11_pressed(); - void on_pushButton_11_released(); - void on_pushButton_1_1_pressed(); - void on_pushButton_1_1_released(); - void on_pushButton_1_2_pressed(); - void on_pushButton_1_2_released(); - void on_pushButton_1_3_pressed(); - void on_pushButton_1_3_released(); - void on_pushButton_1_4_pressed(); - void on_pushButton_1_4_released(); - /*载荷公用*/ - void on_pushButton_2_1_pressed(); - void on_pushButton_2_1_released(); - void on_pushButton_2_2_pressed(); - void on_pushButton_2_2_released(); - void on_pushButton_2_3_pressed(); - void on_pushButton_2_3_released(); - void on_pushButton_2_4_pressed(); - void on_pushButton_2_4_released(); - void on_pushButton_2_5_pressed(); - void on_pushButton_2_5_released(); - void on_pushButton_2_6_pressed(); - void on_pushButton_2_6_released(); - void on_pushButton_2_7_pressed(); - void on_pushButton_2_7_released(); - void on_pushButton_2_8_pressed(); - void on_pushButton_2_8_released(); - void on_pushButton_2_9_pressed(); - void on_pushButton_2_9_released(); - void on_pushButton_2_10_pressed(); - void on_pushButton_2_10_released(); - void on_pushButton_2_11_pressed(); - void on_pushButton_2_11_released(); - void on_pushButton_2_12_pressed(); - void on_pushButton_2_12_released(); - /*可见光*/ - void on_pushButton_3_1_pressed(); - void on_pushButton_3_1_released(); - void on_pushButton_3_2_pressed(); - void on_pushButton_3_2_released(); - void on_pushButton_3_3_pressed(); - void on_pushButton_3_3_released(); - void on_pushButton_3_4_pressed(); - void on_pushButton_3_4_released(); - void on_pushButton_3_5_pressed(); - void on_pushButton_3_5_released(); - void on_pushButton_3_6_pressed(); - void on_pushButton_3_6_released(); - void on_pushButton_3_7_pressed(); - void on_pushButton_3_7_released(); - void on_pushButton_3_8_pressed(); - void on_pushButton_3_8_released(); - void on_pushButton_3_9_pressed(); - void on_pushButton_3_9_released(); - void on_pushButton_3_10_pressed(); - void on_pushButton_3_10_released(); - void on_pushButton_3_11_pressed(); - void on_pushButton_3_11_released(); - void on_pushButton_3_12_pressed(); - void on_pushButton_3_12_released(); - void on_pushButton_3_13_pressed(); - void on_pushButton_3_13_released(); - void on_pushButton_3_14_pressed(); - void on_pushButton_3_14_released(); - void on_pushButton_3_15_pressed(); - void on_pushButton_3_15_released(); - void on_pushButton_3_16_pressed(); - void on_pushButton_3_16_released(); - // void on_pushButton_3_17_pressed(); - // void on_pushButton_3_17_released(); - void on_pushButton_3_18_pressed(); - void on_pushButton_3_18_released(); - void on_pushButton_3_19_pressed(); - void on_pushButton_3_19_released(); - void on_pushButton_3_20_pressed(); - void on_pushButton_3_20_released(); - // void on_pushButton_3_21_pressed(); - // void on_pushButton_3_21_released(); - void on_pushButton_3_22_pressed(); - void on_pushButton_3_22_released(); - void on_pushButton_3_23_pressed(); - void on_pushButton_3_23_released(); - void on_pushButton_3_24_pressed(); - void on_pushButton_3_24_released(); - void on_pushButton_3_25_pressed(); - void on_pushButton_3_25_released(); - /*红外*/ - void on_pushButton_4_1_pressed(); - void on_pushButton_4_1_released(); - void on_pushButton_4_2_pressed(); - void on_pushButton_4_2_released(); - void on_pushButton_4_3_pressed(); - void on_pushButton_4_3_released(); - void on_pushButton_4_4_pressed(); - void on_pushButton_4_4_released(); - void on_pushButton_4_5_pressed(); - void on_pushButton_4_5_released(); - void on_pushButton_4_6_pressed(); - void on_pushButton_4_6_released(); - void on_pushButton_4_7_pressed(); - void on_pushButton_4_7_released(); - void on_pushButton_4_8_pressed(); - void on_pushButton_4_8_released(); - void on_pushButton_4_9_pressed(); - void on_pushButton_4_9_released(); - void on_pushButton_4_10_pressed(); - void on_pushButton_4_10_released(); - void on_pushButton_4_11_pressed(); - void on_pushButton_4_11_released(); - void on_pushButton_4_12_pressed(); - void on_pushButton_4_12_released(); - void on_pushButton_4_13_pressed(); - void on_pushButton_4_13_released(); - void on_pushButton_4_14_pressed(); - void on_pushButton_4_14_released(); - void on_pushButton_4_15_pressed(); - void on_pushButton_4_15_released(); - void on_pushButton_4_16_pressed(); - void on_pushButton_4_16_released(); - void on_pushButton_4_17_pressed(); - void on_pushButton_4_17_released(); - void on_pushButton_4_18_pressed(); - void on_pushButton_4_18_released(); - /*云台控制*/ - void on_pushButton_5_1_pressed(); - void on_pushButton_5_1_released(); - void on_pushButton_5_2_pressed(); - void on_pushButton_5_2_released(); - void on_pushButton_5_3_pressed(); - void on_pushButton_5_3_released(); - void on_pushButton_5_4_pressed(); - void on_pushButton_5_4_released(); - void on_pushButton_5_5_pressed(); - void on_pushButton_5_5_released(); - void on_pushButton_5_6_pressed(); - void on_pushButton_5_6_released(); - void on_pushButton_5_7_pressed(); - void on_pushButton_5_7_released(); - void on_pushButton_5_8_pressed(); - void on_pushButton_5_8_released(); - void on_pushButton_5_9_pressed(); - void on_pushButton_5_9_released(); - // void on_pushButton_5_10_pressed(); - // void on_pushButton_5_10_released(); - void on_pushButton_5_11_pressed(); - void on_pushButton_5_11_released(); - void on_pushButton_5_12_pressed(); - void on_pushButton_5_12_released(); - void on_pushButton_5_13_pressed(); - void on_pushButton_5_13_released(); - void on_pushButton_5_14_pressed(); - void on_pushButton_5_14_released(); - void on_pushButton_5_15_pressed(); - void on_pushButton_5_15_released(); - - void on_radioButton_5_1_clicked(); - void on_radioButton_5_2_clicked(); + /*系统控制*/ + void on_pushButton_11_pressed(); + void on_pushButton_11_released(); + void on_pushButton_1_1_pressed(); + void on_pushButton_1_1_released(); + void on_pushButton_1_2_pressed(); + void on_pushButton_1_2_released(); + void on_pushButton_1_3_pressed(); + void on_pushButton_1_3_released(); + void on_pushButton_1_4_pressed(); + void on_pushButton_1_4_released(); + /*载荷公用*/ + void on_pushButton_2_1_pressed(); + void on_pushButton_2_1_released(); + void on_pushButton_2_2_pressed(); + void on_pushButton_2_2_released(); + void on_pushButton_2_3_pressed(); + void on_pushButton_2_3_released(); + void on_pushButton_2_4_pressed(); + void on_pushButton_2_4_released(); + void on_pushButton_2_5_pressed(); + void on_pushButton_2_5_released(); + void on_pushButton_2_6_pressed(); + void on_pushButton_2_6_released(); + void on_pushButton_2_7_pressed(); + void on_pushButton_2_7_released(); + void on_pushButton_2_8_pressed(); + void on_pushButton_2_8_released(); + void on_pushButton_2_9_pressed(); + void on_pushButton_2_9_released(); + void on_pushButton_2_10_pressed(); + void on_pushButton_2_10_released(); + void on_pushButton_2_11_pressed(); + void on_pushButton_2_11_released(); + void on_pushButton_2_12_pressed(); + void on_pushButton_2_12_released(); + /*可见光*/ + void on_pushButton_3_1_pressed(); + void on_pushButton_3_1_released(); + void on_pushButton_3_2_pressed(); + void on_pushButton_3_2_released(); + void on_pushButton_3_3_pressed(); + void on_pushButton_3_3_released(); + void on_pushButton_3_4_pressed(); + void on_pushButton_3_4_released(); + void on_pushButton_3_5_pressed(); + void on_pushButton_3_5_released(); + void on_pushButton_3_6_pressed(); + void on_pushButton_3_6_released(); + void on_pushButton_3_7_pressed(); + void on_pushButton_3_7_released(); + void on_pushButton_3_8_pressed(); + void on_pushButton_3_8_released(); + void on_pushButton_3_9_pressed(); + void on_pushButton_3_9_released(); + void on_pushButton_3_10_pressed(); + void on_pushButton_3_10_released(); + void on_pushButton_3_11_pressed(); + void on_pushButton_3_11_released(); + void on_pushButton_3_12_pressed(); + void on_pushButton_3_12_released(); + void on_pushButton_3_13_pressed(); + void on_pushButton_3_13_released(); + void on_pushButton_3_14_pressed(); + void on_pushButton_3_14_released(); + void on_pushButton_3_15_pressed(); + void on_pushButton_3_15_released(); + void on_pushButton_3_16_pressed(); + void on_pushButton_3_16_released(); + // void on_pushButton_3_17_pressed(); + // void on_pushButton_3_17_released(); + void on_pushButton_3_18_pressed(); + void on_pushButton_3_18_released(); + void on_pushButton_3_19_pressed(); + void on_pushButton_3_19_released(); + void on_pushButton_3_20_pressed(); + void on_pushButton_3_20_released(); + // void on_pushButton_3_21_pressed(); + // void on_pushButton_3_21_released(); + void on_pushButton_3_22_pressed(); + void on_pushButton_3_22_released(); + void on_pushButton_3_23_pressed(); + void on_pushButton_3_23_released(); + void on_pushButton_3_24_pressed(); + void on_pushButton_3_24_released(); + void on_pushButton_3_25_pressed(); + void on_pushButton_3_25_released(); + /*红外*/ + void on_pushButton_4_1_pressed(); + void on_pushButton_4_1_released(); + void on_pushButton_4_2_pressed(); + void on_pushButton_4_2_released(); + void on_pushButton_4_3_pressed(); + void on_pushButton_4_3_released(); + void on_pushButton_4_4_pressed(); + void on_pushButton_4_4_released(); + void on_pushButton_4_5_pressed(); + void on_pushButton_4_5_released(); + void on_pushButton_4_6_pressed(); + void on_pushButton_4_6_released(); + void on_pushButton_4_7_pressed(); + void on_pushButton_4_7_released(); + void on_pushButton_4_8_pressed(); + void on_pushButton_4_8_released(); + void on_pushButton_4_9_pressed(); + void on_pushButton_4_9_released(); + void on_pushButton_4_10_pressed(); + void on_pushButton_4_10_released(); + void on_pushButton_4_11_pressed(); + void on_pushButton_4_11_released(); + void on_pushButton_4_12_pressed(); + void on_pushButton_4_12_released(); + void on_pushButton_4_13_pressed(); + void on_pushButton_4_13_released(); + void on_pushButton_4_14_pressed(); + void on_pushButton_4_14_released(); + void on_pushButton_4_15_pressed(); + void on_pushButton_4_15_released(); + void on_pushButton_4_16_pressed(); + void on_pushButton_4_16_released(); + void on_pushButton_4_17_pressed(); + void on_pushButton_4_17_released(); + void on_pushButton_4_18_pressed(); + void on_pushButton_4_18_released(); + /*云台控制*/ + void on_pushButton_5_1_pressed(); + void on_pushButton_5_1_released(); + void on_pushButton_5_2_pressed(); + void on_pushButton_5_2_released(); + void on_pushButton_5_3_pressed(); + void on_pushButton_5_3_released(); + void on_pushButton_5_4_pressed(); + void on_pushButton_5_4_released(); + void on_pushButton_5_5_pressed(); + void on_pushButton_5_5_released(); + void on_pushButton_5_6_pressed(); + void on_pushButton_5_6_released(); + void on_pushButton_5_7_pressed(); + void on_pushButton_5_7_released(); + void on_pushButton_5_8_pressed(); + void on_pushButton_5_8_released(); + void on_pushButton_5_9_pressed(); + void on_pushButton_5_9_released(); + // void on_pushButton_5_10_pressed(); + // void on_pushButton_5_10_released(); + void on_pushButton_5_11_pressed(); + void on_pushButton_5_11_released(); + void on_pushButton_5_12_pressed(); + void on_pushButton_5_12_released(); + void on_pushButton_5_13_pressed(); + void on_pushButton_5_13_released(); + void on_pushButton_5_14_pressed(); + void on_pushButton_5_14_released(); + void on_pushButton_5_15_pressed(); + void on_pushButton_5_15_released(); - /*AI检测*/ - void on_pushButton_6_1_pressed(); - void on_pushButton_6_1_released(); - void on_pushButton_6_2_pressed(); - void on_pushButton_6_2_released(); - void on_pushButton_6_3_pressed(); - void on_pushButton_6_3_released(); - void on_pushButton_6_4_pressed(); - void on_pushButton_6_4_released(); - void on_pushButton_6_5_pressed(); - void on_pushButton_6_5_released(); - void on_pushButton_6_6_pressed(); - void on_pushButton_6_6_released(); - void on_pushButton_6_7_pressed(); - void on_pushButton_6_7_released(); - void on_pushButton_6_8_clicked(); + void on_radioButton_5_1_clicked(); + void on_radioButton_5_2_clicked(); + /*AI检测*/ + void on_pushButton_6_1_pressed(); + void on_pushButton_6_1_released(); + void on_pushButton_6_2_pressed(); + void on_pushButton_6_2_released(); + void on_pushButton_6_3_pressed(); + void on_pushButton_6_3_released(); + void on_pushButton_6_4_pressed(); + void on_pushButton_6_4_released(); + void on_pushButton_6_5_pressed(); + void on_pushButton_6_5_released(); + void on_pushButton_6_6_pressed(); + void on_pushButton_6_6_released(); + void on_pushButton_6_7_pressed(); + void on_pushButton_6_7_released(); + void on_pushButton_6_8_clicked(); }; #endif // GDDCCMDDLG_H diff --git a/Src/GDDC/gddcSet.h b/Src/GDDC/gddcSet.h index 6450c8e..8659e26 100644 --- a/Src/GDDC/gddcSet.h +++ b/Src/GDDC/gddcSet.h @@ -1,56 +1,55 @@ #ifndef GDDCSET_H #define GDDCSET_H -#include +#include "Src/GDDC/structDefineMyslef.h" #include #include +#include #include -#include "Src/GDDC/structDefineMyslef.h" namespace Ui { class GDDCSet; } -class GDDCSet : public QWidget -{ - Q_OBJECT +class GDDCSet : public QWidget { + Q_OBJECT public: - explicit GDDCSet(QWidget *parent = nullptr); - ~GDDCSet(); + explicit GDDCSet(QWidget *parent = nullptr); + ~GDDCSet(); -public: - Ui::GDDCSet *ui; +private: + Ui::GDDCSet *ui; public: - void initUDPSocket(); //初始化UDPSocket - void initWindow(); //初始化窗口 - void initParam(); //初始化参数 - void saveDataToLocalIni(); //保存数据至本地ini文件 - QByteArray m_configIniPath; //ini配置文件路径 - - QString m_playURL1; //光电吊舱-视频连接-显示窗口1-URL地址 - QString m_playURL2; //光电吊舱-视频连接-显示窗口2-URL地址 - QString m_pushURL; //光电吊舱-推流URL地址 - MyPairNetwork m_myPairNetwork;//网络通信结构体 + void initUDPSocket(); // 初始化UDPSocket + void initWindow(); // 初始化窗口 + void initParam(); // 初始化参数 + void saveDataToLocalIni(); // 保存数据至本地ini文件 + QByteArray m_configIniPath; // ini配置文件路径 + + QString m_playURL1; // 光电吊舱-视频连接-显示窗口1-URL地址 + QString m_playURL2; // 光电吊舱-视频连接-显示窗口2-URL地址 + QString m_pushURL; // 光电吊舱-推流URL地址 + MyPairNetwork m_myPairNetwork; // 网络通信结构体 signals: - /* int a - * 1视频连接1 - * 2视频连接2 - * 3串口控制-刷新 - * 4串口控制-连接 - * 5网络控制-连接 - * 6视频(1)推流 - * */ - void SignalStartConnect(int a); //信号开始连接 - void SignalStopConnect(int a); //信号停止连接 + /* int a + * 1视频连接1 + * 2视频连接2 + * 3串口控制-刷新 + * 4串口控制-连接 + * 5网络控制-连接 + * 6视频(1)推流 + * */ + void SignalStartConnect(int a); // 信号开始连接 + void SignalStopConnect(int a); // 信号停止连接 private slots: - void on_pushButton_ConnectURL1_clicked(); //视频连接-显示窗口1-连接 - void on_pushButton_ConnectURL2_clicked(); //视频连接-显示窗口2-连接 - void on_pushButton_serialControlRefalsh_clicked(); //串口控制-刷新 - void on_pushButton_serialControlConnect_clicked(); //串口控制-连接 - void on_pushButton_NetCtrlConnect_clicked(); //网络控制-连接 - void on_pushButton_pushURL_clicked(); //推流 + void on_pushButton_ConnectURL1_clicked(); // 视频连接-显示窗口1-连接 + void on_pushButton_ConnectURL2_clicked(); // 视频连接-显示窗口2-连接 + void on_pushButton_serialControlRefalsh_clicked(); // 串口控制-刷新 + void on_pushButton_serialControlConnect_clicked(); // 串口控制-连接 + void on_pushButton_NetCtrlConnect_clicked(); // 网络控制-连接 + void on_pushButton_pushURL_clicked(); // 推流 }; #endif // GDDCSET_H diff --git a/Src/GDDC/gddcStateInfo.cpp b/Src/GDDC/gddcStateInfo.cpp index 92f22ef..19c9205 100644 --- a/Src/GDDC/gddcStateInfo.cpp +++ b/Src/GDDC/gddcStateInfo.cpp @@ -2,630 +2,602 @@ #include "ui_gddcStateInfo.h" GDDCStateInfo::GDDCStateInfo(QWidget *parent) - : QWidget(parent) - , ui(new Ui::GDDCStateInfo) -{ - ui->setupUi(this); - initParam(); + : QWidget(parent), ui(new Ui::GDDCStateInfo) { + ui->setupUi(this); + initParam(); } -GDDCStateInfo::~GDDCStateInfo() -{ - delete m_tableModel; - delete ui; +GDDCStateInfo::~GDDCStateInfo() { + delete m_tableModel; + delete ui; } -//初始化参数 -void GDDCStateInfo::initParam() -{ +// 初始化参数 +void GDDCStateInfo::initParam() { - m_tableModel = new QStandardItemModel(); - m_tableModel->setHorizontalHeaderItem(0,new QStandardItem("类型")); - m_tableModel->setHorizontalHeaderItem(1,new QStandardItem("详细信息")); - // m_tableModel->setVerticalHeaderItem(0,new QStandardItem("序号")); - ui->tableViewShowIState->setModel(m_tableModel); - //栅格显示或隐藏 - ui->tableViewShowIState->setShowGrid(true); - // 固定表格宽度不可扩展,不可手动调整宽度 - ui->tableViewShowIState->horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed); - // 表格宽度随内容自动扩展 - //ui->tableViewShowIState->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); - // 表格宽度自动根据UI进行计算,不可手动调整宽度 - //ui->tableViewShowIState->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); - // 固定表格高度不可扩展,不可手动调整高度 - ui->tableViewShowIState->verticalHeader()->setSectionResizeMode(QHeaderView::Fixed); - // 表格高度随内容自动扩展 - //ui->tableViewShowIState->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); - // 表格高度自动根据UI进行计算,不可手动调整高度 - //ui->tableViewShowIState->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch); - ui->tableViewShowIState->setEditTriggers(QAbstractItemView::NoEditTriggers); // 不可编辑 - ui->tableViewShowIState->setColumnWidth(0,100); - ui->tableViewShowIState->setColumnWidth(1,100); + m_tableModel = new QStandardItemModel(); + m_tableModel->setHorizontalHeaderItem(0, new QStandardItem("类型")); + m_tableModel->setHorizontalHeaderItem(1, new QStandardItem("详细信息")); + // m_tableModel->setVerticalHeaderItem(0,new QStandardItem("序号")); + ui->tableViewShowIState->setModel(m_tableModel); + // 栅格显示或隐藏 + ui->tableViewShowIState->setShowGrid(true); + // 固定表格宽度不可扩展,不可手动调整宽度 + ui->tableViewShowIState->horizontalHeader()->setSectionResizeMode( + QHeaderView::Fixed); + // 表格宽度随内容自动扩展 + // ui->tableViewShowIState->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); + // 表格宽度自动根据UI进行计算,不可手动调整宽度 + // ui->tableViewShowIState->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); + // 固定表格高度不可扩展,不可手动调整高度 + ui->tableViewShowIState->verticalHeader()->setSectionResizeMode( + QHeaderView::Fixed); + // 表格高度随内容自动扩展 + // ui->tableViewShowIState->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); + // 表格高度自动根据UI进行计算,不可手动调整高度 + // ui->tableViewShowIState->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch); + ui->tableViewShowIState->setEditTriggers( + QAbstractItemView::NoEditTriggers); // 不可编辑 + ui->tableViewShowIState->setColumnWidth(0, 100); + ui->tableViewShowIState->setColumnWidth(1, 100); - m_tableModel->setItem(0,0,new QStandardItem("跟踪源类型")); - m_tableModel->setItem(1,0,new QStandardItem("姿态方位角")); - m_tableModel->setItem(2,0,new QStandardItem("姿态俯仰角")); - m_tableModel->setItem(3,0,new QStandardItem("姿态横滚角")); - m_tableModel->setItem(4,0,new QStandardItem("中心点宽坐标")); - m_tableModel->setItem(5,0,new QStandardItem("中心点高坐标")); - m_tableModel->setItem(6,0,new QStandardItem("可见光焦距")); - m_tableModel->setItem(7,0,new QStandardItem("可见光视场角")); - m_tableModel->setItem(8,0,new QStandardItem("红外焦距")); - m_tableModel->setItem(9,0,new QStandardItem("红外视场角")); - m_tableModel->setItem(10,0,new QStandardItem("激光测距值")); - m_tableModel->setItem(11,0,new QStandardItem("命令反馈")); - m_tableModel->setItem(12,0,new QStandardItem("视频输出类型")); - m_tableModel->setItem(13,0,new QStandardItem("红外电子变倍")); - m_tableModel->setItem(14,0,new QStandardItem("可见光电子放大")); - m_tableModel->setItem(15,0,new QStandardItem("吊舱框架方位角")); - m_tableModel->setItem(16,0,new QStandardItem("吊舱框架俯仰角")); - m_tableModel->setItem(17,0,new QStandardItem("吊舱框架横滚角")); - m_tableModel->setItem(18,0,new QStandardItem("TF剩余百分比")); - m_tableModel->setItem(19,0,new QStandardItem("TF卡总容量")); - m_tableModel->setItem(20,0,new QStandardItem("TF插卡状态")); - m_tableModel->setItem(21,0,new QStandardItem("拍照")); - m_tableModel->setItem(22,0,new QStandardItem("视频抓图")); - m_tableModel->setItem(23,0,new QStandardItem("连拍")); - m_tableModel->setItem(24,0,new QStandardItem("视频连续抓图")); - m_tableModel->setItem(25,0,new QStandardItem("录像状态")); - m_tableModel->setItem(26,0,new QStandardItem("文件命名")); - m_tableModel->setItem(27,0,new QStandardItem("当前图像反馈")); - m_tableModel->setItem(28,0,new QStandardItem("载荷类型")); - m_tableModel->setItem(29,0,new QStandardItem("红外机芯")); - m_tableModel->setItem(30,0,new QStandardItem("可见光机芯")); - m_tableModel->setItem(31,0,new QStandardItem("陀螺仪")); - m_tableModel->setItem(32,0,new QStandardItem("角度传感器")); - m_tableModel->setItem(33,0,new QStandardItem("电机")); - m_tableModel->setItem(34,0,new QStandardItem("压缩")); - m_tableModel->setItem(35,0,new QStandardItem("综合控制")); - m_tableModel->setItem(36,0,new QStandardItem("吊舱准备状态")); - m_tableModel->setItem(37,0,new QStandardItem("红外伪彩")); - m_tableModel->setItem(38,0,new QStandardItem("红外图像增强")); - m_tableModel->setItem(39,0,new QStandardItem("当前载荷版本")); - m_tableModel->setItem(40,0,new QStandardItem("目标定位经度")); - m_tableModel->setItem(41,0,new QStandardItem("目标定位纬度")); - m_tableModel->setItem(42,0,new QStandardItem("目标海拔高度")); - m_tableModel->setItem(43,0,new QStandardItem("姿态指示完成反馈")); - m_tableModel->setItem(44,0,new QStandardItem("目标宽")); - m_tableModel->setItem(45,0,new QStandardItem("目标高")); - m_tableModel->setItem(46,0,new QStandardItem("目标类型")); - m_tableModel->setItem(47,0,new QStandardItem("跟踪状态")); - m_tableModel->setItem(48,0,new QStandardItem("最高温")); - m_tableModel->setItem(49,0,new QStandardItem("配置保存")); - m_tableModel->setItem(50,0,new QStandardItem("伺服状态")); - m_tableModel->setItem(51,0,new QStandardItem("超温报警")); - m_tableModel->setItem(52,0,new QStandardItem("红点指示")); - //ui->tableViewShowIState->horizontalHeader()->setStyleSheet("QHeaderView::section{background:rgb(255,228,225);color: black;}"); + m_tableModel->setItem(0, 0, new QStandardItem("跟踪源类型")); + m_tableModel->setItem(1, 0, new QStandardItem("姿态方位角")); + m_tableModel->setItem(2, 0, new QStandardItem("姿态俯仰角")); + m_tableModel->setItem(3, 0, new QStandardItem("姿态横滚角")); + m_tableModel->setItem(4, 0, new QStandardItem("中心点宽坐标")); + m_tableModel->setItem(5, 0, new QStandardItem("中心点高坐标")); + m_tableModel->setItem(6, 0, new QStandardItem("可见光焦距")); + m_tableModel->setItem(7, 0, new QStandardItem("可见光视场角")); + m_tableModel->setItem(8, 0, new QStandardItem("红外焦距")); + m_tableModel->setItem(9, 0, new QStandardItem("红外视场角")); + m_tableModel->setItem(10, 0, new QStandardItem("激光测距值")); + m_tableModel->setItem(11, 0, new QStandardItem("命令反馈")); + m_tableModel->setItem(12, 0, new QStandardItem("视频输出类型")); + m_tableModel->setItem(13, 0, new QStandardItem("红外电子变倍")); + m_tableModel->setItem(14, 0, new QStandardItem("可见光电子放大")); + m_tableModel->setItem(15, 0, new QStandardItem("吊舱框架方位角")); + m_tableModel->setItem(16, 0, new QStandardItem("吊舱框架俯仰角")); + m_tableModel->setItem(17, 0, new QStandardItem("吊舱框架横滚角")); + m_tableModel->setItem(18, 0, new QStandardItem("TF剩余百分比")); + m_tableModel->setItem(19, 0, new QStandardItem("TF卡总容量")); + m_tableModel->setItem(20, 0, new QStandardItem("TF插卡状态")); + m_tableModel->setItem(21, 0, new QStandardItem("拍照")); + m_tableModel->setItem(22, 0, new QStandardItem("视频抓图")); + m_tableModel->setItem(23, 0, new QStandardItem("连拍")); + m_tableModel->setItem(24, 0, new QStandardItem("视频连续抓图")); + m_tableModel->setItem(25, 0, new QStandardItem("录像状态")); + m_tableModel->setItem(26, 0, new QStandardItem("文件命名")); + m_tableModel->setItem(27, 0, new QStandardItem("当前图像反馈")); + m_tableModel->setItem(28, 0, new QStandardItem("载荷类型")); + m_tableModel->setItem(29, 0, new QStandardItem("红外机芯")); + m_tableModel->setItem(30, 0, new QStandardItem("可见光机芯")); + m_tableModel->setItem(31, 0, new QStandardItem("陀螺仪")); + m_tableModel->setItem(32, 0, new QStandardItem("角度传感器")); + m_tableModel->setItem(33, 0, new QStandardItem("电机")); + m_tableModel->setItem(34, 0, new QStandardItem("压缩")); + m_tableModel->setItem(35, 0, new QStandardItem("综合控制")); + m_tableModel->setItem(36, 0, new QStandardItem("吊舱准备状态")); + m_tableModel->setItem(37, 0, new QStandardItem("红外伪彩")); + m_tableModel->setItem(38, 0, new QStandardItem("红外图像增强")); + m_tableModel->setItem(39, 0, new QStandardItem("当前载荷版本")); + m_tableModel->setItem(40, 0, new QStandardItem("目标定位经度")); + m_tableModel->setItem(41, 0, new QStandardItem("目标定位纬度")); + m_tableModel->setItem(42, 0, new QStandardItem("目标海拔高度")); + m_tableModel->setItem(43, 0, new QStandardItem("姿态指示完成反馈")); + m_tableModel->setItem(44, 0, new QStandardItem("目标宽")); + m_tableModel->setItem(45, 0, new QStandardItem("目标高")); + m_tableModel->setItem(46, 0, new QStandardItem("目标类型")); + m_tableModel->setItem(47, 0, new QStandardItem("跟踪状态")); + m_tableModel->setItem(48, 0, new QStandardItem("最高温")); + m_tableModel->setItem(49, 0, new QStandardItem("配置保存")); + m_tableModel->setItem(50, 0, new QStandardItem("伺服状态")); + m_tableModel->setItem(51, 0, new QStandardItem("超温报警")); + m_tableModel->setItem(52, 0, new QStandardItem("红点指示")); + // ui->tableViewShowIState->horizontalHeader()->setStyleSheet("QHeaderView::section{background:rgb(255,228,225);color: + // black;}"); +} +// 设置tabwidget的几何位置 +void GDDCStateInfo::setTableViewGeometry(int ax, int ay, int aw, int ah) { + ui->tableViewShowIState->setGeometry(ax, ay, aw, ah); } - /** * @brief udp数据接收 * @param da 数据 * @param size 数据大小 */ -void GDDCStateInfo::UDPMessageReceive(QByteArray &da,int size) -{ - QByteArray data = da; - //data.resize(size); +void GDDCStateInfo::UDPMessageReceive(QByteArray &da, int size) { + QByteArray data = da; + // data.resize(size); - qDebug()<setItem(28,1,new QStandardItem(str)); - - /*****自检结果*****/ - //红外机芯 - if((data.at(3)&'\x01')==0x01){ - str = "正常"; - } - else{ - str = "异常"; - } - m_tableModel->setItem(29,1,new QStandardItem(str)); - //可见光机芯 - if((data.at(3)>>1)&'\x01'){ - str = "正常"; - } - else{ - str = "异常"; - } - m_tableModel->setItem(30,1,new QStandardItem(str)); - //陀螺仪 - if((data.at(3)>>2)&'\x01'){ - str = "正常"; - } - else{ - str = "异常"; - } - m_tableModel->setItem(31,1,new QStandardItem(str)); - //角度传感器 - if((data.at(3)>>3)&'\x01'){ - str = "正常"; - } - else{ - str = "异常"; - } - m_tableModel->setItem(32,1,new QStandardItem(str)); - //驱动板-电机 - if((data.at(3)>>4)&'\x01'){ - str = "正常"; - } - else{ - str = "异常"; - } - m_tableModel->setItem(33,1,new QStandardItem(str)); - //压缩存储 - if((data.at(3)>>5)&'\x01'){ - str = "正常"; - } - else{ - str = "异常"; - } - m_tableModel->setItem(34,1,new QStandardItem(str)); - //综合处理 - if((data.at(3)>>6)&'\x01'){ - str = "正常"; - } - else{ - str = "异常"; - } - m_tableModel->setItem(35,1,new QStandardItem(str)); - //吊舱准备状态 - if((data.at(3)>>7)&'\x01'){ - str = "已准备好"; - } - else{ - str = "未准备好"; - } - m_tableModel->setItem(36,1,new QStandardItem(str)); + qDebug() << data.data(); + if (checkdata(data, data.size(), 1)) { + QString str; + double dou; + float flo; + // 载荷类型 + switch (data.at(2)) { + case '\x01': + str = "白光"; + break; + case '\x02': + str = "红外"; + break; + case '\x03': + str = "双光"; + break; + case '\x04': + str = "三光"; + break; + case '\x05': + str = "四光"; + break; + default: + str = "未知"; + break; + } + m_tableModel->setItem(28, 1, new QStandardItem(str)); - /*****吊舱状态1******/ - //拍照 - if(data.at(4)&'\x01'){ - str = "正在拍照"; - } - else{ - str = "未拍照"; - } - m_tableModel->setItem(21,1,new QStandardItem(str)); - //视频抓图 - if((data.at(4)>>1)&'\x01'){ - str = "正在抓图"; - } - else{ - str = "未抓图"; - } - m_tableModel->setItem(22,1,new QStandardItem(str)); - //连拍 - if((data.at(4)>>2)&'\x01'){ - str = "正在连拍"; - } - else{ - str = "未连拍"; - } - m_tableModel->setItem(23,1,new QStandardItem(str)); - //视频连续抓图 - if((data.at(4)>>3)&'\x01'){ - str = "正在连续抓图"; - } - else{ - str = "未连续抓图"; - } - m_tableModel->setItem(24,1,new QStandardItem(str)); - //录像状态 - if((data.at(4)>>4)&'\x01'){ - str = "正在录像"; - } - else{ - str = "未开始录像"; - } - m_tableModel->setItem(25,1,new QStandardItem(str)); - //文件命名 - if((data.at(4)>>5)&'\x01'){ - str = "信息导入完毕"; - } - else{ - str = "未成功导入"; - } - m_tableModel->setItem(26,1,new QStandardItem(str)); - //TF插卡状态 - if((data.at(4)>>6)&'\x01'){ - str = "TF卡已插入"; - } - else{ - str = "TF卡未插入"; - } - m_tableModel->setItem(20,1,new QStandardItem(str)); - //超温报警状态 - if((data.at(4)>>7)&'\x01'){ - str = "超温"; - } - else{ - str = "未超温"; - } - m_tableModel->setItem(51,1,new QStandardItem(str)); - //红点指示 - if(data.at(5)&'\x01'){ - str = "开"; - } - else{ - str = "关"; - } - m_tableModel->setItem(52,1,new QStandardItem(str)); - //备用 - //红外图像增强 - str = QString::number((data.at(5)>>3)&'\x0F'); - m_tableModel->setItem(38,1,new QStandardItem(str)); - //备用 - //备用 + /*****自检结果*****/ + // 红外机芯 + if ((data.at(3) & '\x01') == 0x01) { + str = "正常"; + } else { + str = "异常"; + } + m_tableModel->setItem(29, 1, new QStandardItem(str)); + // 可见光机芯 + if ((data.at(3) >> 1) & '\x01') { + str = "正常"; + } else { + str = "异常"; + } + m_tableModel->setItem(30, 1, new QStandardItem(str)); + // 陀螺仪 + if ((data.at(3) >> 2) & '\x01') { + str = "正常"; + } else { + str = "异常"; + } + m_tableModel->setItem(31, 1, new QStandardItem(str)); + // 角度传感器 + if ((data.at(3) >> 3) & '\x01') { + str = "正常"; + } else { + str = "异常"; + } + m_tableModel->setItem(32, 1, new QStandardItem(str)); + // 驱动板-电机 + if ((data.at(3) >> 4) & '\x01') { + str = "正常"; + } else { + str = "异常"; + } + m_tableModel->setItem(33, 1, new QStandardItem(str)); + // 压缩存储 + if ((data.at(3) >> 5) & '\x01') { + str = "正常"; + } else { + str = "异常"; + } + m_tableModel->setItem(34, 1, new QStandardItem(str)); + // 综合处理 + if ((data.at(3) >> 6) & '\x01') { + str = "正常"; + } else { + str = "异常"; + } + m_tableModel->setItem(35, 1, new QStandardItem(str)); + // 吊舱准备状态 + if ((data.at(3) >> 7) & '\x01') { + str = "已准备好"; + } else { + str = "未准备好"; + } + m_tableModel->setItem(36, 1, new QStandardItem(str)); - /*****吊舱状态2******/ - //备用 - //跟踪源类型 - if(data.at(6)&'\x02'){ - str = "可见光"; - } - else{ - str = "红外"; - } - m_tableModel->setItem(0,1,new QStandardItem(str)); - //红外电子变倍 - str = QString::number(((data.at(6)>>2)&'\x7F')*0.1,'f', 1); - m_tableModel->setItem(13,1,new QStandardItem(str)); - //配置保存 - if(data.at(7)&'\x01'){ - str = "保存成功"; - } - else{ - str = "未保存"; - } - m_tableModel->setItem(49,1,new QStandardItem(str)); - //可见光电子变倍 - switch((data.at(7)>>1)&'\x03') - { - case 0: - str = "1x"; - break; - case 1: - str = "2x"; - break; - case 2: - str = "4x"; - break; - default: - str = "未知"; - break; - } - m_tableModel->setItem(14,1,new QStandardItem(str)); - //红外伪彩-色带 - switch((data.at(7)>>3)&'\x1F') - { - case 0x00: - str = "白热"; - break; - case 0x01: - str = "黑热"; - break; - case 0x02: - str = "彩虹"; - break; - case 0x03: - str = "高对比度彩虹"; - break; - case 0x04: - str = "铁红"; - break; - case 0x05: - str = "熔岩"; - break; - case 0x06: - str = "天空"; - break; - case 0x07: - str = "中灰"; - break; - case 0x08: - str = "灰红"; - break; - case 0x09: - str = "紫橙"; - break; - case 0x0b: - str = "警示红"; - break; - case 0x0c: - str = "冰火"; - break; - default: - str = "未知"; - break; - } - m_tableModel->setItem(37,1,new QStandardItem(str)); + /*****吊舱状态1******/ + // 拍照 + if (data.at(4) & '\x01') { + str = "正在拍照"; + } else { + str = "未拍照"; + } + m_tableModel->setItem(21, 1, new QStandardItem(str)); + // 视频抓图 + if ((data.at(4) >> 1) & '\x01') { + str = "正在抓图"; + } else { + str = "未抓图"; + } + m_tableModel->setItem(22, 1, new QStandardItem(str)); + // 连拍 + if ((data.at(4) >> 2) & '\x01') { + str = "正在连拍"; + } else { + str = "未连拍"; + } + m_tableModel->setItem(23, 1, new QStandardItem(str)); + // 视频连续抓图 + if ((data.at(4) >> 3) & '\x01') { + str = "正在连续抓图"; + } else { + str = "未连续抓图"; + } + m_tableModel->setItem(24, 1, new QStandardItem(str)); + // 录像状态 + if ((data.at(4) >> 4) & '\x01') { + str = "正在录像"; + } else { + str = "未开始录像"; + } + m_tableModel->setItem(25, 1, new QStandardItem(str)); + // 文件命名 + if ((data.at(4) >> 5) & '\x01') { + str = "信息导入完毕"; + } else { + str = "未成功导入"; + } + m_tableModel->setItem(26, 1, new QStandardItem(str)); + // TF插卡状态 + if ((data.at(4) >> 6) & '\x01') { + str = "TF卡已插入"; + } else { + str = "TF卡未插入"; + } + m_tableModel->setItem(20, 1, new QStandardItem(str)); + // 超温报警状态 + if ((data.at(4) >> 7) & '\x01') { + str = "超温"; + } else { + str = "未超温"; + } + m_tableModel->setItem(51, 1, new QStandardItem(str)); + // 红点指示 + if (data.at(5) & '\x01') { + str = "开"; + } else { + str = "关"; + } + m_tableModel->setItem(52, 1, new QStandardItem(str)); + // 备用 + // 红外图像增强 + str = QString::number((data.at(5) >> 3) & '\x0F'); + m_tableModel->setItem(38, 1, new QStandardItem(str)); + // 备用 + // 备用 - /*********伺服状态********/ - //红外伪彩-色带 - switch((data.at(7)>>3)&'\x1F') - { - case 0x00: - str = "待命"; - break; - case 0x01: - str = "关伺服"; - break; - case 0x02: - str = "手动"; - break; - case 0x03: - str = "收藏"; - break; - case 0x04: - str = "数引"; - break; - case 0x05: - str = "航向锁定"; - break; - case 0x06: - str = "扫描"; - break; - case 0x07: - str = "跟踪"; - break; - case 0x08: - str = "垂直下视"; - break; - case 0x09: - str = "陀螺自动较漂"; - break; - case 0xA0: - str = "陀螺温度较漂"; - break; - case 0x0B: - str = "航向随动"; - break; - case 0x0C: - str = "归中"; - break; - case 0x0D: - str = "手动陀螺较漂"; - break; - case 0x0F: - str = "姿态指引"; - break; - default: - str = ""; - break; - } - m_tableModel->setItem(50,1,new QStandardItem(str)); - //吊舱框架方位角 - dou = (data.at(9)+data.at(10)*256)*0.01; - str = QString::number(dou,'f', 2); - m_tableModel->setItem(15,1,new QStandardItem(str)); - //吊舱框架俯仰角 - dou = (data.at(11)+data.at(12)*256)*0.01; - str = QString::number(dou,'f', 2); - m_tableModel->setItem(16,1,new QStandardItem(str)); - //吊舱框架横滚角 - dou = (data.at(13)+data.at(14)*256)*0.01; - str = QString::number(dou,'f', 2); - m_tableModel->setItem(17,1,new QStandardItem(str)); - //当前载荷版本号 - str = QString::number(data.at(15)>>4) + "." + QString::number(data.at(15)&'\x07'); - m_tableModel->setItem(39,1,new QStandardItem(str)); - //红外视场角 - dou = ((UINT8)data[16]+(UINT16)data[17]*256)*0.1; - str = QString::number(dou,'f', 1); - m_tableModel->setItem(9,1,new QStandardItem(str)); - //TF使用容量百分比 - str = QString::number((UINT8)data.at(18))+"%"; - m_tableModel->setItem(18,1,new QStandardItem(str)); - //可见光视场角 - dou = ((UINT8)data.at(19)+(UINT16)data.at(20)*256)*0.1; - str = QString::number(dou,'f', 1); - m_tableModel->setItem(7,1,new QStandardItem(str)); - //TF卡总容量 - dou = ((UINT8)data.at(21)+(UINT16)data.at(22)*256)*0.1; - str = QString::number(dou,'f', 1); - m_tableModel->setItem(19,1,new QStandardItem(str)); - //红外焦距 - dou = ((UINT8)data.at(23)+(UINT16)data.at(24)*256)*0.1; - str = QString::number(dou,'f', 1); - m_tableModel->setItem(8,1,new QStandardItem(str)); - //可见光焦距-白光 - dou = ((UINT8)data.at(25)+(UINT16)data.at(26)*256)*0.1; - str = QString::number(dou,'f', 1); - m_tableModel->setItem(6,1,new QStandardItem(str)); - //激光测距距离 - str = QString::number((UINT8)data.at(27)+(UINT16)data.at(28)*256); - m_tableModel->setItem(10,1,new QStandardItem(str)); - //目标定位经度 - flo = m_uint32_to_float(data.at(29),data.at(30),data.at(31),data.at(32)); - str = QString::number(flo,'f',6); - m_tableModel->setItem(40,1,new QStandardItem(str)); - //目标定位纬度 - flo = m_uint32_to_float(data.at(33),data.at(34),data.at(35),data.at(36)); - str = QString::number(flo,'f',6); - m_tableModel->setItem(41,1,new QStandardItem(str)); - //目标海拔高度 - str = QString::number(data.at(37)+data.at(38)*256); - m_tableModel->setItem(42,1,new QStandardItem(str)); - //最高温-温度 - // dou = (data.at(39)+data.at(40)*256)*0.1; - // str = QString::number(dou,'f',1); - // m_tableModel->setItem(42,1,new QStandardItem(str)); - //吊舱姿态方位角 - dou = (data.at(41)+data.at(42)*256)*0.01; - str = QString::number(dou,'f',2); - m_tableModel->setItem(1,1,new QStandardItem(str)); - //吊舱姿态俯仰角 - dou = (data.at(43)+data.at(44)*256)*0.01; - str = QString::number(dou,'f',2); - m_tableModel->setItem(2,1,new QStandardItem(str)); - //吊舱姿态横滚角 - dou = (data.at(45)+data.at(46)*256)*0.01; - str = QString::number(dou,'f',2); - m_tableModel->setItem(3,1,new QStandardItem(str)); - //当前显示图像反馈 - switch (data.at(47)) { - case 0x00: - str = "红外"; - break; - case 0x01: - str = "可见光"; - break; - case 0x02: - str = "上下分屏"; - break; - case 0x03: - str = "可见光画中画"; - break; - case 0x04: - str = "红外画中画"; - break; - case 0x05: - str = "左右分屏"; - break; - default: - str = "未知"; - break; - } - m_tableModel->setItem(27,1,new QStandardItem(str)); - //接收到的命令字反馈 - str = QString::number(data.at(48)); - m_tableModel->setItem(11,1,new QStandardItem(str)); - //姿态指示完成反馈 - switch (data.at(49)) { - case 0x12: - str = "姿态指示中"; - break; - case 0x13: - str = "姿态指示完成"; - break; - default: - str = "------"; - break; - } - m_tableModel->setItem(43,1,new QStandardItem(str)); - //跟踪中心点宽方向坐标 - str = QString::number((UINT8)data[50]+(UINT16)data[51]*256); - m_tableModel->setItem(4,1,new QStandardItem(str)); - //跟踪中心点高方向坐标 - str = QString::number((UINT8)data[52]+(UINT16)data[53]*256); - m_tableModel->setItem(5,1,new QStandardItem(str)); - //目标宽 - str = QString::number((UINT8)data.at(54)+data.at(55)*256); - m_tableModel->setItem(44,1,new QStandardItem(str)); - //目标高 - str = QString::number((UINT8)data.at(56)+data.at(57)*256); - m_tableModel->setItem(45,1,new QStandardItem(str)); - //目标类型 - switch (data.at(58)) { - case 0x00: - if(data.at(6)&'\x02'){//可见光 - str = "人"; - } - else{//红外 - str = "车"; - } - break; - case 0x01: - if(data.at(6)&'\x02'){//可见光 - str = "小汽车"; - } - else{//红外 - str = "人"; - } - break; - case 0x02: - if(data.at(6)&'\x02'){//可见光 - str = "公交车"; - } - break; - case 0x03: - if(data.at(6)&'\x02'){//可见光 - str = "卡车"; - } - break; - default: - str = "未知"; - break; - } - m_tableModel->setItem(46,1,new QStandardItem(str)); - //跟踪状态 - switch (data.at(59)) { - case 0x00: - str = "空闲状态"; - break; - case 0x01: - str = "稳定跟踪"; - break; - case 0x02: - str = "记忆跟踪"; - break; - case 0x03: - str = "目标丢失"; - break; - case 0x05: - str = "截获状态"; - break; - default: - str = "未知"; - break; - } - m_tableModel->setItem(47,1,new QStandardItem(str)); - //最高温 - dou = (data.at(60)+data.at(61)*256)*0.1; - str = QString::number(dou,'f',1)+"℃"; - m_tableModel->setItem(48,1,new QStandardItem(str)); - // + /*****吊舱状态2******/ + // 备用 + // 跟踪源类型 + if (data.at(6) & '\x02') { + str = "可见光"; + } else { + str = "红外"; } -} + m_tableModel->setItem(0, 1, new QStandardItem(str)); + // 红外电子变倍 + str = QString::number(((data.at(6) >> 2) & '\x7F') * 0.1, 'f', 1); + m_tableModel->setItem(13, 1, new QStandardItem(str)); + // 配置保存 + if (data.at(7) & '\x01') { + str = "保存成功"; + } else { + str = "未保存"; + } + m_tableModel->setItem(49, 1, new QStandardItem(str)); + // 可见光电子变倍 + switch ((data.at(7) >> 1) & '\x03') { + case 0: + str = "1x"; + break; + case 1: + str = "2x"; + break; + case 2: + str = "4x"; + break; + default: + str = "未知"; + break; + } + m_tableModel->setItem(14, 1, new QStandardItem(str)); + // 红外伪彩-色带 + switch ((data.at(7) >> 3) & '\x1F') { + case 0x00: + str = "白热"; + break; + case 0x01: + str = "黑热"; + break; + case 0x02: + str = "彩虹"; + break; + case 0x03: + str = "高对比度彩虹"; + break; + case 0x04: + str = "铁红"; + break; + case 0x05: + str = "熔岩"; + break; + case 0x06: + str = "天空"; + break; + case 0x07: + str = "中灰"; + break; + case 0x08: + str = "灰红"; + break; + case 0x09: + str = "紫橙"; + break; + case 0x0b: + str = "警示红"; + break; + case 0x0c: + str = "冰火"; + break; + default: + str = "未知"; + break; + } + m_tableModel->setItem(37, 1, new QStandardItem(str)); -bool GDDCStateInfo::checkdata(QByteArray buffer,int length, int type) -{ - if(length!=64){ - return false; + /*********伺服状态********/ + // 红外伪彩-色带 + switch ((data.at(7) >> 3) & '\x1F') { + case 0x00: + str = "待命"; + break; + case 0x01: + str = "关伺服"; + break; + case 0x02: + str = "手动"; + break; + case 0x03: + str = "收藏"; + break; + case 0x04: + str = "数引"; + break; + case 0x05: + str = "航向锁定"; + break; + case 0x06: + str = "扫描"; + break; + case 0x07: + str = "跟踪"; + break; + case 0x08: + str = "垂直下视"; + break; + case 0x09: + str = "陀螺自动较漂"; + break; + case 0xA0: + str = "陀螺温度较漂"; + break; + case 0x0B: + str = "航向随动"; + break; + case 0x0C: + str = "归中"; + break; + case 0x0D: + str = "手动陀螺较漂"; + break; + case 0x0F: + str = "姿态指引"; + break; + default: + str = ""; + break; + } + m_tableModel->setItem(50, 1, new QStandardItem(str)); + // 吊舱框架方位角 + dou = (data.at(9) + data.at(10) * 256) * 0.01; + str = QString::number(dou, 'f', 2); + m_tableModel->setItem(15, 1, new QStandardItem(str)); + // 吊舱框架俯仰角 + dou = (data.at(11) + data.at(12) * 256) * 0.01; + str = QString::number(dou, 'f', 2); + m_tableModel->setItem(16, 1, new QStandardItem(str)); + // 吊舱框架横滚角 + dou = (data.at(13) + data.at(14) * 256) * 0.01; + str = QString::number(dou, 'f', 2); + m_tableModel->setItem(17, 1, new QStandardItem(str)); + // 当前载荷版本号 + str = QString::number(data.at(15) >> 4) + "." + + QString::number(data.at(15) & '\x07'); + m_tableModel->setItem(39, 1, new QStandardItem(str)); + // 红外视场角 + dou = ((UINT8)data[16] + (UINT16)data[17] * 256) * 0.1; + str = QString::number(dou, 'f', 1); + m_tableModel->setItem(9, 1, new QStandardItem(str)); + // TF使用容量百分比 + str = QString::number((UINT8)data.at(18)) + "%"; + m_tableModel->setItem(18, 1, new QStandardItem(str)); + // 可见光视场角 + dou = ((UINT8)data.at(19) + (UINT16)data.at(20) * 256) * 0.1; + str = QString::number(dou, 'f', 1); + m_tableModel->setItem(7, 1, new QStandardItem(str)); + // TF卡总容量 + dou = ((UINT8)data.at(21) + (UINT16)data.at(22) * 256) * 0.1; + str = QString::number(dou, 'f', 1); + m_tableModel->setItem(19, 1, new QStandardItem(str)); + // 红外焦距 + dou = ((UINT8)data.at(23) + (UINT16)data.at(24) * 256) * 0.1; + str = QString::number(dou, 'f', 1); + m_tableModel->setItem(8, 1, new QStandardItem(str)); + // 可见光焦距-白光 + dou = ((UINT8)data.at(25) + (UINT16)data.at(26) * 256) * 0.1; + str = QString::number(dou, 'f', 1); + m_tableModel->setItem(6, 1, new QStandardItem(str)); + // 激光测距距离 + str = QString::number((UINT8)data.at(27) + (UINT16)data.at(28) * 256); + m_tableModel->setItem(10, 1, new QStandardItem(str)); + // 目标定位经度 + flo = m_uint32_to_float(data.at(29), data.at(30), data.at(31), data.at(32)); + str = QString::number(flo, 'f', 6); + m_tableModel->setItem(40, 1, new QStandardItem(str)); + // 目标定位纬度 + flo = m_uint32_to_float(data.at(33), data.at(34), data.at(35), data.at(36)); + str = QString::number(flo, 'f', 6); + m_tableModel->setItem(41, 1, new QStandardItem(str)); + // 目标海拔高度 + str = QString::number(data.at(37) + data.at(38) * 256); + m_tableModel->setItem(42, 1, new QStandardItem(str)); + // 最高温-温度 + // dou = (data.at(39)+data.at(40)*256)*0.1; + // str = QString::number(dou,'f',1); + // m_tableModel->setItem(42,1,new QStandardItem(str)); + // 吊舱姿态方位角 + dou = (data.at(41) + data.at(42) * 256) * 0.01; + str = QString::number(dou, 'f', 2); + m_tableModel->setItem(1, 1, new QStandardItem(str)); + // 吊舱姿态俯仰角 + dou = (data.at(43) + data.at(44) * 256) * 0.01; + str = QString::number(dou, 'f', 2); + m_tableModel->setItem(2, 1, new QStandardItem(str)); + // 吊舱姿态横滚角 + dou = (data.at(45) + data.at(46) * 256) * 0.01; + str = QString::number(dou, 'f', 2); + m_tableModel->setItem(3, 1, new QStandardItem(str)); + // 当前显示图像反馈 + switch (data.at(47)) { + case 0x00: + str = "红外"; + break; + case 0x01: + str = "可见光"; + break; + case 0x02: + str = "上下分屏"; + break; + case 0x03: + str = "可见光画中画"; + break; + case 0x04: + str = "红外画中画"; + break; + case 0x05: + str = "左右分屏"; + break; + default: + str = "未知"; + break; } - if((buffer.at(0) != '\xFC')||(buffer.at(1) != '\x2C')||buffer.at(63) !='\xF0') - { - return false; + m_tableModel->setItem(27, 1, new QStandardItem(str)); + // 接收到的命令字反馈 + str = QString::number(data.at(48)); + m_tableModel->setItem(11, 1, new QStandardItem(str)); + // 姿态指示完成反馈 + switch (data.at(49)) { + case 0x12: + str = "姿态指示中"; + break; + case 0x13: + str = "姿态指示完成"; + break; + default: + str = "------"; + break; } - if(type==1) - { - //亦或校验 - // for(int i = 2;i<62;++i) - // { - // buffer.at(i)^buffer.at(i+1); - // } + m_tableModel->setItem(43, 1, new QStandardItem(str)); + // 跟踪中心点宽方向坐标 + str = QString::number((UINT8)data[50] + (UINT16)data[51] * 256); + m_tableModel->setItem(4, 1, new QStandardItem(str)); + // 跟踪中心点高方向坐标 + str = QString::number((UINT8)data[52] + (UINT16)data[53] * 256); + m_tableModel->setItem(5, 1, new QStandardItem(str)); + // 目标宽 + str = QString::number((UINT8)data.at(54) + data.at(55) * 256); + m_tableModel->setItem(44, 1, new QStandardItem(str)); + // 目标高 + str = QString::number((UINT8)data.at(56) + data.at(57) * 256); + m_tableModel->setItem(45, 1, new QStandardItem(str)); + // 目标类型 + switch (data.at(58)) { + case 0x00: + if (data.at(6) & '\x02') { // 可见光 + str = "人"; + } else { // 红外 + str = "车"; + } + break; + case 0x01: + if (data.at(6) & '\x02') { // 可见光 + str = "小汽车"; + } else { // 红外 + str = "人"; + } + break; + case 0x02: + if (data.at(6) & '\x02') { // 可见光 + str = "公交车"; + } + break; + case 0x03: + if (data.at(6) & '\x02') { // 可见光 + str = "卡车"; + } + break; + default: + str = "未知"; + break; } - else if (type==2) - { - //和校验 + m_tableModel->setItem(46, 1, new QStandardItem(str)); + // 跟踪状态 + switch (data.at(59)) { + case 0x00: + str = "空闲状态"; + break; + case 0x01: + str = "稳定跟踪"; + break; + case 0x02: + str = "记忆跟踪"; + break; + case 0x03: + str = "目标丢失"; + break; + case 0x05: + str = "截获状态"; + break; + default: + str = "未知"; + break; } + m_tableModel->setItem(47, 1, new QStandardItem(str)); + // 最高温 + dou = (data.at(60) + data.at(61) * 256) * 0.1; + str = QString::number(dou, 'f', 1) + "℃"; + m_tableModel->setItem(48, 1, new QStandardItem(str)); + // + } +} - return true; +bool GDDCStateInfo::checkdata(QByteArray buffer, int length, int type) { + if (length != 64) { + return false; + } + if ((buffer.at(0) != '\xFC') || (buffer.at(1) != '\x2C') || + buffer.at(63) != '\xF0') { + return false; + } + if (type == 1) { + // 亦或校验 + // for(int i = 2;i<62;++i) + // { + // buffer.at(i)^buffer.at(i+1); + // } + } else if (type == 2) { + // 和校验 + } + return true; } diff --git a/Src/GDDC/gddcStateInfo.h b/Src/GDDC/gddcStateInfo.h index 1575234..5e0dfe6 100644 --- a/Src/GDDC/gddcStateInfo.h +++ b/Src/GDDC/gddcStateInfo.h @@ -1,71 +1,70 @@ #ifndef GDDCSTATEINFO_H #define GDDCSTATEINFO_H -#include -#include -#include -#include +#include "basetsd.h" #include -#include -#include -#include -#include -#include - -#include #include +#include +#include +#include #include -#include "basetsd.h" +#include +#include +#include namespace Ui { class GDDCStateInfo; } -class GDDCStateInfo : public QWidget -{ - Q_OBJECT +class GDDCStateInfo : public QWidget { + Q_OBJECT public: - explicit GDDCStateInfo(QWidget *parent = nullptr); - ~GDDCStateInfo(); + explicit GDDCStateInfo(QWidget *parent = nullptr); + ~GDDCStateInfo(); -public: - Ui::GDDCStateInfo *ui; +private: + Ui::GDDCStateInfo *ui; public: - void initParam(); //初始化参数 + void initParam(); // 初始化参数 public: - QStandardItemModel *m_tableModel; - /*数据校验 - * 数据 - * 数据长度 - * 校验方式 1亦或,2和校验 - */ - bool checkdata(QByteArray,int,int); - void UDPMessageReceive(QByteArray&,int); //udp数据接收 - typedef union - { - float float_value; - UINT8 uint8[4]; - }packet_uint32_to_float; - float m_uint32_to_float(UINT8 value4, UINT8 value3, UINT8 value2, UINT8 value1) - { - packet_uint32_to_float packet; + // 设置TableView的几何位置 + void setTableViewGeometry(int ax, int ay, int aw, int ah); + + QStandardItemModel *m_tableModel; + /*数据校验 + * 数据 + * 数据长度 + * 校验方式 1亦或,2和校验 + */ + bool checkdata(QByteArray, int, int); + void UDPMessageReceive(QByteArray &, int); // udp数据接收 + typedef union { + float float_value; + UINT8 uint8[4]; + } packet_uint32_to_float; + float m_uint32_to_float(UINT8 value4, UINT8 value3, UINT8 value2, + UINT8 value1) { + packet_uint32_to_float packet; - UINT8 buf[4]; memset(buf,0x00,sizeof(buf)); - buf[0] = (UINT8)((value1) & 0xFF); - buf[1] = (UINT8)((value2) & 0xFF); - buf[2] = (UINT8)((value3) & 0xFF); - buf[3] = (UINT8)((value4) & 0xFF); - UINT32 uint32 = ((buf[0]<<24) & 0XFFFFFFFF) + ((buf[1]<<16) & 0XFFFFFF) + ((buf[2]<<8) & 0XFFFF) + buf[3]; + UINT8 buf[4]; + memset(buf, 0x00, sizeof(buf)); + buf[0] = (UINT8)((value1) & 0xFF); + buf[1] = (UINT8)((value2) & 0xFF); + buf[2] = (UINT8)((value3) & 0xFF); + buf[3] = (UINT8)((value4) & 0xFF); + UINT32 uint32 = ((buf[0] << 24) & 0XFFFFFFFF) + + ((buf[1] << 16) & 0XFFFFFF) + ((buf[2] << 8) & 0XFFFF) + + buf[3]; - for(UINT8 i = 0; i < 4; i++) - { - packet.uint8[i] = (UINT8)(uint32>>(i*8)); - } - //print("modbus_uint32_to_float uint32=%d, value1=%d; value2=%d; float_value = %f;",uint32,value1,value2,packet.float_value); - return packet.float_value; + for (UINT8 i = 0; i < 4; i++) { + packet.uint8[i] = (UINT8)(uint32 >> (i * 8)); } + // print("modbus_uint32_to_float uint32=%d, value1=%d; value2=%d; + // float_value = %f;",uint32,value1,value2,packet.float_value); + return packet.float_value; + } }; #endif // GDDCSTATEINFO_H diff --git a/Src/GDDC/gddcdlg.cpp b/Src/GDDC/gddcdlg.cpp index 519dee3..c892635 100644 --- a/Src/GDDC/gddcdlg.cpp +++ b/Src/GDDC/gddcdlg.cpp @@ -86,7 +86,6 @@ void GDDCdlg::initParam() { Is_openVideo = false; isCmdPageShow = true; isStatePageShow = true; - m_DCcmdBuffer.resize(cmdLength); detectionAreaSetting = false; connectFlag.resize(12, false); } @@ -197,8 +196,8 @@ void GDDCdlg::mousePressEvent(QMouseEvent *event) { double b = ui->WgtffmpegVideo->height(); double dir = 1920 / a * widgetPoint.rx() - 960; double pitch = -(1080 / b * widgetPoint.ry() - 540); - m_GDDCCmdDlg->ui->lineEdit_6_1->setText(QString::number((int)dir)); - m_GDDCCmdDlg->ui->lineEdit_6_2->setText(QString::number((int)pitch)); + m_GDDCCmdDlg->setAIDetcLineEditText(QString::number((int)dir), + QString::number((int)pitch)); } // 目标跟踪 if (m_GDDCCmdDlg->pointSelectionTracking == true) { @@ -221,15 +220,15 @@ void GDDCdlg::mousePressEvent(QMouseEvent *event) { buffer[9] = (std::byte)0x00; // 发送5次 - sendCurDate(buffer, 3); + m_GDDCCmdDlg->sendCurDate(buffer, 3); } } } // 鼠标移动 void GDDCdlg::mouseMoveEvent(QMouseEvent *event) { if (m_GDDCCmdDlg->detectionAreaSetting == true) { - qDebug() << this->geometry().x(); - qDebug() << this->geometry().y(); + // qDebug() << this->geometry().x(); + // qDebug() << this->geometry().y(); QPointF sPoint1 = event->globalPosition(); // qDebug()<<"相对于屏幕坐标1:"<<"("<WgtffmpegVideo->height(); double dir = 1920 / a * widgetPoint.rx() - 960; double pitch = -(1080 / b * widgetPoint.ry() - 540); - m_GDDCCmdDlg->ui->lineEdit_6_1->setText(QString::number((int)dir)); - m_GDDCCmdDlg->ui->lineEdit_6_2->setText(QString::number((int)pitch)); + m_GDDCCmdDlg->setAIDetcLineEditText(QString::number((int)dir), + QString::number((int)pitch)); } } // 区域重绘 @@ -284,8 +283,7 @@ void GDDCdlg::resizeUI() { } m_GDDCCmdDlg->setGeometry(0, GDDCPageHeight - cmdAreaHeight, (int)cmdAreaWidth, (int)cmdAreaHeight); - m_GDDCCmdDlg->ui->tabWidget->setGeometry(0, 0, (int)cmdAreaWidth, - (int)cmdAreaHeight); + m_GDDCCmdDlg->setTabWidgetGeometry(0, 0, cmdAreaWidth, cmdAreaHeight); /*********状态区位置和大小设置***********/ double stateAreaHeight = GDDCPageHeight; @@ -297,8 +295,7 @@ void GDDCdlg::resizeUI() { } m_GDDCStateDlg->setGeometry(GDDCPageWidth - stateAreaWidth, 0, stateAreaWidth, stateAreaHeight); - m_GDDCStateDlg->ui->tableViewShowIState->setGeometry(0, 0, stateAreaWidth, - stateAreaHeight); + m_GDDCStateDlg->setTableViewGeometry(0, 0, stateAreaWidth, stateAreaHeight); /*******视频区位置和大小设置********/ double VideoAreaHeight = GDDCPageHeight - cmdAreaHeight; // 视频区高度 @@ -339,12 +336,12 @@ void GDDCdlg::resizeUI() { // 定时器处理 void GDDCdlg::GDDCControlTimeOut() { - if (sendTimes > 0) { - sendTimes -= 1; + if (m_GDDCCmdDlg->sendTimes > 0) { + m_GDDCCmdDlg->sendTimes -= 1; // UDP控制 if (connectFlag[3]) { - udpSocket->writeDatagram(m_DCcmdBuffer, + udpSocket->writeDatagram(m_GDDCCmdDlg->m_DCcmdBuffer, m_DlgGDDCSet->m_myPairNetwork.getRemoteAddr(), m_DlgGDDCSet->m_myPairNetwork.getRemotePort()); } @@ -352,15 +349,14 @@ void GDDCdlg::GDDCControlTimeOut() { // 串口控制 - if (sendTimes == 0) { - clearTJDCCmdBuffer(); + if (m_GDDCCmdDlg->sendTimes == 0) { + m_GDDCCmdDlg->clearTJDCCmdBuffer(); } } else { - UpdateDataTJDC(); - + m_GDDCCmdDlg->UpdateDataTJDC(); // UDP控制 if (connectFlag[3]) { - udpSocket->writeDatagram(m_DCcmdBuffer, + udpSocket->writeDatagram(m_GDDCCmdDlg->m_DCcmdBuffer, m_DlgGDDCSet->m_myPairNetwork.getRemoteAddr(), m_DlgGDDCSet->m_myPairNetwork.getRemotePort()); } @@ -371,24 +367,6 @@ void GDDCdlg::GDDCControlTimeOut() { } } -// 更新m_DCcmdBuffer -void GDDCdlg::UpdateDataTJDC() { - m_GDDCCmdDlg->UpdateDataTJDC(); - m_DCcmdBuffer = m_GDDCCmdDlg->m_DCcmdBuffer; -} - -// 赋值后清空TJDCCmdBuffer -void GDDCdlg::clearTJDCCmdBuffer() { m_GDDCCmdDlg->clearTJDCCmdBuffer(); } - -// 设置发送数据和次数 -void GDDCdlg::sendCurDate(std::byte *buffer, int num) { - sendTimes = num; - for (int i = 0; i < 10; ++i) { - m_GDDCCmdDlg->TJDCCmdBuffer[i] = buffer[i]; - } - UpdateDataTJDC(); -} - // 播放视频1 void GDDCdlg::startConnectURL1() { if (!connectFlag[0]) { diff --git a/Src/GDDC/gddcdlg.h b/Src/GDDC/gddcdlg.h index 27131c6..e7256f0 100644 --- a/Src/GDDC/gddcdlg.h +++ b/Src/GDDC/gddcdlg.h @@ -1,26 +1,26 @@ #ifndef GDDCDLG_H #define GDDCDLG_H -#include -#include +#include "Src/GDDC/gddcSet.h" +// #include "Src/Video/cffmpeg_decode.h" +#include "gddcCmdDlg.h" //吊舱控制对话框 +#include +#include #include +#include #include -#include +#include #include -#include +#include +#include #include #include #include -#include "Src/Video/cffmpeg_decode.h" -#include "Src/GDDC/gddcSet.h" #include -#include -#include -#include "gddcCmdDlg.h" //吊舱控制对话框 -#include "ui_gddcCmdDlg.h" //吊舱控制对话框ui -#include "gddcStateInfo.h" //吊舱状态信息显示对话框 -#include "ui_gddcStateInfo.h" //吊舱状态信息显示对话框 -#include "ui_gddcSet.h" +// #include "ui_gddcCmdDlg.h" //吊舱控制对话框ui +#include "gddcStateInfo.h" //吊舱状态信息显示对话框 +// #include "ui_gddcStateInfo.h" //吊舱状态信息显示对话框 +// #include "ui_gddcSet.h" #include "QProcess" #include #define cmdLength 44 @@ -28,76 +28,73 @@ namespace Ui { class GDDCdlg; } -class GDDCdlg : public QWidget -{ - Q_OBJECT +class GDDCdlg : public QWidget { + Q_OBJECT public: - explicit GDDCdlg(QWidget *parent = nullptr); - ~GDDCdlg(); + explicit GDDCdlg(QWidget *parent = nullptr); + ~GDDCdlg(); + private: - Ui::GDDCdlg *ui; - QTimer *GDDCControlTimer; + Ui::GDDCdlg *ui; + QTimer *GDDCControlTimer; + protected: - void resizeEvent(QResizeEvent *event); + void resizeEvent(QResizeEvent *event); public: - void initWindow(); //初始化窗口 - void initParam(); //初始化参数 - void initSignalSlot(); //初始化信号与槽 - void resizeUI(); //重新设置布局 + void initWindow(); // 初始化窗口 + void initParam(); // 初始化参数 + void initSignalSlot(); // 初始化信号与槽 + void resizeUI(); // 重新设置布局 - GDDCSet *m_DlgGDDCSet; //光电吊舱设置对话框 - GDDCCmdDlg *m_GDDCCmdDlg; //光电吊舱控制对话框 - GDDCStateInfo *m_GDDCStateDlg;//光电吊舱状态数据对话框 + GDDCSet *m_DlgGDDCSet; // 光电吊舱设置对话框 + GDDCCmdDlg *m_GDDCCmdDlg; // 光电吊舱控制对话框 + GDDCStateInfo *m_GDDCStateDlg; // 光电吊舱状态数据对话框 public: - QByteArray m_DCcmdBuffer;//存储吊舱控制指令 - void UpdateDataTJDC(); - void clearTJDCCmdBuffer(); - int sendTimes;//计划发送次数 - void sendCurDate(std::byte *,int);//发送当前数据:内容,发送次数 - //socket对象 - QUdpSocket *udpSocket; - // QString RemoteIP; //目标IP - // QHostAddress RemoteAddr; //目标地址 - // quint16 RemotePort; //目标port - QString localIP; //本地IP - QHostAddress localAddr; //本地地址 - quint16 localPort; //本地port - QProcess* process; //执行CMD - QThread workerThread; //线程 + // socket对象 + QUdpSocket *udpSocket; + // QString RemoteIP; //目标IP + // QHostAddress RemoteAddr; //目标地址 + // quint16 RemotePort; //目标port + QString localIP; // 本地IP + QHostAddress localAddr; // 本地地址 + quint16 localPort; // 本地port + QProcess *process; // 执行CMD + QThread workerThread; // 线程 + + // bool eventFilter(QObject *,QEvent *); //事件过滤器 + void mousePressEvent(QMouseEvent *event); // 事件过滤器 + void mouseMoveEvent(QMouseEvent *event); // 事件过滤器 - //bool eventFilter(QObject *,QEvent *); //事件过滤器 - void mousePressEvent(QMouseEvent *event); //事件过滤器 - void mouseMoveEvent(QMouseEvent *event); //事件过滤器 + void startConnectURL1(); + void stopConnectURL1(); + void startConnectURL2(); + void stopConnectURL2(); + void startConnectSerialCtrl(); + void stopConnectSerialCtrl(); + void startConnectUDPCtrl(); + void stopConnectUDPCtrl(); + void startConnectTCPCtrl(); + void stopConnectTCPCtrl(); + void startPushURL(); + void stopPushURL(); - void startConnectURL1(); - void stopConnectURL1(); - void startConnectURL2(); - void stopConnectURL2(); - void startConnectSerialCtrl(); - void stopConnectSerialCtrl(); - void startConnectUDPCtrl(); - void stopConnectUDPCtrl(); - void startConnectTCPCtrl(); - void stopConnectTCPCtrl(); - void startPushURL(); - void stopPushURL(); public: - bool pointSelectionTracking; //选点跟踪 - bool Is_openVideo; //视频是否已打开,默认未打开 - std::vector connectFlag; // 0视频流1;1视频流2;2串口通信,3网口通信 - bool isCmdPageShow; //控制页是否显示 - bool isStatePageShow; //状态页是否显示 - bool detectionAreaSetting; //检测区域设置 + bool pointSelectionTracking; // 选点跟踪 + bool Is_openVideo; // 视频是否已打开,默认未打开 + std::vector connectFlag; // 0视频流1;1视频流2;2串口通信,3网口通信 + bool isCmdPageShow; // 控制页是否显示 + bool isStatePageShow; // 状态页是否显示 + bool detectionAreaSetting; // 检测区域设置 public slots: - void GDDCControlTimeOut(); - void startConnect(int); //开始连接 - void stopConnect(int); //停止连接 - void UDPMessageReceive(); //udp数据接收 - void pushButtonSet_clicked(); - void pushButShowCmdPage_clicked(); - void pushButShowStatePage_clicked(); + void GDDCControlTimeOut(); + void startConnect(int); // 开始连接 + void stopConnect(int); // 停止连接 + void UDPMessageReceive(); // udp数据接收 + void pushButtonSet_clicked(); + void pushButShowCmdPage_clicked(); + void pushButShowStatePage_clicked(); }; #endif // GDDCDLG_H