32 changed files with 523 additions and 172 deletions
-
2src/main/java/com/iflytop/gd/app/service/DeviceParamConfigService.java
-
2src/main/java/com/iflytop/gd/hardware/command/handlers/AcidPumpHandler.java
-
1src/main/java/com/iflytop/gd/hardware/command/handlers/ClawHandler.java
-
4src/main/java/com/iflytop/gd/hardware/command/handlers/DoorHandler.java
-
2src/main/java/com/iflytop/gd/hardware/command/handlers/HBotHandler.java
-
2src/main/java/com/iflytop/gd/hardware/command/handlers/HeaterMotorHandler.java
-
2src/main/java/com/iflytop/gd/hardware/command/handlers/ShakeMotorHandler.java
-
2src/main/java/com/iflytop/gd/hardware/command/handlers/TrayMotorHandler.java
-
260src/main/java/com/iflytop/gd/hardware/config/StepMotorConfig.java
-
2src/main/java/com/iflytop/gd/hardware/constants/ActionOvertimeConstant.java
-
2src/main/java/com/iflytop/gd/hardware/controller/ServoController.java
-
4src/main/java/com/iflytop/gd/hardware/controller/StepMotorController.java
-
1src/main/java/com/iflytop/gd/hardware/drivers/MiniServoDriver/ClawDriver.java
-
1src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/AcidPumpDriver.java
-
1src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/DoorDriver.java
-
1src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/HBotDriver.java
-
1src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/HeaterMotorDriver.java
-
3src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/ShakeMotorDriver.java
-
3src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/StepMotorCtrlDriver.java
-
81src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/StepMotorHelper.java
-
1src/main/java/com/iflytop/gd/hardware/drivers/StepMotorDriver/TrayMotorDriver.java
-
1src/main/java/com/iflytop/gd/hardware/service/ServoService.java
-
4src/main/java/com/iflytop/gd/hardware/service/StepMotorService.java
-
11src/main/java/com/iflytop/gd/hardware/type/MId.java
-
2src/main/java/com/iflytop/gd/hardware/type/StepMotor/DeviceStepMotorId.java
-
3src/main/java/com/iflytop/gd/hardware/type/StepMotor/StepMotorMId.java
-
2src/main/java/com/iflytop/gd/hardware/type/StepMotor/StepMotorRegIndex.java
-
2src/main/java/com/iflytop/gd/hardware/type/StepMotor/StepMotorSpeedLevel.java
@ -0,0 +1,260 @@ |
|||||
|
package com.iflytop.gd.hardware.config; |
||||
|
|
||||
|
import com.iflytop.gd.hardware.type.StepMotor.StepMotorMId; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
|
||||
|
import java.util.Map; |
||||
|
|
||||
|
@Slf4j |
||||
|
public class StepMotorConfig { |
||||
|
// 导程 配置 |
||||
|
private final static double DEFAULT_LEAD = 10.0; // mm |
||||
|
final static Map<StepMotorMId, Double> stepMotorLeadMap = Map.ofEntries( |
||||
|
Map.entry(StepMotorMId.HBOT_X_MOTOR_MID, 5.0), |
||||
|
Map.entry(StepMotorMId.HBOT_Y_MOTOR_MID, 4.0), |
||||
|
Map.entry(StepMotorMId.HBOT_Z_MOTOR_MID, 5.0) |
||||
|
); |
||||
|
// 电流配置 |
||||
|
final static int DEFAULT_CURRENT = 8; // [0-31] |
||||
|
final static int HEATER_MOTOR_DEFAULT_CURRENT = 20; |
||||
|
final static int ACID_PUMP_MOTOR_DEFAULT_CURRENT = 8; |
||||
|
final static Map<StepMotorMId, Integer> stepMotorCurrentMap = Map.ofEntries( |
||||
|
Map.entry(StepMotorMId.SHAKE_MOTOR_MID, 8), |
||||
|
Map.entry(StepMotorMId.HBOT_X_MOTOR_MID, 31), |
||||
|
Map.entry(StepMotorMId.HBOT_Y_MOTOR_MID, 31), |
||||
|
Map.entry(StepMotorMId.HBOT_Z_MOTOR_MID, 31), |
||||
|
Map.entry(StepMotorMId.HEATER_1_MOTOR_MID, HEATER_MOTOR_DEFAULT_CURRENT), |
||||
|
Map.entry(StepMotorMId.HEATER_2_MOTOR_MID, HEATER_MOTOR_DEFAULT_CURRENT), |
||||
|
Map.entry(StepMotorMId.HEATER_3_MOTOR_MID, HEATER_MOTOR_DEFAULT_CURRENT), |
||||
|
Map.entry(StepMotorMId.HEATER_4_MOTOR_MID, HEATER_MOTOR_DEFAULT_CURRENT), |
||||
|
Map.entry(StepMotorMId.HEATER_5_MOTOR_MID, HEATER_MOTOR_DEFAULT_CURRENT), |
||||
|
Map.entry(StepMotorMId.HEATER_6_MOTOR_MID, HEATER_MOTOR_DEFAULT_CURRENT), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_1_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_CURRENT), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_2_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_CURRENT), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_3_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_CURRENT), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_4_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_CURRENT), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_5_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_CURRENT), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_6_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_CURRENT), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_7_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_CURRENT), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_8_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_CURRENT) |
||||
|
); |
||||
|
|
||||
|
// 速度配置 |
||||
|
final static double DEFAULT_SPEED = 1.0; // mm/s |
||||
|
final static double HEATER_MOTOR_DEFAULT_SPEED = 1.0; |
||||
|
final static double ACID_PUMP_MOTOR_DEFAULT_SPEED = 1.0; |
||||
|
final static Map<StepMotorMId, Double> stepMotorSpeedMap = Map.ofEntries( |
||||
|
Map.entry(StepMotorMId.SHAKE_MOTOR_MID, 1.0), |
||||
|
Map.entry(StepMotorMId.HBOT_X_MOTOR_MID, 20.0), |
||||
|
Map.entry(StepMotorMId.HBOT_Y_MOTOR_MID, 20.0), |
||||
|
Map.entry(StepMotorMId.HBOT_Z_MOTOR_MID, 20.0), |
||||
|
Map.entry(StepMotorMId.HEATER_1_MOTOR_MID, HEATER_MOTOR_DEFAULT_SPEED), |
||||
|
Map.entry(StepMotorMId.HEATER_2_MOTOR_MID, HEATER_MOTOR_DEFAULT_SPEED), |
||||
|
Map.entry(StepMotorMId.HEATER_3_MOTOR_MID, HEATER_MOTOR_DEFAULT_SPEED), |
||||
|
Map.entry(StepMotorMId.HEATER_4_MOTOR_MID, HEATER_MOTOR_DEFAULT_SPEED), |
||||
|
Map.entry(StepMotorMId.HEATER_5_MOTOR_MID, HEATER_MOTOR_DEFAULT_SPEED), |
||||
|
Map.entry(StepMotorMId.HEATER_6_MOTOR_MID, HEATER_MOTOR_DEFAULT_SPEED), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_1_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_SPEED), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_2_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_SPEED), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_3_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_SPEED), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_4_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_SPEED), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_5_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_SPEED), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_6_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_SPEED), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_7_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_SPEED), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_8_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_SPEED) |
||||
|
); |
||||
|
|
||||
|
// 最小限位配置 |
||||
|
static final double DEFAULT_MIN_LIMIT = 0.0; // mm |
||||
|
static final double HEATER_MOTOR_DEFAULT_MIN_LIMIT = 0.0; |
||||
|
static final double ACID_PUMP_MOTOR_DEFAULT_MIN_LIMIT = 0.0; |
||||
|
final static Map<StepMotorMId, Double> stepMotorMinLimitMap = Map.ofEntries( |
||||
|
Map.entry(StepMotorMId.HBOT_X_MOTOR_MID, 0.0), |
||||
|
Map.entry(StepMotorMId.HBOT_Y_MOTOR_MID, 0.0), |
||||
|
Map.entry(StepMotorMId.HBOT_Z_MOTOR_MID, 0.0) |
||||
|
); |
||||
|
|
||||
|
// 最大限位配置 |
||||
|
static final double DEFAULT_MAX_LIMIT = 0.0; // mm |
||||
|
static final double HEATER_MOTOR_DEFAULT_MAX_LIMIT = 100.0; |
||||
|
static final double ACID_PUMP_MOTOR_DEFAULT_MAX_LIMIT = Double.MAX_VALUE; |
||||
|
final static Map<StepMotorMId, Double> stepMotorMaxLimitMap = Map.ofEntries( |
||||
|
Map.entry(StepMotorMId.HBOT_X_MOTOR_MID, 1500.0), |
||||
|
Map.entry(StepMotorMId.HBOT_Y_MOTOR_MID, 800.0), |
||||
|
Map.entry(StepMotorMId.HBOT_Z_MOTOR_MID, 300.0), |
||||
|
Map.entry(StepMotorMId.HEATER_1_MOTOR_MID, HEATER_MOTOR_DEFAULT_MAX_LIMIT), |
||||
|
Map.entry(StepMotorMId.HEATER_2_MOTOR_MID, HEATER_MOTOR_DEFAULT_MAX_LIMIT), |
||||
|
Map.entry(StepMotorMId.HEATER_3_MOTOR_MID, HEATER_MOTOR_DEFAULT_MAX_LIMIT), |
||||
|
Map.entry(StepMotorMId.HEATER_4_MOTOR_MID, HEATER_MOTOR_DEFAULT_MAX_LIMIT), |
||||
|
Map.entry(StepMotorMId.HEATER_5_MOTOR_MID, HEATER_MOTOR_DEFAULT_MAX_LIMIT), |
||||
|
Map.entry(StepMotorMId.HEATER_6_MOTOR_MID, HEATER_MOTOR_DEFAULT_MAX_LIMIT), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_1_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_MAX_LIMIT), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_2_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_MAX_LIMIT), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_3_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_MAX_LIMIT), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_4_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_MAX_LIMIT), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_5_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_MAX_LIMIT), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_6_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_MAX_LIMIT), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_7_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_MAX_LIMIT), |
||||
|
Map.entry(StepMotorMId.ACID_PUMP_8_MOTOR_MID, ACID_PUMP_MOTOR_DEFAULT_MAX_LIMIT) |
||||
|
); |
||||
|
|
||||
|
// 是否安装编码器 |
||||
|
private final static boolean DEFAULT_ENCODER_INSTALLED = false; |
||||
|
static Map<StepMotorMId, Boolean> stepMotorEncoderMap = Map.ofEntries( |
||||
|
Map.entry(StepMotorMId.HBOT_X_MOTOR_MID, true), |
||||
|
Map.entry(StepMotorMId.HBOT_Y_MOTOR_MID, true), |
||||
|
Map.entry(StepMotorMId.HBOT_Z_MOTOR_MID, true) |
||||
|
); |
||||
|
|
||||
|
/* ******************** ******************** ******************** */ |
||||
|
/* ******************** 导程 ******************** */ |
||||
|
/* ******************** ******************** ******************** */ |
||||
|
|
||||
|
// 从数据库拉取导程信息 |
||||
|
private Double getLeadFromDB(StepMotorMId stepMotorId) |
||||
|
{ |
||||
|
// TODO: 从数据库中获取导程 |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
// 从默认配置中获取导程信息 |
||||
|
private Double getLeadFromDefault(StepMotorMId stepMotorId) |
||||
|
{ |
||||
|
return stepMotorLeadMap.getOrDefault(stepMotorId, DEFAULT_LEAD); |
||||
|
} |
||||
|
|
||||
|
// 获取导程信息 |
||||
|
public double getLead(StepMotorMId stepMotorId) |
||||
|
{ |
||||
|
Double lead = getLeadFromDB(stepMotorId); |
||||
|
if (lead != null) { |
||||
|
return lead; |
||||
|
} else { |
||||
|
return getLeadFromDefault(stepMotorId); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/* ******************** ******************** ******************** */ |
||||
|
/* ******************** 电流 ******************** */ |
||||
|
/* ******************** ******************** ******************** */ |
||||
|
// 从数据库拉取电流信息 |
||||
|
private Integer getCurrentFromDB(StepMotorMId stepMotorId) |
||||
|
{ |
||||
|
// TODO: 从数据库中获取电流 |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
private Integer getCurrentFromDefault(StepMotorMId stepMotorId) |
||||
|
{ |
||||
|
return stepMotorCurrentMap.getOrDefault(stepMotorId, DEFAULT_CURRENT); |
||||
|
} |
||||
|
|
||||
|
public int getCurrent(StepMotorMId stepMotorId) |
||||
|
{ |
||||
|
Integer current = getCurrentFromDB(stepMotorId); |
||||
|
if (current != null) { |
||||
|
return current; |
||||
|
} else { |
||||
|
return getCurrentFromDefault(stepMotorId); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/* ******************** ******************** ******************** */ |
||||
|
/* ******************** 速度 ******************** */ |
||||
|
/* ******************** ******************** ******************** */ |
||||
|
// 从数据库拉取速度信息 |
||||
|
private Double getSpeedFromDB(StepMotorMId stepMotorId) |
||||
|
{ |
||||
|
// TODO: 从数据库中获取速度 |
||||
|
return null; |
||||
|
} |
||||
|
private Double getSpeedFromDefault(StepMotorMId stepMotorId) |
||||
|
{ |
||||
|
return stepMotorSpeedMap.getOrDefault(stepMotorId, DEFAULT_SPEED); |
||||
|
} |
||||
|
|
||||
|
public double getSpeed(StepMotorMId stepMotorId) |
||||
|
{ |
||||
|
Double speed = getSpeedFromDB(stepMotorId); |
||||
|
if (speed != null) { |
||||
|
return speed; |
||||
|
} else { |
||||
|
return getSpeedFromDefault(stepMotorId); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/* ******************** ******************** ******************** */ |
||||
|
/* ******************** 最小限位 ******************** */ |
||||
|
/* ******************** ******************** ******************** */ |
||||
|
// 从数据库拉取最小限位信息 |
||||
|
private Double getMinLimitFromDB(StepMotorMId stepMotorId) |
||||
|
{ |
||||
|
// TODO: 从数据库中获取最小限位 |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
private Double getMinLimitFromDefault(StepMotorMId stepMotorId) |
||||
|
{ |
||||
|
return stepMotorMinLimitMap.getOrDefault(stepMotorId, DEFAULT_MIN_LIMIT); |
||||
|
} |
||||
|
|
||||
|
public double getMinLimit(StepMotorMId stepMotorId) |
||||
|
{ |
||||
|
Double minLimit = getMinLimitFromDB(stepMotorId); |
||||
|
if (minLimit != null) { |
||||
|
return minLimit; |
||||
|
} else { |
||||
|
return getMinLimitFromDefault(stepMotorId); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/* ******************** ******************** ******************** */ |
||||
|
/* ******************** 最大限位 ******************** */ |
||||
|
/* ******************** ******************** ******************** */ |
||||
|
// 从数据库拉取最大限位信息 |
||||
|
private Double getMaxLimitFromDB(StepMotorMId stepMotorId) |
||||
|
{ |
||||
|
// TODO: 从数据库中获取最大限位 |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
private Double getMaxLimitFromDefault(StepMotorMId stepMotorId) |
||||
|
{ |
||||
|
return stepMotorMaxLimitMap.getOrDefault(stepMotorId, DEFAULT_MAX_LIMIT); |
||||
|
} |
||||
|
|
||||
|
public double getMaxLimit(StepMotorMId stepMotorId) |
||||
|
{ |
||||
|
Double maxLimit = getMaxLimitFromDB(stepMotorId); |
||||
|
if (maxLimit != null) { |
||||
|
return maxLimit; |
||||
|
} else { |
||||
|
return getMaxLimitFromDefault(stepMotorId); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/* ******************** ******************** ******************** */ |
||||
|
/* ******************** 编码器 ******************** */ |
||||
|
/* ******************** ******************** ******************** */ |
||||
|
// 从数据库拉取编码器信息 |
||||
|
private Boolean getEncoderFromDB(StepMotorMId stepMotorId) |
||||
|
{ |
||||
|
//TODO: 从数据库中获取编码器 |
||||
|
return null; |
||||
|
} |
||||
|
|
||||
|
private Boolean getEncoderFromDefault(StepMotorMId stepMotorId) |
||||
|
{ |
||||
|
return stepMotorEncoderMap.getOrDefault(stepMotorId, DEFAULT_ENCODER_INSTALLED); |
||||
|
} |
||||
|
|
||||
|
public boolean isEncoderInstalled(StepMotorMId stepMotorId) |
||||
|
{ |
||||
|
Boolean encoder = getEncoderFromDB(stepMotorId); |
||||
|
if (encoder != null) { |
||||
|
return encoder; |
||||
|
} else { |
||||
|
return getEncoderFromDefault(stepMotorId); |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,81 @@ |
|||||
|
package com.iflytop.gd.hardware.drivers.StepMotorDriver; |
||||
|
|
||||
|
/** |
||||
|
* @author iflytop |
||||
|
* @date 2023/10/12 |
||||
|
* @description 步进电机助手类 |
||||
|
* lead[S](导程): mm |
||||
|
* rps(转速): r/s |
||||
|
* rpm(转速): r/min |
||||
|
* r(转数): r |
||||
|
* |
||||
|
*/ |
||||
|
public class StepMotorHelper { |
||||
|
static private final double kScale = 10000.0; |
||||
|
|
||||
|
/* **** **** **** **** **** **** **** **** **** **** **** |
||||
|
* 位置转换 |
||||
|
* 1. 用户位置 X |
||||
|
* 2. 用户单位距离 unit_X |
||||
|
* 3. R = X * kScale / motor_scale * motor_lead |
||||
|
* 4. unit_X(1mm/1ml) = R / S = X * kScale / motor_scale * motor_lead / S |
||||
|
* 5. motor_scale == 10000.0 && motor_lead == S |
||||
|
* 6. unit_X(1mm/1ml) = X * kScale / motor_scale (X=1, 即 X = unit_X, 保证 kScale / motor_scale == 1) |
||||
|
* 7. kScale = motor_scale = 10000.0 |
||||
|
* |
||||
|
**** **** **** **** **** **** **** **** **** **** **** */ |
||||
|
|
||||
|
/** |
||||
|
* 用户设置位置转换为控制器需要的位置 |
||||
|
* @param position |
||||
|
* @return |
||||
|
*/ |
||||
|
static int toMotorPosition(double position) |
||||
|
{ |
||||
|
return (int)(position * kScale); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 控制器位置转换为用户设置位置 |
||||
|
* @param motorPosition |
||||
|
* @return |
||||
|
*/ |
||||
|
static double toUserPosition(int motorPosition) |
||||
|
{ |
||||
|
return (double)motorPosition / kScale; |
||||
|
} |
||||
|
|
||||
|
/* **** **** **** **** **** **** **** **** **** **** **** |
||||
|
* 速度转换 |
||||
|
* 1. 用户速度 X/s |
||||
|
* 2. 电机速度 R/min |
||||
|
* 3. X/s = rps * S |
||||
|
* 4. rps = X/s / S |
||||
|
* 5. rps = rpm / 60.0 |
||||
|
* 6. rpm = X/s * 60.0 |
||||
|
* 7. rpm = X/s / S * 60.0 |
||||
|
* |
||||
|
**** **** **** **** **** **** **** **** **** **** **** */ |
||||
|
|
||||
|
/** |
||||
|
* 用户设置速度转换为控制器需要的速度 |
||||
|
* 用户速度 U_Speed xx/s |
||||
|
* 控制器速度 rpm |
||||
|
* S 导程 |
||||
|
*/ |
||||
|
static int toMotorSpeed(double speed, double S) |
||||
|
{ |
||||
|
return (int)(speed * 60.0 / S); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* 控制器速度转换为用户设置速度 |
||||
|
* 控制器速度 rpm |
||||
|
* 用户速度 U_Speed xx/s |
||||
|
* S 导程 |
||||
|
*/ |
||||
|
static double toUserSpeed(int motorSpeed, double S) |
||||
|
{ |
||||
|
return (double)motorSpeed * S / 60.0; |
||||
|
} |
||||
|
} |
@ -1,4 +1,4 @@ |
|||||
package com.iflytop.gd.hardware.drivers.StepMotorDriver; |
|
||||
|
package com.iflytop.gd.hardware.type.StepMotor; |
||||
|
|
||||
|
|
||||
public enum DeviceStepMotorId { |
public enum DeviceStepMotorId { |
@ -1,7 +1,6 @@ |
|||||
package com.iflytop.gd.hardware.drivers.StepMotorDriver; |
|
||||
|
package com.iflytop.gd.hardware.type.StepMotor; |
||||
|
|
||||
import com.iflytop.gd.hardware.type.MId; |
import com.iflytop.gd.hardware.type.MId; |
||||
import org.springframework.util.Assert; |
|
||||
|
|
||||
public enum StepMotorMId { |
public enum StepMotorMId { |
||||
DOOR_MOTOR_MID(MId.DoorM), |
DOOR_MOTOR_MID(MId.DoorM), |
@ -1,4 +1,4 @@ |
|||||
package com.iflytop.gd.hardware.drivers.StepMotorDriver; |
|
||||
|
package com.iflytop.gd.hardware.type.StepMotor; |
||||
|
|
||||
import com.iflytop.gd.hardware.type.RegIndex; |
import com.iflytop.gd.hardware.type.RegIndex; |
||||
|
|
@ -1,4 +1,4 @@ |
|||||
package com.iflytop.gd.hardware.drivers.StepMotorDriver; |
|
||||
|
package com.iflytop.gd.hardware.type.StepMotor; |
||||
|
|
||||
public enum StepMotorSpeedLevel { |
public enum StepMotorSpeedLevel { |
||||
DEFAULT, |
DEFAULT, |
Write
Preview
Loading…
Cancel
Save
Reference in new issue