diff --git a/README.md b/README.md index eeed97a..f5ae0e8 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,7 @@ ``` -QT打包: -参考教程 -https://blog.csdn.net/ColinFhz/article/details/107879769 -logo -https://www.bitbug.net/ -V4: - 1.修改样式 - 2.优化打包体积 +V14: + 修正光源亮度每次提交都会递减的BUG - modbus -设备地址: -波特率 : - - -读取配置 -写入配置 -校验配置 - -配置中有部分配置是只读的,部分配置不需要校验, - -1.协议文件 - 名称,地址,读写特性,备注信息,是否属于配置(如果该配置项是只读的,则只校验配置) - -2.配置 - 地址,数值 - 地址,数值 ``` \ No newline at end of file diff --git a/mainwindow.cpp b/mainwindow.cpp index b2c1975..1bd4438 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -240,16 +240,16 @@ void MainWindow::refreshReadonlyPage1() { } { - float infreq; - float outfreq; + float inperiodus; + float outperiodus; #define UPDATE(index) \ - DO_NO_RET_AND_NOLOG(m_clstc->TriInX_readInSignalFreq(index, infreq)); \ - DO_NO_RET_AND_NOLOG(m_clstc->TriInX_readOutSignalFreq(index, outfreq)); \ + DO_NO_RET_AND_NOLOG(m_clstc->TriInX_readInSignalPeriodUs(index, inperiodus)); \ + DO_NO_RET_AND_NOLOG(m_clstc->TriInX_readOutSignalPeriodUs(index, outperiodus)); \ { \ - emit doinui_signal(QFunction([this, infreq, outfreq]() { \ - ui->TriInX_OutSignalFreq_Val_##index->setText(QString::number(outfreq, 'f', 2)); \ - ui->TriInX_InSignalFreq_Val_##index->setText(QString::number(infreq, 'f', 2)); \ + emit doinui_signal(QFunction([this, inperiodus, outperiodus]() { \ + ui->TriInX_OutSignalPeriodUs_Val_##index->setText(QString::number(outperiodus, 'f', 1)); \ + ui->TriInX_InSignalPeriodUs_Val_##index->setText(QString::number(inperiodus, 'f', 1)); \ })); \ } UPDATE(1); @@ -267,18 +267,18 @@ void MainWindow::refreshReadonlyPage2() { // 刷新光源时序控制页面 { - float infreq; - float outfreq; + float inperiodus; + float outperiodus; uint32_t state; #define UPDATE(index) \ - DO_NO_RET_AND_NOLOG(m_clstc->LightSrcX_readInSigFreqDetect(index, infreq)); \ - DO_NO_RET_AND_NOLOG(m_clstc->LightSrcX_readOutSigFreqDetect(index, outfreq)); \ + DO_NO_RET_AND_NOLOG(m_clstc->LightSrcX_readInSigPeriodUsDetect(index, inperiodus)); \ + DO_NO_RET_AND_NOLOG(m_clstc->LightSrcX_readOutSigPeriodUsDetect(index, outperiodus)); \ DO_NO_RET_AND_NOLOG(m_clstc->LightSrcX_readLightSrcErrorState(index, state)); \ { \ - emit doinui_signal(QFunction([this, infreq, outfreq, state]() { \ - ui->LightSrcX_InSigFreqDetect_##index->setText(QString::number(infreq, 'f', 2)); \ - ui->LightSrcX_OutSigFreqDetect_##index->setText(QString::number(outfreq, 'f', 2)); \ + emit doinui_signal(QFunction([this, inperiodus, outperiodus, state]() { \ + ui->LightSrcX_InSigPeriodUsDetect_##index->setText(QString::number(inperiodus, 'f', 1)); \ + ui->LightSrcX_OutSigPeriodUsDetect_##index->setText(QString::number(outperiodus, 'f', 1)); \ ui->LightSrcX_LightSrcErrorState_##index->setText(QString::number(state)); \ })); \ } @@ -633,15 +633,15 @@ void MainWindow::constructUI() { ui->TriInX_TriggerModeTriggerEdge_Val_4->addItem(QString::fromStdString(TriggerEdge(TriggerEdge::RISING).toString())); ui->TriInX_TriggerModeTriggerEdge_Val_4->addItem(QString::fromStdString(TriggerEdge(TriggerEdge::FALLING).toString())); - ui->TriInX_InSignalFreq_Val_1->setDisabled(true); - ui->TriInX_InSignalFreq_Val_2->setDisabled(true); - ui->TriInX_InSignalFreq_Val_3->setDisabled(true); - ui->TriInX_InSignalFreq_Val_4->setDisabled(true); + ui->TriInX_InSignalPeriodUs_Val_1->setDisabled(true); + ui->TriInX_InSignalPeriodUs_Val_2->setDisabled(true); + ui->TriInX_InSignalPeriodUs_Val_3->setDisabled(true); + ui->TriInX_InSignalPeriodUs_Val_4->setDisabled(true); - ui->TriInX_OutSignalFreq_Val_1->setDisabled(true); - ui->TriInX_OutSignalFreq_Val_2->setDisabled(true); - ui->TriInX_OutSignalFreq_Val_3->setDisabled(true); - ui->TriInX_OutSignalFreq_Val_4->setDisabled(true); + ui->TriInX_OutSignalPeriodUs_Val_1->setDisabled(true); + ui->TriInX_OutSignalPeriodUs_Val_2->setDisabled(true); + ui->TriInX_OutSignalPeriodUs_Val_3->setDisabled(true); + ui->TriInX_OutSignalPeriodUs_Val_4->setDisabled(true); /******************************************************************************* * 光源时序配置 * @@ -682,15 +682,15 @@ void MainWindow::constructUI() { ui->LightSrcX_TriSrc_3->addItems(LightSrcX_TriSrc_QStringList); ui->LightSrcX_TriSrc_4->addItems(LightSrcX_TriSrc_QStringList); - ui->LightSrcX_InSigFreqDetect_1->setDisabled(true); - ui->LightSrcX_InSigFreqDetect_2->setDisabled(true); - ui->LightSrcX_InSigFreqDetect_3->setDisabled(true); - ui->LightSrcX_InSigFreqDetect_4->setDisabled(true); + ui->LightSrcX_InSigPeriodUsDetect_1->setDisabled(true); + ui->LightSrcX_InSigPeriodUsDetect_2->setDisabled(true); + ui->LightSrcX_InSigPeriodUsDetect_3->setDisabled(true); + ui->LightSrcX_InSigPeriodUsDetect_4->setDisabled(true); - ui->LightSrcX_OutSigFreqDetect_1->setDisabled(true); - ui->LightSrcX_OutSigFreqDetect_2->setDisabled(true); - ui->LightSrcX_OutSigFreqDetect_3->setDisabled(true); - ui->LightSrcX_OutSigFreqDetect_4->setDisabled(true); + ui->LightSrcX_OutSigPeriodUsDetect_1->setDisabled(true); + ui->LightSrcX_OutSigPeriodUsDetect_2->setDisabled(true); + ui->LightSrcX_OutSigPeriodUsDetect_3->setDisabled(true); + ui->LightSrcX_OutSigPeriodUsDetect_4->setDisabled(true); ui->LightSrcX_LightSrcErrorState_1->setDisabled(true); ui->LightSrcX_LightSrcErrorState_2->setDisabled(true); diff --git a/mainwindow.ui b/mainwindow.ui index 60d810d..dfc1b3d 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -17,7 +17,7 @@ - 相机光源和时序控制器V14 + 相机光源和时序控制器 /* @@ -1070,34 +1070,24 @@ QGroupBox:title { 软件信息 - - - - - 1 - 0 - - - - ARM-版本 - - - - - + + - + 1 0 - - FPGA-版本 + + + 0 + 25 + - - + + 1 @@ -1105,12 +1095,12 @@ QGroupBox:title { - 上位机-版本 + ARM-版本 - - + + 1 @@ -1125,19 +1115,16 @@ QGroupBox:title { - - + + - + 1 0 - - - 0 - 25 - + + 上位机-版本 @@ -1157,6 +1144,19 @@ QGroupBox:title { + + + + + 1 + 0 + + + + FPGA-版本 + + + @@ -1226,7 +1226,7 @@ QGroupBox:title { - 4 + 0 true @@ -1258,7 +1258,7 @@ QGroupBox:title { 20 - + 0 @@ -1358,7 +1358,7 @@ QGroupBox:title { - 输入频率探测(HZ) + 输入周期探测(us) @@ -1454,7 +1454,7 @@ QGroupBox:title { - + 0 @@ -1526,7 +1526,7 @@ QGroupBox:title { - 输出频率探测(HZ) + 输出周期探测(us) @@ -1825,7 +1825,7 @@ QGroupBox:title { - 输出频率探测(HZ) + 输出周期探测(us) @@ -1862,7 +1862,7 @@ QGroupBox:title { - + 0 @@ -1917,7 +1917,7 @@ QGroupBox:title { - 输入频率探测(HZ) + 输入周期探测(us) @@ -1932,7 +1932,7 @@ QGroupBox:title { - + 0 @@ -2147,7 +2147,7 @@ QGroupBox:title { - + 0 @@ -2237,7 +2237,7 @@ QGroupBox:title { - 输入频率探测(HZ) + 输入周期探测(us) @@ -2363,7 +2363,7 @@ QGroupBox:title { - + 0 @@ -2393,7 +2393,7 @@ QGroupBox:title { - 输出频率探测(HZ) + 输出周期探测(us) @@ -2563,7 +2563,7 @@ QGroupBox:title { - + 0 @@ -2650,7 +2650,7 @@ QGroupBox:title { - 输出频率探测(HZ) + 输出周期探测(us) @@ -2675,12 +2675,12 @@ QGroupBox:title { - 输入频率探测(HZ) + 输入周期探测(us) - + 0 @@ -3045,7 +3045,7 @@ QGroupBox:title { - + 0 @@ -3065,7 +3065,7 @@ QGroupBox:title { - 输入触发频率(HZ) + 输入信号周期探测(us) @@ -3080,7 +3080,7 @@ QGroupBox:title { - + 0 @@ -3125,7 +3125,7 @@ QGroupBox:title { - + 0 @@ -3145,7 +3145,7 @@ QGroupBox:title { - 输出频率(HZ) + 输出信号周期探测(us) @@ -3220,7 +3220,7 @@ QGroupBox:title { - + 0 @@ -3508,7 +3508,7 @@ QGroupBox:title { - + 0 @@ -3518,7 +3518,7 @@ QGroupBox:title { - + 0 @@ -3583,7 +3583,7 @@ QGroupBox:title { - + 0 @@ -3603,7 +3603,7 @@ QGroupBox:title { - 输出频率(HZ) + 输出信号周期探测(us) @@ -3615,7 +3615,7 @@ QGroupBox:title { - + 0 @@ -3635,7 +3635,7 @@ QGroupBox:title { - 输入触发频率(HZ) + 输入信号周期探测(us) @@ -3781,7 +3781,7 @@ QGroupBox:title { - + 0 @@ -3801,7 +3801,7 @@ QGroupBox:title { - 输入触发频率(HZ) + 输入信号周期探测(us) @@ -3856,7 +3856,7 @@ QGroupBox:title { - + 0 @@ -3902,7 +3902,7 @@ QGroupBox:title { - + 0 @@ -3922,7 +3922,7 @@ QGroupBox:title { - 输出频率(HZ) + 输出信号周期探测(us) @@ -3957,7 +3957,7 @@ QGroupBox:title { - + 0 @@ -4026,7 +4026,7 @@ QGroupBox:title { - + 0 @@ -4046,7 +4046,7 @@ QGroupBox:title { - + 0 @@ -4066,7 +4066,7 @@ QGroupBox:title { - 输入触发频率(HZ) + 输入信号周期探测(us) @@ -4081,7 +4081,7 @@ QGroupBox:title { - + 0 @@ -4151,7 +4151,7 @@ QGroupBox:title { - + 0 @@ -4171,7 +4171,7 @@ QGroupBox:title { - 输出频率(HZ) + 输出信号周期探测(us) @@ -5248,15 +5248,19 @@ QGroupBox:title { 451 - 511 + 600 - 451 - 511 + 16777215 + 600 + + background-color: rgb(255, 255, 255, 60); +border-width:0;border-style:outset + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> @@ -5265,6 +5269,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Consolas','Courier New','monospace'; font-size:11pt; font-weight:600; color:#ff0000;">PC-VERSION</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Consolas','Courier New','monospace'; font-size:11pt; font-weight:600; color:#ff0000;"> V14:</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Consolas','Courier New','monospace'; font-size:11pt; font-weight:600; color:#ff0000;"> 1.修正光源亮度每次提交都会递减的BUG</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Consolas','Courier New','monospace'; font-size:11pt; font-weight:600; color:#ff0000;"> 2.频率探测修改成周期探测</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Consolas','Courier New','monospace'; font-size:11pt; font-weight:600; color:#ff0000;"> V13:</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Consolas','Courier New','monospace'; font-size:11pt; font-weight:600; color:#ff0000;"> 1.添加版本说明</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Consolas','Courier New','monospace'; font-size:11pt; font-weight:600; color:#ff0000;">    V12:</span></p> @@ -5272,8 +5277,10 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Consolas','Courier New','monospace'; font-size:11pt; font-weight:600; color:#ff0000;">        2.提交配置后,自动启动内部触发</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Consolas','Courier New','monospace'; font-size:11pt; font-weight:600; color:#ff0000;">        </span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Consolas','Courier New','monospace'; font-size:11pt; font-weight:600; color:#ff0000;">FPGA-FIRMWARE-VERSION</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Consolas','Courier New','monospace'; font-size:11pt; font-weight:600; color:#ff0000;"> V9:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Consolas','Courier New','monospace'; font-size:11pt; font-weight:600; color:#ff0000;"> 1.修复倍频器2+倍频信号错误的BUG</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Consolas','Courier New','monospace'; font-size:11pt; font-weight:600; color:#ff0000;">    V7:</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Consolas','Courier New','monospace'; font-size:11pt; font-weight:600; color:#ff0000;">        1.修复倍频器BUG的BUG</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Consolas','Courier New','monospace'; font-size:11pt; font-weight:600; color:#ff0000;">        1.修复倍频器BUG</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Consolas','Courier New','monospace'; font-size:11pt; font-weight:600; color:#ff0000;">        2.添加调试信号输出</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Consolas','Courier New','monospace'; font-size:11pt; font-weight:600; color:#ff0000;">    V6: </span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Consolas','Courier New','monospace'; font-size:11pt; font-weight:600; color:#ff0000;">        1.光耦输入默认反向</span></p> @@ -5317,15 +5324,19 @@ p, li { white-space: pre-wrap; } 451 - 511 + 600 - 451 - 511 + 16777215 + 600 + + background-color: rgb(255, 255, 255, 60); +border-width:0;border-style:outset + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> @@ -5412,7 +5423,7 @@ p, li { white-space: pre-wrap; } - IFLYTOP_V13 + IFLYTOP_V14 diff --git a/src/camera_light_src_timing_controller/clst_controler.cpp b/src/camera_light_src_timing_controller/clst_controler.cpp index 3627d11..19993db 100644 --- a/src/camera_light_src_timing_controller/clst_controler.cpp +++ b/src/camera_light_src_timing_controller/clst_controler.cpp @@ -408,7 +408,7 @@ zaf_error_code_t CLSTControler::readFreq(uint32_t reg, float &freqfloat) { } if (freq_cnt != 0) { - uint32_t freq_1000x = ((1.0 / (freq_cnt * 1.0 / (100 * 1000 * 1000))) * 1000 + 0.5); //+0.5???c++ ?????????????????? + uint32_t freq_1000x = ((1.0 / (freq_cnt * 1.0 / (100 * 1000 * 1000))) * 1000 + 0.5); // // ZLOGI(TAG, "freq_10x %f", freq_10x); freqfloat = freq_1000x / 1000.0; } else { @@ -420,6 +420,12 @@ zaf_error_code_t CLSTControler::readFreq(uint32_t reg, float &freqfloat) { return kaf_ec_success; } +zaf_error_code_t CLSTControler::readSigPeriodUs(uint32_t reg, float &us) { + uint32_t freq_cnt = 0; + DO_CMD(reg_read(reg, freq_cnt, 30)); + us = freq_cnt * 10 / 1000.0; + return kaf_ec_success; +} /******************************************************************************* * ???? * @@ -554,13 +560,13 @@ zaf_error_code_t CLSTControler::TriInX_getTriggerModeFreqMultiplication(int32_t return reg_read(kreg_trigger_in1_trigger_mode_freq_multiplication + (index - 1) * 32, multiplication); } -zaf_error_code_t CLSTControler::TriInX_readInSignalFreq(int32_t index, float &freq) { // +zaf_error_code_t CLSTControler::TriInX_readInSignalPeriodUs(int32_t index, float &us) { // if (index < 1 || index > 4) return kaf_ec_param_error; - return readFreq(kreg_trigger_in1_in_signal_freq + (index - 1) * 32, freq); + return readSigPeriodUs(kreg_trigger_in1_in_signal_freq + (index - 1) * 32, us); } -zaf_error_code_t CLSTControler::TriInX_readOutSignalFreq(int32_t index, float &freq) { // +zaf_error_code_t CLSTControler::TriInX_readOutSignalPeriodUs(int32_t index, float &us) { // if (index < 1 || index > 4) return kaf_ec_param_error; - return readFreq(kreg_trigger_in1_out_signal_freq + (index - 1) * 32, freq); + return readSigPeriodUs(kreg_trigger_in1_out_signal_freq + (index - 1) * 32, us); return kaf_ec_success; } zaf_error_code_t CLSTControler::TriInX_getSequentialControlPluseCntMax(int32_t index, uint32_t &cnt) { @@ -656,11 +662,11 @@ zaf_error_code_t CLSTControler::LightSrcX_readLightSrcErrorState(int32_t index, if (index < 1 || index > 4) return kaf_ec_param_error; return reg_read(kreg_light_ctrol_module1_light_src_error_state + (index - 1) * 32, state); } -zaf_error_code_t CLSTControler::LightSrcX_readInSigFreqDetect(int32_t index, float &freq) { // - return readFreq(kreg_light_ctrol_module1_in_sig_freq_detect + (index - 1) * 32, freq); +zaf_error_code_t CLSTControler::LightSrcX_readInSigPeriodUsDetect(int32_t index, float &us) { // + return readSigPeriodUs(kreg_light_ctrol_module1_in_sig_freq_detect + (index - 1) * 32, us); } -zaf_error_code_t CLSTControler::LightSrcX_readOutSigFreqDetect(int32_t index, float &freq) { // - return readFreq(kreg_light_ctrol_module1_out_sig_freq_detect + (index - 1) * 32, freq); +zaf_error_code_t CLSTControler::LightSrcX_readOutSigPeriodUsDetect(int32_t index, float &us) { // + return readSigPeriodUs(kreg_light_ctrol_module1_out_sig_freq_detect + (index - 1) * 32, us); } /******************************************************************************* diff --git a/src/camera_light_src_timing_controller/clst_controler.hpp b/src/camera_light_src_timing_controller/clst_controler.hpp index b904c27..80bf15a 100644 --- a/src/camera_light_src_timing_controller/clst_controler.hpp +++ b/src/camera_light_src_timing_controller/clst_controler.hpp @@ -136,8 +136,8 @@ class CLSTControler { zaf_error_code_t TriInX_getTriggerModeFreqMultiplication(int32_t index, uint32_t &multiplication); zaf_error_code_t TriInX_getSequentialControlPluseCntMax(int32_t index, uint32_t &cnt); - zaf_error_code_t TriInX_readInSignalFreq(int32_t index, float &freq); - zaf_error_code_t TriInX_readOutSignalFreq(int32_t index, float &freq); + zaf_error_code_t TriInX_readInSignalPeriodUs(int32_t index, float &us); + zaf_error_code_t TriInX_readOutSignalPeriodUs(int32_t index, float &us); /******************************************************************************* * 光源控制 * @@ -155,8 +155,8 @@ class CLSTControler { zaf_error_code_t LightSrcX_getLightDriverFreq(int32_t index, float &freq); zaf_error_code_t LightSrcX_readLightSrcErrorState(int32_t index, uint32_t &state); - zaf_error_code_t LightSrcX_readInSigFreqDetect(int32_t index, float &freq); - zaf_error_code_t LightSrcX_readOutSigFreqDetect(int32_t index, float &freq); + zaf_error_code_t LightSrcX_readInSigPeriodUsDetect(int32_t index, float &us); + zaf_error_code_t LightSrcX_readOutSigPeriodUsDetect(int32_t index, float &us); /******************************************************************************* * 快门控制 * @@ -180,6 +180,7 @@ class CLSTControler { zaf_error_code_t sendPacket(zaf_packet_header_t *packet, uint32_t len, uint32_t overtime); zaf_error_code_t readFreq(uint32_t reg, float &freq); + zaf_error_code_t readSigPeriodUs(uint32_t reg, float &us); }; } // namespace clst