You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PayloadAPP/Src/GDDC/gddcdlg.h

304 lines
10 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#ifndef GDDCDLG_H
#define GDDCDLG_H
#include <QWidget>
#include <QUdpSocket>
#include <QHostAddress>
#include <QNetworkDatagram>
#include <QByteArray>
#include <QTimer>
#include <QMouseEvent>
#include <fstream>
#include <iostream>
#include <string>
#include "cffmpeg_decode.h"
#include "Src/GDDC/gddcSet.h"
#include <vector>
#include <QHeaderView>
#include <QStandardItemModel>
#define cmdLength 44
namespace Ui {
class GDDCdlg;
}
class GDDCdlg : public QWidget
{
Q_OBJECT
public:
explicit GDDCdlg(QWidget *parent = nullptr);
~GDDCdlg();
private:
Ui::GDDCdlg *ui;
QTimer *GDDCControlTimer;
protected:
void resizeEvent(QResizeEvent *event);
public:
void initWindow(); //初始化窗口
void initParam(); //初始化参数
void initSignalSlot(); //初始化信号与槽
void resizeUI(); //重新设置布局
public:
QByteArray m_DCcmdBuffer;//存储吊舱控制指令
std::byte TJDCCmdBuffer[10];
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
GDDCSet *m_DlgGDDCSet; //光电吊舱设置对话框
//bool eventFilter(QObject *,QEvent *); //事件过滤器
void mousePressEvent(QMouseEvent *event); //事件过滤器
void mouseMoveEvent(QMouseEvent *event); //事件过滤器
QStandardItemModel *m_tableModel;
void startConnectURL1();
void stopConnectURL1();
void startConnectURL2();
void stopConnectURL2();
void startConnectSerialCtrl();
void stopConnectSerialCtrl();
void startConnectUDPCtrl();
void stopConnectUDPCtrl();
void startConnectTCPCtrl();
void stopConnectTCPCtrl();
/*数据校验
* 数据
* 数据长度
* 校验方式 1亦或2和校验
*/
bool checkdata(QByteArray,int,int);
public:
bool pointSelectionTracking = false; //选点跟踪
bool param_pushButton_3_9;
int paramDigitalZoom;//电子放大参数
bool paramIsFrame; //是否是框架/陀螺校准
bool detectionAreaSetting;//检测区域设置
bool Is_openVideo = false;//视频是否已打开,默认未打开
std::vector<bool> connectFlag; // 0视频流11视频流22串口通信3网口通信
bool isCmdAreaShow = true;//控制区域是否显示
public slots:
void GDDCControlTimeOut();
void startConnect(int); //开始连接
void stopConnect(int); //停止连接
void UDPMessageReceive(); //udp数据接收
public:
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];
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;
}
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();
/*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_pushButtonSet_clicked();
void on_pushButShowCmdArea_clicked();
};
#endif // GDDCDLG_H