代码拉取完成,页面将自动刷新
同步操作将从 yxpworks/Sonar_GUI 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#ifndef SERVER2_H
#define SERVER2_H
#include <QObject>
#include <QTcpServer> //监听套接字
#include <QTcpSocket> //通信套接字
#include <QDebug>
#include <QHostAddress>
#include <QProcess>
#include <QMetaType>
#include <QDateTime>
#include <QDataStream>
#include "tankdata.h"
#include "save_file.h"
#include "datachange.h"
extern bool datachange_flag;
//用于存储接收到的数据包
class SocketPacket
{
public:
int field_number; //包计数
long length; //数据长度
QByteArray data; //数据
QByteArray dataType; //数据类型
bool readdataflag = false; //读数据标志为
bool readdataheadflag = false; //读数据头标志为
SocketPacket()
{
length = -1;
}
void clear()
{
length = -1;
data.clear();
dataType.clear();
}
};
//数据缓存区
class RecvBuffer{
public :
int packetSize = sizeof(pack_Control_To_PC_Sonar_data);
QByteArray buffer;
};
class tcpclient2 : public QObject
{
Q_OBJECT
public:
explicit tcpclient2(QObject *parent = nullptr);
~tcpclient2();
QTcpSocket *tcpSocket = nullptr; //通信套接字
QTcpServer *tcpServer = nullptr; //监听套接字
SocketPacket m_dataPacket; //用于储存的数据包
RecvBuffer recvBuffer;
QVector<pack_Control_To_PC_Sonar_data> pluseInfos;
bool conectflag = false;
save_file *m_save_file; //存文件,用于存储声纳数据
QFile txtFd;
bool closing = false;
public slots:
void creattcpclient();
void write(const char *data, qint64 len);
public:
void read();
void read_data(); //网口数据读取函数
bool parsePacket(QTcpSocket *socket, SocketPacket *packet);
public slots:
void connectnet(QString IP, quint16 PORT); //连接到网口
void disconnectnet(); //断开网口
void sendData(const QString &data);
void setfilename(QString name);
void setsavefileflag(bool flag);
void onReceive();
signals:
void showstatus(QString);
void recivedone(QString, Qt::GlobalColor);
void displaySASTankStatus();
void displaySonarWorkingStatus();
void displayPressureHeight();
void displayAltitudeSensor();
void canrun();
void card_state(int);
void connect_done(); //连接完成信号
void disconnect_done(); //断开完成信号
void startdatachange(char *); //开始fft转换
public:
bool HexSendtcpclient = true; //16进制发送
bool Asciitcpclient; //ASCII模式
private:
QByteArray m_buffer; //接收数据缓冲区
pack_Control_Head *m_pack_Control_Head;
pack_Control_To_PC_Sonar_data *Sonardata_Data;
QString filename; //保存文件名
bool savedataflag = true; //ARM端SATA保存数据标志位
char tempsonardatabuf[8000]; //临时存放声纳数据,用于FFT转换
int strHexToDecimal(const QString &strHex);
char convertHexChar(char ch);
QByteArray asciiStrToByteArray(const QString &str);
QByteArray hexStrToByteArray(const QString &str);
};
#endif // SERVER_H
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。