Browse Source

v1.0.0| 光学模块时间设置成可配置, 修改版本格式

master
zhaohe 5 days ago
parent
commit
4dc3b3f4aa
  1. 3
      .vscode/settings.json
  2. 7
      usrc/a8000_protocol/protocol/reg_index.cpp
  3. 6
      usrc/a8000_protocol/protocol/reg_index.hpp
  4. 42
      usrc/subboards/subboard90_optical_module/optical_module_v2.cpp
  5. 7
      usrc/subboards/subboard90_optical_module/optical_module_v2.hpp
  6. 4
      usrc/version.c

3
.vscode/settings.json

@ -51,7 +51,8 @@
"sstream": "cpp",
"stdexcept": "cpp",
"streambuf": "cpp",
"typeinfo": "cpp"
"typeinfo": "cpp",
"version.h": "c"
},
"files.autoGuessEncoding": false,
"files.encoding": "utf8",

7
usrc/a8000_protocol/protocol/reg_index.cpp

@ -42,7 +42,6 @@ static reginfo_t table[] = {
REG_ITERM(kreg_water_cooling_tmp_controler_fanlevel_coefficient),
REG_ITERM(kreg_water_cooling_tmp_controler_first_approach_target_dval_threshold),
REG_ITERM(kreg_pipette_pos_nl),
REG_ITERM(kreg_pipette_capactitance_val),
@ -135,6 +134,12 @@ static reginfo_t table[] = {
REG_ITERM(kreg_a8k_opt_barcode_scan_tzerowait),
REG_ITERM(kreg_a8k_opt_barcode_scan_irun),
REG_ITERM(kreg_a8k_opt_t_uvled_on_duration_time),
REG_ITERM(kreg_a8k_opt_t_uvled_off_duration_time),
REG_ITERM(kreg_a8k_opt_t_scan_delay_time),
REG_ITERM(kreg_a8k_opt_t_scan_duration_time),
REG_ITERM(kreg_a8k_opt_t_time_resolving_density),
REG_ITERM(kreg_xyrobot_io_state),
REG_ITERM(kreg_xyrobot_is_enable),
REG_ITERM(kreg_xyrobot_has_move_to_zero),

6
usrc/a8000_protocol/protocol/reg_index.hpp

@ -137,6 +137,12 @@ typedef enum {
kreg_a8k_opt_t_scan_tzerowait = 4708, //
kreg_a8k_opt_t_scan_irun = 4709, //
kreg_a8k_opt_t_uvled_on_duration_time = 4720, //
kreg_a8k_opt_t_uvled_off_duration_time = 4721, //
kreg_a8k_opt_t_scan_delay_time = 4722, //
kreg_a8k_opt_t_scan_duration_time = 4723, //
kreg_a8k_opt_t_time_resolving_density = 4724, //
kreg_a8k_opt_barcode_scan_vdefault = 4800, //
kreg_a8k_opt_barcode_scan_vstart = 4801, //
kreg_a8k_opt_barcode_scan_a1 = 4802, //

42
usrc/subboards/subboard90_optical_module/optical_module_v2.cpp

@ -25,12 +25,6 @@ using namespace std;
#define ACTION_DUMP_RESULT 12 // 打印结果
#define ACTION_AUTO_ADJUST_DETECTOR_GAIN 13 // 自动调整增益倍数
#define UVLED_ON_DURATION_TIME 500 // 500us
#define UVLED_OFF_DURATION_TIME 100 // 100us
#define SCAN_DELAY_TIME 400 // 400us
#define SCAN_DURATION_TIME 1000 // 1000us
#define TIME_RESOLVING_DENSITY 100
void OpticalModuleV2::initialize(int32_t moduleid, hardware_config_t* hardwarecfg) { //
module_id = moduleid;
m_hardwarecfg = *hardwarecfg;
@ -103,6 +97,18 @@ void OpticalModuleV2::initialize(int32_t moduleid, hardware_config_t* hardwarecf
m_reg.barcode_scan_tzerowait = 0;
m_reg.barcode_scan_irun = 12;
// #define UVLED_ON_DURATION_TIME 500 // 500us
// #define UVLED_OFF_DURATION_TIME 100 // 100us
// #define SCAN_DELAY_TIME 400 // 400us
// #define SCAN_DURATION_TIME 1000 // 1000us
// #define TIME_RESOLVING_DENSITY 100
m_reg.t_uvled_on_duration_time = 500;
m_reg.t_uvled_off_duration_time = 100;
m_reg.t_scan_delay_time = 400;
m_reg.t_scan_duration_time = 1000;
m_reg.t_time_resolving_density = 100;
m_default_reg = m_reg;
ZLOGI(TAG, "-----------------module info--------------");
@ -213,6 +219,13 @@ int32_t OpticalModuleV2::module_set_reg(int32_t regindex, int32_t val) {
MODULE_REG_CASE__SET_REG_TO(kreg_a8k_opt_scan_step_interval, (m_reg.scan_step_interval));
MODULE_REG_CASE__SET_REG_TO(kreg_a8k_opt_scan_pointnum, (m_reg.scan_pointnum));
MODULE_REG_CASE__SET_REG_TO(kreg_a8k_opt_t_uvled_on_duration_time, (m_reg.t_uvled_on_duration_time));
MODULE_REG_CASE__SET_REG_TO(kreg_a8k_opt_t_uvled_off_duration_time, (m_reg.t_uvled_off_duration_time));
MODULE_REG_CASE__SET_REG_TO(kreg_a8k_opt_t_scan_delay_time, (m_reg.t_scan_delay_time));
MODULE_REG_CASE__SET_REG_TO(kreg_a8k_opt_t_scan_duration_time, (m_reg.t_scan_duration_time));
MODULE_REG_CASE__SET_REG_TO(kreg_a8k_opt_t_time_resolving_density, (m_reg.t_time_resolving_density));
default:
return err::kmodule_not_find_reg;
break;
@ -248,6 +261,12 @@ int32_t OpticalModuleV2::module_get_reg(int32_t regindex, int32_t* val) {
MODULE_CFG_CASE__GET_REG_FROM(kreg_a8k_opt_t_scan_vstop, m_reg.t_scan_vstop);
MODULE_CFG_CASE__GET_REG_FROM(kreg_a8k_opt_t_scan_tzerowait, m_reg.t_scan_tzerowait);
MODULE_CFG_CASE__GET_REG_FROM(kreg_a8k_opt_t_scan_irun, m_reg.t_scan_irun);
MODULE_CFG_CASE__GET_REG_FROM(kreg_a8k_opt_t_uvled_on_duration_time, (m_reg.t_uvled_on_duration_time));
MODULE_CFG_CASE__GET_REG_FROM(kreg_a8k_opt_t_uvled_off_duration_time, (m_reg.t_uvled_off_duration_time));
MODULE_CFG_CASE__GET_REG_FROM(kreg_a8k_opt_t_scan_delay_time, (m_reg.t_scan_delay_time));
MODULE_CFG_CASE__GET_REG_FROM(kreg_a8k_opt_t_scan_duration_time, (m_reg.t_scan_duration_time));
MODULE_CFG_CASE__GET_REG_FROM(kreg_a8k_opt_t_time_resolving_density, (m_reg.t_time_resolving_density));
MODULE_CFG_CASE__GET_REG_FROM(kreg_a8k_opt_barcode_scan_vdefault, m_reg.barcode_scan_vdefault);
MODULE_CFG_CASE__GET_REG_FROM(kreg_a8k_opt_barcode_scan_vstart, m_reg.barcode_scan_vstart);
MODULE_CFG_CASE__GET_REG_FROM(kreg_a8k_opt_barcode_scan_a1, m_reg.barcode_scan_a1);
@ -261,6 +280,7 @@ int32_t OpticalModuleV2::module_get_reg(int32_t regindex, int32_t* val) {
MODULE_CFG_CASE__GET_REG_FROM(kreg_a8k_opt_scan_step_interval, (m_reg.scan_step_interval));
MODULE_CFG_CASE__GET_REG_FROM(kreg_a8k_opt_scan_pointnum, (m_reg.scan_pointnum));
default:
return err::kmodule_not_find_reg;
break;
@ -663,22 +683,22 @@ int32_t OpticalModuleV2::t_read_one_point(int32_t& adcval) {
*/
chip_critical_enter();
tlaster_port->BSRR = closestate;
zchip_clock_early_delayus2(UVLED_OFF_DURATION_TIME);
zchip_clock_early_delayus2(m_reg.t_uvled_off_duration_time);
tlaster_port->BSRR = openstate;
zchip_clock_early_delayus2(UVLED_ON_DURATION_TIME);
zchip_clock_early_delayus2(m_reg.t_uvled_on_duration_time);
tlaster_port->BSRR = closestate;
zchip_clock_early_delayus2(SCAN_DELAY_TIME);
zchip_clock_early_delayus2(m_reg.t_scan_delay_time);
zchip_clock_early_delayus_timer_start();
int32_t sumadcval = 0;
int32_t currentadcval = 0;
// t_laster_adc.get_adc_value(laster_fb_val);
for (int32_t i = 0; i < TIME_RESOLVING_DENSITY; i++) {
for (int32_t i = 0; i < m_reg.t_time_resolving_density; i++) {
t_result_adc.get_adc_value(currentadcval);
sumadcval += currentadcval;
}
adcval = (sumadcval / TIME_RESOLVING_DENSITY);
adcval = (sumadcval / m_reg.t_time_resolving_density);
uint32_t haspassed = zchip_clock_early_delayus_timer_haspassed();
zchip_clock_early_delayus_timer_stop();

7
usrc/subboards/subboard90_optical_module/optical_module_v2.hpp

@ -89,6 +89,13 @@ class OpticalModuleV2 : public ZIModule {
int32_t barcode_scan_vstop;
int32_t barcode_scan_tzerowait;
int32_t barcode_scan_irun;
int32_t t_uvled_on_duration_time;
int32_t t_uvled_off_duration_time;
int32_t t_scan_delay_time;
int32_t t_scan_duration_time;
int32_t t_time_resolving_density;
} reg_table_t;
private:

4
usrc/version.c

@ -1,5 +1,7 @@
#include "version.h"
int32_t APP_VERSION = 1216;
#define VERSION(main, sub, fix) (main << 16 | sub << 8 | fix << 0)
int32_t APP_VERSION = VERSION(1, 0, 0);
int32_t get_app_version() { return APP_VERSION; }
Loading…
Cancel
Save