Browse Source

update

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

2
a8000_protocol

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

39
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_t_amp_sw_io.setState(true);
m_f_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_step_interval = 1;
m_reg.scan_pointnum = 1200; 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) { 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_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_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_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)); PROCESS_REG(kreg_a8k_opt_scan_pointnum, REG_GET(m_reg.scan_pointnum), REG_SET(m_reg.scan_pointnum));
default: default:
@ -169,7 +175,7 @@ int32_t OpticalModuleV2::start_t_optical_scan(int32_t scanDirection, int32_t las
scanStartPos = m_reg.t_pos_offset; scanStartPos = m_reg.t_pos_offset;
} else { } else {
intervalStep = m_reg.scan_step_interval; 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); 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); m_t_laster_enable_io.setState(false);
motor_release(); motor_release();
_close_t_amp_n5v(); _close_t_amp_n5v();
if (scanDirection < 0) {
reverse_capture_data();
}
}); });
return 0; 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; scanStartPos = m_reg.f_pos_offset;
} else { } else {
intervalStep = m_reg.scan_step_interval; 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); move_to_block(scanStartPos);
@ -275,6 +285,9 @@ int32_t OpticalModuleV2::start_f_optical_scan(int32_t scanDirection, int32_t las
} }
motor_release(); motor_release();
a8000_optical_close_laser(kf_optical); a8000_optical_close_laser(kf_optical);
if (scanDirection < 0) {
reverse_capture_data();
}
}); });
// adc_capture_buf[0] // adc_capture_buf[0]
@ -563,4 +576,20 @@ int32_t OpticalModuleV2::a8k_opt_v2_f_readVal(int32_t* lasteradc, int32_t* scana
*lasteradc = adcval; *lasteradc = adcval;
ZLOGI(TAG, "a8k_opt_v2_f_readVal %d %d", *lasteradc, *scanadc); ZLOGI(TAG, "a8k_opt_v2_f_readVal %d %d", *lasteradc, *scanadc);
return 0; 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));
}

30
usrc/subboards/subboard90_optical_module/optical_module_v2.hpp

@ -42,6 +42,8 @@ class OpticalModuleV2 : public ZIModule, public ZIA8000OpticalModule {
typedef struct { typedef struct {
int32_t t_pos_offset; int32_t t_pos_offset;
int32_t f_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_step_interval;
int32_t scan_pointnum; int32_t scan_pointnum;
} reg_table_t; } reg_table_t;
@ -78,7 +80,7 @@ class OpticalModuleV2 : public ZIModule, public ZIA8000OpticalModule {
ZThread m_thread; 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 adc_capture_point_num = 0;
int32_t f_adc_cache[20]; int32_t f_adc_cache[20];
@ -159,31 +161,33 @@ class OpticalModuleV2 : public ZIModule, public ZIA8000OpticalModule {
int32_t a8000_optical_set_scan_amp_gain(int32_t type, int32_t gain); 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_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 a8000_optical_read_scanner_adc_val(int32_t type, int32_t* adcval);
int32_t reverse_capture_data();
}; };
} // namespace iflytop } // namespace iflytop
/** /**
* @brief
*
*
*
*
* @brief
*
*
*
*
* F光学: * F光学:
* 02552 * 02552
* *
*
*
* T光学: * T光学:
*
*
*
*
*
*
* : * :
* 0.0127mm * 0.0127mm
* *
* 15.24->1200 (PS:15.90,15.24) * 15.24->1200 (PS:15.90,15.24)
*
*
*
*
* 1. 49 * 1. 49
* T光学电机起始步:4005 - 331 * T光学电机起始步:4005 - 331
* F光学电机起始步:2860 - 331 * F光学电机起始步:2860 - 331
*
*
*/ */
Loading…
Cancel
Save