diff --git a/libxsync b/libxsync index f3f3e6f..b821d5a 160000 --- a/libxsync +++ b/libxsync @@ -1 +1 @@ -Subproject commit f3f3e6ffe2f4badaf89a29003722c8772b82a738 +Subproject commit b821d5a4a5c43eee223df3a75845f22cefd46441 diff --git a/mainwindow.cpp b/mainwindow.cpp index 5f49364..1d10263 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -191,6 +191,35 @@ void MainWindow::construct_reg_table() { // push_reg(ui->gridLayoutWidget, regoff++, "stm32_netmask", kxsync_reg_stm32_netmask, 0, kreg_val_type_dotted_decimal); push_reg(ui->gridLayoutWidget, regoff++, "stm32_camera_sync_signal_count", kxsync_reg_stm32_camera_sync_signal_count, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "fpga_reg_test_reg0", kxsync_fpga_reg_test_reg0, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "fpga_reg_test_reg1", kxsync_fpga_reg_test_reg1, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "fpga_reg_test_reg2", kxsync_fpga_reg_test_reg2, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "fpga_reg_test_reg3", kxsync_fpga_reg_test_reg3, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "fpga_reg_test_reg4", kxsync_fpga_reg_test_reg4, 0, kreg_val_type_hex); + + push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_input_sig_slt", kxsync_reg_ttlout1_input_sig_slt, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_output_sig_slt", kxsync_reg_ttlout1_output_sig_slt, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_config", kxsync_reg_ttlout1_config, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_pulse_mode_duration", kxsync_reg_ttlout1_pulse_mode_duration, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout1_pulse_mode_delay", kxsync_reg_ttlout1_pulse_mode_delay, 0, kreg_val_type_decimal); + + push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_input_sig_slt", kxsync_reg_ttlout2_input_sig_slt, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_output_sig_slt", kxsync_reg_ttlout2_output_sig_slt, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_config", kxsync_reg_ttlout2_config, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_pulse_mode_duration", kxsync_reg_ttlout2_pulse_mode_duration, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout2_pulse_mode_delay", kxsync_reg_ttlout2_pulse_mode_delay, 0, kreg_val_type_decimal); + + push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_input_sig_slt", kxsync_reg_ttlout3_input_sig_slt, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_output_sig_slt", kxsync_reg_ttlout3_output_sig_slt, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_config", kxsync_reg_ttlout3_config, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_pulse_mode_duration", kxsync_reg_ttlout3_pulse_mode_duration, 0, kreg_val_type_decimal); + + push_reg(ui->gridLayoutWidget, regoff++, "ttlout3_pulse_mode_delay", kxsync_reg_ttlout3_pulse_mode_delay, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_input_sig_slt", kxsync_reg_ttlout4_input_sig_slt, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_output_sig_slt", kxsync_reg_ttlout4_output_sig_slt, 0, kreg_val_type_decimal); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_config", kxsync_reg_ttlout4_config, 0, kreg_val_type_hex); + push_reg(ui->gridLayoutWidget, regoff++, "ttlout4_pulse_mode_duration", kxsync_reg_ttlout4_pulse_mode_duration, 0, kreg_val_type_decimal); + // 设置table的高度 auto qrect = ui->gridLayoutWidget->geometry(); qrect.setHeight(31 * regoff - 1); @@ -200,8 +229,15 @@ void MainWindow::construct_reg_table() { // MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); m_mainWindow = this; + + /** + * @brief 填充部分UI + */ construct_reg_table(); qInstallMessageHandler(log_output); + /******************************************************************************* + * 连接信号与槽 * + *******************************************************************************/ qRegisterMetaType("int32_t"); qRegisterMetaType("uint32_t"); @@ -214,20 +250,19 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi connect(this, SIGNAL(updateUI_cameraSyncInfo_signal(QString)), this, SLOT(updateUI_cameraSyncInfo_slot(QString))); connect(this, SIGNAL(updateUI_reg_signal(int32_t, uint32_t)), this, SLOT(updateUI_reg_slot(int32_t, uint32_t))); connect(this, SIGNAL(doinui_signal(QFunction)), this, SLOT(doinui_slot(QFunction))); - m_thread.reset(new ZQThread("test", [this]() { mainWindowsRun(); })); m_thread->start(); // m_xsync.reset(new Xsync()); Xsync::Ins().initialize(XSyncUdpFactoryImpl::Ins()); - Xsync::Ins().regOnTimecodeMsg([this](xysnc_timecode_t *timecode_msg) { // + Xsync::Ins().Basic_registerOnTimecodeMsgCallback([this](xysnc_timecode_t *timecode_msg) { // xysnc_timecode_t timecode = *timecode_msg; QString text = QString(fmt("%02d:%02d:%02d:%02d", timecode.hour, timecode.minute, timecode.second, timecode.frame)); updateUI_timeCodeInfo_signal(text); }); - Xsync::Ins().regOnCameraSyncMsg([this](xysnc_camera_sync_data_t *camera_sync_msg) { // + Xsync::Ins().Basic_registerOnCameraSyncMsgCallback([this](xysnc_camera_sync_data_t *camera_sync_msg) { // xysnc_camera_sync_data_t camera_sync_data = *camera_sync_msg; updateUI_cameraSyncInfo_signal(QString(fmt("%d", camera_sync_data.frameIndex))); }); @@ -297,11 +332,11 @@ void MainWindow::mainWindowsRun() { // } \ } -void MainWindow::on_GenNewMac_clicked() { DO_XSYNC_FUNC(Xsync::Ins().generatorNewMac()); } -void MainWindow::on_FactoryReset_clicked() { DO_XSYNC_FUNC(Xsync::Ins().factoryReset()); } -void MainWindow::on_Reboot_clicked() { DO_XSYNC_FUNC(Xsync::Ins().reboot()); } +void MainWindow::on_GenNewMac_clicked() { DO_XSYNC_FUNC(Xsync::Ins().Basic_generatorNewMac()); } +void MainWindow::on_FactoryReset_clicked() { DO_XSYNC_FUNC(Xsync::Ins().Basic_factoryReset()); } +void MainWindow::on_Reboot_clicked() { DO_XSYNC_FUNC(Xsync::Ins().Basic_reboot()); } void MainWindow::on_ChangeNetCfg_clicked() { // - DO_XSYNC_FUNC(Xsync::Ins().changeNetworkConfig(ui->ChangeNetCfg_ip->text().toStdString(), ui->ChangeNetCfg_mask->text().toStdString(), ui->ChangeNetCfg_gateway->text().toStdString())); + 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() { @@ -322,3 +357,44 @@ void MainWindow::on_ReadReg_clicked() { 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 = // + xsync_internal_signal::str_to_signal_type(ui->TTLOutputMoudle_InputSigType->currentText().toStdString()); + auto OutputSigType = // + xsync_ttlout_module::str_to_output_signal_type(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() { + xsync_internal_signal::signal_type_t InputSigType; + xsync_ttlout_module::output_signal_type_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(xsync_internal_signal::signal_type_to_str(InputSigType))); + ui->TTLOutputMoudle_OutputSigType->setCurrentText(QString::fromStdString(xsync_ttlout_module::output_signal_type_to_str(OutputSigType))); + ui->TTLOutputMoudle_TriggerModePulseWidth->setText(QString::number(TriggerModePulseWidth)); + ui->TTLOutputMoudle_TriggerModePulseDelay->setText(QString::number(TriggerModePulseDelay)); +} \ No newline at end of file diff --git a/mainwindow.h b/mainwindow.h index cb9056f..7ac61b6 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -99,6 +99,9 @@ class MainWindow : public QMainWindow { void updateUI_reg_slot(int32_t regadd, uint32_t regval); void doinui_slot(QFunction); + void on_TTLOutputMoudle_Read_clicked(); + void on_TTLOutputMoudle_Update_clicked(); + signals: void append_log_signal(QString str); void updateUI_timeCodeInfo_signal(QString); diff --git a/mainwindow.ui b/mainwindow.ui index 7556776..8450bcf 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -102,7 +102,7 @@ - 1 + 2 @@ -153,13 +153,13 @@ 0 0 652 - 1000 + 3000 0 - 1000 + 3000 @@ -386,6 +386,304 @@ + + + TTL输出模块 + + + + + 30 + 31 + 81 + 31 + + + + 0 + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + + + 220 + 80 + 241 + 31 + + + + 1 + + + + level0 + + + + + level1 + + + + + ttlin1_module_raw_sig + + + + + ttlin1_module_sig_divide + + + + + ttlin2_module_raw_sig + + + + + ttlin2_module_sig_divide + + + + + ttlin3_module_raw_sig + + + + + ttlin3_module_sig_divide + + + + + ttlin4_module_raw_sig + + + + + ttlin4_module_sig_divide + + + + + genlockin_module_freq_sig + + + + + timecodein_module_trigger_sig + + + + + internal_camera_sync_sig + + + + + internal_timecode_trigger_sig + + + + + internal_genlock_freq_sig + + + + + internal_work_state_sig + + + + + + + 220 + 130 + 241 + 31 + + + + + level0 + + + + + level1 + + + + + test_signal + + + + + input_signal + + + + + input_signal_mirror + + + + + trigger_mode_signal + + + + + trigger_mode_signal_mirror + + + + + + + 220 + 180 + 241 + 31 + + + + + 75 + true + + + + 10 + + + false + + + + + + 220 + 230 + 241 + 31 + + + + + 75 + true + + + + 5 + + + false + + + + + + 500 + 130 + 151 + 41 + + + + Update + + + + + + 30 + 80 + 101 + 31 + + + + InputSigType + + + + + + 30 + 180 + 161 + 31 + + + + TriggerModePulseWidth(ms) + + + + + + 30 + 230 + 151 + 31 + + + + TriggerModePulseDelay(ms) + + + + + + 30 + 130 + 101 + 31 + + + + OutputSigType + + + + + + 500 + 80 + 151 + 41 + + + + Read + + +