Browse Source

update

master
zhaohe 1 year ago
parent
commit
5f15fcce7c
  1. 2
      a8000_protocol
  2. 37
      usrc/subboards/subboard90_optical_module/optical_module_v2.cpp
  3. 6
      usrc/subboards/subboard90_optical_module/optical_module_v2.hpp

2
a8000_protocol

@ -1 +1 @@
Subproject commit 6d52b54e3c528a0be076d120d033ecfeb1051ee0
Subproject commit e2eaf4ce208aaa149127d2bf8fe41434fd63fd08

37
usrc/subboards/subboard90_optical_module/optical_module_v2.cpp

@ -62,8 +62,11 @@ void OpticalModuleV2::initialize(int32_t moduleid, hardware_config_t* hardwarecf
m_t_amp_sw_io.setState(true);
m_f_amp_sw_io.setState(true);
m_reg.t_pos_offset = (4005 - 331);
m_reg.f_pos_offset = (2860 - 331);
m_reg.t_pos_offset = (4005 - 331);
m_reg.f_pos_offset = (2860 - 331);
m_reg.t_reverse_scan_pos_offset = (2860 - 331) - 1200;
m_reg.f_reverse_scan_pos_offset = (2860 - 331) - 1200;
m_reg.scan_step_interval = 1;
m_reg.scan_pointnum = 1200;
@ -127,6 +130,9 @@ int32_t OpticalModuleV2::module_xxx_reg(int32_t param_id, bool read, int32_t& va
switch (param_id) {
PROCESS_REG(kreg_a8k_opt_t_pos_offset, REG_GET(m_reg.t_pos_offset), REG_SET(m_reg.t_pos_offset));
PROCESS_REG(kreg_a8k_opt_f_pos_offset, REG_GET(m_reg.f_pos_offset), REG_SET(m_reg.f_pos_offset));
PROCESS_REG(kreg_a8k_opt_t_reverse_scan_pos_offset, REG_GET(m_reg.t_reverse_scan_pos_offset), REG_SET(m_reg.t_reverse_scan_pos_offset));
PROCESS_REG(kreg_a8k_opt_f_reverse_scan_pos_offset, REG_GET(m_reg.f_reverse_scan_pos_offset), REG_SET(m_reg.f_reverse_scan_pos_offset));
PROCESS_REG(kreg_a8k_opt_scan_step_interval, REG_GET(m_reg.scan_step_interval), REG_SET(m_reg.scan_step_interval));
PROCESS_REG(kreg_a8k_opt_scan_pointnum, REG_GET(m_reg.scan_pointnum), REG_SET(m_reg.scan_pointnum));
default:
@ -169,7 +175,7 @@ int32_t OpticalModuleV2::start_t_optical_scan(int32_t scanDirection, int32_t las
scanStartPos = m_reg.t_pos_offset;
} else {
intervalStep = m_reg.scan_step_interval;
scanStartPos = m_reg.t_pos_offset - MAX_SCAN_POINT_NUM;
scanStartPos = m_reg.t_reverse_scan_pos_offset;
}
move_to_block(scanStartPos);
@ -211,6 +217,10 @@ int32_t OpticalModuleV2::start_t_optical_scan(int32_t scanDirection, int32_t las
m_t_laster_enable_io.setState(false);
motor_release();
_close_t_amp_n5v();
if (scanDirection < 0) {
reverse_capture_data();
}
});
return 0;
@ -230,7 +240,7 @@ int32_t OpticalModuleV2::start_f_optical_scan(int32_t scanDirection, int32_t las
scanStartPos = m_reg.f_pos_offset;
} else {
intervalStep = m_reg.scan_step_interval;
scanStartPos = m_reg.f_pos_offset - MAX_SCAN_POINT_NUM;
scanStartPos = m_reg.f_reverse_scan_pos_offset;
}
move_to_block(scanStartPos);
@ -275,6 +285,9 @@ int32_t OpticalModuleV2::start_f_optical_scan(int32_t scanDirection, int32_t las
}
motor_release();
a8000_optical_close_laser(kf_optical);
if (scanDirection < 0) {
reverse_capture_data();
}
});
// adc_capture_buf[0]
@ -564,3 +577,19 @@ int32_t OpticalModuleV2::a8k_opt_v2_f_readVal(int32_t* lasteradc, int32_t* scana
ZLOGI(TAG, "a8k_opt_v2_f_readVal %d %d", *lasteradc, *scanadc);
return 0;
}
int32_t OpticalModuleV2::reverse_capture_data() {
// adc_capture_buf
// adc_capture_point_num
// 反向adc_capture_buf中的数据
for (int32_t i = 0; i < adc_capture_point_num / 2; i++) {
int32_t temp = adc_capture_buf[i];
adc_capture_buf[i] = adc_capture_buf[adc_capture_point_num - i];
adc_capture_buf[adc_capture_point_num - i] = temp;
}
// for (int32_t i = 0; i < adc_capture_point_num; i++) {
// adc_capture_buf_tmp_buf[i] = adc_capture_buf[adc_capture_point_num - i];
// }
// memcpy(adc_capture_buf, adc_capture_buf_tmp_buf, adc_capture_point_num * sizeof(int16_t));
}

6
usrc/subboards/subboard90_optical_module/optical_module_v2.hpp

@ -42,6 +42,8 @@ class OpticalModuleV2 : public ZIModule, public ZIA8000OpticalModule {
typedef struct {
int32_t t_pos_offset;
int32_t f_pos_offset;
int32_t t_reverse_scan_pos_offset;
int32_t f_reverse_scan_pos_offset;
int32_t scan_step_interval;
int32_t scan_pointnum;
} reg_table_t;
@ -78,7 +80,7 @@ class OpticalModuleV2 : public ZIModule, public ZIA8000OpticalModule {
ZThread m_thread;
int16_t adc_capture_buf[4096] = {0};
int16_t adc_capture_buf[2000] = {0};
int32_t adc_capture_point_num = 0;
int32_t f_adc_cache[20];
@ -159,6 +161,8 @@ class OpticalModuleV2 : public ZIModule, public ZIA8000OpticalModule {
int32_t a8000_optical_set_scan_amp_gain(int32_t type, int32_t gain);
int32_t a8000_optical_read_laster_adc_val(int32_t type, int32_t* adcval);
int32_t a8000_optical_read_scanner_adc_val(int32_t type, int32_t* adcval);
int32_t reverse_capture_data();
};
} // namespace iflytop

Loading…
Cancel
Save