diff --git a/api/apibasic/cmdid.cpp b/api/apibasic/cmdid.cpp index 415ad71..403cc49 100644 --- a/api/apibasic/cmdid.cpp +++ b/api/apibasic/cmdid.cpp @@ -66,12 +66,17 @@ static cmdinfo_t table[] = { CMD_ITERM(kstep_motor_easy_move_by), CMD_ITERM(kstep_motor_easy_move_to), CMD_ITERM(kstep_motor_easy_move_to_zero), - CMD_ITERM(kstep_motor_easy_move_to_end_point), CMD_ITERM(kstep_motor_easy_set_current_pos), CMD_ITERM(kstep_motor_easy_move_to_io), - CMD_ITERM(kstep_motor_active_cfg), CMD_ITERM(kstep_motor_stop), + CMD_ITERM(kstep_motor_active_cfg), CMD_ITERM(kstep_motor_read_io_state), + CMD_ITERM(kstep_motor_easy_move_to_end_point), + CMD_ITERM(kstep_motor_read_tmc5130_status), + CMD_ITERM(kstep_motor_read_tmc5130_state), + CMD_ITERM(kstep_motor_read_io_index_in_stm32), + CMD_ITERM(kstep_motor_set_subdevice_reg), + CMD_ITERM(kstep_motor_get_subdevice_reg), CMD_ITERM(kmini_servo_enable), CMD_ITERM(kmini_servo_read_pos), diff --git a/api/apibasic/cmdid.hpp b/api/apibasic/cmdid.hpp index adb9b48..5ed2522 100644 --- a/api/apibasic/cmdid.hpp +++ b/api/apibasic/cmdid.hpp @@ -65,11 +65,9 @@ typedef enum { kstep_motor_read_tmc5130_status = CMDID(2, 50), // kstep_motor_read_tmc5130_state = CMDID(2, 51), // 调试使用 - kstep_motor_read_tmc4361a_status = CMDID(2, 52), // 调试使用 - kstep_motor_read_tmc4361a_state = CMDID(2, 53), // 调试使用 - kstep_motor_read_tmc2160_status = CMDID(2, 54), // 调试使用 - kstep_motor_read_tmc2160_state = CMDID(2, 55), // 调试使用 kstep_motor_read_io_index_in_stm32 = CMDID(2, 56), // 调试使用 + kstep_motor_set_subdevice_reg = CMDID(2, 57), // 调试使用 + kstep_motor_get_subdevice_reg = CMDID(2, 58), // 调试使用 /*********************************************************************************************************************** * MINI_SERVO * diff --git a/api/apibasic/reg_index.cpp b/api/apibasic/reg_index.cpp index 19a345d..fb6f26d 100644 --- a/api/apibasic/reg_index.cpp +++ b/api/apibasic/reg_index.cpp @@ -110,6 +110,8 @@ static reginfo_t table[] = { REG_ITERM(kreg_xyrobot_io_state1), REG_ITERM(kreg_step_motor_pos), REG_ITERM(kreg_step_motor_dpos), + REG_ITERM(kreg_step_motor_enc_val), + REG_ITERM(kreg_step_motor_denc_val), REG_ITERM(kreg_step_motor_shift), REG_ITERM(kreg_step_motor_shaft), REG_ITERM(kreg_step_motor_one_circle_pulse), @@ -132,6 +134,8 @@ static reginfo_t table[] = { REG_ITERM(kreg_step_motor_d1), REG_ITERM(kreg_step_motor_vstop), REG_ITERM(kreg_step_motor_tzerowait), + REG_ITERM(kreg_step_motor_enc_resolution), + REG_ITERM(kreg_step_motor_enable_enc), REG_ITERM(kreg_mini_servo_pos), REG_ITERM(kreg_mini_servo_limit_velocity), REG_ITERM(kreg_mini_servo_limit_torque), diff --git a/api/apibasic/reg_index.hpp b/api/apibasic/reg_index.hpp index df958cd..0df7c7f 100644 --- a/api/apibasic/reg_index.hpp +++ b/api/apibasic/reg_index.hpp @@ -138,8 +138,10 @@ typedef enum { /*********************************************************************************************************************** * step_motor * ***********************************************************************************************************************/ - kreg_step_motor_pos = REG_INDEX(101, 0, 1), // 机器人x坐标 - kreg_step_motor_dpos = REG_INDEX(101, 0, 3), // 执行完上一条指令后的相对位移 + kreg_step_motor_pos = REG_INDEX(101, 0, 1), // 机器人x坐标 + kreg_step_motor_dpos = REG_INDEX(101, 0, 3), // 执行完上一条指令后的相对位移 + kreg_step_motor_enc_val = REG_INDEX(101, 0, 4), + kreg_step_motor_denc_val = REG_INDEX(101, 0, 5), kreg_step_motor_shift = REG_INDEX(101, 50, 0), // x偏移 kreg_step_motor_shaft = REG_INDEX(101, 50, 1), // x轴是否反转 @@ -156,14 +158,16 @@ typedef enum { kreg_step_motor_min_d = REG_INDEX(101, 50, 29), // 最小限制距离 kreg_step_motor_in_debug_mode = REG_INDEX(101, 50, 30), // 驱动器处于调试模式 - kreg_step_motor_vstart = REG_INDEX(101, 50, 31), // a1起作用的速度 - kreg_step_motor_a1 = REG_INDEX(101, 50, 32), // - kreg_step_motor_amax = REG_INDEX(101, 50, 33), - kreg_step_motor_v1 = REG_INDEX(101, 50, 34), - kreg_step_motor_dmax = REG_INDEX(101, 50, 35), - kreg_step_motor_d1 = REG_INDEX(101, 50, 36), - kreg_step_motor_vstop = REG_INDEX(101, 50, 37), - kreg_step_motor_tzerowait = REG_INDEX(101, 50, 38), + kreg_step_motor_vstart = REG_INDEX(101, 50, 31), // a1起作用的速度 + kreg_step_motor_a1 = REG_INDEX(101, 50, 32), // + kreg_step_motor_amax = REG_INDEX(101, 50, 33), + kreg_step_motor_v1 = REG_INDEX(101, 50, 34), + kreg_step_motor_dmax = REG_INDEX(101, 50, 35), + kreg_step_motor_d1 = REG_INDEX(101, 50, 36), + kreg_step_motor_vstop = REG_INDEX(101, 50, 37), + kreg_step_motor_tzerowait = REG_INDEX(101, 50, 38), + kreg_step_motor_enc_resolution = REG_INDEX(101, 50, 39), // 编码器分辨率 1000,1024,4000,4096,16384 + kreg_step_motor_enable_enc = REG_INDEX(101, 50, 40), // /*********************************************************************************************************************** * MINI_STEP_MOTOR * diff --git a/api/zi_motor.hpp b/api/zi_motor.hpp index 005dcdb..9662ea9 100644 --- a/api/zi_motor.hpp +++ b/api/zi_motor.hpp @@ -138,17 +138,13 @@ class ZIStepMotor { virtual int32_t step_motor_active_cfg() = 0; virtual int32_t step_motor_read_io_state(int32_t ioindex, int32_t* state) = 0; virtual int32_t step_motor_easy_move_to_end_point() = 0; - /*********************************************************************************************************************** * DEBUG * ***********************************************************************************************************************/ - virtual int32_t step_motor_read_tmc5130_status(int32_t* status) = 0; - virtual int32_t step_motor_read_tmc5130_state(int32_t* status) = 0; - virtual int32_t step_motor_read_tmc4361a_status(int32_t* status) = 0; - virtual int32_t step_motor_read_tmc4361a_state(int32_t* gstate) = 0; - virtual int32_t step_motor_read_tmc2160_status(int32_t* status) = 0; - virtual int32_t step_motor_read_tmc2160_state(int32_t* status) = 0; - + virtual int32_t step_motor_read_tmc5130_status(int32_t* status) = 0; + virtual int32_t step_motor_read_tmc5130_state(int32_t* status) = 0; virtual int32_t step_motor_read_io_index_in_stm32(int32_t ioindex, int32_t* index_in_stm32) = 0; + virtual int32_t step_motor_set_subdevice_reg(int32_t reg_addr, int32_t reg_val) = 0; + virtual int32_t step_motor_get_subdevice_reg(int32_t reg_addr, int32_t* reg_val) = 0; }; } // namespace iflytop