|
|
@ -315,6 +315,26 @@ void MainWindow::construct_reg_table() { // |
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "sys_clock_infreq_detect", reg::sys_clock_infreq_detect, 0, kreg_val_type_decimal); |
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "sys_clock_outfreq_detect", reg::sys_clock_outfreq_detect, 0, kreg_val_type_decimal); |
|
|
|
|
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "record_sig_gen_module", reg::record_sig_gen_module, 0, kreg_val_type_hex); |
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "record_sig_gen_ctrl_control_mode", reg::record_sig_gen_ctrl_control_mode, 0, kreg_val_type_decimal); |
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "record_sig_gen_timecode_start0", reg::record_sig_gen_timecode_start0, 0, kreg_val_type_decimal); |
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "record_sig_gen_timecode_start1", reg::record_sig_gen_timecode_start1, 0, kreg_val_type_decimal); |
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "record_sig_gen_timecode_stop0", reg::record_sig_gen_timecode_stop0, 0, kreg_val_type_decimal); |
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "record_sig_gen_timecode_stop1", reg::record_sig_gen_timecode_stop1, 0, kreg_val_type_decimal); |
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "record_sig_gen_timecode_control_flag", reg::record_sig_gen_timecode_control_flag, 0, kreg_val_type_decimal); |
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "record_sig_gen_ttlin_trigger_sig_source", reg::record_sig_gen_ttlin_trigger_sig_source, 0, kreg_val_type_decimal); |
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "record_sig_gen_ttlin_trigger_level", reg::record_sig_gen_ttlin_trigger_level, 0, kreg_val_type_decimal); |
|
|
|
|
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "record_sig_gen_exposure_time", reg::record_sig_gen_exposure_time, 0, kreg_val_type_decimal); |
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "record_sig_gen_exposure_offset_time", reg::record_sig_gen_exposure_offset_time, 0, kreg_val_type_decimal); |
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "record_sig_gen_manual_ctrl", reg::record_sig_gen_manual_ctrl, 0, kreg_val_type_decimal); |
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "record_sig_gen_start_timecode_snapshot0", reg::record_sig_gen_start_timecode_snapshot0, 0, kreg_val_type_decimal); |
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "record_sig_gen_start_timecode_snapshot1", reg::record_sig_gen_start_timecode_snapshot1, 0, kreg_val_type_decimal); |
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "record_sig_gen_record_state", reg::record_sig_gen_record_state, 0, kreg_val_type_decimal); |
|
|
|
|
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "camera_sync_module", reg::camera_sync_module, 0, kreg_val_type_hex); |
|
|
|
push_reg(ui->gridLayoutWidget, regoff++, "camera_sync_pulse_mode_valid_len", reg::camera_sync_pulse_mode_valid_len, 0, kreg_val_type_decimal); |
|
|
|
|
|
|
|
auto qrect = ui->gridLayoutWidget->geometry(); |
|
|
|
qrect.setHeight(31 * regoff - 1); |
|
|
|
ui->scrollAreaWidgetContents->setMinimumHeight(31 * (regoff + 10) - 1); |
|
|
@ -342,12 +362,12 @@ void MainWindow::UI_TimecodePageConstruct() { |
|
|
|
ui->SysTimecode_Source->addItem(QString::fromStdString("1")); |
|
|
|
} |
|
|
|
|
|
|
|
void MainWindow::UI_CameraSyncPacketGeneratorModuleConstruct() { |
|
|
|
ui->CameraSyncPacketGeneratorModule_TriggerSig->clear(); |
|
|
|
for (auto &str : camera_sync_packet_generator_module::TriggerSigTypeStrSet()) { |
|
|
|
ui->CameraSyncPacketGeneratorModule_TriggerSig->addItem(QString::fromStdString(str)); |
|
|
|
} |
|
|
|
} |
|
|
|
// void MainWindow::UI_CameraSyncPacketGeneratorModuleConstruct() {
|
|
|
|
// ui->CameraSyncPacketGeneratorModule_TriggerSig->clear();
|
|
|
|
// for (auto &str : camera_sync_packet_generator_module::TriggerSigTypeStrSet()) {
|
|
|
|
// ui->CameraSyncPacketGeneratorModule_TriggerSig->addItem(QString::fromStdString(str));
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
void MainWindow::UI_TTLPageConstruct() { |
|
|
|
QStringList list; |
|
|
@ -401,6 +421,18 @@ void MainWindow::UI_SysClockPageConstruct() { |
|
|
|
ui->SysClock_Src->addItem(QString::fromStdString(SignalType2Str(SIGNAL_SYS_GENLOCK_OUTPUT))); |
|
|
|
ui->SysClock_Src->addItem(QString::fromStdString(SignalType2Str(SIGNAL_SYS_TIMECODE_FREQ_OUTPUT))); |
|
|
|
} |
|
|
|
void MainWindow::UI_RecordSigGenConstruct() { |
|
|
|
ui->RecordSigGenerator_ContrlMode->clear(); |
|
|
|
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_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))); |
|
|
|
} |
|
|
|
|
|
|
|
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { |
|
|
|
ui->setupUi(this); |
|
|
@ -412,10 +444,11 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi |
|
|
|
construct_reg_table(); |
|
|
|
qInstallMessageHandler(log_output); |
|
|
|
UI_TimecodePageConstruct(); |
|
|
|
UI_CameraSyncPacketGeneratorModuleConstruct(); |
|
|
|
// UI_CameraSyncPacketGeneratorModuleConstruct();
|
|
|
|
UI_TTLPageConstruct(); |
|
|
|
UI_GenlockPageConstruct(); |
|
|
|
UI_SysClockPageConstruct(); |
|
|
|
UI_RecordSigGenConstruct(); |
|
|
|
|
|
|
|
/*******************************************************************************
|
|
|
|
* 连接信号与槽 * |
|
|
@ -438,18 +471,18 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi |
|
|
|
// m_xsync.reset(new Xsync());
|
|
|
|
|
|
|
|
Xsync::Ins().initialize(XSyncUdpFactoryImpl::Ins()); |
|
|
|
Xsync::Ins().Basic_registerOnTimecodeMsgCallback([this](XsyncTimecode_t *timecode_msg) { //
|
|
|
|
Xsync::Ins().registerOnTimecodeMsgCallback([this](XsyncTimecode_t *timecode_msg) { //
|
|
|
|
XsyncTimecode_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().Basic_registerOnCameraSyncMsgCallback([this](xysnc_camera_sync_data_t *camera_sync_msg) { //
|
|
|
|
Xsync::Ins().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))); |
|
|
|
}); |
|
|
|
|
|
|
|
Xsync::Ins().Basic_registerOnWorkstateChangeMsgCallback([this](uint32_t workstate) { emit doinui_signal(QFunction([this, workstate]() { ui->WorkState->setText(QString::number(workstate)); })); }); |
|
|
|
Xsync::Ins().registerOnWorkstateChangeMsgCallback([this](uint32_t workstate) { emit doinui_signal(QFunction([this, workstate]() { ui->WorkState->setText(QString::number(workstate)); })); }); |
|
|
|
} |
|
|
|
|
|
|
|
MainWindow::~MainWindow() { delete ui; } |
|
|
@ -509,11 +542,11 @@ void MainWindow::mainWindowsRun() { // |
|
|
|
} \ |
|
|
|
} |
|
|
|
|
|
|
|
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_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_ChangeNetCfg_clicked() { //
|
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().Basic_changeNetworkConfig(ui->ChangeNetCfg_ip->text().toStdString(), ui->ChangeNetCfg_mask->text().toStdString(), ui->ChangeNetCfg_gateway->text().toStdString())); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().changeNetworkConfig(ui->ChangeNetCfg_ip->text().toStdString(), ui->ChangeNetCfg_mask->text().toStdString(), ui->ChangeNetCfg_gateway->text().toStdString())); |
|
|
|
} |
|
|
|
|
|
|
|
void MainWindow::on_TimecodePage_Read_clicked() { |
|
|
@ -558,35 +591,14 @@ void MainWindow::on_TimecodePage_Update_clicked() { |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().SysTimecode_setSource(SysTimecode_Source)); |
|
|
|
} |
|
|
|
|
|
|
|
void MainWindow::on_CameraSyncPacketGeneratorModule_Update_clicked() { |
|
|
|
auto TriggerSig = camera_sync_packet_generator_module::Str2TriggerSigType(ui->CameraSyncPacketGeneratorModule_TriggerSig->currentText().toStdString()); |
|
|
|
auto ReportPeriod = ui->CameraSyncPacketGeneratorModule_ReportPeriod->text().toUInt(); |
|
|
|
|
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().CameraSyncPacketGeneratorModule_setTriggerSig(TriggerSig)); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().CameraSyncPacketGeneratorModule_setReportPeriod(ReportPeriod)); |
|
|
|
} |
|
|
|
void MainWindow::on_CameraSyncPacketGeneratorModule_Read_clicked() { |
|
|
|
camera_sync_packet_generator_module::TriggerSigType_t TriggerSig; |
|
|
|
|
|
|
|
uint32_t ReportPeriod; |
|
|
|
uint32_t PacketIndex; |
|
|
|
|
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().CameraSyncPacketGeneratorModule_getTriggerSig(TriggerSig)); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().CameraSyncPacketGeneratorModule_getReportPeriod(ReportPeriod)); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().CameraSyncPacketGeneratorModule_getPacketIndex(PacketIndex)); |
|
|
|
|
|
|
|
ui->CameraSyncPacketGeneratorModule_TriggerSig->setCurrentText(QString::fromStdString(camera_sync_packet_generator_module::TriggerSigType2Str(TriggerSig))); |
|
|
|
ui->CameraSyncPacketGeneratorModule_ReportPeriod->setText(QString::number(ReportPeriod)); |
|
|
|
ui->CameraSyncPacketGeneratorModule_PacketIndex->setText(QString::number(PacketIndex)); |
|
|
|
} |
|
|
|
void MainWindow::on_CameraSyncPacketGeneratorModule_ClearPacketIndex_clicked() { |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().CameraSyncPacketGeneratorModule_clearPacketIndex()); |
|
|
|
on_CameraSyncPacketGeneratorModule_Read_clicked(); |
|
|
|
} |
|
|
|
// void MainWindow::on_CameraSyncPacketGeneratorModule_ClearPacketIndex_clicked() {
|
|
|
|
// DO_XSYNC_FUNC(Xsync::Ins().CameraSyncPacketGeneratorModule_clearPacketIndex());
|
|
|
|
// on_CameraSyncPacketGeneratorModule_Read_clicked();
|
|
|
|
// }
|
|
|
|
|
|
|
|
void MainWindow::on_tabWidget_currentChanged(int index) { |
|
|
|
on_RefreshRegsButton_clicked(); |
|
|
|
on_CameraSyncPacketGeneratorModule_Read_clicked(); |
|
|
|
// on_CameraSyncPacketGeneratorModule_Read_clicked();
|
|
|
|
on_TimecodePage_Read_clicked(); |
|
|
|
on_TTLPage_Read_clicked(); |
|
|
|
} |
|
|
@ -813,4 +825,60 @@ void MainWindow::on_SysClockPage_Wirte_clicked() { |
|
|
|
auto multi = ui->SysClock_FreqMultiplication->text().toUInt(); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().SysClock_setFreqMultiplication(multi)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void MainWindow::on_RecordSigGen_Read_clicked() { |
|
|
|
ControlMode_t mode; |
|
|
|
XsyncTimecode_t autoStartTimecode; |
|
|
|
XsyncTimecode_t autoStopTimecode; |
|
|
|
uint32_t autoStart; |
|
|
|
uint32_t autoStop; |
|
|
|
InputInterface_t ttlPortNum; |
|
|
|
uint32_t polarity; |
|
|
|
uint32_t exposureTime; |
|
|
|
uint32_t exposureOffsetTime; |
|
|
|
uint32_t state; |
|
|
|
|
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_getContrlMode(mode)); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_getAutoStartTimecode(autoStartTimecode)); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_getAutoStopTimecode(autoStopTimecode)); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_getTimecodeCtrlFlag(autoStart, autoStop)); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_getExternalTTLTriggerSrc(ttlPortNum)); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_getExternalTTLTriggerPolarity(polarity)); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_getRecordExposureTime(exposureTime)); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_getRecordExposureOffsetTime(exposureOffsetTime)); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_getRecordState(state)); |
|
|
|
|
|
|
|
ui->RecordSigGenerator_ContrlMode->setCurrentText(QString::fromStdString(ControlMode2Str(mode))); |
|
|
|
ui->RecordSigGenerator_AutoStartTimecode->setText(QString(XsyncTimecodeToStr(autoStartTimecode).c_str())); |
|
|
|
ui->RecordSigGenerator_AutoStopTimecode->setText(QString(XsyncTimecodeToStr(autoStopTimecode).c_str())); |
|
|
|
ui->RecordSigGenerator_TimecodeCtrlFlag0->setChecked(autoStart); |
|
|
|
ui->RecordSigGenerator_TimecodeCtrlFlag1->setChecked(autoStop); |
|
|
|
ui->RecordSigGenerator_ExternalTTLTriggerSrc->setCurrentText(QString::fromStdString(InputInterface2Str(ttlPortNum))); |
|
|
|
ui->RecordSigGenerator_ExternalTTLTriggerPolarity->setText(QString::number(polarity)); |
|
|
|
ui->RecordSigGenerator_RecordExposureTime->setText(QString::number(exposureTime)); |
|
|
|
ui->RecordSigGenerator_RecordExposureOffsetTime->setText(QString::number(exposureOffsetTime)); |
|
|
|
ui->RecordSigGenerator_RecordState->setText(QString::number(state)); |
|
|
|
} |
|
|
|
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(); |
|
|
|
uint32_t exposureTime = ui->RecordSigGenerator_RecordExposureTime->text().toUInt(); |
|
|
|
uint32_t exposureOffsetTime = ui->RecordSigGenerator_RecordExposureOffsetTime->text().toUInt(); |
|
|
|
|
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_setContrlMode(mode)); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_setAutoStartTimecode(autoStartTimecode)); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_setAutoStopTimecode(autoStopTimecode)); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_setTimecodeCtrlFlag(autoStart, autoStop)); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_setExternalTTLTriggerSrc(ttlPortNum)); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_setExternalTTLTriggerPolarity(polarity)); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_setRecordExposureTime(exposureTime)); |
|
|
|
DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_setRecordExposureOffsetTime(exposureOffsetTime)); |
|
|
|
} |
|
|
|
void MainWindow::on_RecordSigGenerator_manualStart_clicked() { DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_manualStart()); } |
|
|
|
void MainWindow::on_RecordSigGenerator_manualStop_clicked() { DO_XSYNC_FUNC(Xsync::Ins().RecordSigGenerator_manualStop()); } |