From 76e03ba23018c81c2f904f3bfaaccff8d7e675c9 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Mon, 30 Oct 2023 10:45:22 +0800 Subject: [PATCH] update regindex --- api/reg_index.hpp | 412 +++++++++++++++++++++++++++++-------------------- api/zi_adc_capture.hpp | 15 ++ cmdid.hpp | 5 + 3 files changed, 261 insertions(+), 171 deletions(-) create mode 100644 api/zi_adc_capture.hpp diff --git a/api/reg_index.hpp b/api/reg_index.hpp index bd2d684..f7cd455 100644 --- a/api/reg_index.hpp +++ b/api/reg_index.hpp @@ -4,198 +4,268 @@ namespace iflytop { using namespace std; -#define REG_INDEX(type, subconfigindex) (type + subconfigindex) +#define REG_INDEX(type, offset, subconfigindex) (type * 100 + offset + subconfigindex) typedef enum { /******************************************************************************* - * 模块通用配置和状态(0->1000) * + * 模块通用配置和状态 * *******************************************************************************/ - kreg_module_version = REG_INDEX(0, 0), // 模块版本 - kreg_module_type = REG_INDEX(0, 1), // 模块类型 - kreg_module_status = REG_INDEX(0, 2), // 0idle,1busy,2error - kreg_module_errorcode = REG_INDEX(0, 3), // inited_flag - kreg_module_initflag = REG_INDEX(0, 4), // inited_flag - kreg_module_enableflag = REG_INDEX(0, 5), // 0idle,1busy,2error - kreg_module_errorbitflag0 = REG_INDEX(0, 6), // 模块异常标志,bit,每个模块自定义 - kreg_module_errorbitflag1 = REG_INDEX(0, 7), // - kreg_module_input_state = REG_INDEX(0, 8), // - kreg_module_output_state = REG_INDEX(0, 9), // - kreg_module_raw_sector_size = REG_INDEX(0, 10), // sector_size - kreg_module_raw_sector_num = REG_INDEX(0, 11), // - kreg_module_is_online = REG_INDEX(0, 12), // - kreg_module_last_cmd_exec_status = REG_INDEX(20, 0), // 上一条指令执行的状态 - kreg_module_last_cmd_exec_val0 = REG_INDEX(20, 1), // 上一条指令执行的结果0 - kreg_module_last_cmd_exec_val1 = REG_INDEX(20, 2), // 上一条指令执行的结果1 - kreg_module_last_cmd_exec_val2 = REG_INDEX(20, 3), // 上一条指令执行的结果2 - kreg_module_last_cmd_exec_val3 = REG_INDEX(20, 4), // 上一条指令执行的结果3 - kreg_module_last_cmd_exec_val4 = REG_INDEX(20, 5), // 上一条指令执行的结果4 - kreg_module_last_cmd_exec_val5 = REG_INDEX(20, 6), // 上一条指令执行的结果5 - kreg_module_private0 = REG_INDEX(200, 0), // 模块私有状态0 - kreg_module_private1 = REG_INDEX(200, 1), // 模块私有状态1 - kreg_module_private2 = REG_INDEX(200, 2), // 模块私有状态2 - kreg_module_private3 = REG_INDEX(200, 3), // 模块私有状态3 - kreg_module_private4 = REG_INDEX(200, 4), // 模块私有状态4 - kreg_module_private5 = REG_INDEX(200, 5), // 模块私有状态5 - kreg_module_private6 = REG_INDEX(200, 6), // 模块私有状态6 - kreg_module_private7 = REG_INDEX(200, 7), // 模块私有状态7 - kreg_module_private8 = REG_INDEX(200, 8), // 模块私有状态8 - kreg_module_private9 = REG_INDEX(200, 9), // 模块私有状态9 + 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 /******************************************************************************* - * 电机相关配置和状态(1000->1999 * + * SENSOR * *******************************************************************************/ - kreg_motor_x_shift = REG_INDEX(1000, 0), // x偏移 - kreg_motor_y_shift = REG_INDEX(1000, 1), // y偏移 - kreg_motor_z_shift = REG_INDEX(1000, 2), // z偏移 - kreg_motor_x_shaft = REG_INDEX(1000, 3), // x轴是否反转 - kreg_motor_y_shaft = REG_INDEX(1000, 4), // y轴是否反转 - kreg_motor_z_shaft = REG_INDEX(1000, 5), // z轴是否反转 - kreg_motor_x_one_circle_pulse = REG_INDEX(1000, 6), // x轴一圈脉冲数 - kreg_motor_y_one_circle_pulse = REG_INDEX(1000, 7), // y轴一圈脉冲数 - kreg_motor_z_one_circle_pulse = REG_INDEX(1000, 8), // z轴一圈脉冲数 - kreg_motor_default_velocity = REG_INDEX(1000, 9), // 默认速度 - kreg_motor_default_acc = REG_INDEX(1000, 10), // 默认加速度 - kreg_motor_default_dec = REG_INDEX(1000, 11), // 默认减速度 - kreg_motor_default_break_dec = REG_INDEX(1000, 12), // 默认减速度 - kreg_stepmotor_ihold = REG_INDEX(1000, 13), // 步进电机电流配置 - kreg_stepmotor_irun = REG_INDEX(1000, 14), // 步进电机电流配置 - kreg_stepmotor_iholddelay = REG_INDEX(1000, 15), // 步进电机电流配置 - - kreg_motor_run_to_zero_max_x_d = REG_INDEX(1050, 0), // x轴回零最大距离 - kreg_motor_run_to_zero_max_y_d = REG_INDEX(1050, 1), // y轴回零最大距离 - kreg_motor_run_to_zero_max_z_d = REG_INDEX(1050, 2), // z轴回零最大距离 - kreg_motor_look_zero_edge_max_x_d = REG_INDEX(1050, 3), // x轴找零边缘最大距离 - kreg_motor_look_zero_edge_max_y_d = REG_INDEX(1050, 4), // y轴找零边缘最大距离 - kreg_motor_look_zero_edge_max_z_d = REG_INDEX(1050, 5), // z轴找零边缘最大距离 - kreg_motor_run_to_zero_speed = REG_INDEX(1050, 6), // 回零速度 - kreg_motor_run_to_zero_dec = REG_INDEX(1050, 7), // 回零减速度 - kreg_motor_look_zero_edge_speed = REG_INDEX(1050, 8), // 找零边缘速度 - kreg_motor_look_zero_edge_dec = REG_INDEX(1050, 9), // 找零边缘减速度 - - kreg_xyrobot_robot_type = REG_INDEX(1100, 0), // 机器人类型 0:hbot 1:corexy - - kreg_robot_move = REG_INDEX(1500, 0), // 机器人是否在移动 - kreg_robot_x_pos = REG_INDEX(1500, 1), // 机器人x坐标 - kreg_robot_y_pos = REG_INDEX(1500, 2), // 机器人y坐标 - kreg_robot_z_pos = REG_INDEX(1500, 3), // 机器人z坐标 - kreg_robot_x_velocity = REG_INDEX(1500, 4), // 机器人x速度 - kreg_robot_y_velocity = REG_INDEX(1500, 5), // 机器人y速度 - kreg_robot_z_velocity = REG_INDEX(1500, 6), // 机器人z速度 - kreg_robot_x_torque = REG_INDEX(1500, 7), // 机器人x电流 - kreg_robot_y_torque = REG_INDEX(1500, 8), // 机器人y电流 - kreg_robot_z_torque = REG_INDEX(1500, 9), // 机器人z电流 + 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_default_velocity = REG_INDEX(10, 50, 3), // 默认速度 + kreg_motor_default_acc = REG_INDEX(10, 50, 4), // 默认加速度 + kreg_motor_default_dec = REG_INDEX(10, 50, 5), // 默认减速度 + kreg_motor_default_break_dec = REG_INDEX(10, 50, 6), // 默认减速度 + kreg_stepmotor_ihold = REG_INDEX(10, 50, 7), // 步进电机电流配置 + kreg_stepmotor_irun = REG_INDEX(10, 50, 8), // 步进电机电流配置 + kreg_stepmotor_iholddelay = REG_INDEX(10, 50, 9), // 步进电机电流配置 + kreg_motor_run_to_zero_max_d = REG_INDEX(10, 50, 20), // x轴回零最大距离 + kreg_motor_look_zero_edge_max_d = REG_INDEX(10, 50, 21), // x轴找零边缘最大距离 + kreg_motor_run_to_zero_speed = REG_INDEX(10, 50, 22), // 回零速度 + kreg_motor_run_to_zero_dec = REG_INDEX(10, 50, 23), // 回零减速度 + kreg_motor_look_zero_edge_speed = REG_INDEX(10, 50, 24), // 找零边缘速度 + kreg_motor_look_zero_edge_dec = REG_INDEX(10, 50, 25), // 找零边缘减速度 + + /******************************************************************************* + * 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), // 找零边缘减速度 /******************************************************************************* - * 传感器状态(2000->2999) * + * MOTOR_Y * *******************************************************************************/ - kreg_sensor_current = REG_INDEX(2000, 0), // 电流 - kreg_sensor_voltage = REG_INDEX(2000, 1), // 电压 - kreg_sensor_temperature = REG_INDEX(2000, 2), // 温度 - kreg_sensor_humidity = REG_INDEX(2000, 3), // 湿度 - kreg_sensor_wind_speed = REG_INDEX(2000, 4), // 风速 - kreg_sensor_wind_dir = REG_INDEX(2000, 5), // 风向 - kreg_sensor_air_press = REG_INDEX(2000, 6), // 气压 - kreg_sensor_pm25 = REG_INDEX(2000, 7), // PM2.5 - kreg_sensor_pm10 = REG_INDEX(2000, 8), // PM10 - kreg_sensor_co = REG_INDEX(2000, 9), // CO - kreg_sensor_co2 = REG_INDEX(2000, 10), // CO - kreg_sensor_no2 = REG_INDEX(2000, 11), // NO2 - kreg_sensor_so2 = REG_INDEX(2000, 12), // SO2 - kreg_sensor_o3 = REG_INDEX(2000, 13), // O3 - kreg_sensor_light_intensity = REG_INDEX(2000, 14), // 光照强度 - kreg_sensor_radiation = REG_INDEX(2000, 15), // 总辐射量 - kreg_sensor_hydrogen_peroxide_volume = REG_INDEX(2000, 16), // ppm 0x0100 - kreg_sensor_h2o_h2o2_rs = REG_INDEX(2000, 17), // %RS * 100 - kreg_sensor_relative_humidity = REG_INDEX(2000, 18), // %RH * 100 - kreg_sensor_absolute_hydrogen_peroxide = REG_INDEX(2000, 19), // mg/m3 - kreg_sensor_h2o_h2o2dew_point_temperature = REG_INDEX(2000, 20), // °C * 100 - kreg_sensor_water_volume = REG_INDEX(2000, 21), // ppm - kreg_sensor_water_vapor_pressure = REG_INDEX(2000, 22), // hpa - kreg_sensor_absolute_humidity = REG_INDEX(2000, 23), // g/m3 - kreg_sensor_water_vapor_saturation_pressure_h2o = REG_INDEX(2000, 24), // hpa - kreg_sensor_h2o2_vapor_pressure = REG_INDEX(2000, 25), // hpa - kreg_sensor_water_vapor_saturation_pressure_h2o_h2o2 = REG_INDEX(2000, 26), // hpa - kreg_sensor_temperature0 = REG_INDEX(2100, 0), // 温度1 - kreg_sensor_temperature1 = REG_INDEX(2100, 1), // 温度2 - kreg_sensor_temperature2 = REG_INDEX(2100, 2), // 温度3 - kreg_sensor_temperature3 = REG_INDEX(2100, 3), // 温度4 - kreg_sensor_temperature4 = REG_INDEX(2100, 4), // 温度5 - kreg_sensor_temperature5 = REG_INDEX(2100, 5), // 温度6 - kreg_sensor_temperature6 = REG_INDEX(2100, 6), // 温度7 - kreg_sensor_temperature7 = REG_INDEX(2100, 7), // 温度8 - kreg_sensor_temperature8 = REG_INDEX(2100, 8), // 温度9 - kreg_sensor_temperature9 = REG_INDEX(2100, 9), // 温度10 - kreg_sensor_pressure0 = REG_INDEX(2120, 0), // 压力0 - kreg_sensor_pressure1 = REG_INDEX(2120, 1), // 压力1 - kreg_sensor_pressure2 = REG_INDEX(2120, 2), // 压力2 - kreg_sensor_pressure3 = REG_INDEX(2120, 3), // 压力3 - kreg_sensor_pressure4 = REG_INDEX(2120, 4), // 压力4 - kreg_sensor_pressure5 = REG_INDEX(2120, 5), // 压力5 - kreg_sensor_pressure6 = REG_INDEX(2120, 6), // 压力6 - kreg_sensor_pressure7 = REG_INDEX(2120, 7), // 压力7 - kreg_sensor_pressure8 = REG_INDEX(2120, 8), // 压力8 - kreg_sensor_pressure9 = REG_INDEX(2120, 9), // 压力9 - kreg_sensor_humidity0 = REG_INDEX(2130, 0), // 湿度0 - kreg_sensor_humidity1 = REG_INDEX(2130, 1), // 湿度1 - kreg_sensor_humidity2 = REG_INDEX(2130, 2), // 湿度2 - kreg_sensor_humidity3 = REG_INDEX(2130, 3), // 湿度3 - kreg_sensor_humidity4 = REG_INDEX(2130, 4), // 湿度4 - kreg_sensor_humidity5 = REG_INDEX(2130, 5), // 湿度5 - kreg_sensor_humidity6 = REG_INDEX(2130, 6), // 湿度6 - kreg_sensor_humidity7 = REG_INDEX(2130, 7), // 湿度7 - kreg_sensor_humidity8 = REG_INDEX(2130, 8), // 湿度8 - kreg_sensor_humidity9 = REG_INDEX(2130, 9), // 湿度9 + 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_kp = REG_INDEX(3000, 0), // kp - kreg_pid_ki = REG_INDEX(3000, 1), // ki - kreg_pid_kd = REG_INDEX(3000, 2), // kd - kreg_pid_max_output = REG_INDEX(3000, 3), // 最大输出 - kreg_pid_min_output = REG_INDEX(3000, 4), // 最小输出 - kreg_pid_max_integral = REG_INDEX(3000, 5), // 最大积分 - kreg_pid_min_integral = REG_INDEX(3000, 6), // 最小积分 - kreg_error_limit = REG_INDEX(3000, 7), // 误差限制 - kreg_compute_interval = REG_INDEX(3000, 8), // 计算间隔 - - kreg_pid_target = REG_INDEX(3050, 0), // 目标数值 - kreg_pid_nowoutput = REG_INDEX(3050, 1), // 当前输出 - kreg_pid_feedbackval = REG_INDEX(3050, 2), // 当前输出 + 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(4000, 0), // 风扇转速0,1,2,3 - kreg_fan1_ctrl_speed_level = REG_INDEX(4000, 1), // 风扇转速0,1,2,3 - kreg_fan2_ctrl_speed_level = REG_INDEX(4000, 2), // 风扇转速0,1,2,3 - kreg_fan3_ctrl_speed_level = REG_INDEX(4000, 3), // 风扇转速0,1,2,3 - kreg_fan4_ctrl_speed_level = REG_INDEX(4000, 4), // 风扇转速0,1,2,3 - - kreg_fan0_speed_level = REG_INDEX(4010, 0), // 风扇实时转速0,1,2,3 - kreg_fan1_speed_level = REG_INDEX(4010, 1), // 风扇实时转速0,1,2,3 - kreg_fan2_speed_level = REG_INDEX(4010, 2), // 风扇实时转速0,1,2,3 - kreg_fan3_speed_level = REG_INDEX(4010, 3), // 风扇实时转速0,1,2,3 - kreg_fan4_speed_level = REG_INDEX(4010, 4), // 风扇实时转速0,1,2,3 - - kreg_pwm_pump0_ctrl_speed_level = REG_INDEX(4030, 0), // PWM水泵0,1,2,3 - kreg_pwm_pump1_ctrl_speed_level = REG_INDEX(4030, 1), // PWM水泵0,1,2,3 - kreg_pwm_pump2_ctrl_speed_level = REG_INDEX(4030, 2), // PWM水泵0,1,2,3 - kreg_pwm_pump3_ctrl_speed_level = REG_INDEX(4030, 3), // PWM水泵0,1,2,3 - kreg_pwm_pump4_ctrl_speed_level = REG_INDEX(4030, 4), // PWM水泵0,1,2,3 - - kreg_pwm_pump0_speed_level = REG_INDEX(4040, 0), // PWM水泵0,1,2,3 - kreg_pwm_pump1_speed_level = REG_INDEX(4040, 1), // PWM水泵0,1,2,3 - kreg_pwm_pump2_speed_level = REG_INDEX(4040, 2), // PWM水泵0,1,2,3 - kreg_pwm_pump3_speed_level = REG_INDEX(4040, 3), // PWM水泵0,1,2,3 - kreg_pwm_pump4_speed_level = REG_INDEX(4040, 4), // PWM水泵0,1,2,3 + 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(4100, 0), // 移液枪位置 - kreg_pipette_capactitance_val = REG_INDEX(4100, 1), // 移液枪电容值 - kreg_pipette_tip_state = REG_INDEX(4100, 2), // 移动液枪tip状态 - kreg_pipette_limit_ul = REG_INDEX(4100, 3), // 移液枪ul限制 + 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), // 采样点数 } reg_index_t; diff --git a/api/zi_adc_capture.hpp b/api/zi_adc_capture.hpp new file mode 100644 index 0000000..d91d186 --- /dev/null +++ b/api/zi_adc_capture.hpp @@ -0,0 +1,15 @@ +#pragma once +#include + +#include + +#include "errorcode.hpp" + +namespace iflytop { +using namespace std; +class ZICodeScaner { + public: + + +}; +} // namespace iflytop \ No newline at end of file diff --git a/cmdid.hpp b/cmdid.hpp index c5d8e34..95c5114 100644 --- a/cmdid.hpp +++ b/cmdid.hpp @@ -112,6 +112,11 @@ typedef enum { kpipette_ctrl_put_tip = CMDID(5, 2), // para:{}, ack:{} kpipette_ctrl_move_to_ul = CMDID(5, 3), // para:{4}, ack:{} + +#if 0 + +#endif + } cmdid_t; } // namespace zcr