zhaohe 1 year ago
parent
commit
88cfeecf93
  1. 89
      mainwindow.cpp
  2. 1717
      mainwindow.ui
  3. 17
      src/camera_light_src_timing_controller/clst_controler.cpp
  4. 4
      src/camera_light_src_timing_controller/clst_controler.hpp
  5. 4
      src/camera_light_src_timing_controller/clst_controler_sig_type.hpp
  6. 2
      zaf_protocol

89
mainwindow.cpp

@ -108,6 +108,8 @@ void MainWindow::updatePage() {
uint32_t bias; uint32_t bias;
uint32_t division; uint32_t division;
uint32_t multiplication; uint32_t multiplication;
uint32_t cnt;
// TriInX_setSequentialControlPluseCntMax
#define UPDATE(index) \ #define UPDATE(index) \
src = ExtTriggerSrcType(ui->TriInX_SrcSelect_Val_##index->currentText().toStdString()); \ src = ExtTriggerSrcType(ui->TriInX_SrcSelect_Val_##index->currentText().toStdString()); \
@ -117,13 +119,15 @@ void MainWindow::updatePage() {
edge = TriggerEdge(ui->TriInX_TriggerModeTriggerEdge_Val_##index->currentText().toStdString()); \ edge = TriggerEdge(ui->TriInX_TriggerModeTriggerEdge_Val_##index->currentText().toStdString()); \
division = ui->TriInX_TriggerModeFreqDivision_Val_##index->text().toUInt(); \ division = ui->TriInX_TriggerModeFreqDivision_Val_##index->text().toUInt(); \
multiplication = ui->TriInX_TriggerModeFreqMultiplication_Val_##index->text().toUInt(); \ multiplication = ui->TriInX_TriggerModeFreqMultiplication_Val_##index->text().toUInt(); \
cnt = ui->TriInX_SequentialControlPluseCntMax_Val_##index->text().toUInt(); \
DO(m_clstc->TriInX_setSrcSelect(index, src)); \ DO(m_clstc->TriInX_setSrcSelect(index, src)); \
DO(m_clstc->TriInX_setFileterCoefficient(index, coefficient)); \ DO(m_clstc->TriInX_setFileterCoefficient(index, coefficient)); \
DO(m_clstc->TriInX_setFreqDetectBias(index, bias)); \ DO(m_clstc->TriInX_setFreqDetectBias(index, bias)); \
DO(m_clstc->TriInX_setMode(index, mode)); \ DO(m_clstc->TriInX_setMode(index, mode)); \
DO(m_clstc->TriInX_setTriggerModeTriggerEdge(index, edge)); \ DO(m_clstc->TriInX_setTriggerModeTriggerEdge(index, edge)); \
DO(m_clstc->TriInX_setTriggerModeFreqDivision(index, division)); \ DO(m_clstc->TriInX_setTriggerModeFreqDivision(index, division)); \
DO(m_clstc->TriInX_setTriggerModeFreqMultiplication(index, multiplication));
DO(m_clstc->TriInX_setTriggerModeFreqMultiplication(index, multiplication));\
DO(m_clstc->TriInX_setSequentialControlPluseCntMax(index, cnt));
UPDATE(1); UPDATE(1);
UPDATE(2); UPDATE(2);
@ -166,22 +170,25 @@ void MainWindow::updatePage() {
uint32_t bindstate3; uint32_t bindstate3;
uint32_t bindstate4; uint32_t bindstate4;
InternalSig sig; InternalSig sig;
uint32_t reversal;
#define UPDATE(index) \
mode = SigProcessMode(ui->ShutterX_OutputCtrlMode_##index->currentText().toStdString()); \
offset = ui->ShutterX_LtEnOffset_##index->text().toUInt(); \
bindstate1 = ui->ShutterX_LtEnBind_val1_##index->checkState() == Qt::CheckState::Checked; \
bindstate2 = ui->ShutterX_LtEnBind_val2_##index->checkState() == Qt::CheckState::Checked; \
bindstate3 = ui->ShutterX_LtEnBind_val3_##index->checkState() == Qt::CheckState::Checked; \
bindstate4 = ui->ShutterX_LtEnBind_val4_##index->checkState() == Qt::CheckState::Checked; \
sig = InternalSig(ui->ShutterX_InSigSelect_##index->currentText().toStdString()); \
DO(m_clstc->ShutterX_setOutputCtrlMode(index, mode)); \
DO(m_clstc->ShutterX_setLtEnOffset(index, offset)); \
DO(m_clstc->ShutterX_setLtEnBind(index, 1, bindstate1)); \
DO(m_clstc->ShutterX_setLtEnBind(index, 2, bindstate2)); \
DO(m_clstc->ShutterX_setLtEnBind(index, 3, bindstate3)); \
DO(m_clstc->ShutterX_setLtEnBind(index, 4, bindstate4)); \
DO(m_clstc->ShutterX_setInSigSelect(index, sig));
#define UPDATE(index) \
mode = SigProcessMode(ui->ShutterX_OutputCtrlMode_##index->currentText().toStdString()); \
offset = ui->ShutterX_LtEnOffset_##index->text().toUInt(); \
bindstate1 = ui->ShutterX_LtEnBind_val1_##index->checkState() == Qt::CheckState::Checked; \
bindstate2 = ui->ShutterX_LtEnBind_val2_##index->checkState() == Qt::CheckState::Checked; \
bindstate3 = ui->ShutterX_LtEnBind_val3_##index->checkState() == Qt::CheckState::Checked; \
bindstate4 = ui->ShutterX_LtEnBind_val4_##index->checkState() == Qt::CheckState::Checked; \
sig = InternalSig(ui->ShutterX_InSigSelect_##index->currentText().toStdString()); \
reversal = ui->ShutterX_OutPolarityReversal_##index->checkState() == Qt::CheckState::Checked; \
DO(m_clstc->ShutterX_setOutputCtrlMode(index, mode)); \
DO(m_clstc->ShutterX_setLtEnOffset(index, offset)); \
DO(m_clstc->ShutterX_setLtEnBind(index, 1, bindstate1)); \
DO(m_clstc->ShutterX_setLtEnBind(index, 2, bindstate2)); \
DO(m_clstc->ShutterX_setLtEnBind(index, 3, bindstate3)); \
DO(m_clstc->ShutterX_setLtEnBind(index, 4, bindstate4)); \
DO(m_clstc->ShutterX_setInSigSelect(index, sig)); \
DO(m_clstc->ShutterX_setOutPolarityReversal(index, reversal));
UPDATE(1); UPDATE(1);
UPDATE(2); UPDATE(2);
@ -312,26 +319,29 @@ void MainWindow::refreshPage() {
uint32_t multiplication; uint32_t multiplication;
float infreq; float infreq;
float outfreq; float outfreq;
#define UPDATE(index) \
DO(m_clstc->TriInX_getSrcSelect(index, src)); \
DO(m_clstc->TriInX_getFileterCoefficient(index, coefficient)); \
DO(m_clstc->TriInX_getFreqDetectBias(index, bias)); \
DO(m_clstc->TriInX_getMode(index, mode)); \
DO(m_clstc->TriInX_getTriggerModeTriggerEdge(index, edge)); \
DO(m_clstc->TriInX_getTriggerModeFreqDivision(index, division)); \
DO(m_clstc->TriInX_getTriggerModeFreqMultiplication(index, multiplication)); \
DO(m_clstc->TriInX_readInSignalFreq(index, infreq)); \
DO(m_clstc->TriInX_readOutSignalFreq(index, outfreq)); \
ui->TriInX_SrcSelect_Val_##index->setCurrentText(QString::fromStdString(src.toString())); \
ui->TriInX_FileterCoefficient_Val_##index->setText(QString::number(coefficient)); \
ui->TriInX_FreqDetectBias_Val_##index->setText(QString::number(bias)); \
ui->TriInX_Mode_Val_##index->setCurrentText(QString::fromStdString(mode.toString())); \
ui->TriInX_OutSignalFreq_Val_##index->setText(QString::number(outfreq, 'f', 2)); \
ui->TriInX_InSignalFreq_Val_##index->setText(QString::number(infreq, 'f', 2)); \
ui->TriInX_TriggerModeFreqDivision_Val_##index->setText(QString::number(division)); \
ui->TriInX_TriggerModeFreqMultiplication_Val_##index->setText(QString::number(multiplication)); \
ui->TriInX_TriggerModeTriggerEdge_Val_##index->setCurrentText(QString::fromStdString(edge.toString()));
uint32_t cnt;
// TriInX_setSequentialControlPluseCntMax
#define UPDATE(index) \
DO(m_clstc->TriInX_getSrcSelect(index, src)); \
DO(m_clstc->TriInX_getFileterCoefficient(index, coefficient)); \
DO(m_clstc->TriInX_getFreqDetectBias(index, bias)); \
DO(m_clstc->TriInX_getMode(index, mode)); \
DO(m_clstc->TriInX_getTriggerModeTriggerEdge(index, edge)); \
DO(m_clstc->TriInX_getTriggerModeFreqDivision(index, division)); \
DO(m_clstc->TriInX_getTriggerModeFreqMultiplication(index, multiplication)); \
DO(m_clstc->TriInX_readInSignalFreq(index, infreq)); \
DO(m_clstc->TriInX_readOutSignalFreq(index, outfreq)); \
DO(m_clstc->TriInX_getSequentialControlPluseCntMax(index, cnt)); \
ui->TriInX_SrcSelect_Val_##index->setCurrentText(QString::fromStdString(src.toString())); \
ui->TriInX_FileterCoefficient_Val_##index->setText(QString::number(coefficient)); \
ui->TriInX_FreqDetectBias_Val_##index->setText(QString::number(bias)); \
ui->TriInX_Mode_Val_##index->setCurrentText(QString::fromStdString(mode.toString())); \
ui->TriInX_OutSignalFreq_Val_##index->setText(QString::number(outfreq, 'f', 2)); \
ui->TriInX_InSignalFreq_Val_##index->setText(QString::number(infreq, 'f', 2)); \
ui->TriInX_TriggerModeFreqDivision_Val_##index->setText(QString::number(division)); \
ui->TriInX_TriggerModeFreqMultiplication_Val_##index->setText(QString::number(multiplication)); \
ui->TriInX_TriggerModeTriggerEdge_Val_##index->setCurrentText(QString::fromStdString(edge.toString())); \
ui->TriInX_SequentialControlPluseCntMax_Val_##index->setText(QString::number(cnt));
UPDATE(1); UPDATE(1);
UPDATE(2); UPDATE(2);
@ -385,6 +395,9 @@ void MainWindow::refreshPage() {
uint32_t bindstate3; uint32_t bindstate3;
uint32_t bindstate4; uint32_t bindstate4;
InternalSig sig; InternalSig sig;
uint32_t reversal;
// zaf_error_code_t ShutterX_setOutPolarityReversal(int32_t index, uint32_t reversal);
#define UPDATE(index) \ #define UPDATE(index) \
DO(m_clstc->ShutterX_getOutputCtrlMode(index, mode)); \ DO(m_clstc->ShutterX_getOutputCtrlMode(index, mode)); \
@ -394,13 +407,15 @@ void MainWindow::refreshPage() {
DO(m_clstc->ShutterX_getLtEnBind(index, 3, bindstate3)); \ DO(m_clstc->ShutterX_getLtEnBind(index, 3, bindstate3)); \
DO(m_clstc->ShutterX_getLtEnBind(index, 4, bindstate4)); \ DO(m_clstc->ShutterX_getLtEnBind(index, 4, bindstate4)); \
DO(m_clstc->ShutterX_getInSigSelect(index, sig)); \ DO(m_clstc->ShutterX_getInSigSelect(index, sig)); \
DO(m_clstc->ShutterX_getOutPolarityReversal(index, reversal)); \
ui->ShutterX_OutputCtrlMode_##index->setCurrentText(QString::fromStdString(mode.toString())); \ ui->ShutterX_OutputCtrlMode_##index->setCurrentText(QString::fromStdString(mode.toString())); \
ui->ShutterX_LtEnOffset_##index->setText(QString::number(offset)); \ ui->ShutterX_LtEnOffset_##index->setText(QString::number(offset)); \
ui->ShutterX_LtEnBind_val1_##index->setChecked(bindstate1 != 0 ? Qt::CheckState::Checked : Qt::CheckState::Unchecked); \ ui->ShutterX_LtEnBind_val1_##index->setChecked(bindstate1 != 0 ? Qt::CheckState::Checked : Qt::CheckState::Unchecked); \
ui->ShutterX_LtEnBind_val2_##index->setChecked(bindstate2 != 0 ? Qt::CheckState::Checked : Qt::CheckState::Unchecked); \ ui->ShutterX_LtEnBind_val2_##index->setChecked(bindstate2 != 0 ? Qt::CheckState::Checked : Qt::CheckState::Unchecked); \
ui->ShutterX_LtEnBind_val3_##index->setChecked(bindstate3 != 0 ? Qt::CheckState::Checked : Qt::CheckState::Unchecked); \ ui->ShutterX_LtEnBind_val3_##index->setChecked(bindstate3 != 0 ? Qt::CheckState::Checked : Qt::CheckState::Unchecked); \
ui->ShutterX_LtEnBind_val4_##index->setChecked(bindstate4 != 0 ? Qt::CheckState::Checked : Qt::CheckState::Unchecked); \ ui->ShutterX_LtEnBind_val4_##index->setChecked(bindstate4 != 0 ? Qt::CheckState::Checked : Qt::CheckState::Unchecked); \
ui->ShutterX_InSigSelect_##index->setCurrentText(QString::fromStdString(sig.toString()));
ui->ShutterX_InSigSelect_##index->setCurrentText(QString::fromStdString(sig.toString())); \
ui->ShutterX_OutPolarityReversal_##index->setChecked(reversal != 0 ? Qt::CheckState::Checked : Qt::CheckState::Unchecked);
// ui->ShutterX_LtEnBind_val1_1->checkState() // ui->ShutterX_LtEnBind_val1_1->checkState()

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

17
src/camera_light_src_timing_controller/clst_controler.cpp

@ -457,7 +457,7 @@ zaf_error_code_t CLSTControler::TriInX_setTriggerModeFreqMultiplication(int32_t
} }
zaf_error_code_t CLSTControler::TriInX_setSequentialControlPluseCntMax(int32_t index, uint32_t cnt) { // zaf_error_code_t CLSTControler::TriInX_setSequentialControlPluseCntMax(int32_t index, uint32_t cnt) { //
if (index < 1 || index > 4) return kaf_ec_param_error; if (index < 1 || index > 4) return kaf_ec_param_error;
return reg_write(kreg_trigger_in1_sequential_control_pluse_cnt_max + (index - 1) * 32, cnt);
return reg_write(kreg_trigger_in1_sequential_control_pluse_cnt_max + (index - 1) * 32, cnt - 1);
} }
zaf_error_code_t CLSTControler::TriInX_getSrcSelect(int32_t index, ExtTriggerSrcType &src) { // zaf_error_code_t CLSTControler::TriInX_getSrcSelect(int32_t index, ExtTriggerSrcType &src) { //
@ -507,6 +507,12 @@ zaf_error_code_t CLSTControler::TriInX_readOutSignalFreq(int32_t index, float &f
return readFreq(kreg_trigger_in1_out_signal_freq + (index - 1) * 32, freq); return readFreq(kreg_trigger_in1_out_signal_freq + (index - 1) * 32, freq);
return kaf_ec_success; return kaf_ec_success;
} }
zaf_error_code_t CLSTControler::TriInX_getSequentialControlPluseCntMax(int32_t index, uint32_t &cnt) {
if (index < 1 || index > 4) return kaf_ec_param_error;
DO_CMD(reg_read(kreg_trigger_in1_sequential_control_pluse_cnt_max + (index - 1) * 32, cnt));
cnt++;
return kaf_ec_success;
}
/******************************************************************************* /*******************************************************************************
* ???? * * ???? *
@ -615,6 +621,8 @@ zaf_error_code_t CLSTControler::ShutterX_setInSigSelect(int32_t index, InternalS
return reg_write(kreg_ttl_output_module1_in_sig_select + (index - 1) * 32, sig); return reg_write(kreg_ttl_output_module1_in_sig_select + (index - 1) * 32, sig);
} }
zaf_error_code_t CLSTControler::ShutterX_setOutPolarityReversal(int32_t index, uint32_t reversal) { return reg_write(kreg_ttl_output_module1_out_polarity_reversal + (index - 1) * 32, reversal); }
zaf_error_code_t CLSTControler::ShutterX_getOutputCtrlMode(int32_t index, SigProcessMode &mode) { // zaf_error_code_t CLSTControler::ShutterX_getOutputCtrlMode(int32_t index, SigProcessMode &mode) { //
uint32_t val; uint32_t val;
DO_CMD(reg_read(kreg_ttl_output_module1_output_ctrl_mode + (index - 1) * 32, val)); DO_CMD(reg_read(kreg_ttl_output_module1_output_ctrl_mode + (index - 1) * 32, val));
@ -638,4 +646,9 @@ zaf_error_code_t CLSTControler::ShutterX_getInSigSelect(int32_t index, InternalS
DO_CMD(reg_read(kreg_ttl_output_module1_in_sig_select + (index - 1) * 32, val)); DO_CMD(reg_read(kreg_ttl_output_module1_in_sig_select + (index - 1) * 32, val));
sig = InternalSig(val); sig = InternalSig(val);
return kaf_ec_success; return kaf_ec_success;
}
}
zaf_error_code_t CLSTControler::ShutterX_getOutPolarityReversal(int32_t index, uint32_t &reversal) {
DO_CMD(reg_read(kreg_ttl_output_module1_out_polarity_reversal + (index - 1) * 32, reversal));
return kaf_ec_success;
}

4
src/camera_light_src_timing_controller/clst_controler.hpp

@ -124,6 +124,8 @@ class CLSTControler {
zaf_error_code_t TriInX_getTriggerModeTriggerEdge(int32_t index, TriggerEdge &edge); zaf_error_code_t TriInX_getTriggerModeTriggerEdge(int32_t index, TriggerEdge &edge);
zaf_error_code_t TriInX_getTriggerModeFreqDivision(int32_t index, uint32_t &division); zaf_error_code_t TriInX_getTriggerModeFreqDivision(int32_t index, uint32_t &division);
zaf_error_code_t TriInX_getTriggerModeFreqMultiplication(int32_t index, uint32_t &multiplication); 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_readInSignalFreq(int32_t index, float &freq);
zaf_error_code_t TriInX_readOutSignalFreq(int32_t index, float &freq); zaf_error_code_t TriInX_readOutSignalFreq(int32_t index, float &freq);
@ -155,11 +157,13 @@ class CLSTControler {
zaf_error_code_t ShutterX_setLtEnBind(int32_t index, uint32_t lt_en_sig_index, uint32_t state); zaf_error_code_t ShutterX_setLtEnBind(int32_t index, uint32_t lt_en_sig_index, uint32_t state);
zaf_error_code_t ShutterX_setLtEnOffset(int32_t index, uint32_t offset); zaf_error_code_t ShutterX_setLtEnOffset(int32_t index, uint32_t offset);
zaf_error_code_t ShutterX_setInSigSelect(int32_t index, InternalSig sig); zaf_error_code_t ShutterX_setInSigSelect(int32_t index, InternalSig sig);
zaf_error_code_t ShutterX_setOutPolarityReversal(int32_t index, uint32_t reversal);
zaf_error_code_t ShutterX_getOutputCtrlMode(int32_t index, SigProcessMode &mode); zaf_error_code_t ShutterX_getOutputCtrlMode(int32_t index, SigProcessMode &mode);
zaf_error_code_t ShutterX_getLtEnBind(int32_t index, uint32_t lt_en_sig_index, uint32_t &state); zaf_error_code_t ShutterX_getLtEnBind(int32_t index, uint32_t lt_en_sig_index, uint32_t &state);
zaf_error_code_t ShutterX_getLtEnOffset(int32_t index, uint32_t &offset); zaf_error_code_t ShutterX_getLtEnOffset(int32_t index, uint32_t &offset);
zaf_error_code_t ShutterX_getInSigSelect(int32_t index, InternalSig &sig); zaf_error_code_t ShutterX_getInSigSelect(int32_t index, InternalSig &sig);
zaf_error_code_t ShutterX_getOutPolarityReversal(int32_t index, uint32_t &reversal);
private: private:
void processRxData(uint8_t *rx, uint32_t rxlen); void processRxData(uint8_t *rx, uint32_t rxlen);

4
src/camera_light_src_timing_controller/clst_controler_sig_type.hpp

@ -49,8 +49,8 @@ class ExtTriggerSrcType {
class TriggerEdge { class TriggerEdge {
public: public:
typedef enum { typedef enum {
RISING = 0, // 上升沿触发
FALLING = 1, // 下降沿触发
RISING = 1, // 上升沿触发
FALLING = 0, // 下降沿触发
BOTH = 2, // 上升沿和下降沿触发 BOTH = 2, // 上升沿和下降沿触发
} EnumType_t; } EnumType_t;

2
zaf_protocol

@ -1 +1 @@
Subproject commit d29b00371520aea2566aa09cba2384e3e937a908
Subproject commit c6d92f6fde665a4821dfdf968a84b2d987e441e6
Loading…
Cancel
Save