|
|
@ -64,6 +64,9 @@ void OpticalModuleV2::initialize(int32_t moduleid, hardware_config_t* hardwarecf |
|
|
|
|
|
|
|
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));
|
|
|
|
} |