#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include // #include #include #include #include #include #include #include #include #include #include // #include "logger.hpp" #include "qfunction.hpp" #include "zqthread.hpp" QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE typedef enum { kreg_val_type_dotted_hex, // 点分16进制 kreg_val_type_dotted_decimal, // 点分10进制 kreg_val_type_str, kreg_val_type_hex, kreg_val_type_decimal, kreg_val_type_binary, kreg_val_type_freq, kreg_val_type_signal, } reg_val_type_t; class DispalyRegIterm { public: QLabel *label = 0; QTextBrowser *regBrowser = 0; QTextEdit *regEditer = 0; QPushButton *writerButton = 0; uint32_t regvalcache; reg_val_type_t regvaltype; }; class MainWindow : public QMainWindow { Q_OBJECT private: std::map m_regdisplayer; std::unique_ptr m_thread; public: Ui::MainWindow *ui; MainWindow(QWidget *parent = nullptr); ~MainWindow(); void refreshPage(); void updatePage(); void refreshReadonlyPage0(); void refreshReadonlyPage1(); void refreshReadonlyPage2(); void refreshReadonlyPage3(); bool checkConnected(); private slots: /** * @brief 一部修改UI方法 */ void doinui_slot(QFunction); signals: void doinui_signal(QFunction); private: static void log_output(QtMsgType type, const QMessageLogContext &context, const QString &msg); void constructUI(); void dumpLog(const char *fmt, ...); void displayInfo(bool suc,QString info); }; #endif // MAINWINDOW_H