#ifndef MAINWIDGET_H #define MAINWIDGET_H #include #include #include #include "USB485_Ctrl.h" #include "PDUInfoDef.h" #include "widget.h" #include #include #include #include #include "serialinfo.h" QT_BEGIN_NAMESPACE namespace Ui { class MainWidget; } QT_END_NAMESPACE class MainWidget : public QWidget { Q_OBJECT public: MainWidget(QWidget *parent = nullptr); ~MainWidget(); void InitUI(); void InitConnect(); private slots: /*手动连接槽函数*/ void manual_serialPortReadyRead(); /*以下为mainwindow.ui文件中点击“转到槽”自动生成的函数*/ void on_Button_openserial_clicked(); void on_Button_tx_clicked(); void on_Button_clearrecive_clicked(); void on_Button_cleartx_clicked(); void on_check_autosend_stateChanged(int arg1); void on_Button_checkserial_clicked(); void slot_changeDebugMode(); void UpdateStatusInfo(); void on_check_autoprintf_stateChanged(int arg1); public slots: void on_add_PDUStatus(const QString &sendstr, const QString &recstr); private: void setNumOnLabel(QLabel *lbl, QString strS, long num); private: Ui::MainWidget *ui; // 发送、接收字节计数 QLabel *lblSendNum; QLabel *lblRecvNum; QLabel *lblPortState; // 定时发送-定时器 QTimer *timSend= NULL; //QTimer *timRec= NULL; QTimer *_timer_update_info = NULL; Usb485_Ctrl m_USBCtrl; Widget m_chWidget[64]; public: SerialInfo* m_SerialInfo; void requestUsbPermission(const QString &devicePath); bool modifyUsbDeviceXml(const QString &filePath, const QString &newVendorId, const QString &newProductId); QString on_Read_PDUStatus(); }; #endif // MAINWIDGET_H