#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 "src/logger.hpp" #include "src/qfunction.hpp" #include "src/xsync_udp_factory_impl.hpp" #include "src/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(); private: void construct_reg_table(); void push_reg(QWidget *parent, int off, const char *regname, int32_t regadd, int32_t rwflag, reg_val_type_t regvaltype); /******************************************************************************* * 日志 * *******************************************************************************/ static void log_output(QtMsgType type, const QMessageLogContext &context, const QString &msg); private slots: void append_log_slot(QString); void on_RefreshRegsButton_clicked(); void on_ClearLogButton_clicked(); void on_Connect2XsyncButton_clicked(); void on_GenNewMac_clicked(); void on_FactoryReset_clicked(); void on_Reboot_clicked(); void on_ChangeNetCfg_clicked(); void updateUI_timeCodeInfo_slot(QString); void updateUI_cameraSyncInfo_slot(QString); void updateUI_reg_slot(int32_t regadd, uint32_t regval); void doinui_slot(QFunction); // void on_CameraSyncPacketGeneratorModule_Update_clicked(); // void on_CameraSyncPacketGeneratorModule_Read_clicked(); // void on_CameraSyncPacketGeneratorModule_ClearPacketIndex_clicked(); void on_TimecodePage_Read_clicked(); void on_TimecodePage_Update_clicked(); void on_tabWidget_currentChanged(int index); void on_TTLInputModule_Index_currentIndexChanged(int index); void on_TTLOutputMoudle_ID_currentIndexChanged(int index); void on_TTLPage_Read_clicked(); void on_TTLPage_Write_clicked(); void on_GenlockPage_Read_clicked(); void on_GenlockPage_Write_clicked(); void on_SysClockPage_Read_clicked(); void on_SysClockPage_Wirte_clicked(); void on_RecordSigGen_Read_clicked(); void on_RecordSigGen_Write_clicked(); void on_RecordSigGenerator_manualStart_clicked(); void on_RecordSigGenerator_manualStop_clicked(); signals: void append_log_signal(QString str); void updateUI_timeCodeInfo_signal(QString); void updateUI_cameraSyncInfo_signal(QString); void updateUI_reg_signal(int32_t regadd, uint32_t regval); void doinui_signal(QFunction); private: void mainWindowsRun(); void updateUI_reg(uint32_t regoff); void UI_SysClockPageConstruct(); void UI_TTLOutputMoudleConstruct(); void UI_TimecodePageConstruct(); void UI_GenlockPageConstruct(); void UI_RecordSigGenConstruct(); // void UI_CameraSyncPacketGeneratorModuleConstruct(); void UI_TTLPageConstruct(); }; #endif // MAINWINDOW_H