Browse Source

update

master
zhaohe 1 year ago
parent
commit
702b39301f
  1. 163
      mainwindow.cpp
  2. 1270
      mainwindow.ui
  3. 4
      src/camera_light_src_timing_controller/clst_controler.cpp
  4. 2
      src/camera_light_src_timing_controller/qt_serial_datachannel.cpp

163
mainwindow.cpp

@ -123,15 +123,42 @@ void MainWindow::updatePage() {
UPDATE(4); UPDATE(4);
#undef UPDATE #undef UPDATE
} }
{
InternalSig src;
uint32_t width;
uint32_t offset;
float duty;
float freq;
#define UPDATE(index) \
src = InternalSig(ui->LightSrcX_TriSrc_##index->currentText().toStdString()); \
width = ui->LightSrcX_TriggerModePluseWidth_##index->text().toUInt(); \
offset = ui->LightSrcX_TriggerModeFirstPluseOffset_##index->text().toUInt(); \
duty = ui->LightSrcX_LightIntensityDuty_##index->text().toFloat(); \
freq = ui->LightSrcX_LightDriverFreq_##index->text().toFloat(); \
DO(m_clstc->LightSrcX_setTriSrc(index, src)); \
DO(m_clstc->LightSrcX_setTriggerModePluseWidth(index, width)); \
DO(m_clstc->LightSrcX_setTriggerModeFirstPluseOffset(index, offset)); \
DO(m_clstc->LightSrcX_setLightIntensityDuty(index, duty)); \
DO(m_clstc->LightSrcX_setLightDriverFreq(index, freq));
UPDATE(1);
UPDATE(2);
UPDATE(3);
UPDATE(4);
}
} }
void MainWindow::refreshReadonlyPage() { void MainWindow::refreshReadonlyPage() {
zaf_error_code_t ecode; zaf_error_code_t ecode;
if (!G_QTDataChannel.isOpen()) {
return;
}
{ {
float TriOutSignalFreq; float TriOutSignalFreq;
ecode = m_clstc->InterClk_readTriOutSignalFreq(TriOutSignalFreq);
if (ecode != kaf_ec_success) return;
DO(m_clstc->InterClk_readTriOutSignalFreq(TriOutSignalFreq));
ui->InterClk_TriOutSignalFreq_Text->setText(QString::number(TriOutSignalFreq, 'f', 2)); ui->InterClk_TriOutSignalFreq_Text->setText(QString::number(TriOutSignalFreq, 'f', 2));
} }
@ -152,9 +179,32 @@ void MainWindow::refreshReadonlyPage() {
#undef UPDATE #undef UPDATE
} }
// 刷新光源时序控制页面
{
float infreq;
float outfreq;
uint32_t state;
#define UPDATE(index) \
DO(m_clstc->LightSrcX_readInSigFreqDetect(index, infreq)); \
DO(m_clstc->LightSrcX_readOutSigFreqDetect(index, outfreq)); \
DO(m_clstc->LightSrcX_readLightSrcErrorState(index, state)); \
ui->LightSrcX_InSigFreqDetect_##index->setText(QString::number(infreq, 'f', 2)); \
ui->LightSrcX_OutSigFreqDetect_##index->setText(QString::number(outfreq, 'f', 2)); \
ui->LightSrcX_LightSrcErrorState_##index->setText(QString::number(state));
UPDATE(1);
UPDATE(2);
UPDATE(3);
UPDATE(4);
}
} }
void MainWindow::refreshPage() { void MainWindow::refreshPage() {
/*******************************************************************************
* *
*******************************************************************************/
{ {
float Freq; float Freq;
uint32_t PluseCnt; uint32_t PluseCnt;
@ -171,7 +221,9 @@ void MainWindow::refreshPage() {
ui->InterClk_SeqCtrlPluseCntMax_Text->setText(QString::number(SeqCtrlPluseCntMax)); ui->InterClk_SeqCtrlPluseCntMax_Text->setText(QString::number(SeqCtrlPluseCntMax));
ui->InterClk_TriOutSignalFreq_Text->setText(QString::number(TriOutSignalFreq, 'f', 2)); ui->InterClk_TriOutSignalFreq_Text->setText(QString::number(TriOutSignalFreq, 'f', 2));
} }
/*******************************************************************************
* *
*******************************************************************************/
{ {
ExtTriggerSrcType src; ExtTriggerSrcType src;
SigProcessMode mode; SigProcessMode mode;
@ -210,6 +262,41 @@ void MainWindow::refreshPage() {
#undef UPDATE #undef UPDATE
} }
// 刷新光源时序控制页面
{
InternalSig src;
uint32_t width;
uint32_t offset;
float duty;
float freq;
uint32_t state;
float infreq;
float outfreq;
#define UPDATE(index) \
DO(m_clstc->LightSrcX_getTriSrc(index, src)); \
DO(m_clstc->LightSrcX_getTriggerModePluseWidth(index, width)); \
DO(m_clstc->LightSrcX_getTriggerModeFirstPluseOffset(index, offset)); \
DO(m_clstc->LightSrcX_getLightIntensityDuty(index, duty)); \
DO(m_clstc->LightSrcX_getLightDriverFreq(index, freq)); \
DO(m_clstc->LightSrcX_readLightSrcErrorState(index, state)); \
DO(m_clstc->LightSrcX_readInSigFreqDetect(index, infreq)); \
DO(m_clstc->LightSrcX_readOutSigFreqDetect(index, outfreq)); \
ui->LightSrcX_TriSrc_##index->setCurrentText(QString::fromStdString(src.toString())); \
ui->LightSrcX_TriggerModePluseWidth_##index->setText(QString::number(width)); \
ui->LightSrcX_TriggerModeFirstPluseOffset_##index->setText(QString::number(offset)); \
ui->LightSrcX_LightIntensityDuty_##index->setText(QString::number(duty, 'f', 2)); \
ui->LightSrcX_LightDriverFreq_##index->setText(QString::number(freq, 'f', 2)); \
ui->LightSrcX_LightSrcErrorState_##index->setText(QString::number(state)); \
ui->LightSrcX_InSigFreqDetect_##index->setText(QString::number(infreq, 'f', 2)); \
ui->LightSrcX_OutSigFreqDetect_##index->setText(QString::number(outfreq, 'f', 2));
UPDATE(1);
UPDATE(2);
UPDATE(3);
UPDATE(4);
}
} }
void MainWindow::constructUI() { void MainWindow::constructUI() {
@ -374,6 +461,74 @@ void MainWindow::constructUI() {
ui->TriInX_Mode_Val_4->addItem(QString::fromStdString(SigProcessMode(SigProcessMode::TRANSPARENT_MODE).toString())); ui->TriInX_Mode_Val_4->addItem(QString::fromStdString(SigProcessMode(SigProcessMode::TRANSPARENT_MODE).toString()));
ui->TriInX_TriggerModeTriggerEdge_Val_4->addItem(QString::fromStdString(TriggerEdge(TriggerEdge::RISING).toString())); 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_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_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);
/*******************************************************************************
* *
*******************************************************************************/
QStringList LightSrcX_TriSrc_QStringList;
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::LOGIC0).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::LOGIC1).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::INTERNAL_TRIGGER).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::INTERNAL_TRIGGER_I1).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::INTERNAL_TRIGGER_I2).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::INTERNAL_TRIGGER_I3).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::INTERNAL_TRIGGER_I4).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_1).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_1_I1).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_1_I2).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_1_I3).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_1_I4).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_2).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_2_I1).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_2_I2).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_2_I3).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_2_I4).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_3).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_3_I1).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_3_I2).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_3_I3).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_3_I4).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_4).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_4_I1).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_4_I2).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_4_I3).toString()));
LightSrcX_TriSrc_QStringList.append(QString::fromStdString(InternalSig(InternalSig::EXT_TRIGGER_4_I4).toString()));
ui->LightSrcX_TriSrc_1->addItems(LightSrcX_TriSrc_QStringList);
ui->LightSrcX_TriSrc_2->addItems(LightSrcX_TriSrc_QStringList);
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_OutSigFreqDetect_1->setDisabled(true);
ui->LightSrcX_OutSigFreqDetect_2->setDisabled(true);
ui->LightSrcX_OutSigFreqDetect_3->setDisabled(true);
ui->LightSrcX_OutSigFreqDetect_4->setDisabled(true);
ui->LightSrcX_LightSrcErrorState_1->setDisabled(true);
ui->LightSrcX_LightSrcErrorState_2->setDisabled(true);
ui->LightSrcX_LightSrcErrorState_3->setDisabled(true);
ui->LightSrcX_LightSrcErrorState_4->setDisabled(true);
ui->LightSrcX_LightDriverFreq_1->setDisabled(true);
ui->LightSrcX_LightDriverFreq_2->setDisabled(true);
ui->LightSrcX_LightDriverFreq_3->setDisabled(true);
ui->LightSrcX_LightDriverFreq_4->setDisabled(true);
} }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {

1270
mainwindow.ui
File diff suppressed because it is too large
View File

4
src/camera_light_src_timing_controller/clst_controler.cpp

@ -42,7 +42,7 @@ void CLSTControler::initialize(IDataChannel *channel) { //
uint8_t rx_process_cache[1024]; uint8_t rx_process_cache[1024];
uint32_t rx_process_cache_len; uint32_t rx_process_cache_len;
while (true) { while (true) {
this_thread::sleep_for(chrono::milliseconds(5));
this_thread::sleep_for(chrono::milliseconds(3));
{ {
lock_guard<mutex> lock(lock_); lock_guard<mutex> lock(lock_);
@ -532,7 +532,7 @@ zaf_error_code_t CLSTControler::LightSrcX_setLightIntensityDuty(int32_t index, f
DO_CMD(reg_read(kreg_light_ctrol_module1_light_driver_freq_cnt + (index - 1) * 32, freqcnt)); DO_CMD(reg_read(kreg_light_ctrol_module1_light_driver_freq_cnt + (index - 1) * 32, freqcnt));
uint32_t cnt = freqcnt * (duty / 100.0); uint32_t cnt = freqcnt * (duty / 100.0);
return kaf_ec_success;
return reg_write(kreg_light_ctrol_module1_light_intensity_cnt + (index - 1) * 32, cnt);
} }
zaf_error_code_t CLSTControler::LightSrcX_setLightDriverFreq(int32_t index, float freq) { // zaf_error_code_t CLSTControler::LightSrcX_setLightDriverFreq(int32_t index, float freq) { //

2
src/camera_light_src_timing_controller/qt_serial_datachannel.cpp

@ -26,7 +26,7 @@ void QTDataChannel::init() {
if (m_rxcb) m_rxcb(rx, rx_cnt); if (m_rxcb) m_rxcb(rx, rx_cnt);
} }
} }
this_thread::sleep_for(chrono::milliseconds(1));
this_thread::sleep_for(chrono::microseconds(100));
} }
})); }));
} }

Loading…
Cancel
Save