diff --git a/libxsync b/libxsync index 94c4352..ceb3c26 160000 --- a/libxsync +++ b/libxsync @@ -1 +1 @@ -Subproject commit 94c4352c150f3d559301a8c1f9a5baa2b5ff0394 +Subproject commit ceb3c26ea5b262fe792bfb4418f8186b450faa39 diff --git a/mainwindow.cpp b/mainwindow.cpp index ec36c08..2ec67b8 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -333,8 +333,6 @@ void MainWindow::construct_reg_table() { // push_reg(ui->gridLayoutWidget, regoff++, "delayer_delay_sig_index", reg::delayer_delay_sig_index, 0, kreg_val_type_decimal); push_reg(ui->gridLayoutWidget, regoff++, "delayer_delay_us", reg::delayer_delay_us, 0, kreg_val_type_decimal); - - auto qrect = ui->gridLayoutWidget->geometry(); qrect.setHeight(31 * regoff - 1); ui->scrollAreaWidgetContents->setMinimumHeight(31 * (regoff + 10) - 1); @@ -455,12 +453,18 @@ void MainWindow::UI_RecordSigGenConstruct() { ui->RecordSigGenerator_ContrlMode->addItem(QString::fromStdString(ControlMode2Str(CONTROLMODE_MANUAL_TRIGGER))); ui->RecordSigGenerator_ContrlMode->addItem(QString::fromStdString(ControlMode2Str(CONTROLMODE_TIMECODE_TRIGGER))); ui->RecordSigGenerator_ContrlMode->addItem(QString::fromStdString(ControlMode2Str(CONTROLMODE_EXTERNALTTL_TRIGGER))); + ui->RecordSigGenerator_ContrlMode->addItem(QString::fromStdString(ControlMode2Str(CONTROLMODE_EXTERNALTTL_EDGE_TRIGGER))); ui->RecordSigGenerator_ExternalTTLTriggerSrc->clear(); ui->RecordSigGenerator_ExternalTTLTriggerSrc->addItem(QString::fromStdString(InputInterface2Str(INPUT_IF_TTL1))); ui->RecordSigGenerator_ExternalTTLTriggerSrc->addItem(QString::fromStdString(InputInterface2Str(INPUT_IF_TTL2))); ui->RecordSigGenerator_ExternalTTLTriggerSrc->addItem(QString::fromStdString(InputInterface2Str(INPUT_IF_TTL3))); ui->RecordSigGenerator_ExternalTTLTriggerSrc->addItem(QString::fromStdString(InputInterface2Str(INPUT_IF_TTL4))); + + ui->RecordSigGenerator_TriggerEdge->clear(); + ui->RecordSigGenerator_TriggerEdge->addItem(QString::fromStdString(TriggerEdge2Str(TRIGGER_EDGE_RISING))); + ui->RecordSigGenerator_TriggerEdge->addItem(QString::fromStdString(TriggerEdge2Str(TRIGGER_EDGE_FALLING))); + ui->RecordSigGenerator_TriggerEdge->addItem(QString::fromStdString(TriggerEdge2Str(TRIGGER_EDGE_BOTH))); } MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { @@ -601,7 +605,7 @@ void MainWindow::mainWindowsRun() { // ZLOGE(TAG, "do: %s fail,ecode:[%d](%s)", #exptr, ecode, xs_error_code_2_str(ecode)); \ return; \ } else { \ - ZLOGI(TAG, "do: %s success", #exptr); \ + \ } \ } @@ -1007,6 +1011,7 @@ void MainWindow::on_RecordSigGen_Read_clicked() { uint32_t exposureOffsetTime; uint32_t state; XsyncTimecode_t timecode_snapshot; + TriggerEdge_t edge; DO_XSYNC_FUNC(XsyncIns()->RecordSigGenerator_getContrlMode(mode)); DO_XSYNC_FUNC(XsyncIns()->RecordSigGenerator_getAutoStartTimecode(autoStartTimecode)); @@ -1016,6 +1021,7 @@ void MainWindow::on_RecordSigGen_Read_clicked() { DO_XSYNC_FUNC(XsyncIns()->RecordSigGenerator_getExternalTTLTriggerPolarity(polarity)); DO_XSYNC_FUNC(XsyncIns()->RecordSigGenerator_getRecordState(state)); DO_XSYNC_FUNC(XsyncIns()->RecordSigGenerator_readTimecodeSnapshot(timecode_snapshot)); + DO_XSYNC_FUNC(XsyncIns()->RecordSigGenerator_getTriggerEdge(edge)); ui->RecordSigGenerator_ContrlMode->setCurrentText(QString::fromStdString(ControlMode2Str(mode))); ui->RecordSigGenerator_AutoStartTimecode->setText(QString(XsyncTimecodeToStr(autoStartTimecode).c_str())); @@ -1024,19 +1030,30 @@ void MainWindow::on_RecordSigGen_Read_clicked() { ui->RecordSigGenerator_TimecodeCtrlFlag1->setChecked(autoStop); ui->RecordSigGenerator_ExternalTTLTriggerSrc->setCurrentText(QString::fromStdString(InputInterface2Str(ttlPortNum))); ui->RecordSigGenerator_ExternalTTLTriggerPolarity->setText(QString::number(polarity)); + ui->RecordSigGenerator_TriggerEdge->setCurrentText(QString::fromStdString(TriggerEdge2Str(edge))); // ui->RecordSigGenerator_RecordExposureTime->setText(QString::number(exposureTime)); // ui->RecordSigGenerator_RecordExposureOffsetTime->setText(QString::number(exposureOffsetTime)); ui->RecordSigGenerator_RecordState->setText(QString::number(state)); ui->RecordSigGenerator_TimecodeSnapshot->setText(QString(XsyncTimecodeToStr(timecode_snapshot).c_str())); } void MainWindow::on_RecordSigGen_Write_clicked() { - ControlMode_t mode = Str2ControlMode(ui->RecordSigGenerator_ContrlMode->currentText().toStdString()); - XsyncTimecode_t autoStartTimecode = Str2XsyncTimecode(ui->RecordSigGenerator_AutoStartTimecode->text().toStdString()); - XsyncTimecode_t autoStopTimecode = Str2XsyncTimecode(ui->RecordSigGenerator_AutoStopTimecode->text().toStdString()); - uint32_t autoStart = ui->RecordSigGenerator_TimecodeCtrlFlag0->isChecked(); - uint32_t autoStop = ui->RecordSigGenerator_TimecodeCtrlFlag1->isChecked(); - InputInterface_t ttlPortNum = Str2InputInterface(ui->RecordSigGenerator_ExternalTTLTriggerSrc->currentText().toStdString()); - uint32_t polarity = ui->RecordSigGenerator_ExternalTTLTriggerPolarity->text().toUInt(); + ControlMode_t mode = Str2ControlMode(ui->RecordSigGenerator_ContrlMode->currentText().toStdString()); + + uint32_t autoStart = ui->RecordSigGenerator_TimecodeCtrlFlag0->isChecked(); + uint32_t autoStop = ui->RecordSigGenerator_TimecodeCtrlFlag1->isChecked(); + InputInterface_t ttlPortNum = Str2InputInterface(ui->RecordSigGenerator_ExternalTTLTriggerSrc->currentText().toStdString()); + uint32_t polarity = ui->RecordSigGenerator_ExternalTTLTriggerPolarity->text().toUInt(); + TriggerEdge_t edge = Str2TriggerEdge(ui->RecordSigGenerator_TriggerEdge->currentText().toStdString()); + + static XsyncTimecode_t autoStopTimecode; + Str2XsyncTimecode(ui->RecordSigGenerator_AutoStopTimecode->text().toStdString(), autoStopTimecode); + static XsyncTimecode_t autoStartTimecode; + Str2XsyncTimecode(ui->RecordSigGenerator_AutoStartTimecode->text().toStdString(), autoStartTimecode); + + ZLOGI(TAG, "............. %s", ui->RecordSigGenerator_AutoStartTimecode->text().toStdString().c_str()); + ZLOGI(TAG, "............. %s", ui->RecordSigGenerator_AutoStopTimecode->text().toStdString().c_str()); + ZLOGI(TAG, "1 %d %d %d %d %d ", autoStartTimecode.hour, autoStartTimecode.minute, autoStartTimecode.second, autoStartTimecode.frame, autoStartTimecode.subframe); + ZLOGI(TAG, "2 %d %d %d %d %d ", autoStopTimecode.hour, autoStopTimecode.minute, autoStopTimecode.second, autoStopTimecode.frame, autoStopTimecode.subframe); // uint32_t exposureTime = ui->RecordSigGenerator_RecordExposureTime->text().toUInt(); // uint32_t exposureOffsetTime = ui->RecordSigGenerator_RecordExposureOffsetTime->text().toUInt(); @@ -1048,6 +1065,7 @@ void MainWindow::on_RecordSigGen_Write_clicked() { DO_XSYNC_FUNC(XsyncIns()->RecordSigGenerator_setTimecodeCtrlFlag(autoStart, autoStop)); DO_XSYNC_FUNC(XsyncIns()->RecordSigGenerator_setExternalTTLTriggerSrc(ttlPortNum)); DO_XSYNC_FUNC(XsyncIns()->RecordSigGenerator_setExternalTTLTriggerPolarity(polarity)); + DO_XSYNC_FUNC(XsyncIns()->RecordSigGenerator_setTriggerEdge(edge)); // DO_XSYNC_FUNC(XsyncIns()->RecordSigGenerator_setRecordExposureTime(exposureTime)); // DO_XSYNC_FUNC(XsyncIns()->RecordSigGenerator_setRecordExposureOffsetTime(exposureOffsetTime)); } @@ -1109,5 +1127,4 @@ void MainWindow::on_DelayContrl_Update_clicked() { DO_XSYNC_FUNC(XsyncIns()->DelayContrl_setInputDelay(DelayContrl_InputDelay)); DO_XSYNC_FUNC(XsyncIns()->DelayContrl_setOutputDelay(DelayContrl_OutputDelay)); - } diff --git a/mainwindow.ui b/mainwindow.ui index b9f0dc6..45d7853 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -204,7 +204,7 @@ - 6 + 4 @@ -2752,7 +2752,7 @@ 20 - 60 + 100 81 31 @@ -2765,7 +2765,7 @@ 110 - 60 + 100 141 31 @@ -2796,6 +2796,32 @@ -1 + + + + 110 + 60 + 141 + 31 + + + + -1 + + + + + + 20 + 60 + 81 + 31 + + + + 触发边沿 + +