diff --git a/CMakeLists.txt b/CMakeLists.txt index d6de5a7..bc4eb2a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,8 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) find_package(QT NAMES Qt6 Qt5 COMPONENTS Widgets console REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Widgets Charts Concurrent REQUIRED) +include_directories(libxsync/include) + set(PROJECT_SOURCES src/logger.cpp src/main.cpp @@ -25,6 +27,7 @@ set(PROJECT_SOURCES mainwindow.ui libxsync/xsync.cpp src/xsync_udp_factory_impl.cpp + libxsync/src/xsync_v2_sig_type.cpp ) diff --git a/libxsync b/libxsync index 8524703..82fd643 160000 --- a/libxsync +++ b/libxsync @@ -1 +1 @@ -Subproject commit 852470380e9fb47c02af3945bed70053e0427852 +Subproject commit 82fd6434b8606480f4c9c687416af0b842388958 diff --git a/mainwindow.cpp b/mainwindow.cpp index 4e5f898..f13d29a 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -73,7 +73,7 @@ void MainWindow::push_reg(QWidget *parent, int off, const char *regname, int32_t sizePolicy1.setVerticalStretch(0); sizePolicy1.setHeightForWidth(label->sizePolicy().hasHeightForWidth()); label->setSizePolicy(sizePolicy1); - label->setMinimumSize(QSize(250, 0)); + label->setMinimumSize(QSize(300, 0)); label->setMaximumSize(QSize(16777215, 16777215)); ui->reg_table->addWidget(label, off, 0, 1, 1); regitem->label = label; @@ -132,7 +132,7 @@ void MainWindow::push_reg(QWidget *parent, int off, const char *regname, int32_t if (ecode == kxs_ec_success) { ZLOGI(TAG, "write reg 0x%04x %d success", regadd, regval); m_regdisplayer[regadd]->regvalcache = readbackval; - updateUI_timeCodeInfo(regadd); + updateUI_reg(regadd); } else { ZLOGE(TAG, "write reg 0x%04x %d fail,ecode:%s", regadd, regval, xs_error_code_2_str(ecode)); } @@ -145,7 +145,7 @@ void MainWindow::push_reg(QWidget *parent, int off, const char *regname, int32_t m_regdisplayer[regadd] = regitem; } -void MainWindow::updateUI_timeCodeInfo(uint32_t regoff) { +void MainWindow::updateUI_reg(uint32_t regoff) { // m_regdisplayer[regoff]->regBrowser->setText("0x" + QString::number(regValue, 16)); uint32_t regval = m_regdisplayer[regoff]->regvalcache; @@ -181,69 +181,111 @@ void MainWindow::construct_reg_table() { // push_reg(ui->gridLayoutWidget, regoff++, "sn_id2", reg::ksn_id2, 0, kreg_val_type_dotted_hex); push_reg(ui->gridLayoutWidget, regoff++, "mac0", reg::kmac0, 0, kreg_val_type_dotted_hex); push_reg(ui->gridLayoutWidget, regoff++, "mac1", reg::kmac1, 0, kreg_val_type_dotted_hex); - - // reg::kstm32_ip - // reg::kstm32_gw - // reg::kstm32_netmask - // reg::kstm32_camera_sync_signal_count - push_reg(ui->gridLayoutWidget, regoff++, "stm32_ip", reg::kstm32_ip, 0, kreg_val_type_dotted_decimal); push_reg(ui->gridLayoutWidget, regoff++, "stm32_gw", reg::kstm32_gw, 0, kreg_val_type_dotted_decimal); push_reg(ui->gridLayoutWidget, regoff++, "stm32_netmask", reg::kstm32_netmask, 0, kreg_val_type_dotted_decimal); push_reg(ui->gridLayoutWidget, regoff++, "stm32_camera_sync_signal_count", reg::kstm32_camera_sync_signal_count, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "fpga_reg_test_reg0", reg::kfpga_info_reg0, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "fpga_reg_test_reg1", reg::kfpga_info_reg1, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "fpga_reg_test_reg2", reg::kfpga_info_reg2, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "fpga_reg_test_reg3", reg::kfpga_info_reg3, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "fpga_reg_test_reg4", reg::kfpga_info_reg4, 0, kreg_val_type_hex); + + push_reg(ui->gridLayoutWidget, regoff++, "ttlin_module", reg::k_ttlin_module, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "ttlin_en_reg", reg::k_ttlin_en_reg, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlin1_freq_detector_reg", reg::k_ttlin1_freq_detector_reg, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlin2_freq_detector_reg", reg::k_ttlin2_freq_detector_reg, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlin3_freq_detector_reg", reg::k_ttlin3_freq_detector_reg, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlin4_freq_detector_reg", reg::k_ttlin4_freq_detector_reg, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlin1_filter_factor_reg", reg::k_ttlin1_filter_factor_reg, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlin2_filter_factor_reg", reg::k_ttlin2_filter_factor_reg, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlin3_filter_factor_reg", reg::k_ttlin3_filter_factor_reg, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlin4_filter_factor_reg", reg::k_ttlin4_filter_factor_reg, 0, kreg_val_type_decimal); + + /******************************************************************************* + * TIMECODE输入模块 * + *******************************************************************************/ + + push_reg(ui->gridLayoutWidget, regoff++, "internal_timecode_module", reg::internal_timecode_module, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "internal_timecode_en", reg::internal_timecode_en, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "internal_timecode_format", reg::internal_timecode_format, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "internal_timecode_data0", reg::internal_timecode_data0, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "internal_timecode_data1", reg::internal_timecode_data1, 0, kreg_val_type_decimal); + + push_reg(ui->gridLayoutWidget, regoff++, "external_timecode_module", reg::external_timecode_module, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "external_timecode_sig_selt", reg::external_timecode_sig_selt, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "external_timecode_format", reg::external_timecode_format, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "external_timecode_code0", reg::external_timecode_code0, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "external_timecode_code1", reg::external_timecode_code1, 0, kreg_val_type_decimal); + + push_reg(ui->gridLayoutWidget, regoff++, "sys_timecode_module", reg::sys_timecode_module, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "sys_timecode_select", reg::sys_timecode_select, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "sys_timecode_format", reg::sys_timecode_format, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "sys_timecode_data0", reg::sys_timecode_data0, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "sys_timecode_data1", reg::sys_timecode_data1, 0, kreg_val_type_decimal); + + push_reg(ui->gridLayoutWidget, regoff++, "timecode_output_module", reg::timecode_output_module, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "timecode_output_timecode0", reg::timecode_output_timecode0, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "timecode_output_timecode1", reg::timecode_output_timecode1, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "timecode_output_timecode_format", reg::timecode_output_timecode_format, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "timecode_output_bnc_outut_level_select", reg::timecode_output_bnc_outut_level_select, 0, kreg_val_type_decimal); + + /******************************************************************************* + * TTL输出模块配置 * + *******************************************************************************/ + + push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_module", reg::kreg_ttlout1_module, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_signal_process_mode", reg::kreg_ttlout1_signal_process_mode, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_input_signal_select", reg::kreg_ttlout1_input_signal_select, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_pllout_freq_division_ctrl", reg::kreg_ttlout1_pllout_freq_division_ctrl, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_pllout_freq_multiplication_ctrl", reg::kreg_ttlout1_pllout_freq_multiplication_ctrl, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_pllout_polarity_ctrl", reg::kreg_ttlout1_pllout_polarity_ctrl, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_pllout_trigger_edge_select", reg::kreg_ttlout1_pllout_trigger_edge_select, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_forward_mode_polarity_ctrl", reg::kreg_ttlout1_forward_mode_polarity_ctrl, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_freq_detect_bias", reg::kreg_ttlout1_freq_detect_bias, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_placeholder0", reg::kreg_ttlout1_placeholder0, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_sig_in_freq_detect", reg::kreg_ttlout1_sig_in_freq_detect, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_sig_out_freq_detect", reg::kreg_ttlout1_sig_out_freq_detect, 0, kreg_val_type_decimal); + + push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_module", reg::kreg_ttlout2_module, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_signal_process_mode", reg::kreg_ttlout2_signal_process_mode, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_input_signal_select", reg::kreg_ttlout2_input_signal_select, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_pllout_freq_division_ctrl", reg::kreg_ttlout2_pllout_freq_division_ctrl, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_pllout_freq_multiplication_ctrl", reg::kreg_ttlout2_pllout_freq_multiplication_ctrl, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_pllout_polarity_ctrl", reg::kreg_ttlout2_pllout_polarity_ctrl, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_pllout_trigger_edge_select", reg::kreg_ttlout2_pllout_trigger_edge_select, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_forward_mode_polarity_ctrl", reg::kreg_ttlout2_forward_mode_polarity_ctrl, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_freq_detect_bias", reg::kreg_ttlout2_freq_detect_bias, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_placeholder0", reg::kreg_ttlout2_placeholder0, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_sig_in_freq_detect", reg::kreg_ttlout2_sig_in_freq_detect, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_sig_out_freq_detect", reg::kreg_ttlout2_sig_out_freq_detect, 0, kreg_val_type_decimal); + + push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_module", reg::kreg_ttlout3_module, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_signal_process_mode", reg::kreg_ttlout3_signal_process_mode, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_input_signal_select", reg::kreg_ttlout3_input_signal_select, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_pllout_freq_division_ctrl", reg::kreg_ttlout3_pllout_freq_division_ctrl, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_pllout_freq_multiplication_ctrl", reg::kreg_ttlout3_pllout_freq_multiplication_ctrl, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_pllout_polarity_ctrl", reg::kreg_ttlout3_pllout_polarity_ctrl, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_pllout_trigger_edge_select", reg::kreg_ttlout3_pllout_trigger_edge_select, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_forward_mode_polarity_ctrl", reg::kreg_ttlout3_forward_mode_polarity_ctrl, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_freq_detect_bias", reg::kreg_ttlout3_freq_detect_bias, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_placeholder0", reg::kreg_ttlout3_placeholder0, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_sig_in_freq_detect", reg::kreg_ttlout3_sig_in_freq_detect, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_sig_out_freq_detect", reg::kreg_ttlout3_sig_out_freq_detect, 0, kreg_val_type_decimal); + + push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_module", reg::kreg_ttlout4_module, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_signal_process_mode", reg::kreg_ttlout4_signal_process_mode, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_input_signal_select", reg::kreg_ttlout4_input_signal_select, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_pllout_freq_division_ctrl", reg::kreg_ttlout4_pllout_freq_division_ctrl, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_pllout_freq_multiplication_ctrl", reg::kreg_ttlout4_pllout_freq_multiplication_ctrl, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_pllout_polarity_ctrl", reg::kreg_ttlout4_pllout_polarity_ctrl, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_pllout_trigger_edge_select", reg::kreg_ttlout4_pllout_trigger_edge_select, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_forward_mode_polarity_ctrl", reg::kreg_ttlout4_forward_mode_polarity_ctrl, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_freq_detect_bias", reg::kreg_ttlout4_freq_detect_bias, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_placeholder0", reg::kreg_ttlout4_placeholder0, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_sig_in_freq_detect", reg::kreg_ttlout4_sig_in_freq_detect, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_sig_out_freq_detect", reg::kreg_ttlout4_sig_out_freq_detect, 0, kreg_val_type_decimal); - push_reg(ui->gridLayoutWidget, regoff++, "fpga_reg_test_reg0", reg::kfpga_test_reg0, 0, kreg_val_type_hex); - push_reg(ui->gridLayoutWidget, regoff++, "fpga_reg_test_reg1", reg::kfpga_test_reg1, 0, kreg_val_type_hex); - push_reg(ui->gridLayoutWidget, regoff++, "fpga_reg_test_reg2", reg::kfpga_test_reg2, 0, kreg_val_type_hex); - push_reg(ui->gridLayoutWidget, regoff++, "fpga_reg_test_reg3", reg::kfpga_test_reg3, 0, kreg_val_type_hex); - push_reg(ui->gridLayoutWidget, regoff++, "fpga_reg_test_reg4", reg::kfpga_test_reg4, 0, kreg_val_type_hex); - - push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_input_sig_slt", reg::kttlout1_input_sig_slt, 0, kreg_val_type_decimal); - push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_output_sig_slt", reg::kttlout1_output_sig_slt, 0, kreg_val_type_decimal); - push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_config", reg::kttlout1_config, 0, kreg_val_type_hex); - push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_pulse_mode_duration", reg::kttlout1_pulse_mode_duration, 0, kreg_val_type_decimal); - push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_pulse_mode_delay", reg::kttlout1_pulse_mode_delay, 0, kreg_val_type_decimal); - - push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_input_sig_slt", reg::kttlout2_input_sig_slt, 0, kreg_val_type_decimal); - push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_output_sig_slt", reg::kttlout2_output_sig_slt, 0, kreg_val_type_decimal); - push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_config", reg::kttlout2_config, 0, kreg_val_type_hex); - push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_pulse_mode_duration", reg::kttlout2_pulse_mode_duration, 0, kreg_val_type_decimal); - push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_pulse_mode_delay", reg::kttlout2_pulse_mode_delay, 0, kreg_val_type_decimal); - - push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_input_sig_slt", reg::kttlout3_input_sig_slt, 0, kreg_val_type_decimal); - push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_output_sig_slt", reg::kttlout3_output_sig_slt, 0, kreg_val_type_decimal); - push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_config", reg::kttlout3_config, 0, kreg_val_type_hex); - push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_pulse_mode_duration", reg::kttlout3_pulse_mode_duration, 0, kreg_val_type_decimal); - - push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_pulse_mode_delay", reg::kttlout3_pulse_mode_delay, 0, kreg_val_type_decimal); - push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_input_sig_slt", reg::kttlout4_input_sig_slt, 0, kreg_val_type_decimal); - push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_output_sig_slt", reg::kttlout4_output_sig_slt, 0, kreg_val_type_decimal); - push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_config", reg::kttlout4_config, 0, kreg_val_type_hex); - push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_pulse_mode_duration", reg::kttlout4_pulse_mode_duration, 0, kreg_val_type_decimal); - - push_reg(ui->gridLayoutWidget, regoff++, "SigGenerator_ctl", reg::kSigGenerator_ctl, 0, kreg_val_type_decimal); - push_reg(ui->gridLayoutWidget, regoff++, "SigGenerator_genlock_format", reg::kSigGenerator_genlock_format, 0, kreg_val_type_decimal); - push_reg(ui->gridLayoutWidget, regoff++, "SigGenerator_timecode_format", reg::kSigGenerator_timecode_format, 0, kreg_val_type_decimal); - push_reg(ui->gridLayoutWidget, regoff++, "SigGenerator_control_trigger_reg", reg::kSigGenerator_control_trigger_reg, 0, kreg_val_type_decimal); - push_reg(ui->gridLayoutWidget, regoff++, "SigGenerator_timecode0", reg::kSigGenerator_timecode0, 0, kreg_val_type_dotted_hex); - push_reg(ui->gridLayoutWidget, regoff++, "SigGenerator_timecode1", reg::kSigGenerator_timecode1, 0, kreg_val_type_dotted_hex); - push_reg(ui->gridLayoutWidget, regoff++, "SigGenerator_timecode_start0", reg::kSigGenerator_timecode_start0, 0, kreg_val_type_dotted_hex); - push_reg(ui->gridLayoutWidget, regoff++, "SigGenerator_timecode_start1", reg::kSigGenerator_timecode_start1, 0, kreg_val_type_dotted_hex); - push_reg(ui->gridLayoutWidget, regoff++, "SigGenerator_work_state", reg::kSigGenerator_work_state, 0, kreg_val_type_decimal); - - push_reg(ui->gridLayoutWidget, regoff++, "camera_sync_out_camera_sync_select", reg::kcamera_sync_out_camera_sync_select, 0, kreg_val_type_decimal); - - // ktimecode_in_timecode_sig_selt - // ktimecode_in_timecode_format - // ktimecode_in_timecode0 - // ktimecode_in_timecode1 - - push_reg(ui->gridLayoutWidget, regoff++, "timecode_in_timecode_sig_selt", reg::ktimecode_in_timecode_sig_selt, 0, kreg_val_type_decimal); - push_reg(ui->gridLayoutWidget, regoff++, "timecode_in_timecode_format", reg::ktimecode_in_timecode_format, 0, kreg_val_type_decimal); - push_reg(ui->gridLayoutWidget, regoff++, "timecode_in_timecode0", reg::ktimecode_in_timecode0, 0, kreg_val_type_dotted_hex); - push_reg(ui->gridLayoutWidget, regoff++, "timecode_in_timecode1", reg::ktimecode_in_timecode1, 0, kreg_val_type_dotted_hex); - - // 设置table的高度 auto qrect = ui->gridLayoutWidget->geometry(); qrect.setHeight(31 * regoff - 1); ui->gridLayoutWidget->setGeometry(qrect); @@ -254,16 +296,6 @@ void MainWindow::UI_TTLOutputMoudleConstruct() { for (int i = 1; i <= 4; i++) { ui->TTLOutputMoudle_ID->addItem(QString::number(i)); } - - ui->TTLOutputMoudle_InputSigType->clear(); - for (auto &str : ttlout_module::TriggerSigTypeStrSet()) { - ui->TTLOutputMoudle_InputSigType->addItem(QString::fromStdString(str)); - } - - ui->TTLOutputMoudle_OutputSigType->clear(); - for (auto &str : ttlout_module::OutputSigTypeStrSet()) { - ui->TTLOutputMoudle_OutputSigType->addItem(QString::fromStdString(str)); - } } void MainWindow::UI_SigGeneratorConstruct() { @@ -283,26 +315,28 @@ void MainWindow::UI_SigGeneratorConstruct() { } } -void MainWindow::UI_TimecodeOutputModuleConstruct() { - ui->TimecodeOutputModule_TimecodeSrcSelect->clear(); - for (auto &str : timecode_output_module::TriggerSigTypeStrSet()) { - ui->TimecodeOutputModule_TimecodeSrcSelect->addItem(QString::fromStdString(str)); +void MainWindow::UI_TimecodePageConstruct() { + ui->InternalTimecode_Format->clear(); + for (auto &str : TimecodeFormatStrSet()) { + ui->InternalTimecode_Format->addItem(QString::fromStdString(str)); } - ui->TimecodeOutputModule_BncOutputLevel->clear(); - for (auto &str : timecode_output_module::OutputSigLevelTypeStrSet()) { - ui->TimecodeOutputModule_BncOutputLevel->addItem(QString::fromStdString(str)); + ui->ExternalTimecode_Format->clear(); + for (auto &str : TimecodeFormatStrSet()) { + ui->ExternalTimecode_Format->addItem(QString::fromStdString(str)); } - ui->TimecodeOutputModule_HeadphoneOutputLevel->clear(); - for (auto &str : timecode_output_module::OutputSigLevelTypeStrSet()) { - ui->TimecodeOutputModule_HeadphoneOutputLevel->addItem(QString::fromStdString(str)); - } + ui->ExternalTimecode_Source->clear(); + ui->ExternalTimecode_Source->addItem(QString::fromStdString(InputInterface2Str(INPUT_IF_TIMECODE_BNC))); + ui->ExternalTimecode_Source->addItem(QString::fromStdString(InputInterface2Str(INPUT_IF_TIMECODE_HEADPHONE))); + + ui->SysTimecode_Source->clear(); + ui->SysTimecode_Source->addItem(QString::fromStdString("0")); + ui->SysTimecode_Source->addItem(QString::fromStdString("1")); + + + - ui->TimecodeOutputModule_TimecodeFormat->clear(); - for (auto &str : TimecodeFormatStrSet()) { - ui->TimecodeOutputModule_TimecodeFormat->addItem(QString::fromStdString(str)); - } } void MainWindow::UI_CameraSyncPacketGeneratorModuleConstruct() { @@ -312,23 +346,7 @@ void MainWindow::UI_CameraSyncPacketGeneratorModuleConstruct() { } } -void MainWindow::UI_TimecodeInModuleConstruct() { - ui->TimecodeInputModule_Format->clear(); - for (auto &str : TimecodeFormatStrSet()) { - ui->TimecodeInputModule_Format->addItem(QString::fromStdString(str)); - } - - ui->TimecodeInputModule_TriggerSigType->clear(); - for (auto &str : timecode_input_module::TriggerSigTypeStrSet()) { - ui->TimecodeInputModule_TriggerSigType->addItem(QString::fromStdString(str)); - } -} -void MainWindow::UI_TTLInModuleConstruct() { - ui->TTLInputModule_Index->clear(); - for (int i = 1; i <= 4; i++) { - ui->TTLInputModule_Index->addItem(QString::number(i)); - } -} +void MainWindow::UI_TTLInModuleConstruct() {} MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); @@ -341,9 +359,9 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi qInstallMessageHandler(log_output); UI_TTLOutputMoudleConstruct(); UI_SigGeneratorConstruct(); - UI_TimecodeOutputModuleConstruct(); + UI_TimecodePageConstruct(); UI_CameraSyncPacketGeneratorModuleConstruct(); - UI_TimecodeInModuleConstruct(); + // UI_TimecodeInModuleConstruct(); UI_TTLInModuleConstruct(); /******************************************************************************* @@ -378,9 +396,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi updateUI_cameraSyncInfo_signal(QString(fmt("%d", camera_sync_data.frameIndex))); }); - Xsync::Ins().Basic_registerOnWorkstateChangeMsgCallback([this](uint32_t workstate) { - emit doinui_signal(QFunction([this, workstate]() { ui->WorkState->setText(QString::number(workstate)); })); - }); + Xsync::Ins().Basic_registerOnWorkstateChangeMsgCallback([this](uint32_t workstate) { emit doinui_signal(QFunction([this, workstate]() { ui->WorkState->setText(QString::number(workstate)); })); }); } MainWindow::~MainWindow() { delete ui; } @@ -408,7 +424,7 @@ void MainWindow::on_RefreshRegsButton_clicked() { // if (ecode == kxs_ec_success) { ZLOGI(TAG, "reg_read %x success", reg.first); m_regdisplayer[regoff]->regvalcache = regValue; - emit doinui_signal(QFunction([this, regoff, regValue]() { updateUI_timeCodeInfo(regoff); })); + emit doinui_signal(QFunction([this, regoff, regValue]() { updateUI_reg(regoff); })); } else { emit doinui_signal(QFunction([this, regoff, regValue]() { m_regdisplayer[regoff]->regvalcache = 0; @@ -454,64 +470,107 @@ void MainWindow::on_ChangeNetCfg_clicked() { // DO_XSYNC_FUNC(Xsync::Ins().Basic_changeNetworkConfig(ui->ChangeNetCfg_ip->text().toStdString(), ui->ChangeNetCfg_mask->text().toStdString(), ui->ChangeNetCfg_gateway->text().toStdString())); } -void MainWindow::on_WriteReg_clicked() { - uint32_t regadd = str2int(ui->RegAdd->text()); - uint32_t regval = str2int(ui->RegVal->text()); - - ZLOGI(TAG, "write reg 0x%08x %d", regadd, regval); - uint32_t readbakval = 0; - DO_XSYNC_FUNC(Xsync::Ins().reg_write(regadd, regval, readbakval)); - - ZLOGI(TAG, "write reg 0x%08x 0x%08x ,readback:0x%08x success", regadd, regval, readbakval); - ui->RegVal->setText(QString(fmt("0x%08x", readbakval))); -} -void MainWindow::on_ReadReg_clicked() { - uint32_t regadd = str2int(ui->RegAdd->text()); - uint32_t regval = 0; - DO_XSYNC_FUNC(Xsync::Ins().reg_read(regadd, regval)); - ZLOGI(TAG, "read reg 0x%08x 0x%08x success", regadd, regval); - ui->RegVal->setText(QString(fmt("0x%08x", regval))); -} - -void MainWindow::on_TTLOutputMoudle_Update_clicked() { - int32_t ID = // - ui->TTLOutputMoudle_ID->currentText().toInt(); - auto InputSigType = // - ttlout_module::Str2TriggerSigType(ui->TTLOutputMoudle_InputSigType->currentText().toStdString()); - auto OutputSigType = // - ttlout_module::Str2OutputSigType(ui->TTLOutputMoudle_OutputSigType->currentText().toStdString()); - uint32_t TriggerModePulseWidth = // - ui->TTLOutputMoudle_TriggerModePulseWidth->text().toUInt(); - uint32_t TriggerModePulseDelay = // - ui->TTLOutputMoudle_TriggerModePulseDelay->text().toUInt(); - - ZLOGI(TAG, "on_TTLOutputMoudle_Update_clicked ID:%d InputSigType:%d OutputSigType:%d TriggerModePulseWidth:%d TriggerModePulseDelay:%d", // - ID, InputSigType, OutputSigType, TriggerModePulseWidth, TriggerModePulseDelay); - - DO_XSYNC_FUNC(Xsync::Ins().TTLOutputModule_setInputSigType(ID, InputSigType)); - DO_XSYNC_FUNC(Xsync::Ins().TTLOutputModule_setOutputSigType(ID, OutputSigType)); - DO_XSYNC_FUNC(Xsync::Ins().TTLOutputModule_setTriggerModePulseWidth(ID, TriggerModePulseWidth)); - DO_XSYNC_FUNC(Xsync::Ins().TTLOutputModule_setTriggerModePulseDelay(ID, TriggerModePulseDelay)); -} - -void MainWindow::on_TTLOutputMoudle_Read_clicked() { - ttlout_module::TriggerSigType_t InputSigType; - ttlout_module::OutputSigType_t OutputSigType; - uint32_t TriggerModePulseWidth; - uint32_t TriggerModePulseDelay; - - int32_t ID = // - ui->TTLOutputMoudle_ID->currentText().toInt(); - - DO_XSYNC_FUNC(Xsync::Ins().TTLOutputModule_getInputSigType(ID, InputSigType)); - DO_XSYNC_FUNC(Xsync::Ins().TTLOutputModule_getOutputSigType(ID, OutputSigType)); - DO_XSYNC_FUNC(Xsync::Ins().TTLOutputModule_getTriggerModePulseWidth(ID, TriggerModePulseWidth)); - DO_XSYNC_FUNC(Xsync::Ins().TTLOutputModule_getTriggerModePulseDelay(ID, TriggerModePulseDelay)); - - ui->TTLOutputMoudle_InputSigType->setCurrentText(QString::fromStdString(ttlout_module::TriggerSigType2Str(InputSigType))); - ui->TTLOutputMoudle_OutputSigType->setCurrentText(QString::fromStdString(ttlout_module::OutputSigType2Str(OutputSigType))); - ui->TTLOutputMoudle_TriggerModePulseWidth->setText(QString::number(TriggerModePulseWidth)); - ui->TTLOutputMoudle_TriggerModePulseDelay->setText(QString::number(TriggerModePulseDelay)); +// void MainWindow::on_WriteReg_clicked() { +// uint32_t regadd = str2int(ui->RegAdd->text()); +// uint32_t regval = str2int(ui->RegVal->text()); + +// ZLOGI(TAG, "write reg 0x%08x %d", regadd, regval); +// uint32_t readbakval = 0; +// DO_XSYNC_FUNC(Xsync::Ins().reg_write(regadd, regval, readbakval)); + +// ZLOGI(TAG, "write reg 0x%08x 0x%08x ,readback:0x%08x success", regadd, regval, readbakval); +// ui->RegVal->setText(QString(fmt("0x%08x", readbakval))); +// } +// void MainWindow::on_ReadReg_clicked() { +// uint32_t regadd = str2int(ui->RegAdd->text()); +// uint32_t regval = 0; +// DO_XSYNC_FUNC(Xsync::Ins().reg_read(regadd, regval)); +// ZLOGI(TAG, "read reg 0x%08x 0x%08x success", regadd, regval); +// ui->RegVal->setText(QString(fmt("0x%08x", regval))); +// } + +// void MainWindow::on_TimecodePage_Read_clicked() { +// int32_t ID = // +// ui->TTLOutputMoudle_ID->currentText().toInt(); +// auto InputSigType = // +// ttlout_module::Str2TriggerSigType(ui->TTLOutputMoudle_InputSigType->currentText().toStdString()); +// auto OutputSigType = // +// ttlout_module::Str2OutputSigType(ui->TTLOutputMoudle_OutputSigType->currentText().toStdString()); +// uint32_t TriggerModePulseWidth = // +// ui->TTLOutputMoudle_TriggerModePulseWidth->text().toUInt(); +// uint32_t TriggerModePulseDelay = // +// ui->TTLOutputMoudle_TriggerModePulseDelay->text().toUInt(); + +// ZLOGI(TAG, "on_TTLOutputMoudle_Update_clicked ID:%d InputSigType:%d OutputSigType:%d TriggerModePulseWidth:%d TriggerModePulseDelay:%d", // +// ID, InputSigType, OutputSigType, TriggerModePulseWidth, TriggerModePulseDelay); + +// DO_XSYNC_FUNC(Xsync::Ins().TTLOutputModule_setInputSigType(ID, InputSigType)); +// DO_XSYNC_FUNC(Xsync::Ins().TTLOutputModule_setOutputSigType(ID, OutputSigType)); +// DO_XSYNC_FUNC(Xsync::Ins().TTLOutputModule_setTriggerModePulseWidth(ID, TriggerModePulseWidth)); +// DO_XSYNC_FUNC(Xsync::Ins().TTLOutputModule_setTriggerModePulseDelay(ID, TriggerModePulseDelay)); +// } + +// void MainWindow::on_TTLOutputMoudle_Read_clicked() { +// ttlout_module::TriggerSigType_t InputSigType; +// ttlout_module::OutputSigType_t OutputSigType; +// uint32_t TriggerModePulseWidth; +// uint32_t TriggerModePulseDelay; + +// int32_t ID = // +// ui->TTLOutputMoudle_ID->currentText().toInt(); + +// DO_XSYNC_FUNC(Xsync::Ins().TTLOutputModule_getInputSigType(ID, InputSigType)); +// DO_XSYNC_FUNC(Xsync::Ins().TTLOutputModule_getOutputSigType(ID, OutputSigType)); +// DO_XSYNC_FUNC(Xsync::Ins().TTLOutputModule_getTriggerModePulseWidth(ID, TriggerModePulseWidth)); +// DO_XSYNC_FUNC(Xsync::Ins().TTLOutputModule_getTriggerModePulseDelay(ID, TriggerModePulseDelay)); + +// ui->TTLOutputMoudle_InputSigType->setCurrentText(QString::fromStdString(ttlout_module::TriggerSigType2Str(InputSigType))); +// ui->TTLOutputMoudle_OutputSigType->setCurrentText(QString::fromStdString(ttlout_module::OutputSigType2Str(OutputSigType))); +// ui->TTLOutputMoudle_TriggerModePulseWidth->setText(QString::number(TriggerModePulseWidth)); +// ui->TTLOutputMoudle_TriggerModePulseDelay->setText(QString::number(TriggerModePulseDelay)); +// } + +void MainWindow::on_TimecodePage_Read_clicked() { + TimecodeFormat_t InternalTimecode_Format; + XsyncTimecode_t InternalTimecode_Code; + TimecodeFormat_t ExternalTimecode_Format; + InputInterface_t ExternalTimecode_Source; + XsyncTimecode_t ExternalTimecode_Code; + uint32_t SysTimecode_Source; + TimecodeFormat_t SysTimecode_Format; + XsyncTimecode_t SysTimecode_Code; + + + DO_XSYNC_FUNC(Xsync::Ins().InternalTimecode_getFormat(InternalTimecode_Format)); + DO_XSYNC_FUNC(Xsync::Ins().InternalTimecode_getCode(InternalTimecode_Code)); + DO_XSYNC_FUNC(Xsync::Ins().ExternalTimecode_getFormat(ExternalTimecode_Format)); + DO_XSYNC_FUNC(Xsync::Ins().ExternalTimecode_getSource(ExternalTimecode_Source)); + DO_XSYNC_FUNC(Xsync::Ins().ExternalTimecode_readCode(ExternalTimecode_Code)); + DO_XSYNC_FUNC(Xsync::Ins().SysTimecode_getSource(SysTimecode_Source)); + DO_XSYNC_FUNC(Xsync::Ins().SysTimecode_readFormat(SysTimecode_Format)); + DO_XSYNC_FUNC(Xsync::Ins().SysTimecode_readCode(SysTimecode_Code)); + + ui->InternalTimecode_Format->setCurrentText(QString::fromStdString(TimecodeFormatToStr(InternalTimecode_Format))); + ui->InternalTimecode_Code->setText(QString(XsyncTimecodeToStr(InternalTimecode_Code).c_str())); + ui->ExternalTimecode_Format->setCurrentText(QString::fromStdString(TimecodeFormatToStr(ExternalTimecode_Format))); + ui->ExternalTimecode_Source->setCurrentText(QString::fromStdString(InputInterface2Str(ExternalTimecode_Source))); + ui->ExternalTimecode_Code->setText(QString(XsyncTimecodeToStr(ExternalTimecode_Code).c_str())); + ui->SysTimecode_Source->setCurrentText(QString::number(SysTimecode_Source)); + ui->SysTimecode_Format->setText(QString::fromStdString(TimecodeFormatToStr(SysTimecode_Format))); + ui->SysTimecode_Code->setText(QString(XsyncTimecodeToStr(SysTimecode_Code).c_str())); +} +void MainWindow::on_TimecodePage_Update_clicked() { + TimecodeFormat_t InternalTimecode_Format = Str2TimecodeFormat(ui->InternalTimecode_Format->currentText().toStdString()); + XsyncTimecode_t InternalTimecode_Code = Str2XsyncTimecode(ui->InternalTimecode_Code->text().toStdString()); + TimecodeFormat_t ExternalTimecode_Format = Str2TimecodeFormat(ui->ExternalTimecode_Format->currentText().toStdString()); + InputInterface_t ExternalTimecode_Source = Str2InputInterface(ui->ExternalTimecode_Source->currentText().toStdString()); + uint32_t SysTimecode_Source = ui->SysTimecode_Source->currentText().toInt(); + + DO_XSYNC_FUNC(Xsync::Ins().InternalTimecode_setFormat(InternalTimecode_Format)); + DO_XSYNC_FUNC(Xsync::Ins().InternalTimecode_setCode(InternalTimecode_Code)); + DO_XSYNC_FUNC(Xsync::Ins().ExternalTimecode_setFormat(ExternalTimecode_Format)); + DO_XSYNC_FUNC(Xsync::Ins().ExternalTimecode_setSource(ExternalTimecode_Source)); + DO_XSYNC_FUNC(Xsync::Ins().SysTimecode_setSource(SysTimecode_Source)); } void MainWindow::on_SigGenerator_Read_clicked() { @@ -552,40 +611,34 @@ void MainWindow::on_SigGenerator_Update_clicked() { void MainWindow::on_SigGenerator_Start_clicked() { DO_XSYNC_FUNC(Xsync::Ins().SigGenerator_manualStart()); } void MainWindow::on_SigGenerator_Stop_clicked() { DO_XSYNC_FUNC(Xsync::Ins().SigGenerator_manualStop()); } -void MainWindow::on_TimecodeOutputModule_Read_clicked() { - // TimecodeOutputModule_TimecodeSrcSelect - // TimecodeOutputModule_BncOutputLevel - // TimecodeOutputModule_HeadphoneOutputLevel - // TimecodeOutputModule_TimecodeFormat - // TimecodeOutputModule_TimecodeNow - - timecode_output_module::TriggerSigType_t TimecodeSrcSelect; - timecode_output_module::OutputSigLevelType_t BncOutputLevel; - timecode_output_module::OutputSigLevelType_t HeadphoneOutputLevel; - TimecodeFormat_t TimecodeFormat; - XsyncTimecode_t TimecodeNow; - - DO_XSYNC_FUNC(Xsync::Ins().TimecodeOutputModule_getTimecodeSrcSelect(TimecodeSrcSelect)); - DO_XSYNC_FUNC(Xsync::Ins().TimecodeOutputModule_getBncOutputLevel(BncOutputLevel)); - DO_XSYNC_FUNC(Xsync::Ins().TimecodeOutputModule_getHeadphoneOutputLevel(HeadphoneOutputLevel)); - DO_XSYNC_FUNC(Xsync::Ins().TimecodeOutputModule_getTimecodeFormat(TimecodeFormat)); - DO_XSYNC_FUNC(Xsync::Ins().TimecodeOutputModule_getTimecodeNow(TimecodeNow)); - - ui->TimecodeOutputModule_TimecodeSrcSelect->setCurrentText(QString::fromStdString(timecode_output_module::TriggerSigType2Str(TimecodeSrcSelect))); - ui->TimecodeOutputModule_BncOutputLevel->setCurrentText(QString::fromStdString(timecode_output_module::OutputSigLevelType2Str(BncOutputLevel))); - ui->TimecodeOutputModule_HeadphoneOutputLevel->setCurrentText(QString::fromStdString(timecode_output_module::OutputSigLevelType2Str(HeadphoneOutputLevel))); - ui->TimecodeOutputModule_TimecodeFormat->setCurrentText(QString::fromStdString(TimecodeFormatToStr(TimecodeFormat))); - ui->TimecodeOutputModule_TimecodeNow->setText(QString(XsyncTimecodeToStr(TimecodeNow).c_str())); -} -void MainWindow::on_TimecodeOutputModule_Update_clicked() { - auto TimecodeSrcSelect = timecode_output_module::Str2TriggerSigType(ui->TimecodeOutputModule_TimecodeSrcSelect->currentText().toStdString()); - auto BncOutputLevel = timecode_output_module::Str2OutputSigLevelType(ui->TimecodeOutputModule_BncOutputLevel->currentText().toStdString()); - auto HeadphoneOutputLevel = timecode_output_module::Str2OutputSigLevelType(ui->TimecodeOutputModule_HeadphoneOutputLevel->currentText().toStdString()); - - DO_XSYNC_FUNC(Xsync::Ins().TimecodeOutputModule_setTimecodeSrcSelect(TimecodeSrcSelect)); - DO_XSYNC_FUNC(Xsync::Ins().TimecodeOutputModule_setBncOutputLevel(BncOutputLevel)); - DO_XSYNC_FUNC(Xsync::Ins().TimecodeOutputModule_setHeadphoneOutputLevel(HeadphoneOutputLevel)); -} +// void MainWindow::on_TimecodeOutputModule_Read_clicked() { +// timecode_output_module::TriggerSigType_t TimecodeSrcSelect; +// timecode_output_module::OutputSigLevelType_t BncOutputLevel; +// timecode_output_module::OutputSigLevelType_t HeadphoneOutputLevel; +// TimecodeFormat_t TimecodeFormat; +// XsyncTimecode_t TimecodeNow; + +// DO_XSYNC_FUNC(Xsync::Ins().TimecodeOutputModule_getTimecodeSrcSelect(TimecodeSrcSelect)); +// DO_XSYNC_FUNC(Xsync::Ins().TimecodeOutputModule_getBncOutputLevel(BncOutputLevel)); +// DO_XSYNC_FUNC(Xsync::Ins().TimecodeOutputModule_getHeadphoneOutputLevel(HeadphoneOutputLevel)); +// DO_XSYNC_FUNC(Xsync::Ins().TimecodeOutputModule_getTimecodeFormat(TimecodeFormat)); +// DO_XSYNC_FUNC(Xsync::Ins().TimecodeOutputModule_getTimecodeNow(TimecodeNow)); + +// ui->TimecodeOutputModule_TimecodeSrcSelect->setCurrentText(QString::fromStdString(timecode_output_module::TriggerSigType2Str(TimecodeSrcSelect))); +// ui->TimecodeOutputModule_BncOutputLevel->setCurrentText(QString::fromStdString(timecode_output_module::OutputSigLevelType2Str(BncOutputLevel))); +// ui->TimecodeOutputModule_HeadphoneOutputLevel->setCurrentText(QString::fromStdString(timecode_output_module::OutputSigLevelType2Str(HeadphoneOutputLevel))); +// ui->TimecodeOutputModule_TimecodeFormat->setCurrentText(QString::fromStdString(TimecodeFormatToStr(TimecodeFormat))); +// ui->TimecodeOutputModule_TimecodeNow->setText(QString(XsyncTimecodeToStr(TimecodeNow).c_str())); +// } +// void MainWindow::on_TimecodeOutputModule_Update_clicked() { +// auto TimecodeSrcSelect = timecode_output_module::Str2TriggerSigType(ui->TimecodeOutputModule_TimecodeSrcSelect->currentText().toStdString()); +// auto BncOutputLevel = timecode_output_module::Str2OutputSigLevelType(ui->TimecodeOutputModule_BncOutputLevel->currentText().toStdString()); +// auto HeadphoneOutputLevel = timecode_output_module::Str2OutputSigLevelType(ui->TimecodeOutputModule_HeadphoneOutputLevel->currentText().toStdString()); + +// DO_XSYNC_FUNC(Xsync::Ins().TimecodeOutputModule_setTimecodeSrcSelect(TimecodeSrcSelect)); +// DO_XSYNC_FUNC(Xsync::Ins().TimecodeOutputModule_setBncOutputLevel(BncOutputLevel)); +// DO_XSYNC_FUNC(Xsync::Ins().TimecodeOutputModule_setHeadphoneOutputLevel(HeadphoneOutputLevel)); +// } void MainWindow::on_CameraSyncPacketGeneratorModule_Update_clicked() { auto TriggerSig = camera_sync_packet_generator_module::Str2TriggerSigType(ui->CameraSyncPacketGeneratorModule_TriggerSig->currentText().toStdString()); @@ -614,77 +667,32 @@ void MainWindow::on_CameraSyncPacketGeneratorModule_ClearPacketIndex_clicked() { } void MainWindow::on_TTLInputModule_Read_clicked() { - int32_t Index = ui->TTLInputModule_Index->currentText().toInt(); - uint32_t DivideFactor; - uint32_t FilterFactor; + uint32_t freq1 = 0; + uint32_t freq2 = 0; + uint32_t freq3 = 0; + uint32_t freq4 = 0; bool En; - DO_XSYNC_FUNC(Xsync::Ins().TTLInputModule_getDivideFactor(Index, DivideFactor)); - DO_XSYNC_FUNC(Xsync::Ins().TTLInputModule_getFilterFactor(Index, FilterFactor)); - DO_XSYNC_FUNC(Xsync::Ins().TTLInputModule_getEn(Index, En)); - - ui->TTLInputModule_DivideFactor->setText(QString::number(DivideFactor)); - ui->TTLInputModule_FilterFactor->setText(QString::number(FilterFactor)); - ui->TTLInputModule_En->setText(QString::number(En)); -} -void MainWindow::on_TTLInputModule_Update_clicked() { - int32_t Index = ui->TTLInputModule_Index->currentText().toInt(); - uint32_t DivideFactor; - uint32_t FilterFactor; - bool En; - - DivideFactor = ui->TTLInputModule_DivideFactor->text().toUInt(); - FilterFactor = ui->TTLInputModule_FilterFactor->text().toUInt(); - En = ui->TTLInputModule_En->text().toUInt(); - - DO_XSYNC_FUNC(Xsync::Ins().TTLInputModule_setDivideFactor(Index, DivideFactor)); - DO_XSYNC_FUNC(Xsync::Ins().TTLInputModule_setFilterFactor(Index, FilterFactor)); - DO_XSYNC_FUNC(Xsync::Ins().TTLInputModule_setEn(Index, En)); -} - -void MainWindow::on_TimecodeInputModule_Read_clicked() { - TimecodeFormat_t Format; - timecode_input_module::TriggerSigType_t TriggerSig; - XsyncTimecode_t Timecode; - - DO_XSYNC_FUNC(Xsync::Ins().TimecodeInputModule_getSrcSelect(TriggerSig)); - DO_XSYNC_FUNC(Xsync::Ins().TimecodeInputModule_getTimecodeFormat(Format)); - DO_XSYNC_FUNC(Xsync::Ins().TimecodeInputModule_getTimecode(Timecode)); + DO_XSYNC_FUNC(Xsync::Ins().TTLInputModule1_detectFreq(freq1)); + DO_XSYNC_FUNC(Xsync::Ins().TTLInputModule2_detectFreq(freq2)); + DO_XSYNC_FUNC(Xsync::Ins().TTLInputModule3_detectFreq(freq3)); + DO_XSYNC_FUNC(Xsync::Ins().TTLInputModule4_detectFreq(freq4)); - // ZLOGI(TAG, "on_TimecodeInputModule_Read_clicked TriggerSig:%d Format:%d Timecode:%d %d %d %d", TriggerSig, Format, Timecode.hour, Timecode.minute, Timecode.second, Timecode.frame); - - ui->TimecodeInputModule_TriggerSigType->setCurrentText(QString::fromStdString(timecode_input_module::TriggerSigType2Str(TriggerSig))); - ui->TimecodeInputModule_Format->setCurrentText(QString::fromStdString(TimecodeFormatToStr(Format))); - ui->TimecodeInputModule_Timecode->setText(QString(XsyncTimecodeToStr(Timecode).c_str())); -} -void MainWindow::on_TimecodeInputModule_Update_clicked() { - auto TriggerSig = timecode_input_module::Str2TriggerSigType(ui->TimecodeInputModule_TriggerSigType->currentText().toStdString()); - TimecodeFormat_t Format = Str2TimecodeFormat(ui->TimecodeInputModule_Format->currentText().toStdString()); + ZLOGI(TAG, "freq1:%d freq2:%d freq3:%d freq4:%d", freq1, freq2, freq3, freq4); - DO_XSYNC_FUNC(Xsync::Ins().TimecodeInputModule_setSrcSelect(TriggerSig)); - DO_XSYNC_FUNC(Xsync::Ins().TimecodeInputModule_setTimecodeFormat(Format)); + ui->TTLinModule_ttl_freq_1->setText(QString::number(freq1)); + ui->TTLinModule_ttl_freq_2->setText(QString::number(freq2)); + ui->TTLinModule_ttl_freq_3->setText(QString::number(freq3)); + ui->TTLinModule_ttl_freq_4->setText(QString::number(freq4)); } - +void MainWindow::on_TTLInputModule_Update_clicked() {} void MainWindow::on_tabWidget_currentChanged(int index) { - index = index + 1; - if (index == 0) { - } else if (index == 1) { - on_RefreshRegsButton_clicked(); - } else if (index == 2) { - } else if (index == 3) { - on_TTLOutputMoudle_Read_clicked(); - } else if (index == 4) { - on_SigGenerator_Read_clicked(); - } else if (index == 5) { - on_TimecodeOutputModule_Read_clicked(); - } else if (index == 6) { - on_CameraSyncPacketGeneratorModule_Read_clicked(); - } else if (index == 7) { - on_TimecodeInputModule_Read_clicked(); - } else if (index == 8) { - on_TTLInputModule_Read_clicked(); - } + on_RefreshRegsButton_clicked(); + on_SigGenerator_Read_clicked(); + on_CameraSyncPacketGeneratorModule_Read_clicked(); + on_TTLInputModule_Read_clicked(); + on_TimecodePage_Read_clicked(); } -void MainWindow::on_TTLInputModule_Index_currentIndexChanged(int index) { on_TTLInputModule_Read_clicked(); } -void MainWindow::on_TTLOutputMoudle_ID_currentIndexChanged(int index) { on_TTLOutputMoudle_Read_clicked(); } +void MainWindow::on_TTLInputModule_Index_currentIndexChanged(int index) {} +void MainWindow::on_TTLOutputMoudle_ID_currentIndexChanged(int index) {} diff --git a/mainwindow.h b/mainwindow.h index 9391e01..716dd53 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -47,6 +47,8 @@ typedef enum { 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 { @@ -91,24 +93,20 @@ class MainWindow : public QMainWindow { void on_Reboot_clicked(); void on_ChangeNetCfg_clicked(); - void on_WriteReg_clicked(); - void on_ReadReg_clicked(); + // void on_WriteReg_clicked(); + // void on_ReadReg_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_TTLOutputMoudle_Read_clicked(); - void on_TTLOutputMoudle_Update_clicked(); void on_SigGenerator_Read_clicked(); void on_SigGenerator_Update_clicked(); void on_SigGenerator_Start_clicked(); void on_SigGenerator_Stop_clicked(); - void on_TimecodeOutputModule_Read_clicked(); - void on_TimecodeOutputModule_Update_clicked(); void on_CameraSyncPacketGeneratorModule_Update_clicked(); void on_CameraSyncPacketGeneratorModule_Read_clicked(); @@ -117,8 +115,8 @@ class MainWindow : public QMainWindow { void on_TTLInputModule_Read_clicked(); void on_TTLInputModule_Update_clicked(); - void on_TimecodeInputModule_Read_clicked(); - void on_TimecodeInputModule_Update_clicked(); + void on_TimecodePage_Read_clicked(); + void on_TimecodePage_Update_clicked(); void on_tabWidget_currentChanged(int index); @@ -126,7 +124,7 @@ class MainWindow : public QMainWindow { void on_TTLOutputMoudle_ID_currentIndexChanged(int index); -signals: + signals: void append_log_signal(QString str); void updateUI_timeCodeInfo_signal(QString); void updateUI_cameraSyncInfo_signal(QString); @@ -135,13 +133,12 @@ signals: private: void mainWindowsRun(); - void updateUI_timeCodeInfo(uint32_t regoff); + void updateUI_reg(uint32_t regoff); void UI_TTLOutputMoudleConstruct(); void UI_SigGeneratorConstruct(); - void UI_TimecodeOutputModuleConstruct(); + void UI_TimecodePageConstruct(); void UI_CameraSyncPacketGeneratorModuleConstruct(); - void UI_TimecodeInModuleConstruct(); void UI_TTLInModuleConstruct(); }; #endif // MAINWINDOW_H diff --git a/mainwindow.ui b/mainwindow.ui index 0040d57..ea017d1 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -6,8 +6,8 @@ 0 0 - 1269 - 787 + 1467 + 872 @@ -18,19 +18,19 @@ 10 - 490 - 981 - 251 + 550 + 771 + 131 - 10 - 450 + 790 + 550 91 - 31 + 131 @@ -92,17 +92,72 @@ - + + + + 910 + 10 + 61 + 31 + + + + + + + 410 + 10 + 71 + 31 + + + + timecode: + + + + + + 630 + 10 + 81 + 31 + + + + camera_sync: + + + + + + 840 + 10 + 61 + 31 + + + + workstate: + + + 10 50 - 951 - 391 + 881 + 481 + + + 0 + 0 + + - 2 + 3 @@ -111,10 +166,10 @@ - 110 - 10 - 671 - 311 + 160 + 0 + 691 + 631 @@ -152,7 +207,7 @@ 0 0 - 652 + 672 3000 @@ -315,60 +370,69 @@ false - + + + + TTLInputModule + + - 20 - 180 - 101 - 31 + 380 + 70 + 151 + 41 - WriteReg + Update - + - 20 - 220 + 10 + 20 101 31 - ReadReg + ttl1_freq - + - 130 - 200 - 111 + 10 + 60 + 101 31 - - - 75 - true - - - 0x0 + ttl2_freq - - false + + + + + 380 + 20 + 151 + 41 + + + + Read - + - 250 - 200 - 111 + 110 + 20 + 241 31 @@ -379,58 +443,65 @@ - 0 + false - - - - TTL输出模块3 - - + - 30 - 31 - 81 + 10 + 100 + 91 31 - - -1 + + ttl3_freq - + - 220 - 80 - 241 + 10 + 140 + 91 31 - - -1 + + ttl4_freq - + - 220 - 130 + 110 + 60 241 31 + + + 75 + true + + + + + + + false + - + - 220 - 180 + 110 + 100 241 31 @@ -448,11 +519,11 @@ false - + - 220 - 230 + 110 + 140 241 31 @@ -470,56 +541,530 @@ false - + + + + Timecode + + - 500 - 130 - 151 + 630 + 90 + 111 41 - Update + 写入配置 - + - 30 - 80 - 101 - 31 + 630 + 50 + 111 + 41 - InputSigType + 读出配置 - + 30 - 180 - 161 - 31 + 40 + 251 + 111 - - TriggerModePulseWidth(ms) + + 内部时码 + + + + 20 + 20 + 81 + 31 + + + + 时码格式 + + + + + + 20 + 60 + 81 + 31 + + + + 时码数值 + + + + + + 100 + 20 + 141 + 31 + + + + + + + 100 + 60 + 141 + 31 + + + + + 75 + true + + + + + + + false + + - + - 30 - 230 - 151 - 31 + 120 + 260 + 301 + 151 - - TriggerModePulseDelay(ms) + + 系统时码 + + + + + 30 + 20 + 81 + 31 + + + + 系统时码_源 + + + + + + 30 + 60 + 81 + 31 + + + + 时码格式 + + + + + + 30 + 100 + 81 + 31 + + + + 时码数值 + + + + + + 130 + 20 + 141 + 31 + + + + + + + 130 + 100 + 141 + 31 + + + + + 75 + true + + + + + + + true + + + + + + 130 + 60 + 141 + 31 + + + + + 75 + true + + + + + + + true + + + + + + + 320 + 40 + 251 + 151 + + + + 外部时码 + + + + + 20 + 60 + 81 + 31 + + + + 时码格式 + + + + + + 100 + 60 + 141 + 31 + + + + + + + 100 + 100 + 141 + 31 + + + + + 75 + true + + + + + + + true + + + + + + 20 + 100 + 51 + 31 + + + + 时码数值 + + + + + + 100 + 20 + 141 + 31 + + + + + + + 20 + 20 + 81 + 31 + + + + 时码源 + + + + + + + 150 + 230 + 261 + 20 + + + + Qt::Horizontal + + + + + + 140 + 150 + 20 + 91 + + + + ArrowCursor + + + Qt::Vertical + + + + + + 400 + 190 + 20 + 51 + + + + ArrowCursor + + + Qt::Vertical + + + + + + 260 + 241 + 20 + 20 + + + + ArrowCursor + + + Qt::Vertical + + + + + + 160 + 170 + 16 + 21 + + + + 0 + + + + + + 390 + 200 + 16 + 21 + + + + 1 + + + + + + TTL输出模块3 + + + + + 30 + 31 + 81 + 31 + + + + -1 + + + + + + 220 + 80 + 241 + 31 + + + + -1 + + + + + + 220 + 130 + 241 + 31 + + + + + + + 220 + 180 + 241 + 31 + + + + + 75 + true + + + + + + + false + + + + + + 220 + 230 + 241 + 31 + + + + + 75 + true + + + + + + + false + + + + + + 500 + 130 + 151 + 41 + + + + Update + + + + + + 30 + 80 + 101 + 31 + + + + InputSigType + + + + + + 30 + 180 + 161 + 31 + + + + TriggerModePulseWidth(ms) + + + + + + 30 + 230 + 151 + 31 + + + + TriggerModePulseDelay(ms) @@ -777,201 +1322,37 @@ - + - TIMECODE输出模块5 + 相机同步消息上报6 - + - 30 - 210 - 151 + 210 + 50 + 241 31 - - TimecodeFormat + + -1 - + - 30 - 60 - 101 - 31 + 490 + 50 + 151 + 41 - TriggerSigType + Read - - - - 500 - 110 - 151 - 41 - - - - Update - - - - - - 30 - 110 - 101 - 31 - - - - BncOutLevel - - - - - - 30 - 160 - 161 - 31 - - - - HeadphoneOutLevel - - - - - - 500 - 60 - 151 - 41 - - - - Read - - - - - - 220 - 60 - 241 - 31 - - - - -1 - - - - - - 220 - 110 - 241 - 31 - - - - - - - 220 - 160 - 241 - 31 - - - - - - - 220 - 210 - 241 - 31 - - - - true - - - - - - 30 - 260 - 151 - 31 - - - - Timecode - - - - - - 220 - 260 - 241 - 31 - - - - - 75 - true - - - - - - - false - - - - - - 相机同步消息上报6 - - - - - 210 - 50 - 241 - 31 - - - - -1 - - - - - - 490 - 50 - 151 - 41 - - - - Read - - - + 20 @@ -1069,319 +1450,6 @@ - - - 时码输入模块7 - - - - - 250 - 90 - 241 - 31 - - - - - - - 250 - 40 - 241 - 31 - - - - -1 - - - - - - 530 - 90 - 151 - 41 - - - - Update - - - - - - 60 - 90 - 151 - 31 - - - - TimecodeFormat - - - - - - 530 - 40 - 151 - 41 - - - - Read - - - - - - 60 - 40 - 101 - 31 - - - - TriggerSigType - - - - - - 60 - 140 - 151 - 31 - - - - Timecode - - - - - - 250 - 140 - 241 - 31 - - - - - 75 - true - - - - - - - false - - - - - - TTL输入8 - - - - - 30 - 70 - 101 - 31 - - - - En - - - - - - 500 - 120 - 151 - 41 - - - - Update - - - - - - 30 - 120 - 101 - 31 - - - - FilterFactor(us) - - - - - - 30 - 170 - 161 - 31 - - - - DivideFactor(count) - - - - - - 220 - 170 - 241 - 31 - - - - - 75 - true - - - - - - - false - - - - - - 500 - 70 - 151 - 41 - - - - Read - - - - - - 30 - 21 - 81 - 31 - - - - -1 - - - - - - 220 - 120 - 241 - 31 - - - - - 75 - true - - - - - - - false - - - - - - 220 - 80 - 241 - 31 - - - - - 75 - true - - - - - - - false - - - - - - - - 910 - 10 - 61 - 31 - - - - - - - 410 - 10 - 71 - 31 - - - - timecode: - - - - - - 630 - 10 - 81 - 31 - - - - camera_sync: - - - - - - 840 - 10 - 61 - 31 - - - - workstate: - @@ -1389,7 +1457,7 @@ 0 0 - 1269 + 1467 23