|
|
@ -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>("int32_t"); |
|
|
|
qRegisterMetaType<uint32_t>("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)); |
|
|
|
} |