#pragma once #include namespace iflytop { using namespace std; #define REG_INDEX(type, offset, subconfigindex) (type * 100 + offset + subconfigindex) typedef enum { /******************************************************************************* * 模块通用配置和状态 * *******************************************************************************/ kreg_module_version = 0, // 模块版本 kreg_module_type = 1, // 模块类型 kreg_module_status = 2, // 0idle,1busy,2error kreg_module_errorcode = 3, // inited_flag /*********************************************************************************************************************** * 水冷温度控制器 * ***********************************************************************************************************************/ kreg_water_cooling_tmp_controler_pid_target = 3000, // 目标数值 kreg_water_cooling_tmp_controler_pid_nowoutput = 3001, // 当前输出 kreg_water_cooling_tmp_controler_pid_feedbackval = 3002, // 当前输出 kreg_water_cooling_tmp_controler_temp0 = 3003, // 温度1 kreg_water_cooling_tmp_controler_temp1 = 3004, // 温度2 kreg_water_cooling_tmp_controler_temp2 = 3005, // 温度3 kreg_water_cooling_tmp_controler_temp3 = 3006, // 温度4 kreg_water_cooling_tmp_controler_pid_kp = 3050, // kp kreg_water_cooling_tmp_controler_pid_ki = 3051, // ki kreg_water_cooling_tmp_controler_pid_kd = 3052, // kd kreg_water_cooling_tmp_controler_pid_max_output = 3053, // 最大输出 kreg_water_cooling_tmp_controler_pid_min_output = 3054, // 最小输出 kreg_water_cooling_tmp_controler_pid_max_integral = 3055, // 最大积分 kreg_water_cooling_tmp_controler_pid_min_integral = 3056, // 最小积分 kreg_water_cooling_tmp_controler_pid_error_limit = 3057, // 误差限制 kreg_water_cooling_tmp_controler_pid_compute_interval = 3058, // 计算间隔 /******************************************************************************* * 移液枪状态 * *******************************************************************************/ kreg_pipette_pos_ul = 4000, // 移液枪位置 kreg_pipette_capactitance_val = 4001, // 移液枪电容值 kreg_pipette_tip_state = 4002, // 移动液枪tip状态 kreg_pipette_limit_ul = 4051, // kreg_pipette_pump_acc = 4052, // kreg_pipette_pump_dec = 4053, // kreg_pipette_pump_vstart = 4054, // kreg_pipette_pump_vstop = 4055, // kreg_pipette_pump_vmax = 4056, // kreg_pipette_aspirate_distribut_pump_vel = 4057, // kreg_pipette_lld_pump_vel = 4058, // kreg_pipette_lld_motor_vel_rpm = 4059, // kreg_pipette_lld_detect_period_ms = 4060, // kreg_pipette_lld_prepare_pos = 4061, // kreg_pipette_lld_prepare_distribut_pos = 4062, // /** * @brief * * ------------------------------------------------------ * * * 扫描零点偏移:(F光学向左扫描的起始位置) * 扫描方向:1:板卡箭头方向,-1板卡箭头反方向 * 扫描点数:固定为1200 * 扫描步距:固定为1 * * 返回点数:(1200) * * */ // 坐标参数 kreg_a8k_opt_t_pos_offset = 4501, // T光学正向扫描,扫描起始位距离零点的偏移 kreg_a8k_opt_f_pos_offset = 4502, // F光学正向扫描,扫描起始位距离零点的偏移 kreg_a8k_opt_t_reverse_scan_pos_offset = 4503, // T光学逆向扫描,扫描起始位距离零点的偏移 kreg_a8k_opt_f_reverse_scan_pos_offset = 4504, // F光学逆向扫描,扫描起始位距离零点的偏移 kreg_a8k_opt_scan_step_interval = 4505, // 参数固定:为1 kreg_a8k_opt_scan_pointnum = 4506, // 参数固定:为1200个点 /*********************************************************************************************************************** * XYROBOT * ***********************************************************************************************************************/ kreg_xyrobot_io_state = 9900, // kreg_xyrobot_robot_type = 9950, // kreg_xyrobot_one_circle_pulse = 9951, // kreg_xyrobot_one_circle_pulse_denominator = 9952, // kreg_xyrobot_ihold = 9954, // kreg_xyrobot_irun = 9955, // kreg_xyrobot_iholddelay = 9956, // kreg_xyrobot_iglobalscaler = 9957, // kreg_xyrobot_vstart = 9958, // kreg_xyrobot_a1 = 9959, // kreg_xyrobot_amax = 9960, // kreg_xyrobot_v1 = 9961, // kreg_xyrobot_dmax = 9962, // kreg_xyrobot_d1 = 9963, // kreg_xyrobot_vstop = 9964, // kreg_xyrobot_tzerowait = 9965, // kreg_xyrobot_enc_resolution = 9966, // kreg_xyrobot_enable_enc = 9967, // kreg_xyrobot_x_shaft = 9968, // kreg_xyrobot_y_shaft = 9969, // kreg_xyrobot_min_x = 9972, // kreg_xyrobot_min_y = 9973, // kreg_xyrobot_max_x = 9974, // kreg_xyrobot_max_y = 9975, // kreg_xyrobot_run_to_zero_speed = 9976, // kreg_xyrobot_look_zero_edge_speed = 9977, // kreg_xyrobot_shift_x = 9978, // kreg_xyrobot_shift_y = 9979, // kreg_xyrobot_pos_devi_tolerance = 9980, // kreg_xyrobot_io_trigger_append_distance = 9981, // kreg_xyrobot_default_velocity = 10000, // /*********************************************************************************************************************** * step_motor * ***********************************************************************************************************************/ kreg_step_motor_pos = 10101, // 机器人x坐标 kreg_step_motor_dpos = 10103, // 执行完上一条指令后的相对位移 kreg_step_motor_shift = 10150, // x偏移 kreg_step_motor_shaft = 10151, // x轴是否反转 kreg_step_motor_one_circle_pulse = 10152, // x轴一圈脉冲数 kreg_step_motor_one_circle_pulse_denominator = 10153, // 设置一圈脉冲数的分母 kreg_step_motor_default_velocity = 10154, // 默认速度 kreg_step_motor_ihold = 10158, // 步进电机电流配置 kreg_step_motor_irun = 10159, // 步进电机电流配置 kreg_step_motor_iholddelay = 10160, // 步进电机电流配置 kreg_step_motor_iglobalscaler = 10161, // 步进电机电流配置 kreg_step_motor_run_to_zero_speed = 10173, // 回零速度 kreg_step_motor_look_zero_edge_speed = 10175, // 找零边缘速度 kreg_step_motor_max_d = 10178, // 最大限制距离 kreg_step_motor_min_d = 10179, // 最小限制距离 kreg_step_motor_in_debug_mode = 10180, // 驱动器处于调试模式 kreg_step_motor_vstart = 10181, // a1起作用的速度 kreg_step_motor_a1 = 10182, // kreg_step_motor_amax = 10183, // kreg_step_motor_v1 = 10184, // kreg_step_motor_dmax = 10185, // kreg_step_motor_d1 = 10186, // kreg_step_motor_vstop = 10187, // kreg_step_motor_tzerowait = 10188, // kreg_step_motor_enc_resolution = 10189, // 编码器分辨率 1000,1024,4000,4096,16384 kreg_step_motor_enable_enc = 10190, // kreg_step_motor_dzero_pos = 10191, // 驱动器处于调试模式 kreg_step_motor_pos_devi_tolerance = 10192, // 位置偏差容忍度 kreg_step_motor_io_trigger_append_distance = 10193, // 移动到IO时,会在原点触发的边沿,稍稍里面移动一点,用来保证IO稳定触发 /*********************************************************************************************************************** * step_motor * ***********************************************************************************************************************/ kreg_mini_servo_pos = 10201, // 位置 kreg_mini_servo_limit_velocity = 10251, // 限制速度 kreg_mini_servo_limit_torque = 10252, // 限制扭矩 kreg_mini_servo_protective_torque = 10253, // 保护扭矩 kreg_mini_servo_is_move = 10254, // isMove /*********************************************************************************************************************** * ID_CARD_READER * ***********************************************************************************************************************/ kreg_id_card_reader_raw_sector_size = 10301, // kreg_id_card_reader_raw_sector_num = 10302, // kreg_id_card_reader_is_online = 10303, // /*********************************************************************************************************************** * 板夹仓扫码 * ***********************************************************************************************************************/ kreg_plate_code_scaner_laster_intensity = 10401, // kreg_plate_code_scaner_scan_gain = 10402, // kreg_plate_code_scaner_scan_velocity = 10403, // kreg_plate_code_scaner_scan_start_pos = 10404, // kreg_plate_code_scaner_final_stop_pos = 10405, // kreg_plate_code_scaner_code_judgment_threshold = 10406, // kreg_plate_code_scaner_item = 10407, // kreg_plate_code_scaner_lot = 10408, // kreg_plate_code_scaner_rawcode = 10409, // kreg_plate_code_scaner_code_legal = 10410, // } reg_index_t; typedef struct { int index; const char* regname; } reginfo_t; const char* regindex2str(int32_t code); reginfo_t* reg_get_table(); int reg_get_table_size(); } // namespace iflytop