From 992efbc43a67893256f4c7208365be2e0b170ff4 Mon Sep 17 00:00:00 2001 From: HSZ_HeSongZhen <210202959@qq.com> Date: Mon, 5 May 2025 18:15:39 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E7=94=B5=E6=9C=BA=E7=B4=A2=E5=BC=95=20?= =?UTF-8?q?=E8=88=B5=E6=9C=BA=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StepMotorDriver/StepMotorCtrlDriver.java | 18 +++---- .../drivers/StepMotorDriver/StepMotorMId.java | 1 - .../drivers/StepMotorDriver/StepMotorRegIndex.java | 57 ++++++++++++++++++++++ .../com/iflytop/gd/hardware/type/RegIndex.java | 2 +- 4 files changed, 67 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/StepMotorRegIndex.java diff --git a/src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/StepMotorCtrlDriver.java b/src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/StepMotorCtrlDriver.java index b809835..a76758e 100644 --- a/src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/StepMotorCtrlDriver.java +++ b/src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/StepMotorCtrlDriver.java @@ -164,17 +164,17 @@ public class StepMotorCtrlDriver { } -// public Boolean isHasMoveToZero(StepMotorMId id) throws HardwareException { -// return getReg(id, StepMotorRegIndex.kreg_step_motor_has_move_zero) != 0; -// } + public Boolean isHasMoveToZero(StepMotorMId id) throws HardwareException { + return getReg(id, StepMotorRegIndex.kreg_step_motor_has_move_zero) != 0; + } -// public void setReg(StepMotorMId id, StepMotorRegIndex regIndex, Integer val) throws HardwareException { -// canBus.moduleSetReg(id.mid, regIndex.regIndex, val); -// } + public void setReg(StepMotorMId id, StepMotorRegIndex regIndex, Integer val) throws HardwareException { + canBus.moduleSetReg(id.mid, regIndex.regIndex, val); + } -// public Integer getReg(StepMotorMId id, StepMotorRegIndex regIndex) throws HardwareException { -// return canBus.moduleGetReg(id.mid, regIndex.regIndex); -// } + public Integer getReg(StepMotorMId id, StepMotorRegIndex regIndex) throws HardwareException { + return canBus.moduleGetReg(id.mid, regIndex.regIndex); + } public void resetRegs(StepMotorMId id) throws HardwareException { canBus.callcmd(id.mid, CmdId.module_reset_reg); diff --git a/src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/StepMotorMId.java b/src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/StepMotorMId.java index 9ae768d..8f42789 100644 --- a/src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/StepMotorMId.java +++ b/src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/StepMotorMId.java @@ -30,7 +30,6 @@ public enum StepMotorMId { final public MId mid; StepMotorMId(MId mid) { -// Assert.isTrue(this.name().equals(mid.name()),"StepMotorMId init fail"); this.mid = mid; } } diff --git a/src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/StepMotorRegIndex.java b/src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/StepMotorRegIndex.java new file mode 100644 index 0000000..98fe9bc --- /dev/null +++ b/src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/StepMotorRegIndex.java @@ -0,0 +1,57 @@ +package com.iflytop.gd.hardware.drivers.StepMotorDriver; + +import com.iflytop.gd.hardware.type.RegIndex; + +public enum StepMotorRegIndex { + // kreg_module_version(RegIndex.kreg_module_version), // 模块版本 + // kreg_module_type(RegIndex.kreg_module_type), // 模块类型 + // kreg_module_status(RegIndex.kreg_module_status), // 0idle,1busy,2error + // kreg_module_errorcode(RegIndex.kreg_module_errorcode), // inited_flag + /*********************************************************************************************************************** + * step_motor * + ***********************************************************************************************************************/ + kreg_step_motor_pos(RegIndex.kreg_step_motor_pos), // 机器人x坐标 + kreg_step_motor_is_enable(RegIndex.kreg_step_motor_is_enable), // 是否使能 + kreg_step_motor_dpos(RegIndex.kreg_step_motor_dpos), // 执行完上一条指令后的相对位移 + kreg_step_motor_has_move_zero(RegIndex.kreg_step_motor_has_move_zero), // 是否已经移动到零点 + // kreg_step_motor_shift(RegIndex.kreg_step_motor_shift), // x偏移 + kreg_step_motor_shaft(RegIndex.kreg_step_motor_shaft), // x轴是否反转 + kreg_step_motor_one_circle_pulse(RegIndex.kreg_step_motor_one_circle_pulse), // x轴一圈脉冲数 + kreg_step_motor_one_circle_pulse_denominator(RegIndex.kreg_step_motor_one_circle_pulse_denominator), // 设置一圈脉冲数的分母 + kreg_step_motor_default_velocity(RegIndex.kreg_step_motor_default_velocity), // 默认速度 + kreg_step_motor_low_velocity(RegIndex.kreg_step_motor_low_velocity), + kreg_step_motor_mid_velocity(RegIndex.kreg_step_motor_mid_velocity), + kreg_step_motor_high_velocity(RegIndex.kreg_step_motor_high_velocity), + kreg_step_motor_ihold(RegIndex.kreg_step_motor_ihold), // 步进电机电流配置 + kreg_step_motor_irun(RegIndex.kreg_step_motor_irun), // 步进电机电流配置 + kreg_step_motor_iholddelay(RegIndex.kreg_step_motor_iholddelay), // 步进电机电流配置 + kreg_step_motor_iglobalscaler(RegIndex.kreg_step_motor_iglobalscaler), // 步进电机电流配置 + kreg_step_motor_mres(RegIndex.kreg_step_motor_mres), // 步进电机电流配置 + + kreg_step_motor_run_to_zero_speed(RegIndex.kreg_step_motor_run_to_zero_speed), // 回零速度 + kreg_step_motor_look_zero_edge_speed(RegIndex.kreg_step_motor_look_zero_edge_speed), // 找零边缘速度 + kreg_step_motor_max_d(RegIndex.kreg_step_motor_max_d), // 最大限制距离 + kreg_step_motor_min_d(RegIndex.kreg_step_motor_min_d), // 最小限制距离 + kreg_step_motor_in_debug_mode(RegIndex.kreg_step_motor_in_debug_mode), // 驱动器处于调试模式 + kreg_step_motor_vstart(RegIndex.kreg_step_motor_vstart), // a1起作用的速度 + kreg_step_motor_a1(RegIndex.kreg_step_motor_a1), // + kreg_step_motor_amax(RegIndex.kreg_step_motor_amax), // + kreg_step_motor_v1(RegIndex.kreg_step_motor_v1), // + kreg_step_motor_dmax(RegIndex.kreg_step_motor_dmax), // + kreg_step_motor_d1(RegIndex.kreg_step_motor_d1), // + kreg_step_motor_vstop(RegIndex.kreg_step_motor_vstop), // + kreg_step_motor_tzerowait(RegIndex.kreg_step_motor_tzerowait), // + kreg_step_motor_enc_resolution(RegIndex.kreg_step_motor_enc_resolution), // 编码器分辨率 1000,1024,4000,4096,16384 + kreg_step_motor_enable_enc(RegIndex.kreg_step_motor_enable_enc), // + kreg_step_motor_dzero_pos(RegIndex.kreg_step_motor_dzero_pos), // 驱动器处于调试模式 + kret_step_motor_pos_devi_tolerance(RegIndex.kret_step_motor_pos_devi_tolerance), // 位置偏差容忍度 + kret_step_motor_io_trigger_append_distance(RegIndex.kret_step_motor_io_trigger_append_distance), // 移动到io时,附加的距离 + + + ; + public final RegIndex regIndex; + + StepMotorRegIndex(RegIndex regIndex) { + this.regIndex = regIndex; + } +} diff --git a/src/main/java/com/iflytop/gd/hardware/type/RegIndex.java b/src/main/java/com/iflytop/gd/hardware/type/RegIndex.java index b560f1b..4312dc6 100644 --- a/src/main/java/com/iflytop/gd/hardware/type/RegIndex.java +++ b/src/main/java/com/iflytop/gd/hardware/type/RegIndex.java @@ -54,7 +54,7 @@ public enum RegIndex { /*********************************************************************************************************************** - * step_motor * + * servo * ***********************************************************************************************************************/ kreg_mini_servo_pos(10201), // 位置