diff --git a/components/step_motor_ctrl_module/step_motor_ctrl_module_v2.hpp b/components/step_motor_ctrl_module/step_motor_ctrl_module_v2.hpp index ecfe5d5..893632f 100644 --- a/components/step_motor_ctrl_module/step_motor_ctrl_module_v2.hpp +++ b/components/step_motor_ctrl_module/step_motor_ctrl_module_v2.hpp @@ -21,5 +21,6 @@ class StepMotorCtrlModuleV2 : public ZIModuleImplV2, public ZIMotor { virtual int32_t motor_easy_set_current_pos(int32_t pos); virtual int32_t motor_easy_move_to_io(int32_t ioindex, int32_t direction); virtual int32_t motor_calculated_pos_by_move_to_zero(); + virtual int32_t motor_calculated_pos_by_move_to_zero_read_result(int32_t* result); }; } // namespace iflytop \ No newline at end of file diff --git a/components/zprotocols/zcancmder_v2/api/api.hpp b/components/zprotocols/zcancmder_v2/api/api.hpp index 9198842..2c46a33 100644 --- a/components/zprotocols/zcancmder_v2/api/api.hpp +++ b/components/zprotocols/zcancmder_v2/api/api.hpp @@ -13,6 +13,4 @@ // #include "protocol_constant.hpp" // -#include "reg_index.hpp" - -#include "reg_index_table.hpp" \ No newline at end of file +#include "reg_index.hpp" \ No newline at end of file diff --git a/components/zprotocols/zcancmder_v2/api/protocol_constant.hpp b/components/zprotocols/zcancmder_v2/api/protocol_constant.hpp index faa241f..021dfcd 100644 --- a/components/zprotocols/zcancmder_v2/api/protocol_constant.hpp +++ b/components/zprotocols/zcancmder_v2/api/protocol_constant.hpp @@ -1 +1,2 @@ +#pragma once #define ZCANCMD_READ_BUF_MAX_SIZE 512 \ No newline at end of file diff --git a/components/zprotocols/zcancmder_v2/api/reg_index_table.cpp b/components/zprotocols/zcancmder_v2/api/reg_index_table.cpp deleted file mode 100644 index dc0ecab..0000000 --- a/components/zprotocols/zcancmder_v2/api/reg_index_table.cpp +++ /dev/null @@ -1,217 +0,0 @@ -#include "reg_index_table.hpp" - -#include -#include - -#include "reg_index.hpp" -using namespace iflytop; - -static reg_index_table_iterm_t iterms[] = { - {"module_version", kreg_module_version}, - {"module_type", kreg_module_type}, - {"module_status", kreg_module_status}, - {"module_errorcode", kreg_module_errorcode}, - {"module_initflag", kreg_module_initflag}, - {"module_enableflag", kreg_module_enableflag}, - {"module_errorbitflag0", kreg_module_errorbitflag0}, - {"module_errorbitflag1", kreg_module_errorbitflag1}, - {"module_input_state", kreg_module_input_state}, - {"module_output_state", kreg_module_output_state}, - {"module_raw_sector_size", kreg_module_raw_sector_size}, - {"module_raw_sector_num", kreg_module_raw_sector_num}, - {"module_is_online", kreg_module_is_online}, - {"sensor_current", kreg_sensor_current}, - {"sensor_voltage", kreg_sensor_voltage}, - {"sensor_temperature", kreg_sensor_temperature}, - {"sensor_humidity", kreg_sensor_humidity}, - {"sensor_wind_speed", kreg_sensor_wind_speed}, - {"sensor_wind_dir", kreg_sensor_wind_dir}, - {"sensor_air_press", kreg_sensor_air_press}, - {"sensor_pm25", kreg_sensor_pm25}, - {"sensor_pm10", kreg_sensor_pm10}, - {"sensor_co", kreg_sensor_co}, - {"sensor_co2", kreg_sensor_co2}, - {"sensor_no2", kreg_sensor_no2}, - {"sensor_so2", kreg_sensor_so2}, - {"sensor_o3", kreg_sensor_o3}, - {"sensor_light_intensity", kreg_sensor_light_intensity}, - {"sensor_radiation", kreg_sensor_radiation}, - {"sensor_hydrogen_peroxide_volume", kreg_sensor_hydrogen_peroxide_volume}, - {"sensor_h2o_h2o2_rs", kreg_sensor_h2o_h2o2_rs}, - {"sensor_relative_humidity", kreg_sensor_relative_humidity}, - {"sensor_absolute_hydrogen_peroxide", kreg_sensor_absolute_hydrogen_peroxide}, - {"sensor_h2o_h2o2dew_point_temperature", kreg_sensor_h2o_h2o2dew_point_temperature}, - {"sensor_water_volume", kreg_sensor_water_volume}, - {"sensor_water_vapor_pressure", kreg_sensor_water_vapor_pressure}, - {"sensor_absolute_humidity", kreg_sensor_absolute_humidity}, - {"sensor_water_vapor_saturation_pressure_h2o", kreg_sensor_water_vapor_saturation_pressure_h2o}, - {"sensor_h2o2_vapor_pressure", kreg_sensor_h2o2_vapor_pressure}, - {"sensor_water_vapor_saturation_pressure_h2o_h2o2", kreg_sensor_water_vapor_saturation_pressure_h2o_h2o2}, - {"sensor_temperature0", kreg_sensor_temperature0}, - {"sensor_temperature1", kreg_sensor_temperature1}, - {"sensor_temperature2", kreg_sensor_temperature2}, - {"sensor_temperature3", kreg_sensor_temperature3}, - {"sensor_temperature4", kreg_sensor_temperature4}, - {"sensor_temperature5", kreg_sensor_temperature5}, - {"sensor_temperature6", kreg_sensor_temperature6}, - {"sensor_temperature7", kreg_sensor_temperature7}, - {"sensor_temperature8", kreg_sensor_temperature8}, - {"sensor_temperature9", kreg_sensor_temperature9}, - {"sensor_pressure0", kreg_sensor_pressure0}, - {"sensor_pressure1", kreg_sensor_pressure1}, - {"sensor_pressure2", kreg_sensor_pressure2}, - {"sensor_pressure3", kreg_sensor_pressure3}, - {"sensor_pressure4", kreg_sensor_pressure4}, - {"sensor_pressure5", kreg_sensor_pressure5}, - {"sensor_pressure6", kreg_sensor_pressure6}, - {"sensor_pressure7", kreg_sensor_pressure7}, - {"sensor_pressure8", kreg_sensor_pressure8}, - {"sensor_pressure9", kreg_sensor_pressure9}, - {"sensor_humidity0", kreg_sensor_humidity0}, - {"sensor_humidity1", kreg_sensor_humidity1}, - {"sensor_humidity2", kreg_sensor_humidity2}, - {"sensor_humidity3", kreg_sensor_humidity3}, - {"sensor_humidity4", kreg_sensor_humidity4}, - {"sensor_humidity5", kreg_sensor_humidity5}, - {"sensor_humidity6", kreg_sensor_humidity6}, - {"sensor_humidity7", kreg_sensor_humidity7}, - {"sensor_humidity8", kreg_sensor_humidity8}, - {"sensor_humidity9", kreg_sensor_humidity9}, - - {"reg_pwm0_ctrl", kreg_pwm0_ctrl}, - {"reg_pwm0_duty", kreg_pwm0_duty}, - {"reg_pwm0_freq", kreg_pwm0_freq}, - {"reg_pwm1_ctrl", kreg_pwm1_ctrl}, - {"reg_pwm1_duty", kreg_pwm1_duty}, - {"reg_pwm1_freq", kreg_pwm1_freq}, - {"reg_pwm2_ctrl", kreg_pwm2_ctrl}, - {"reg_pwm2_duty", kreg_pwm2_duty}, - {"reg_pwm2_freq", kreg_pwm2_freq}, - {"reg_pwm3_ctrl", kreg_pwm3_ctrl}, - {"reg_pwm3_duty", kreg_pwm3_duty}, - {"reg_pwm3_freq", kreg_pwm3_freq}, - {"reg_pwm4_ctrl", kreg_pwm4_ctrl}, - {"reg_pwm4_duty", kreg_pwm4_duty}, - {"reg_pwm4_freq", kreg_pwm4_freq}, - {"reg_pwm5_ctrl", kreg_pwm5_ctrl}, - {"reg_pwm5_duty", kreg_pwm5_duty}, - {"reg_pwm5_freq", kreg_pwm5_freq}, - {"reg_pwm6_ctrl", kreg_pwm6_ctrl}, - {"reg_pwm6_duty", kreg_pwm6_duty}, - {"reg_pwm6_freq", kreg_pwm6_freq}, - {"reg_pwm7_ctrl", kreg_pwm7_ctrl}, - {"reg_pwm7_duty", kreg_pwm7_duty}, - {"reg_pwm7_freq", kreg_pwm7_freq}, - - {"robot_move", kreg_robot_move}, - {"robot_pos", kreg_robot_pos}, - {"robot_velocity", kreg_robot_velocity}, - {"robot_torque", kreg_robot_torque}, - {"motor_shift", kreg_motor_shift}, - {"motor_shaft", kreg_motor_shaft}, - {"motor_one_circle_pulse", kreg_motor_one_circle_pulse}, - {"motor_one_circle_pulse_denominator", kreg_motor_one_circle_pulse_denominator}, - {"motor_default_velocity", kreg_motor_default_velocity}, - {"motor_default_acc", kreg_motor_default_acc}, - {"motor_default_dec", kreg_motor_default_dec}, - {"motor_default_break_dec", kreg_motor_default_break_dec}, - {"stepmotor_ihold", kreg_stepmotor_ihold}, - {"stepmotor_irun", kreg_stepmotor_irun}, - {"stepmotor_iholddelay", kreg_stepmotor_iholddelay}, - {"stepmotor_iglobalscaler", kreg_stepmotor_iglobalscaler}, - {"motor_run_to_zero_max_d", kreg_motor_run_to_zero_max_d}, - {"motor_look_zero_edge_max_d", kreg_motor_look_zero_edge_max_d}, - {"motor_run_to_zero_speed", kreg_motor_run_to_zero_speed}, - {"motor_run_to_zero_dec", kreg_motor_run_to_zero_dec}, - {"motor_look_zero_edge_speed", kreg_motor_look_zero_edge_speed}, - {"motor_look_zero_edge_dec", kreg_motor_look_zero_edge_dec}, - {"motor_default_torque", kreg_motor_default_torque}, - {"motor_max_d", kreg_motor_max_d}, - {"motor_min_d", kreg_motor_min_d}, - {"robot_x_move", kreg_robot_x_move}, - {"robot_x_pos", kreg_robot_x_pos}, - {"robot_x_velocity", kreg_robot_x_velocity}, - {"robot_x_torque", kreg_robot_x_torque}, - {"motor_x_shift", kreg_motor_x_shift}, - {"motor_x_shaft", kreg_motor_x_shaft}, - {"motor_x_one_circle_pulse", kreg_motor_x_one_circle_pulse}, - {"motor_x_default_velocity", kreg_motor_x_default_velocity}, - {"motor_x_default_acc", kreg_motor_x_default_acc}, - {"motor_x_default_dec", kreg_motor_x_default_dec}, - {"motor_x_default_break_dec", kreg_motor_x_default_break_dec}, - {"stepmotor_x_ihold", kreg_stepmotor_x_ihold}, - {"stepmotor_x_irun", kreg_stepmotor_x_irun}, - {"stepmotor_x_iholddelay", kreg_stepmotor_x_iholddelay}, - {"motor_run_to_zero_max_x_d", kreg_motor_run_to_zero_max_x_d}, - {"motor_look_zero_edge_max_x_d", kreg_motor_look_zero_edge_max_x_d}, - {"motor_x_run_to_zero_speed", kreg_motor_x_run_to_zero_speed}, - {"motor_x_run_to_zero_dec", kreg_motor_x_run_to_zero_dec}, - {"motor_x_look_zero_edge_speed", kreg_motor_x_look_zero_edge_speed}, - {"motor_x_look_zero_edge_dec", kreg_motor_x_look_zero_edge_dec}, - {"motor_x_default_torque", kreg_motor_x_default_torque}, - {"motor_max_x_d", kreg_motor_max_x_d}, - {"motor_min_x_d", kreg_motor_min_x_d}, - {"robot_y_move", kreg_robot_y_move}, - {"robot_y_pos", kreg_robot_y_pos}, - {"robot_y_velocity", kreg_robot_y_velocity}, - {"robot_y_torque", kreg_robot_y_torque}, - {"motor_y_shift", kreg_motor_y_shift}, - {"motor_y_shaft", kreg_motor_y_shaft}, - {"motor_y_one_circle_pulse", kreg_motor_y_one_circle_pulse}, - {"motor_y_default_velocity", kreg_motor_y_default_velocity}, - {"motor_y_default_acc", kreg_motor_y_default_acc}, - {"motor_y_default_dec", kreg_motor_y_default_dec}, - {"motor_y_default_break_dec", kreg_motor_y_default_break_dec}, - {"stepmotor_y_ihold", kreg_stepmotor_y_ihold}, - {"stepmotor_y_irun", kreg_stepmotor_y_irun}, - {"stepmotor_y_iholddelay", kreg_stepmotor_y_iholddelay}, - {"motor_run_to_zero_max_y_d", kreg_motor_run_to_zero_max_y_d}, - {"motor_look_zero_edge_max_y_d", kreg_motor_look_zero_edge_max_y_d}, - {"motor_y_run_to_zero_speed", kreg_motor_y_run_to_zero_speed}, - {"motor_y_run_to_zero_dec", kreg_motor_y_run_to_zero_dec}, - {"motor_y_look_zero_edge_speed", kreg_motor_y_look_zero_edge_speed}, - {"motor_y_look_zero_edge_dec", kreg_motor_y_look_zero_edge_dec}, - {"motor_y_default_torque", kreg_motor_y_default_torque}, - {"motor_max_y_d", kreg_motor_max_y_d}, - {"motor_min_y_d", kreg_motor_min_y_d}, - {"robot_z_move", kreg_robot_z_move}, - {"robot_z_pos", kreg_robot_z_pos}, - {"robot_z_velocity", kreg_robot_z_velocity}, - {"robot_z_torque", kreg_robot_z_torque}, - {"motor_z_shift", kreg_motor_z_shift}, - {"motor_z_shaft", kreg_motor_z_shaft}, - {"motor_z_one_circle_pulse", kreg_motor_z_one_circle_pulse}, - {"motor_z_default_velocity", kreg_motor_z_default_velocity}, - {"motor_z_default_acc", kreg_motor_z_default_acc}, - {"motor_z_default_dec", kreg_motor_z_default_dec}, - {"motor_z_default_break_dec", kreg_motor_z_default_break_dec}, - {"stepmotor_z_ihold", kreg_stepmotor_z_ihold}, - {"stepmotor_z_irun", kreg_stepmotor_z_irun}, - {"stepmotor_z_iholddelay", kreg_stepmotor_z_iholddelay}, - {"motor_run_to_zero_max_z_d", kreg_motor_run_to_zero_max_z_d}, - {"motor_look_zero_edge_max_z_d", kreg_motor_look_zero_edge_max_z_d}, - {"motor_z_run_to_zero_speed", kreg_motor_z_run_to_zero_speed}, - {"motor_z_run_to_zero_dec", kreg_motor_z_run_to_zero_dec}, - {"motor_z_look_zero_edge_speed", kreg_motor_z_look_zero_edge_speed}, - {"motor_z_look_zero_edge_dec", kreg_motor_z_look_zero_edge_dec}, - {"motor_z_default_torque", kreg_motor_z_default_torque}, - {"motor_max_z_d", kreg_motor_max_z_d}, - {"motor_min_z_d", kreg_motor_min_z_d}, - {"xyrobot_robot_type", kreg_xyrobot_robot_type}, - -}; -namespace iflytop { -void reg_index_table_get(reg_index_table_iterm_t** table, int32_t* size) { - *size = sizeof(iterms) / sizeof(iterms[0]); - *table = iterms; -} - -int32_t str_to_reg_index(const char* val) { - for (int32_t i = 0; i < sizeof(iterms) / sizeof(iterms[0]); i++) { - if (strcmp(iterms[i].name, val) == 0) { - return iterms[i].index; - } - } - return atoi(val); -} -} // namespace iflytop \ No newline at end of file diff --git a/components/zprotocols/zcancmder_v2/api/reg_index_table.hpp b/components/zprotocols/zcancmder_v2/api/reg_index_table.hpp deleted file mode 100644 index a09bc45..0000000 --- a/components/zprotocols/zcancmder_v2/api/reg_index_table.hpp +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once -#include - -namespace iflytop { -typedef struct { - const char* name; - int32_t index; -} reg_index_table_iterm_t; - -void reg_index_table_get(reg_index_table_iterm_t** table, int32_t* size); -int32_t str_to_reg_index(const char* val); - -} // namespace iflytop diff --git a/components/zprotocols/zcancmder_v2/api/zi_motor.hpp b/components/zprotocols/zcancmder_v2/api/zi_motor.hpp index 9d5a7bb..06ad831 100644 --- a/components/zprotocols/zcancmder_v2/api/zi_motor.hpp +++ b/components/zprotocols/zcancmder_v2/api/zi_motor.hpp @@ -17,5 +17,6 @@ class ZIMotor { virtual int32_t motor_easy_set_current_pos(int32_t pos) { return err::koperation_not_support; } virtual int32_t motor_easy_move_to_io(int32_t ioindex, int32_t direction) { return err::koperation_not_support; } virtual int32_t motor_calculated_pos_by_move_to_zero() { return err::koperation_not_support; } + virtual int32_t motor_calculated_pos_by_move_to_zero_read_result(int32_t* result) { return err::koperation_not_support; } }; } // namespace iflytop \ No newline at end of file diff --git a/components/zprotocols/zcancmder_v2/cmdid.hpp b/components/zprotocols/zcancmder_v2/cmdid.hpp index ef34bb8..eee8c9f 100644 --- a/components/zprotocols/zcancmder_v2/cmdid.hpp +++ b/components/zprotocols/zcancmder_v2/cmdid.hpp @@ -32,13 +32,14 @@ typedef enum { /******************************************************************************* * MOTOR_CTRL * *******************************************************************************/ - kmotor_calculated_pos_by_move_to_zero = CMDID(2, 16), // para:{}, ack:{} - kmotor_easy_rotate = CMDID(2, 17), // para:{4}, ack:{} - kmotor_easy_move_by = CMDID(2, 18), // para:{4}, ack:{} - kmotor_easy_move_to = CMDID(2, 19), // para:{4}, ack:{} - kmotor_easy_move_to_zero = CMDID(2, 20), // para:{1}, ack:{} - kmotor_easy_set_current_pos = CMDID(2, 21), // para:{4}, ack:{} - kmotor_easy_move_to_io = CMDID(2, 22), // para:{4,4}, ack:{} + kmotor_calculated_pos_by_move_to_zero = CMDID(2, 16), // para:{}, ack:{} + kmotor_easy_rotate = CMDID(2, 17), // para:{4}, ack:{} + kmotor_easy_move_by = CMDID(2, 18), // para:{4}, ack:{} + kmotor_easy_move_to = CMDID(2, 19), // para:{4}, ack:{} + kmotor_easy_move_to_zero = CMDID(2, 20), // para:{1}, ack:{} + kmotor_easy_set_current_pos = CMDID(2, 21), // para:{4}, ack:{} + kmotor_easy_move_to_io = CMDID(2, 22), // para:{4,4}, ack:{} + kmotor_calculated_pos_by_move_to_zero_read_result = CMDID(2, 23), // para:{}, ack:{4} /******************************************************************************* * XYMOTOR * diff --git a/components/zprotocols/zcancmder_v2/protocol_parser.cpp b/components/zprotocols/zcancmder_v2/protocol_parser.cpp index e375f51..5ddf3d8 100644 --- a/components/zprotocols/zcancmder_v2/protocol_parser.cpp +++ b/components/zprotocols/zcancmder_v2/protocol_parser.cpp @@ -137,6 +137,8 @@ void ZIProtocolParser::onRceivePacket(zcr_cmd_header_t* rxcmd, uint8_t* data, in PROCESS_PACKET_10(kmotor_easy_move_to_zero, ZIMotor, motor_easy_move_to_zero); PROCESS_PACKET_10(kmotor_easy_set_current_pos, ZIMotor, motor_easy_set_current_pos); PROCESS_PACKET_20(kmotor_easy_move_to_io, ZIMotor, motor_easy_move_to_io); + PROCESS_PACKET_01(kmotor_calculated_pos_by_move_to_zero_read_result, ZIMotor, motor_calculated_pos_by_move_to_zero_read_result); + /******************************************************************************* * xymotor *