This commit is contained in:
91
mainwindow.h
Normal file
91
mainwindow.h
Normal file
@ -0,0 +1,91 @@
|
||||
#ifndef MAINWINDOW_H
|
||||
#define MAINWINDOW_H
|
||||
|
||||
#include "clickablecombobox.h"
|
||||
#include <QMainWindow>
|
||||
//#include <QSerialPort>
|
||||
#include <QSerialPortInfo>
|
||||
#include <QTimer>
|
||||
#include <QLabel>
|
||||
#include <QSettings>
|
||||
#include <QSystemTrayIcon>
|
||||
#include <QMap>
|
||||
#include <QFile>
|
||||
|
||||
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
namespace Ui { class MainWindow; }
|
||||
QT_END_NAMESPACE
|
||||
|
||||
class MainWindow : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
MainWindow(QWidget *parent = nullptr);
|
||||
~MainWindow();
|
||||
ClickableComboBox *portComboBox;
|
||||
|
||||
private slots:
|
||||
void on_openButton_clicked();
|
||||
void on_closeButton_clicked();
|
||||
void on_sendButton_clicked();
|
||||
void on_clearSendButton_clicked();
|
||||
void on_clearReceiveButton_clicked();
|
||||
void on_clearDecimalButton_clicked();
|
||||
void readData();
|
||||
void on_saveButton_clicked();
|
||||
void on_timerButton_clicked();
|
||||
void timer_Event();
|
||||
void on_realTimeSaveCheckBox_stateChanged(int state);
|
||||
void openConfigDir(); // 打开配置文件目录
|
||||
void openRealTimeSaveDir(); // 打开实时保存目录
|
||||
void parseBeidouData(const QString& beidouData);
|
||||
void parseTxxxData(const QString& payload);
|
||||
QString hexToAscii(const QString& hexStr);
|
||||
void processHexTxxxFrames();
|
||||
void processHexBdtxrFrames();
|
||||
|
||||
|
||||
private:
|
||||
Ui::MainWindow *ui;
|
||||
QSerialPort *serial;
|
||||
QTimer *timer;
|
||||
|
||||
void updatePortList();
|
||||
void updateBaudRateList();
|
||||
void saveRealTimeData(const QString &data); // 单参数版本,ID从行尾提取
|
||||
QFile realTimeFile;
|
||||
|
||||
int txCount; // S
|
||||
int rxCount; // R
|
||||
QLabel *txLabel; // 发送计数的标签
|
||||
QLabel *rxLabel; // 接收计数的标签
|
||||
|
||||
QByteArray dataBuffer;
|
||||
|
||||
void readConfig(); // 用于读取配置文件
|
||||
QString defaultFilePath; // 保存默认文件路径
|
||||
void generateFileName();
|
||||
|
||||
QSystemTrayIcon *trayIcon; // 托盘图标
|
||||
void closeEvent(QCloseEvent *event) override;
|
||||
|
||||
QMap<QString, QFile*> realTimeFiles;
|
||||
QByteArray receiveBuffer; // 解析缓冲(原始字节)
|
||||
QByteArray displayBuffer; // 接收区显示缓冲(文本模式)
|
||||
QString hexParseBuffer; // 十六进制解析缓冲(空格分隔的大写HEX)
|
||||
QMap<QString, int> recordCounts; // 存储每个ID的记录计数
|
||||
void initializeRecordCounts(); // 初始化记录计数函数
|
||||
int getLastRecordFromFile(const QString &filePath); // 读取文件最后一条RECORD值
|
||||
|
||||
// 日志相关
|
||||
QFile *logFile; // 日志文件
|
||||
void initializeLogFile(); // 初始化日志文件
|
||||
void writeLog(const QString &message); // 写入日志
|
||||
QString logDirPath; // 日志目录(来自 config.ini 的 [Log]/defaultPath)
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif // MAINWINDOW_H
|
||||
Reference in New Issue
Block a user