You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

21 KiB

kreg_module_version              = REG_INDEX(0, 0, 0),   // 模块版本
  kreg_module_type                 = REG_INDEX(0, 0, 1),   // 模块类型
  kreg_module_status               = REG_INDEX(0, 0, 2),   // 0idle,1busy,2error
  kreg_module_errorcode            = REG_INDEX(0, 0, 3),   // inited_flag
  kreg_module_initflag             = REG_INDEX(0, 0, 4),   // inited_flag
  kreg_module_enableflag           = REG_INDEX(0, 0, 5),   // 0idle,1busy,2error
  kreg_module_errorbitflag0        = REG_INDEX(0, 0, 6),   // 模块异常标志,bit,每个模块自定义
  kreg_module_errorbitflag1        = REG_INDEX(0, 0, 7),   //
  kreg_module_input_state          = REG_INDEX(0, 0, 8),   //
  kreg_module_output_state         = REG_INDEX(0, 0, 9),   //
  kreg_module_raw_sector_size      = REG_INDEX(0, 0, 10),  // sector_size
  kreg_module_raw_sector_num       = REG_INDEX(0, 0, 11),  //
  kreg_module_is_online            = REG_INDEX(0, 0, 12),  //
  kreg_module_last_cmd_exec_status = REG_INDEX(0, 0, 20),  // 上一条指令执行的状态
  kreg_module_last_cmd_exec_val0   = REG_INDEX(0, 0, 21),  // 上一条指令执行的结果0
  kreg_module_last_cmd_exec_val1   = REG_INDEX(0, 0, 22),  // 上一条指令执行的结果1
  kreg_module_last_cmd_exec_val2   = REG_INDEX(0, 0, 23),  // 上一条指令执行的结果2
  kreg_module_last_cmd_exec_val3   = REG_INDEX(0, 0, 24),  // 上一条指令执行的结果3
  kreg_module_last_cmd_exec_val4   = REG_INDEX(0, 0, 25),  // 上一条指令执行的结果4
  kreg_module_last_cmd_exec_val5   = REG_INDEX(0, 0, 26),  // 上一条指令执行的结果5
  kreg_module_private0             = REG_INDEX(0, 0, 30),  // 模块私有状态0
  kreg_module_private1             = REG_INDEX(0, 0, 31),  // 模块私有状态1
  kreg_module_private2             = REG_INDEX(0, 0, 32),  // 模块私有状态2
  kreg_module_private3             = REG_INDEX(0, 0, 33),  // 模块私有状态3
  kreg_module_private4             = REG_INDEX(0, 0, 34),  // 模块私有状态4
  kreg_module_private5             = REG_INDEX(0, 0, 35),  // 模块私有状态5
  kreg_module_private6             = REG_INDEX(0, 0, 36),  // 模块私有状态6
  kreg_module_private7             = REG_INDEX(0, 0, 37),  // 模块私有状态7
  kreg_module_private8             = REG_INDEX(0, 0, 38),  // 模块私有状态8
  kreg_module_private9             = REG_INDEX(0, 0, 39),  // 模块私有状态9
  kreg_module_do_action0           = REG_INDEX(0, 0, 40),  // 方法0
  kreg_module_action_param1        = REG_INDEX(0, 0, 41),  // 方法1
  kreg_module_action_param2        = REG_INDEX(0, 0, 42),  // 方法2
  kreg_module_action_param3        = REG_INDEX(0, 0, 43),  // 方法3
  kreg_module_action_param4        = REG_INDEX(0, 0, 44),  // 方法4
  kreg_module_action_param5        = REG_INDEX(0, 0, 45),  // 方法5
  kreg_module_action_param6        = REG_INDEX(0, 0, 46),  // 方法6
  kreg_module_action_param7        = REG_INDEX(0, 0, 47),  // 方法7
  kreg_module_action_param8        = REG_INDEX(0, 0, 48),  // 方法8
  kreg_module_action_param9        = REG_INDEX(0, 0, 49),  // 方法9
  kreg_module_action_ack1          = REG_INDEX(0, 0, 51),  // ACK1
  kreg_module_action_ack2          = REG_INDEX(0, 0, 52),  // ACK2
  kreg_module_action_ack3          = REG_INDEX(0, 0, 53),  // ACK3
  kreg_module_action_ack4          = REG_INDEX(0, 0, 54),  // ACK4
  kreg_module_action_ack5          = REG_INDEX(0, 0, 55),  // ACK5
  kreg_module_action_ack6          = REG_INDEX(0, 0, 56),  // ACK6
  kreg_module_action_ack7          = REG_INDEX(0, 0, 57),  // ACK7
  kreg_module_action_ack8          = REG_INDEX(0, 0, 58),  // ACK8
  kreg_module_action_ack9          = REG_INDEX(0, 0, 59),  // ACK9

  /*******************************************************************************
   *                                   SENSOR                                    *
   *******************************************************************************/
  kreg_sensor_current                                  = REG_INDEX(1, 0, 0),   // 电流
  kreg_sensor_voltage                                  = REG_INDEX(1, 0, 1),   // 电压
  kreg_sensor_temperature                              = REG_INDEX(1, 0, 2),   // 温度
  kreg_sensor_humidity                                 = REG_INDEX(1, 0, 3),   // 湿度
  kreg_sensor_wind_speed                               = REG_INDEX(1, 0, 4),   // 风速
  kreg_sensor_wind_dir                                 = REG_INDEX(1, 0, 5),   // 风向
  kreg_sensor_air_press                                = REG_INDEX(1, 0, 6),   // 气压
  kreg_sensor_pm25                                     = REG_INDEX(1, 0, 7),   // PM2.5
  kreg_sensor_pm10                                     = REG_INDEX(1, 0, 8),   // PM10
  kreg_sensor_co                                       = REG_INDEX(1, 0, 9),   // CO
  kreg_sensor_co2                                      = REG_INDEX(1, 0, 10),  // CO
  kreg_sensor_no2                                      = REG_INDEX(1, 0, 11),  // NO2
  kreg_sensor_so2                                      = REG_INDEX(1, 0, 12),  // SO2
  kreg_sensor_o3                                       = REG_INDEX(1, 0, 13),  // O3
  kreg_sensor_light_intensity                          = REG_INDEX(1, 0, 14),  // 光照强度
  kreg_sensor_radiation                                = REG_INDEX(1, 0, 15),  // 总辐射量
  kreg_sensor_hydrogen_peroxide_volume                 = REG_INDEX(1, 0, 16),  // ppm  0x0100
  kreg_sensor_h2o_h2o2_rs                              = REG_INDEX(1, 0, 17),  // %RS * 100
  kreg_sensor_relative_humidity                        = REG_INDEX(1, 0, 18),  // %RH * 100
  kreg_sensor_absolute_hydrogen_peroxide               = REG_INDEX(1, 0, 19),  // mg/m3
  kreg_sensor_h2o_h2o2dew_point_temperature            = REG_INDEX(1, 0, 20),  // °C * 100
  kreg_sensor_water_volume                             = REG_INDEX(1, 0, 21),  // ppm
  kreg_sensor_water_vapor_pressure                     = REG_INDEX(1, 0, 22),  // hpa
  kreg_sensor_absolute_humidity                        = REG_INDEX(1, 0, 23),  // g/m3
  kreg_sensor_water_vapor_saturation_pressure_h2o      = REG_INDEX(1, 0, 24),  // hpa
  kreg_sensor_h2o2_vapor_pressure                      = REG_INDEX(1, 0, 25),  // hpa
  kreg_sensor_water_vapor_saturation_pressure_h2o_h2o2 = REG_INDEX(1, 0, 26),  // hpa

  kreg_sensor_temperature0 = REG_INDEX(2, 0, 0),   // 温度1
  kreg_sensor_temperature1 = REG_INDEX(2, 0, 1),   // 温度2
  kreg_sensor_temperature2 = REG_INDEX(2, 0, 2),   // 温度3
  kreg_sensor_temperature3 = REG_INDEX(2, 0, 3),   // 温度4
  kreg_sensor_temperature4 = REG_INDEX(2, 0, 4),   // 温度5
  kreg_sensor_temperature5 = REG_INDEX(2, 0, 5),   // 温度6
  kreg_sensor_temperature6 = REG_INDEX(2, 0, 6),   // 温度7
  kreg_sensor_temperature7 = REG_INDEX(2, 0, 7),   // 温度8
  kreg_sensor_temperature8 = REG_INDEX(2, 0, 8),   // 温度9
  kreg_sensor_temperature9 = REG_INDEX(2, 0, 9),   // 温度10
  kreg_sensor_pressure0    = REG_INDEX(2, 10, 0),  // 压力0
  kreg_sensor_pressure1    = REG_INDEX(2, 10, 1),  // 压力1
  kreg_sensor_pressure2    = REG_INDEX(2, 10, 2),  // 压力2
  kreg_sensor_pressure3    = REG_INDEX(2, 10, 3),  // 压力3
  kreg_sensor_pressure4    = REG_INDEX(2, 10, 4),  // 压力4
  kreg_sensor_pressure5    = REG_INDEX(2, 10, 5),  // 压力5
  kreg_sensor_pressure6    = REG_INDEX(2, 10, 6),  // 压力6
  kreg_sensor_pressure7    = REG_INDEX(2, 10, 7),  // 压力7
  kreg_sensor_pressure8    = REG_INDEX(2, 10, 8),  // 压力8
  kreg_sensor_pressure9    = REG_INDEX(2, 10, 9),  // 压力9
  kreg_sensor_humidity0    = REG_INDEX(2, 20, 0),  // 湿度0
  kreg_sensor_humidity1    = REG_INDEX(2, 20, 1),  // 湿度1
  kreg_sensor_humidity2    = REG_INDEX(2, 20, 2),  // 湿度2
  kreg_sensor_humidity3    = REG_INDEX(2, 20, 3),  // 湿度3
  kreg_sensor_humidity4    = REG_INDEX(2, 20, 4),  // 湿度4
  kreg_sensor_humidity5    = REG_INDEX(2, 20, 5),  // 湿度5
  kreg_sensor_humidity6    = REG_INDEX(2, 20, 6),  // 湿度6
  kreg_sensor_humidity7    = REG_INDEX(2, 20, 7),  // 湿度7
  kreg_sensor_humidity8    = REG_INDEX(2, 20, 8),  // 湿度8
  kreg_sensor_humidity9    = REG_INDEX(2, 20, 9),  // 湿度9

  /*******************************************************************************
   *                               机械人通用配置                                *
   *******************************************************************************/

  /*******************************************************************************
   *                                MOTOR_DEFAULT                                *
   *******************************************************************************/
  kreg_robot_move     = REG_INDEX(10, 0, 0),  // 机器人X是否在移动
  kreg_robot_pos      = REG_INDEX(10, 0, 1),  // 机器人x坐标
  kreg_robot_velocity = REG_INDEX(10, 0, 2),  // 机器人x速度
  kreg_robot_torque   = REG_INDEX(10, 0, 3),  // 机器人x电流

  kreg_motor_shift                        = REG_INDEX(10, 50, 0),   // x偏移
  kreg_motor_shaft                        = REG_INDEX(10, 50, 1),   // x轴是否反转
  kreg_motor_one_circle_pulse             = REG_INDEX(10, 50, 2),   // x轴一圈脉冲数
  kreg_motor_one_circle_pulse_denominator = REG_INDEX(10, 50, 3),   // 设置一圈脉冲数的分母
  kreg_motor_default_velocity             = REG_INDEX(10, 50, 4),   // 默认速度
  kreg_motor_default_acc                  = REG_INDEX(10, 50, 5),   // 默认加速度
  kreg_motor_default_dec                  = REG_INDEX(10, 50, 6),   // 默认减速度
  kreg_motor_default_break_dec            = REG_INDEX(10, 50, 7),   // 默认减速度
  kreg_stepmotor_ihold                    = REG_INDEX(10, 50, 8),   // 步进电机电流配置
  kreg_stepmotor_irun                     = REG_INDEX(10, 50, 9),   // 步进电机电流配置
  kreg_stepmotor_iholddelay               = REG_INDEX(10, 50, 20),  // 步进电机电流配置
  kreg_motor_run_to_zero_max_d            = REG_INDEX(10, 50, 21),  // x轴回零最大距离
  kreg_motor_look_zero_edge_max_d         = REG_INDEX(10, 50, 22),  // x轴找零边缘最大距离
  kreg_motor_run_to_zero_speed            = REG_INDEX(10, 50, 23),  // 回零速度
  kreg_motor_run_to_zero_dec              = REG_INDEX(10, 50, 24),  // 回零减速度
  kreg_motor_look_zero_edge_speed         = REG_INDEX(10, 50, 25),  // 找零边缘速度
  kreg_motor_look_zero_edge_dec           = REG_INDEX(10, 50, 26),  // 找零边缘减速度

  /*******************************************************************************
   *                                   MOTOR_X                                   *
   *******************************************************************************/
  kreg_robot_x_move     = REG_INDEX(11, 0, 0),  // 机器人X是否在移动
  kreg_robot_x_pos      = REG_INDEX(11, 0, 1),  // 机器人x坐标
  kreg_robot_x_velocity = REG_INDEX(11, 0, 2),  // 机器人x速度
  kreg_robot_x_torque   = REG_INDEX(11, 0, 3),  // 机器人x电流

  kreg_motor_x_shift                = REG_INDEX(11, 50, 0),   // x偏移
  kreg_motor_x_shaft                = REG_INDEX(11, 50, 1),   // x轴是否反转
  kreg_motor_x_one_circle_pulse     = REG_INDEX(11, 50, 2),   // x轴一圈脉冲数
  kreg_motor_x_default_velocity     = REG_INDEX(11, 50, 3),   // 默认速度
  kreg_motor_x_default_acc          = REG_INDEX(11, 50, 4),   // 默认加速度
  kreg_motor_x_default_dec          = REG_INDEX(11, 50, 5),   // 默认减速度
  kreg_motor_x_default_break_dec    = REG_INDEX(11, 50, 6),   // 默认减速度
  kreg_stepmotor_x_ihold            = REG_INDEX(11, 50, 7),   // 步进电机电流配置
  kreg_stepmotor_x_irun             = REG_INDEX(11, 50, 8),   // 步进电机电流配置
  kreg_stepmotor_x_iholddelay       = REG_INDEX(11, 50, 9),   // 步进电机电流配置
  kreg_motor_run_to_zero_max_x_d    = REG_INDEX(11, 50, 20),  // x轴回零最大距离
  kreg_motor_look_zero_edge_max_x_d = REG_INDEX(11, 50, 21),  // x轴找零边缘最大距离
  kreg_motor_x_run_to_zero_speed    = REG_INDEX(11, 50, 22),  // 回零速度
  kreg_motor_x_run_to_zero_dec      = REG_INDEX(11, 50, 23),  // 回零减速度
  kreg_motor_x_look_zero_edge_speed = REG_INDEX(11, 50, 24),  // 找零边缘速度
  kreg_motor_x_look_zero_edge_dec   = REG_INDEX(11, 50, 25),  // 找零边缘减速度

  /*******************************************************************************
   *                                   MOTOR_Y                                   *
   *******************************************************************************/
  kreg_robot_y_move     = REG_INDEX(12, 0, 0),  // 机器人X是否在移动
  kreg_robot_y_pos      = REG_INDEX(12, 0, 1),  // 机器人x坐标
  kreg_robot_y_velocity = REG_INDEX(12, 0, 2),  // 机器人x速度
  kreg_robot_y_torque   = REG_INDEX(12, 0, 3),  // 机器人x电流

  kreg_motor_y_shift                = REG_INDEX(12, 50, 0),   // x偏移
  kreg_motor_y_shaft                = REG_INDEX(12, 50, 1),   // x轴是否反转
  kreg_motor_y_one_circle_pulse     = REG_INDEX(12, 50, 2),   // x轴一圈脉冲数
  kreg_motor_y_default_velocity     = REG_INDEX(12, 50, 3),   // 默认速度
  kreg_motor_y_default_acc          = REG_INDEX(12, 50, 4),   // 默认加速度
  kreg_motor_y_default_dec          = REG_INDEX(12, 50, 5),   // 默认减速度
  kreg_motor_y_default_break_dec    = REG_INDEX(12, 50, 6),   // 默认减速度
  kreg_stepmotor_y_ihold            = REG_INDEX(12, 50, 7),   // 步进电机电流配置
  kreg_stepmotor_y_irun             = REG_INDEX(12, 50, 8),   // 步进电机电流配置
  kreg_stepmotor_y_iholddelay       = REG_INDEX(12, 50, 9),   // 步进电机电流配置
  kreg_motor_run_to_zero_max_y_d    = REG_INDEX(12, 50, 20),  // x轴回零最大距离
  kreg_motor_look_zero_edge_max_y_d = REG_INDEX(12, 50, 21),  // x轴找零边缘最大距离
  kreg_motor_y_run_to_zero_speed    = REG_INDEX(12, 50, 22),  // 回零速度
  kreg_motor_y_run_to_zero_dec      = REG_INDEX(12, 50, 23),  // 回零减速度
  kreg_motor_y_look_zero_edge_speed = REG_INDEX(12, 50, 24),  // 找零边缘速度
  kreg_motor_y_look_zero_edge_dec   = REG_INDEX(12, 50, 25),  // 找零边缘减速度

  /*******************************************************************************
   *                                   MOTOR_Z                                   *
   *******************************************************************************/
  kreg_robot_z_move     = REG_INDEX(13, 0, 0),  // 机器人X是否在移动
  kreg_robot_z_pos      = REG_INDEX(13, 0, 1),  // 机器人x坐标
  kreg_robot_z_velocity = REG_INDEX(13, 0, 2),  // 机器人x速度
  kreg_robot_z_torque   = REG_INDEX(13, 0, 3),  // 机器人x电流

  kreg_motor_z_shift                = REG_INDEX(13, 50, 0),   // x偏移
  kreg_motor_z_shaft                = REG_INDEX(13, 50, 1),   // x轴是否反转
  kreg_motor_z_one_circle_pulse     = REG_INDEX(13, 50, 2),   // x轴一圈脉冲数
  kreg_motor_z_default_velocity     = REG_INDEX(13, 50, 3),   // 默认速度
  kreg_motor_z_default_acc          = REG_INDEX(13, 50, 4),   // 默认加速度
  kreg_motor_z_default_dec          = REG_INDEX(13, 50, 5),   // 默认减速度
  kreg_motor_z_default_break_dec    = REG_INDEX(13, 50, 6),   // 默认减速度
  kreg_stepmotor_z_ihold            = REG_INDEX(13, 50, 7),   // 步进电机电流配置
  kreg_stepmotor_z_irun             = REG_INDEX(13, 50, 8),   // 步进电机电流配置
  kreg_stepmotor_z_iholddelay       = REG_INDEX(13, 50, 9),   // 步进电机电流配置
  kreg_motor_run_to_zero_max_z_d    = REG_INDEX(13, 50, 20),  // x轴回零最大距离
  kreg_motor_look_zero_edge_max_z_d = REG_INDEX(13, 50, 21),  // x轴找零边缘最大距离
  kreg_motor_z_run_to_zero_speed    = REG_INDEX(13, 50, 22),  // 回零速度
  kreg_motor_z_run_to_zero_dec      = REG_INDEX(13, 50, 23),  // 回零减速度
  kreg_motor_z_look_zero_edge_speed = REG_INDEX(13, 50, 24),  // 找零边缘速度
  kreg_motor_z_look_zero_edge_dec   = REG_INDEX(13, 50, 25),  // 找零边缘减速度

  kreg_xyrobot_robot_type = REG_INDEX(20, 50, 0),  // 机器人类型 0:hbot 1:corexy

  /*******************************************************************************
   *                               PID控制器(3000->4000)                         *
   *******************************************************************************/
  kreg_pid_target       = REG_INDEX(30, 0, 0),   // 目标数值
  kreg_pid_nowoutput    = REG_INDEX(30, 0, 1),   // 当前输出
  kreg_pid_feedbackval  = REG_INDEX(30, 0, 2),   // 当前输出
  kreg_pid_kp           = REG_INDEX(30, 50, 0),  // kp
  kreg_pid_ki           = REG_INDEX(30, 50, 1),  // ki
  kreg_pid_kd           = REG_INDEX(30, 50, 2),  // kd
  kreg_pid_max_output   = REG_INDEX(30, 50, 3),  // 最大输出
  kreg_pid_min_output   = REG_INDEX(30, 50, 4),  // 最小输出
  kreg_pid_max_integral = REG_INDEX(30, 50, 5),  // 最大积分
  kreg_pid_min_integral = REG_INDEX(30, 50, 6),  // 最小积分
  kreg_error_limit      = REG_INDEX(30, 50, 7),  // 误差限制
  kreg_compute_interval = REG_INDEX(30, 50, 8),  // 计算间隔

  /*******************************************************************************
   *                                风扇控制                                      *
   *******************************************************************************/
  kreg_fan0_ctrl_speed_level = REG_INDEX(31, 0, 0),  // 风扇转速0,1,2,3
  kreg_fan1_ctrl_speed_level = REG_INDEX(31, 0, 1),  // 风扇转速0,1,2,3
  kreg_fan2_ctrl_speed_level = REG_INDEX(31, 0, 2),  // 风扇转速0,1,2,3
  kreg_fan3_ctrl_speed_level = REG_INDEX(31, 0, 3),  // 风扇转速0,1,2,3
  kreg_fan4_ctrl_speed_level = REG_INDEX(31, 0, 4),  // 风扇转速0,1,2,3

  kreg_fan0_speed_level = REG_INDEX(31, 10, 0),  // 风扇实时转速0,1,2,3
  kreg_fan1_speed_level = REG_INDEX(31, 10, 1),  // 风扇实时转速0,1,2,3
  kreg_fan2_speed_level = REG_INDEX(31, 10, 2),  // 风扇实时转速0,1,2,3
  kreg_fan3_speed_level = REG_INDEX(31, 10, 3),  // 风扇实时转速0,1,2,3
  kreg_fan4_speed_level = REG_INDEX(31, 10, 4),  // 风扇实时转速0,1,2,3

  kreg_pwm_pump0_ctrl_speed_level = REG_INDEX(32, 0, 0),  // PWM水泵0,1,2,3
  kreg_pwm_pump1_ctrl_speed_level = REG_INDEX(32, 0, 1),  // PWM水泵0,1,2,3
  kreg_pwm_pump2_ctrl_speed_level = REG_INDEX(32, 0, 2),  // PWM水泵0,1,2,3
  kreg_pwm_pump3_ctrl_speed_level = REG_INDEX(32, 0, 3),  // PWM水泵0,1,2,3
  kreg_pwm_pump4_ctrl_speed_level = REG_INDEX(32, 0, 4),  // PWM水泵0,1,2,3

  kreg_pwm_pump0_speed_level = REG_INDEX(32, 10, 0),  // PWM水泵0,1,2,3
  kreg_pwm_pump1_speed_level = REG_INDEX(32, 10, 1),  // PWM水泵0,1,2,3
  kreg_pwm_pump2_speed_level = REG_INDEX(32, 10, 2),  // PWM水泵0,1,2,3
  kreg_pwm_pump3_speed_level = REG_INDEX(32, 10, 3),  // PWM水泵0,1,2,3
  kreg_pwm_pump4_speed_level = REG_INDEX(32, 10, 4),  // PWM水泵0,1,2,3

  /*******************************************************************************
   *                                移液枪状态                                    *
   *******************************************************************************/
  kreg_pipette_pos_ul           = REG_INDEX(40, 0, 0),   // 移液枪位置
  kreg_pipette_capactitance_val = REG_INDEX(40, 0, 1),   // 移液枪电容值
  kreg_pipette_tip_state        = REG_INDEX(40, 0, 2),   // 移动液枪tip状态
  kreg_pipette_limit_ul         = REG_INDEX(40, 50, 0),  // 移液枪ul限制

  /*******************************************************************************
   *                                smartADC                                     *
   *******************************************************************************/
  kreg_self_reflecting_laser_sensor_transmitting_power  = REG_INDEX(41, 0, 0),  // 发射功率
  kreg_self_reflecting_laser_sensor_receiving_tube_gain = REG_INDEX(41, 0, 1),  // 接收管放大倍数
  kreg_self_reflecting_laser_sensor_sample_interval_ms  = REG_INDEX(41, 0, 2),  // 采样率
  kreg_self_reflecting_laser_sensor_num_samples         = REG_INDEX(41, 0, 3),  // 采样点数

  /*******************************************************************************
   *                                smartADC                                     *
   *******************************************************************************/
  // scan action
  kreg_boditech_optical_scan_type                   = REG_INDEX(42, 0, 0),  // 0 t光学,1 f光学
  kreg_boditech_optical_scan_start_pos              = REG_INDEX(42, 0, 1),
  kreg_boditech_optical_scan_direction              = REG_INDEX(42, 0, 2),
  kreg_boditech_optical_scan_step_interval          = REG_INDEX(42, 0, 3),
  kreg_boditech_optical_scan_pointnum               = REG_INDEX(42, 0, 4),
  kreg_boditech_optical_channel_select_num          = REG_INDEX(42, 0, 5),
  kreg_boditech_optical_laster_gain                 = REG_INDEX(42, 0, 6),
  kreg_boditech_optical_scan_gain                   = REG_INDEX(42, 0, 7),
  kreg_boditech_optical_trf_uvled_on_duration_us    = REG_INDEX(42, 0, 8),
  kreg_boditech_optical_trf_uvled_off_duration_us   = REG_INDEX(42, 0, 9),
  kreg_boditech_optical_trf_scan_delay_us           = REG_INDEX(42, 0, 10),
  kreg_boditech_optical_trf_scan_duration_us        = REG_INDEX(42, 0, 11),
  kreg_boditech_optical_scan_gain_adjust_suggestion = REG_INDEX(42, 0, 12),
  kreg_boditech_optical_adc_result_overflow         = REG_INDEX(42, 0, 13),