mainwindow.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include <QStandardItemModel>
  5. #include <QtCharts/QChartView>
  6. #include <QtCharts/QLineSeries>
  7. #include <QtCharts/QDateTimeAxis>
  8. #include <QtCharts/QValueAxis>
  9. #include "soft_bus_core/soft_bus_core.h"
  10. #include "serial_manager/serial_manager.h"
  11. QT_BEGIN_NAMESPACE
  12. class QListView;
  13. class QTableView;
  14. class QSplitter;
  15. class QLabel;
  16. namespace Ui
  17. {
  18. class MainWindow;
  19. }
  20. QT_END_NAMESPACE
  21. namespace QtCharts
  22. {
  23. class QChart;
  24. }
  25. class MainWindow : public QMainWindow
  26. {
  27. Q_OBJECT
  28. public:
  29. explicit MainWindow(QWidget *parent = nullptr);
  30. ~MainWindow();
  31. private slots:
  32. void updateDeviceList();
  33. void showRawData(const QString &deviceId);
  34. void showBusMessages(const QString &source);
  35. void updateChart(const BusMessage &message);
  36. void onDeviceSelected(const QModelIndex &index);
  37. void onSerialDataReceived(const QString &portName, const QByteArray &data);
  38. // btn_fun
  39. void on_btn_serial_clear_clicked();
  40. void on_btn_serial_clear_send_clicked();
  41. void on_btn_serial_send_clicked();
  42. void on_checkbox_serial_hex_toggled(bool checked);
  43. void on_checkbox_serial_ascii_toggled(bool checked);
  44. // modbus_btn_fun
  45. void on_checkbox_modbus_rtu_toggled(bool checked);
  46. void on_checkbox_modbus_ascii_toggled(bool checked);
  47. void on_checkbox_modbus_tcp_toggled(bool checked);
  48. private:
  49. void createUI();
  50. void createConnections();
  51. void initializeSystem();
  52. void modbusSetting_ui(const QString &deviceId);
  53. void onModbusControlChanged(int index);
  54. void onConfirmModbusSet();
  55. void onGenerateModbusDatagram();
  56. quint16 calculateCRC(const QByteArray &data);
  57. QList<QStandardItem*> createRow(const QString &param, const QString &defaultValue);
  58. private:
  59. Ui::MainWindow *ui;
  60. // 核心组件
  61. SoftBusCore *m_busCore;
  62. SerialManager *m_serialManager;
  63. // UI组件
  64. QTableView *m_dataTable; // 原始数据表
  65. QStandardItemModel *m_deviceModel;
  66. QStandardItemModel *m_raw_dataModel;
  67. QStandardItemModel *m_bus_dataModel;
  68. QStandardItemModel *m_serial_settingsModel; // 串口设置表Table;
  69. QLineSeries *m_dataSeries;
  70. QtCharts::QChart *m_chart;
  71. QString m_currentDeviceId; // 当前选择的设备ID
  72. };
  73. #endif // MAINWINDOW_H