Browse Source

TTLOUTPUT OK

master
zhaohe 2 years ago
parent
commit
fbb5b2d1da
  1. 2
      libxsync
  2. 90
      mainwindow.cpp
  3. 3
      mainwindow.h
  4. 304
      mainwindow.ui

2
libxsync

@ -1 +1 @@
Subproject commit f3f3e6ffe2f4badaf89a29003722c8772b82a738
Subproject commit b821d5a4a5c43eee223df3a75845f22cefd46441

90
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_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++, "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的高度 // 设置table的高度
auto qrect = ui->gridLayoutWidget->geometry(); auto qrect = ui->gridLayoutWidget->geometry();
qrect.setHeight(31 * regoff - 1); qrect.setHeight(31 * regoff - 1);
@ -200,8 +229,15 @@ void MainWindow::construct_reg_table() { //
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {
ui->setupUi(this); ui->setupUi(this);
m_mainWindow = this; m_mainWindow = this;
/**
* @brief UI
*/
construct_reg_table(); construct_reg_table();
qInstallMessageHandler(log_output); qInstallMessageHandler(log_output);
/*******************************************************************************
* *
*******************************************************************************/
qRegisterMetaType<int32_t>("int32_t"); qRegisterMetaType<int32_t>("int32_t");
qRegisterMetaType<uint32_t>("uint32_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_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(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))); connect(this, SIGNAL(doinui_signal(QFunction)), this, SLOT(doinui_slot(QFunction)));
m_thread.reset(new ZQThread("test", [this]() { mainWindowsRun(); })); m_thread.reset(new ZQThread("test", [this]() { mainWindowsRun(); }));
m_thread->start(); m_thread->start();
// m_xsync.reset(new Xsync()); // m_xsync.reset(new Xsync());
Xsync::Ins().initialize(XSyncUdpFactoryImpl::Ins()); 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; xysnc_timecode_t timecode = *timecode_msg;
QString text = QString(fmt("%02d:%02d:%02d:%02d", timecode.hour, timecode.minute, timecode.second, timecode.frame)); QString text = QString(fmt("%02d:%02d:%02d:%02d", timecode.hour, timecode.minute, timecode.second, timecode.frame));
updateUI_timeCodeInfo_signal(text); 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; xysnc_camera_sync_data_t camera_sync_data = *camera_sync_msg;
updateUI_cameraSyncInfo_signal(QString(fmt("%d", camera_sync_data.frameIndex))); 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() { // 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() { 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); ZLOGI(TAG, "read reg 0x%08x 0x%08x success", regadd, regval);
ui->RegVal->setText(QString(fmt("0x%08x", 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));
}

3
mainwindow.h

@ -99,6 +99,9 @@ class MainWindow : public QMainWindow {
void updateUI_reg_slot(int32_t regadd, uint32_t regval); void updateUI_reg_slot(int32_t regadd, uint32_t regval);
void doinui_slot(QFunction); void doinui_slot(QFunction);
void on_TTLOutputMoudle_Read_clicked();
void on_TTLOutputMoudle_Update_clicked();
signals: signals:
void append_log_signal(QString str); void append_log_signal(QString str);
void updateUI_timeCodeInfo_signal(QString); void updateUI_timeCodeInfo_signal(QString);

304
mainwindow.ui

@ -102,7 +102,7 @@
</rect> </rect>
</property> </property>
<property name="currentIndex"> <property name="currentIndex">
<number>1</number>
<number>2</number>
</property> </property>
<widget class="QWidget" name="tab"> <widget class="QWidget" name="tab">
<attribute name="title"> <attribute name="title">
@ -153,13 +153,13 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>652</width> <width>652</width>
<height>1000</height>
<height>3000</height>
</rect> </rect>
</property> </property>
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>0</width> <width>0</width>
<height>1000</height>
<height>3000</height>
</size> </size>
</property> </property>
<widget class="QWidget" name="gridLayoutWidget"> <widget class="QWidget" name="gridLayoutWidget">
@ -386,6 +386,304 @@
</property> </property>
</widget> </widget>
</widget> </widget>
<widget class="QWidget" name="tab_3">
<attribute name="title">
<string>TTL输出模块</string>
</attribute>
<widget class="QComboBox" name="TTLOutputMoudle_ID">
<property name="geometry">
<rect>
<x>30</x>
<y>31</y>
<width>81</width>
<height>31</height>
</rect>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<item>
<property name="text">
<string notr="true">1</string>
</property>
</item>
<item>
<property name="text">
<string>2</string>
</property>
</item>
<item>
<property name="text">
<string>3</string>
</property>
</item>
<item>
<property name="text">
<string>4</string>
</property>
</item>
</widget>
<widget class="QComboBox" name="TTLOutputMoudle_InputSigType">
<property name="geometry">
<rect>
<x>220</x>
<y>80</y>
<width>241</width>
<height>31</height>
</rect>
</property>
<property name="currentIndex">
<number>1</number>
</property>
<item>
<property name="text">
<string>level0</string>
</property>
</item>
<item>
<property name="text">
<string>level1</string>
</property>
</item>
<item>
<property name="text">
<string>ttlin1_module_raw_sig</string>
</property>
</item>
<item>
<property name="text">
<string>ttlin1_module_sig_divide</string>
</property>
</item>
<item>
<property name="text">
<string>ttlin2_module_raw_sig</string>
</property>
</item>
<item>
<property name="text">
<string>ttlin2_module_sig_divide</string>
</property>
</item>
<item>
<property name="text">
<string>ttlin3_module_raw_sig</string>
</property>
</item>
<item>
<property name="text">
<string>ttlin3_module_sig_divide</string>
</property>
</item>
<item>
<property name="text">
<string>ttlin4_module_raw_sig</string>
</property>
</item>
<item>
<property name="text">
<string>ttlin4_module_sig_divide</string>
</property>
</item>
<item>
<property name="text">
<string>genlockin_module_freq_sig</string>
</property>
</item>
<item>
<property name="text">
<string>timecodein_module_trigger_sig</string>
</property>
</item>
<item>
<property name="text">
<string>internal_camera_sync_sig</string>
</property>
</item>
<item>
<property name="text">
<string>internal_timecode_trigger_sig</string>
</property>
</item>
<item>
<property name="text">
<string>internal_genlock_freq_sig</string>
</property>
</item>
<item>
<property name="text">
<string>internal_work_state_sig</string>
</property>
</item>
</widget>
<widget class="QComboBox" name="TTLOutputMoudle_OutputSigType">
<property name="geometry">
<rect>
<x>220</x>
<y>130</y>
<width>241</width>
<height>31</height>
</rect>
</property>
<item>
<property name="text">
<string>level0</string>
</property>
</item>
<item>
<property name="text">
<string>level1</string>
</property>
</item>
<item>
<property name="text">
<string>test_signal</string>
</property>
</item>
<item>
<property name="text">
<string>input_signal</string>
</property>
</item>
<item>
<property name="text">
<string>input_signal_mirror</string>
</property>
</item>
<item>
<property name="text">
<string>trigger_mode_signal</string>
</property>
</item>
<item>
<property name="text">
<string>trigger_mode_signal_mirror</string>
</property>
</item>
</widget>
<widget class="QLineEdit" name="TTLOutputMoudle_TriggerModePulseWidth">
<property name="geometry">
<rect>
<x>220</x>
<y>180</y>
<width>241</width>
<height>31</height>
</rect>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>10</string>
</property>
<property name="readOnly">
<bool>false</bool>
</property>
</widget>
<widget class="QLineEdit" name="TTLOutputMoudle_TriggerModePulseDelay">
<property name="geometry">
<rect>
<x>220</x>
<y>230</y>
<width>241</width>
<height>31</height>
</rect>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>5</string>
</property>
<property name="readOnly">
<bool>false</bool>
</property>
</widget>
<widget class="QPushButton" name="TTLOutputMoudle_Update">
<property name="geometry">
<rect>
<x>500</x>
<y>130</y>
<width>151</width>
<height>41</height>
</rect>
</property>
<property name="text">
<string>Update</string>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>30</x>
<y>80</y>
<width>101</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>InputSigType</string>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>30</x>
<y>180</y>
<width>161</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>TriggerModePulseWidth(ms)</string>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>30</x>
<y>230</y>
<width>151</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>TriggerModePulseDelay(ms)</string>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>30</x>
<y>130</y>
<width>101</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>OutputSigType</string>
</property>
</widget>
<widget class="QPushButton" name="TTLOutputMoudle_Read">
<property name="geometry">
<rect>
<x>500</x>
<y>80</y>
<width>151</width>
<height>41</height>
</rect>
</property>
<property name="text">
<string>Read</string>
</property>
</widget>
</widget>
</widget> </widget>
</widget> </widget>
<widget class="QMenuBar" name="menubar"> <widget class="QMenuBar" name="menubar">

Loading…
Cancel
Save