您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

91 行
2.2 KiB

  1. /*******************************
  2. * Copyright (C) 2025.
  3. *
  4. * File Name: widget.h
  5. * Description: 显示与交互界面配置
  6. * Others:
  7. * Version: 1.0
  8. * Author: lipengpeng
  9. * Date: 2025-7-23
  10. *******************************/
  11. #ifndef WIDGET_H
  12. #define WIDGET_H
  13. #include <QSerialPort>
  14. #include <QWidget>
  15. #include <QTimer>
  16. #include "mymodbus.h"
  17. #include "communicationhistory.h"
  18. #include "serialcommunicator.h"
  19. /**
  20. * @class Widget
  21. * @brief 主窗口类,负责用户界面和串口通信控制
  22. *
  23. * 该类提供串口连接、数据读写、历史记录管理等功能。
  24. * 使用SerialCommunicator处理底层串口通信,MyModbus处理Modbus协议。
  25. */
  26. namespace Ui {
  27. class Widget;
  28. }
  29. class Widget : public QWidget
  30. {
  31. Q_OBJECT
  32. public:
  33. /**
  34. * @brief 构造函数,初始化界面和通信对象
  35. * @param parent 父窗口指针,默认为空
  36. */
  37. explicit Widget(QWidget *parent = 0);
  38. /**
  39. * @brief 析构函数,清理资源
  40. */
  41. ~Widget();
  42. private slots:
  43. //连接/断开串口按钮槽函数
  44. void on_btnConnect_clicked();
  45. //发送写数据命令报文按钮槽函数
  46. void on_pushWrite_clicked();
  47. //发送读数据命令报文按钮槽函数
  48. void on_btn_read_clicked();
  49. //保存历史通信数据按钮槽函数
  50. void on_btn_SaveDate_clicked();
  51. //读取历史通信数据按钮槽函数
  52. void on_btn_ReadDate_clicked();
  53. //清空当前通信数据文本框按钮槽函数
  54. void on_btn_ClearDate_clicked();
  55. //清空解析数据文本框按钮槽函数
  56. void on_btn_ClearRead_clicked();
  57. /**
  58. * @brief 串口数据接收槽函数
  59. * @param data 接收到的字节数据
  60. */
  61. void onSerialDataReceived(const QByteArray &data);
  62. /**
  63. * @brief 串口状态变化槽函数
  64. * @param status 状态描述字符串
  65. */
  66. void onSerialStatusChanged(const QString &status);
  67. // 串口通信超时处理槽函数
  68. void onSerialTimeout();
  69. private:
  70. Ui::Widget *ui_; // 指向用户界面的指针
  71. SerialCommunicator *serialComm_; // 串口通信处理对象
  72. MyModbus *modbus_; // Modbus协议处理对象
  73. };
  74. #endif // WIDGET_H