diff --git a/build.gradle b/build.gradle index f2def62..5b60c4d 100644 --- a/build.gradle +++ b/build.gradle @@ -41,6 +41,7 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-validation:3.4.5' implementation 'org.java-websocket:Java-WebSocket:1.6.0' implementation 'com.fazecast:jSerialComm:2.11.0' + implementation 'com.opencsv:opencsv:5.11' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' diff --git a/src/main/java/com/iflytop/gd/app/cmd/DoorCloseCommand.java b/src/main/java/com/iflytop/gd/app/cmd/DoorCloseCommand.java index e3ef965..882f255 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/DoorCloseCommand.java +++ b/src/main/java/com/iflytop/gd/app/cmd/DoorCloseCommand.java @@ -27,7 +27,7 @@ public class DoorCloseCommand extends BaseCommandHandler { public CompletableFuture handle(CmdDTO cmdDTO) { return runAsync(() -> { Double doorOpenDistance = devicePositionService.getPosition(DevicePositionCode.doorClose).getDistance(); - deviceCommandUtilService.doorMove(doorOpenDistance); + deviceCommandUtilService.doorMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), doorOpenDistance); }); } } diff --git a/src/main/java/com/iflytop/gd/app/cmd/DoorOpenCommand.java b/src/main/java/com/iflytop/gd/app/cmd/DoorOpenCommand.java index 6314f50..3c540c3 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/DoorOpenCommand.java +++ b/src/main/java/com/iflytop/gd/app/cmd/DoorOpenCommand.java @@ -1,11 +1,11 @@ package com.iflytop.gd.app.cmd; import com.iflytop.gd.app.core.BaseCommandHandler; -import com.iflytop.gd.app.core.device.DeviceState; import com.iflytop.gd.app.model.dto.CmdDTO; import com.iflytop.gd.app.service.DeviceCommandUtilService; import com.iflytop.gd.app.service.DevicePositionService; import com.iflytop.gd.app.service.DeviceStateService; +import com.iflytop.gd.app.service.GantryArmService; import com.iflytop.gd.common.annotation.CommandMapping; import com.iflytop.gd.common.enums.data.DevicePositionCode; import lombok.RequiredArgsConstructor; @@ -25,12 +25,14 @@ public class DoorOpenCommand extends BaseCommandHandler { private final DeviceCommandUtilService deviceCommandUtilService; private final DevicePositionService devicePositionService; private final DeviceStateService deviceStateService; + private final GantryArmService gantryArmService; @Override public CompletableFuture handle(CmdDTO cmdDTO) { return runAsync(() -> { + gantryArmService.setLiquidIdleTrue();//释放加液区等待 Double doorOpenDistance = devicePositionService.getPosition(DevicePositionCode.doorOpen).getDistance(); - deviceCommandUtilService.doorMove(doorOpenDistance); + deviceCommandUtilService.doorMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), doorOpenDistance); deviceStateService.setDoorStatus(true); }); } diff --git a/src/main/java/com/iflytop/gd/app/cmd/HeatStartCommand.java b/src/main/java/com/iflytop/gd/app/cmd/HeatStartCommand.java index b952813..635297c 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/HeatStartCommand.java +++ b/src/main/java/com/iflytop/gd/app/cmd/HeatStartCommand.java @@ -29,7 +29,7 @@ public class HeatStartCommand extends BaseCommandHandler { HeatModuleCode heatModuleId = HeatModuleCode.valueOf(heatId); return runAsync(() -> { double temperature = deviceStateService.getHeatModuleState(heatModuleId).getTemperature(); - deviceCommandUtilService.heatRodOpen(heatModuleId, temperature); + deviceCommandUtilService.heatRodOpen(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId, temperature); }); } } diff --git a/src/main/java/com/iflytop/gd/app/cmd/HeatStopCommand.java b/src/main/java/com/iflytop/gd/app/cmd/HeatStopCommand.java index 3af6f17..55df061 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/HeatStopCommand.java +++ b/src/main/java/com/iflytop/gd/app/cmd/HeatStopCommand.java @@ -26,7 +26,7 @@ public class HeatStopCommand extends BaseCommandHandler { String heatId = cmdDTO.getStringParam("heatId"); HeatModuleCode heatModuleId = HeatModuleCode.valueOf(heatId); return runAsync(() -> { - deviceCommandUtilService.heatRodClose(heatModuleId); + deviceCommandUtilService.heatRodClose(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId); }); } } diff --git a/src/main/java/com/iflytop/gd/app/cmd/MoveToHeatAreaCommand.java b/src/main/java/com/iflytop/gd/app/cmd/MoveToHeatAreaCommand.java index 6ecff43..5eef5a9 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/MoveToHeatAreaCommand.java +++ b/src/main/java/com/iflytop/gd/app/cmd/MoveToHeatAreaCommand.java @@ -33,41 +33,41 @@ public class MoveToHeatAreaCommand extends BaseCommandHandler { HeatModuleCode heatModuleId = HeatModuleCode.valueOf(heatId); return runAsync(() -> { Point3D liquidAreaTrayPoint3D = devicePositionService.getPosition(DevicePositionCode.liquidAreaTrayPoint).getPoint3D();//获取加液区托盘夹爪点 - deviceCommandUtilService.gantryMove(liquidAreaTrayPoint3D); //将机械臂移动至加液区托盘上方 + deviceCommandUtilService.gantryMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), liquidAreaTrayPoint3D); //将机械臂移动至加液区托盘上方 double clawTrayPick = devicePositionService.getPosition(DevicePositionCode.clawTrayPick).getDistance();//获取夹爪托盘夹取距离 - deviceCommandUtilService.clawMove(clawTrayPick);//将夹爪张开 + deviceCommandUtilService.clawMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawTrayPick);//将夹爪张开 double clawDescend = devicePositionService.getPosition(DevicePositionCode.clawDescend).getDistance();//获取下降机械臂使夹爪可以夹住的距离 - deviceCommandUtilService.gantryZMove(clawDescend); //下降机械臂使夹爪可以夹住托盘 + deviceCommandUtilService.gantryZMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawDescend); //下降机械臂使夹爪可以夹住托盘 double clawTrayGrip = devicePositionService.getPosition(DevicePositionCode.clawTrayGrip).getDistance();//获取夹爪托盘夹紧距离 - deviceCommandUtilService.clawMove(clawTrayGrip);//将夹爪收紧 + deviceCommandUtilService.clawMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawTrayGrip);//将夹爪收紧 double traySafetyHeight = devicePositionService.getPosition(DevicePositionCode.traySafetyHeight).getDistance();//获取移动托盘的安全高度 - deviceCommandUtilService.gantryZMoveBy(-traySafetyHeight);//机械臂提升至移动托盘的安全高度 + deviceCommandUtilService.gantryZMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), -traySafetyHeight);//机械臂提升至移动托盘的安全高度 Point3D heatAreaTrayClawPoint3D = deviceCommandUtilService.getHeatAreaTrayClawPoint3D(heatModuleId);//获取指定托盘上方点位 Point3D heatAreaTrayClawSafetyHeightPoint3D = new Point3D(heatAreaTrayClawPoint3D.getX(), heatAreaTrayClawPoint3D.getY(), heatAreaTrayClawPoint3D.getZ() - traySafetyHeight);//加热区托盘点位上方减去移动托盘的安全高度 - deviceCommandUtilService.gantryMove(heatAreaTrayClawSafetyHeightPoint3D);//将携带托盘的机械臂移动至托盘上方 - deviceCommandUtilService.gantryZMoveBy(traySafetyHeight);//下降机械臂将托盘与试管落入加热区 - deviceCommandUtilService.gantryZMoveBy(-clawDescend);//将机械臂提升至托盘上方高度 + deviceCommandUtilService.gantryMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatAreaTrayClawSafetyHeightPoint3D);//将携带托盘的机械臂移动至托盘上方 + deviceCommandUtilService.gantryZMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), traySafetyHeight);//下降机械臂将托盘与试管落入加热区 + deviceCommandUtilService.gantryZMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), -clawDescend);//将机械臂提升至托盘上方高度 Point3D capStorageCapClawPoint3D = devicePositionService.getPosition(DevicePositionCode.capStorageCapClawPoint).getPoint3D();//获取拍子存放区上方点位; - deviceCommandUtilService.gantryMove(capStorageCapClawPoint3D);//移动机械臂至拍子存放区上方 + deviceCommandUtilService.gantryMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), capStorageCapClawPoint3D);//移动机械臂至拍子存放区上方 //下降机械臂使夹爪可以夹住拍子 double clawCapPick = devicePositionService.getPosition(DevicePositionCode.clawCapPick).getDistance(); //拍子夹取距离 - deviceCommandUtilService.clawMove(clawCapPick);//将夹爪张开 - deviceCommandUtilService.gantryZMove(clawDescend); //下降机械臂使夹爪可以夹住拍子 + deviceCommandUtilService.clawMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawCapPick);//将夹爪张开 + deviceCommandUtilService.gantryZMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawDescend); //下降机械臂使夹爪可以夹住拍子 double clawCapGrip = devicePositionService.getPosition(DevicePositionCode.clawCapGrip).getDistance(); //获取拍子夹紧距离 - deviceCommandUtilService.clawMove(clawCapGrip);//将夹爪收紧 + deviceCommandUtilService.clawMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawCapGrip);//将夹爪收紧 double capSafetyHeight = devicePositionService.getPosition(DevicePositionCode.capSafetyHeight).getDistance();//获取移动拍子的安全高度 - deviceCommandUtilService.gantryZMoveBy(-capSafetyHeight);//机械臂提升至移动拍子的安全高度 - deviceCommandUtilService.capMotorMove(1); //提升拍子存放区1个位置 + deviceCommandUtilService.gantryZMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), -capSafetyHeight);//机械臂提升至移动拍子的安全高度 + deviceCommandUtilService.capMotorMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), 1); //提升拍子存放区1个位置 Point3D heatAreaCapClawPoint3D = deviceCommandUtilService.getHeatAreaCapClawPointPoint3D(heatModuleId);//获取托盘上方拍子点位 Point3D heatAreaCapClawSafetyHeightPoint3D = new Point3D(heatAreaCapClawPoint3D.getX(), heatAreaCapClawPoint3D.getY(), heatAreaCapClawPoint3D.getZ() - capSafetyHeight);//加热区拍子上方加上移动拍子的安全高度 - deviceCommandUtilService.gantryMove(heatAreaCapClawSafetyHeightPoint3D);//将机械臂移动至拍子上方加上移动拍子的安全高度 - deviceCommandUtilService.gantryZMoveBy(traySafetyHeight); //降下机械臂使拍子盖住托盘试管 - deviceCommandUtilService.clawMove(clawCapPick);//将夹爪张开 - deviceCommandUtilService.gantryZMoveBy(-clawDescend);//抬升机械臂至托盘上方 + deviceCommandUtilService.gantryMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatAreaCapClawSafetyHeightPoint3D);//将机械臂移动至拍子上方加上移动拍子的安全高度 + deviceCommandUtilService.gantryZMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), traySafetyHeight); //降下机械臂使拍子盖住托盘试管 + deviceCommandUtilService.clawMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawCapPick);//将夹爪张开 + deviceCommandUtilService.gantryZMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), -clawDescend);//抬升机械臂至托盘上方 gantryArmService.setLiquidIdleTrue();//释放加液区等待 double trayLower = devicePositionService.getPosition(DevicePositionCode.trayLower).getDistance(); //获取加热位下降托盘位置 - deviceCommandUtilService.heaterMotorMove(heatModuleId, trayLower);//下降加热位托盘 + deviceCommandUtilService.heaterMotorMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId, trayLower);//下降加热位托盘 }); } } diff --git a/src/main/java/com/iflytop/gd/app/cmd/MoveToSolutionAreaCommand.java b/src/main/java/com/iflytop/gd/app/cmd/MoveToSolutionAreaCommand.java index fda7c1a..c1e8c02 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/MoveToSolutionAreaCommand.java +++ b/src/main/java/com/iflytop/gd/app/cmd/MoveToSolutionAreaCommand.java @@ -33,42 +33,42 @@ public class MoveToSolutionAreaCommand extends BaseCommandHandler { HeatModuleCode heatModuleId = HeatModuleCode.valueOf(heatId); return runAsync(() -> { gantryArmService.waitLiquidIdle();//等待加液区空闲 - + gantryArmService.setLiquidIdleFalse();//锁定加液区 double trayLift = devicePositionService.getPosition(DevicePositionCode.trayLift).getDistance(); //获取加热位抬升托盘位置 - deviceCommandUtilService.heaterMotorMove(heatModuleId, trayLift);//抬升加热位托盘 + deviceCommandUtilService.heaterMotorMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId, trayLift);//抬升加热位托盘 //TODO 判断托盘是否有拍子 Point3D heatAreaCapClawPoint3D = deviceCommandUtilService.getHeatAreaCapClawPointPoint3D(heatModuleId);//获取托盘上方拍子点位 - deviceCommandUtilService.gantryMove(heatAreaCapClawPoint3D);//将机械臂移动至拍子上方 + deviceCommandUtilService.gantryMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatAreaCapClawPoint3D);//将机械臂移动至拍子上方 double clawCapPick = devicePositionService.getPosition(DevicePositionCode.clawCapPick).getDistance(); //拍子夹取距离 - deviceCommandUtilService.clawMove(clawCapPick);//将夹爪张开 + deviceCommandUtilService.clawMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawCapPick);//将夹爪张开 double clawDescend = devicePositionService.getPosition(DevicePositionCode.clawDescend).getDistance();//获取下降机械臂使夹爪可以夹住的距离 - deviceCommandUtilService.gantryZMove(clawDescend); //下降机械臂使夹爪可以夹住拍子 + deviceCommandUtilService.gantryZMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawDescend); //下降机械臂使夹爪可以夹住拍子 double clawCapGrip = devicePositionService.getPosition(DevicePositionCode.clawCapGrip).getDistance(); //获取拍子夹紧距离 - deviceCommandUtilService.clawMove(clawCapGrip);//将夹爪收紧 + deviceCommandUtilService.clawMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawCapGrip);//将夹爪收紧 double capSafetyHeight = devicePositionService.getPosition(DevicePositionCode.capSafetyHeight).getDistance();//获取移动拍子的安全高度 - deviceCommandUtilService.gantryZMoveBy(-capSafetyHeight);//机械臂提升至移动拍子的安全高度 - deviceCommandUtilService.capMotorMove(-1); //下降拍子存放区1个位置 + deviceCommandUtilService.gantryZMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), -capSafetyHeight);//机械臂提升至移动拍子的安全高度 + deviceCommandUtilService.capMotorMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), -1); //下降拍子存放区1个位置 Point3D capStorageCapClawPoint3D = devicePositionService.getPosition(DevicePositionCode.capStorageCapClawPoint).getPoint3D();//获取拍子存放区上方点位; Point3D capStorageCapClawSafetyHeightPoint3D = new Point3D(capStorageCapClawPoint3D.getX(), capStorageCapClawPoint3D.getY(), capStorageCapClawPoint3D.getZ() - capSafetyHeight);//拍子存放区上方加上移动拍子的安全高度 - deviceCommandUtilService.gantryMove(capStorageCapClawSafetyHeightPoint3D);//移动机械臂至拍子存放区上方上减去拍子的安全高度 - deviceCommandUtilService.gantryZMoveBy(capSafetyHeight);//下降机械臂,使拍子落入存放区 - deviceCommandUtilService.clawMove(clawCapPick); //松开夹爪,放开拍子 - deviceCommandUtilService.gantryZMoveBy(clawDescend);//将机械臂抬升至托盘上方 + deviceCommandUtilService.gantryMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), capStorageCapClawSafetyHeightPoint3D);//移动机械臂至拍子存放区上方上减去拍子的安全高度 + deviceCommandUtilService.gantryZMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), capSafetyHeight);//下降机械臂,使拍子落入存放区 + deviceCommandUtilService.clawMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawCapPick); //松开夹爪,放开拍子 + deviceCommandUtilService.gantryZMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawDescend);//将机械臂抬升至托盘上方 Point3D heatAreaTrayClawPoint3D = deviceCommandUtilService.getHeatAreaTrayClawPoint3D(heatModuleId);//获取指定托盘上方点位 - deviceCommandUtilService.gantryMove(heatAreaTrayClawPoint3D);//将机械臂移动至托盘上方 + deviceCommandUtilService.gantryMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatAreaTrayClawPoint3D);//将机械臂移动至托盘上方 double clawTrayPick = devicePositionService.getPosition(DevicePositionCode.clawTrayPick).getDistance();//获取夹爪托盘夹取距离 - deviceCommandUtilService.clawMove(clawTrayPick);//将夹爪张开 - deviceCommandUtilService.gantryZMove(clawDescend); //下降机械臂使夹爪可以夹住托盘 + deviceCommandUtilService.clawMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawTrayPick);//将夹爪张开 + deviceCommandUtilService.gantryZMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawDescend); //下降机械臂使夹爪可以夹住托盘 double clawTrayGrip = devicePositionService.getPosition(DevicePositionCode.clawTrayGrip).getDistance();//获取夹爪托盘夹紧距离 - deviceCommandUtilService.clawMove(clawTrayGrip);//将夹爪收紧 + deviceCommandUtilService.clawMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawTrayGrip);//将夹爪收紧 double traySafetyHeight = devicePositionService.getPosition(DevicePositionCode.traySafetyHeight).getDistance();//获取移动托盘的安全高度 - deviceCommandUtilService.gantryZMoveBy(-traySafetyHeight);//机械臂提升至移动托盘的安全高度 + deviceCommandUtilService.gantryZMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), -traySafetyHeight);//机械臂提升至移动托盘的安全高度 Point3D liquidAreaTrayPoint3D = devicePositionService.getPosition(DevicePositionCode.liquidAreaTrayPoint).getPoint3D();//获取加液区托盘夹爪点 Point3D liquidAreaTraySafetyHeightPoint3D = new Point3D(liquidAreaTrayPoint3D.getX(), liquidAreaTrayPoint3D.getY(), liquidAreaTrayPoint3D.getZ() - traySafetyHeight);//加液区托盘点位上方加上移动托盘的安全高度 - deviceCommandUtilService.gantryMove(liquidAreaTraySafetyHeightPoint3D);//移动机械臂至加液区托盘点位上方减去移动托盘的安全高度 - deviceCommandUtilService.gantryZMoveBy(traySafetyHeight);//下降机械臂将托盘与试管落入加液区 - deviceCommandUtilService.clawMove(clawTrayPick);//松开夹爪,放下托盘 - deviceCommandUtilService.gantryZMoveBy(-clawDescend);//抬升机械臂至托盘上方 + deviceCommandUtilService.gantryMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), liquidAreaTraySafetyHeightPoint3D);//移动机械臂至加液区托盘点位上方减去移动托盘的安全高度 + deviceCommandUtilService.gantryZMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), traySafetyHeight);//下降机械臂将托盘与试管落入加液区 + deviceCommandUtilService.clawMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), clawTrayPick);//松开夹爪,放下托盘 + deviceCommandUtilService.gantryZMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), -clawDescend);//抬升机械臂至托盘上方 }); } } diff --git a/src/main/java/com/iflytop/gd/app/cmd/ShakeStartCommand.java b/src/main/java/com/iflytop/gd/app/cmd/ShakeStartCommand.java index 37cc119..4ccc33c 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/ShakeStartCommand.java +++ b/src/main/java/com/iflytop/gd/app/cmd/ShakeStartCommand.java @@ -23,7 +23,7 @@ public class ShakeStartCommand extends BaseCommandHandler { @Override public CompletableFuture handle(CmdDTO cmdDTO) { return runAsync(() -> { - deviceCommandUtilService.shakeStart();//开始摇匀 + deviceCommandUtilService.shakeStart(cmdDTO.getCommandId(), cmdDTO.getCommand());//开始摇匀 }); } } diff --git a/src/main/java/com/iflytop/gd/app/cmd/ShakeStopCommand.java b/src/main/java/com/iflytop/gd/app/cmd/ShakeStopCommand.java index 3346839..17e44d5 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/ShakeStopCommand.java +++ b/src/main/java/com/iflytop/gd/app/cmd/ShakeStopCommand.java @@ -23,7 +23,7 @@ public class ShakeStopCommand extends BaseCommandHandler { @Override public CompletableFuture handle(CmdDTO cmdDTO) { return runAsync(() -> { - deviceCommandUtilService.shakeStop();//停止摇匀 + deviceCommandUtilService.shakeStop(cmdDTO.getCommandId(), cmdDTO.getCommand());//停止摇匀 }); } } diff --git a/src/main/java/com/iflytop/gd/app/cmd/SolutionAddCommand.java b/src/main/java/com/iflytop/gd/app/cmd/SolutionAddCommand.java index 72039d5..9a5b16e 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/SolutionAddCommand.java +++ b/src/main/java/com/iflytop/gd/app/cmd/SolutionAddCommand.java @@ -45,8 +45,8 @@ public class SolutionAddCommand extends BaseCommandHandler { throw new AppException(ResultCode.CRAFT_CONTAINER_NOT_FOUND); } Point2D tubePoint2D = deviceCommandUtilService.getPointByTubeNum(tubeNum);//根据试管编号获取点位 - deviceCommandUtilService.dualRobotMovePoint(tubePoint2D);//移动加液机械臂到指定试管点位 - deviceCommandUtilService.acidPumpMoveBy(acidPumpDevice, volume);//添加溶液 + deviceCommandUtilService.dualRobotMovePoint(cmdDTO.getCommandId(), cmdDTO.getCommand(), tubePoint2D);//移动加液机械臂到指定试管点位 + deviceCommandUtilService.acidPumpMoveBy(cmdDTO.getCommandId(), cmdDTO.getCommand(), acidPumpDevice, volume);//添加溶液 } } deviceCommandUtilService.dualRobotOrigin(); diff --git a/src/main/java/com/iflytop/gd/app/cmd/TakePhotoCommand.java b/src/main/java/com/iflytop/gd/app/cmd/TakePhotoCommand.java index baab915..805ce61 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/TakePhotoCommand.java +++ b/src/main/java/com/iflytop/gd/app/cmd/TakePhotoCommand.java @@ -23,9 +23,9 @@ public class TakePhotoCommand extends BaseCommandHandler { @Override public CompletableFuture handle(CmdDTO cmdDTO) { return runAsync(() -> { - deviceCommandUtilService.fillLightOpen(100.0);//TODO 开启补光灯 亮度从数据库获取 - deviceCommandUtilService.takePhoto();//拍照 - deviceCommandUtilService.fillLightClose();//关闭补光灯 + deviceCommandUtilService.fillLightOpen(cmdDTO.getCommandId(), cmdDTO.getCommand(), 100.0);//TODO 开启补光灯 亮度从数据库获取 + deviceCommandUtilService.takePhoto(cmdDTO.getCommandId(), cmdDTO.getCommand());//拍照 + deviceCommandUtilService.fillLightClose(cmdDTO.getCommandId(), cmdDTO.getCommand());//关闭补光灯 }); } } diff --git a/src/main/java/com/iflytop/gd/app/cmd/TrayDownCommand.java b/src/main/java/com/iflytop/gd/app/cmd/TrayDownCommand.java index 3632572..63fbc83 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/TrayDownCommand.java +++ b/src/main/java/com/iflytop/gd/app/cmd/TrayDownCommand.java @@ -30,7 +30,7 @@ public class TrayDownCommand extends BaseCommandHandler { HeatModuleCode heatModuleId = HeatModuleCode.valueOf(heatId); return runAsync(() -> { double trayLower = devicePositionService.getPosition(DevicePositionCode.trayLower).getDistance(); //获取加热位下降托盘位置 - deviceCommandUtilService.heaterMotorMove(heatModuleId, trayLower);//下降加热位托盘 + deviceCommandUtilService.heaterMotorMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId, trayLower);//下降加热位托盘 }); } } diff --git a/src/main/java/com/iflytop/gd/app/cmd/TrayUpCommand.java b/src/main/java/com/iflytop/gd/app/cmd/TrayUpCommand.java index 7e53c26..b4cf22b 100644 --- a/src/main/java/com/iflytop/gd/app/cmd/TrayUpCommand.java +++ b/src/main/java/com/iflytop/gd/app/cmd/TrayUpCommand.java @@ -30,7 +30,7 @@ public class TrayUpCommand extends BaseCommandHandler { HeatModuleCode heatModuleId = HeatModuleCode.valueOf(heatId); return runAsync(() -> { double trayLift = devicePositionService.getPosition(DevicePositionCode.trayLift).getDistance(); //获取加热位抬升托盘位置 - deviceCommandUtilService.heaterMotorMove(heatModuleId, trayLift);//抬升加热位托盘 + deviceCommandUtilService.heaterMotorMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), heatModuleId, trayLift);//抬升加热位托盘 }); } } diff --git a/src/main/java/com/iflytop/gd/app/core/CraftsContext.java b/src/main/java/com/iflytop/gd/app/core/CraftsContext.java index a84803d..e19c6a8 100644 --- a/src/main/java/com/iflytop/gd/app/core/CraftsContext.java +++ b/src/main/java/com/iflytop/gd/app/core/CraftsContext.java @@ -32,7 +32,6 @@ public class CraftsContext implements Runnable { private final List craftsStepList; private final StateMachine sm; private final WebSocketService webSocketService; - ; private final CraftsStepService craftsStepService; private int currentIndex = 0; diff --git a/src/main/java/com/iflytop/gd/app/core/device/CraftsState.java b/src/main/java/com/iflytop/gd/app/core/device/CraftsState.java index 240f453..2bb0604 100644 --- a/src/main/java/com/iflytop/gd/app/core/device/CraftsState.java +++ b/src/main/java/com/iflytop/gd/app/core/device/CraftsState.java @@ -1,5 +1,7 @@ package com.iflytop.gd.app.core.device; +import com.iflytop.gd.app.model.entity.Crafts; +import com.iflytop.gd.app.model.entity.Ores; import com.iflytop.gd.common.enums.automaton.CraftStates; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -9,4 +11,13 @@ import lombok.Data; public class CraftsState { @Schema(description = "工艺状态") private CraftStates state; + + @Schema(description = "工艺所属矿石") + private Ores ores; + + @Schema(description = "工艺") + private Crafts craft; + + @Schema(description = "工艺当前步骤下标") + private int currentIndex = 0; } diff --git a/src/main/java/com/iflytop/gd/app/model/bo/DeviceInitializationData.java b/src/main/java/com/iflytop/gd/app/model/bo/DeviceInitializationData.java new file mode 100644 index 0000000..f063c06 --- /dev/null +++ b/src/main/java/com/iflytop/gd/app/model/bo/DeviceInitializationData.java @@ -0,0 +1,11 @@ +package com.iflytop.gd.app.model.bo; + +import lombok.Data; + +@Data +public class DeviceInitializationData { + private int id; + private String mid; + private String regIndex; + private int regInitVal; +} diff --git a/src/main/java/com/iflytop/gd/app/service/CraftsStepService.java b/src/main/java/com/iflytop/gd/app/service/CraftsStepService.java index e12f28c..10a25ae 100644 --- a/src/main/java/com/iflytop/gd/app/service/CraftsStepService.java +++ b/src/main/java/com/iflytop/gd/app/service/CraftsStepService.java @@ -54,6 +54,7 @@ public class CraftsStepService { webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatId, "等待加液区空闲", null)); gantryArmService.waitLiquidIdle();//等待加液区空闲 + gantryArmService.setLiquidIdleFalse();//锁定加液区 webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatId, "加液区已空闲", null)); double trayLift = devicePositionService.getPosition(DevicePositionCode.trayLift).getDistance(); //获取加热位抬升托盘位置 @@ -235,6 +236,7 @@ public class CraftsStepService { webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatId, "等待加液区空闲", null)); gantryArmService.waitLiquidIdle();//等待加液区空闲 + gantryArmService.setLiquidIdleFalse();//锁定加液区 webSocketService.pushCraftsDebug(CraftsDebugGenerator.generateJson(heatId, "加液区已空闲", null)); double trayLift = devicePositionService.getPosition(DevicePositionCode.trayLift).getDistance(); //获取加热位抬升托盘位置 diff --git a/src/main/java/com/iflytop/gd/app/service/DeviceCommandService.java b/src/main/java/com/iflytop/gd/app/service/DeviceCommandService.java index 7330315..39d83c3 100644 --- a/src/main/java/com/iflytop/gd/app/service/DeviceCommandService.java +++ b/src/main/java/com/iflytop/gd/app/service/DeviceCommandService.java @@ -53,9 +53,13 @@ public class DeviceCommandService { } public synchronized CommandFuture[] sendCommandQueue(DeviceCommandBundle... deviceCommandBundles) { + return sendCommandQueue(null, null, deviceCommandBundles); + } + + public synchronized CommandFuture[] sendCommandQueue(String cmdId, String cmdCode, DeviceCommandBundle... deviceCommandBundles) { List commandFutureList = new ArrayList<>(); for (DeviceCommandBundle deviceCommandBundle : deviceCommandBundles) { - commandFutureList.add(createDeviceCommandFuture(deviceCommandBundle)); + commandFutureList.add(createDeviceCommandFuture(cmdId, cmdCode, deviceCommandBundle)); } CommandFuture[] commandFutureArray = commandFutureList.toArray(new CommandFuture[0]); try { diff --git a/src/main/java/com/iflytop/gd/app/service/DeviceCommandUtilService.java b/src/main/java/com/iflytop/gd/app/service/DeviceCommandUtilService.java index 8fc6430..1e4c599 100644 --- a/src/main/java/com/iflytop/gd/app/service/DeviceCommandUtilService.java +++ b/src/main/java/com/iflytop/gd/app/service/DeviceCommandUtilService.java @@ -26,8 +26,15 @@ public class DeviceCommandUtilService { * 门电机移动 */ public void doorMove(double position) throws Exception { + doorMove(null, null, position); + } + + /** + * 门电机移动 + */ + public void doorMove(String cmdId, String cmdCode, double position) throws Exception { DeviceCommandBundle deviceCommand = DeviceCommandGenerator.doorMove(position); - CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(deviceCommand); + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFuture); } @@ -35,10 +42,17 @@ public class DeviceCommandUtilService { * 龙门架机械臂移动到指定点 */ public void gantryMove(Point3D point) throws Exception { + gantryMove(null, null, point); + } + + /** + * 龙门架机械臂移动到指定点 + */ + public void gantryMove(String cmdId, String cmdCode, Point3D point) throws Exception { DeviceCommandBundle gantryXMoveDeviceCommand = DeviceCommandGenerator.gantryXMove(point.getX()); DeviceCommandBundle gantryYMoveDeviceCommand = DeviceCommandGenerator.gantryYMove(point.getY()); DeviceCommandBundle gantryZMoveDeviceCommand = DeviceCommandGenerator.gantryZMove(point.getZ()); - CommandFuture[] deviceCommandFutureArr = deviceCommandService.sendCommandQueue(gantryXMoveDeviceCommand, gantryYMoveDeviceCommand, gantryZMoveDeviceCommand); + CommandFuture[] deviceCommandFutureArr = deviceCommandService.sendCommandQueue(cmdId, cmdCode, gantryXMoveDeviceCommand, gantryYMoveDeviceCommand, gantryZMoveDeviceCommand); commandWait(deviceCommandFutureArr); } @@ -46,8 +60,15 @@ public class DeviceCommandUtilService { * 龙门架机械臂X轴移动到指定点 */ public void gantryXMove(double position) throws Exception { + gantryXMove(null, null, position); + } + + /** + * 龙门架机械臂X轴移动到指定点 + */ + public void gantryXMove(String cmdId, String cmdCode, double position) throws Exception { DeviceCommandBundle deviceCommand = DeviceCommandGenerator.gantryXMove(position); - CommandFuture[] deviceCommandFutureArr = deviceCommandService.sendCommandQueue(deviceCommand); + CommandFuture[] deviceCommandFutureArr = deviceCommandService.sendCommandQueue(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFutureArr); } @@ -55,8 +76,15 @@ public class DeviceCommandUtilService { * 龙门架机械臂Y轴移动到指定点 */ public void gantryYMove(double position) throws Exception { + gantryYMove(null, null, position); + } + + /** + * 龙门架机械臂Y轴移动到指定点 + */ + public void gantryYMove(String cmdId, String cmdCode, double position) throws Exception { DeviceCommandBundle deviceCommand = DeviceCommandGenerator.gantryYMove(position); - CommandFuture[] deviceCommandFutureArr = deviceCommandService.sendCommandQueue(deviceCommand); + CommandFuture[] deviceCommandFutureArr = deviceCommandService.sendCommandQueue(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFutureArr); } @@ -64,8 +92,15 @@ public class DeviceCommandUtilService { * 龙门架机械臂Z轴移动到指定点 */ public void gantryZMove(double position) throws Exception { + gantryZMove(null, null, position); + } + + /** + * 龙门架机械臂Z轴移动到指定点 + */ + public void gantryZMove(String cmdId, String cmdCode, double position) throws Exception { DeviceCommandBundle deviceCommand = DeviceCommandGenerator.gantryZMove(position); - CommandFuture[] deviceCommandFutureArr = deviceCommandService.sendCommandQueue(deviceCommand); + CommandFuture[] deviceCommandFutureArr = deviceCommandService.sendCommandQueue(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFutureArr); } @@ -73,8 +108,15 @@ public class DeviceCommandUtilService { * 龙门架机械臂X轴相对移动到指定点 */ public void gantryXMoveBy(double position) throws Exception { + gantryXMoveBy(null, null, position); + } + + /** + * 龙门架机械臂X轴相对移动到指定点 + */ + public void gantryXMoveBy(String cmdId, String cmdCode, double position) throws Exception { DeviceCommandBundle deviceCommand = DeviceCommandGenerator.gantryXMoveBy(position); - CommandFuture[] deviceCommandFutureArr = deviceCommandService.sendCommandQueue(deviceCommand); + CommandFuture[] deviceCommandFutureArr = deviceCommandService.sendCommandQueue(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFutureArr); } @@ -82,8 +124,15 @@ public class DeviceCommandUtilService { * 龙门架机械臂Y轴相对移动到指定点 */ public void gantryYMoveBy(double position) throws Exception { + gantryYMoveBy(null, null, position); + } + + /** + * 龙门架机械臂Y轴相对移动到指定点 + */ + public void gantryYMoveBy(String cmdId, String cmdCode, double position) throws Exception { DeviceCommandBundle deviceCommand = DeviceCommandGenerator.gantryYMoveBy(position); - CommandFuture[] deviceCommandFutureArr = deviceCommandService.sendCommandQueue(deviceCommand); + CommandFuture[] deviceCommandFutureArr = deviceCommandService.sendCommandQueue(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFutureArr); } @@ -91,8 +140,15 @@ public class DeviceCommandUtilService { * 龙门架机械臂Z轴相对移动到指定点 */ public void gantryZMoveBy(double position) throws Exception { + gantryZMoveBy(null, null, position); + } + + /** + * 龙门架机械臂Z轴相对移动到指定点 + */ + public void gantryZMoveBy(String cmdId, String cmdCode, double position) throws Exception { DeviceCommandBundle deviceCommand = DeviceCommandGenerator.gantryZMoveBy(position); - CommandFuture[] deviceCommandFutureArr = deviceCommandService.sendCommandQueue(deviceCommand); + CommandFuture[] deviceCommandFutureArr = deviceCommandService.sendCommandQueue(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFutureArr); } @@ -100,8 +156,15 @@ public class DeviceCommandUtilService { * 移动夹爪 */ public void clawMove(double position) throws Exception { + clawMove(null, null, position); + } + + /** + * 移动夹爪 + */ + public void clawMove(String cmdId, String cmdCode, double position) throws Exception { DeviceCommandBundle deviceCommand = DeviceCommandGenerator.clawMove(position); - CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(deviceCommand); + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFuture); } @@ -111,18 +174,33 @@ public class DeviceCommandUtilService { * @param num 1为上升1格,-1为下降1格 */ public void capMotorMove(int num) throws Exception { + capMotorMove(null, null, num); + } + + /** + * 调整拍子升降电机位置 + * + * @param num 1为上升1格,-1为下降1格 + */ + public void capMotorMove(String cmdId, String cmdCode, int num) throws Exception { double capHeight = 0.0; //TODO 每个拍子的高度 从数据库中获取 //TODO 获取当前拍子升降电机位置 DeviceCommandBundle deviceCommand = DeviceCommandGenerator.trayMotorMove(num * capHeight); - CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(deviceCommand); + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFuture); } - /** * 加热模块升降电机移动到指定位置 */ public void heaterMotorMove(HeatModuleCode heatModuleId, double position) throws Exception { + heaterMotorMove(null, null, heatModuleId, position); + } + + /** + * 加热模块升降电机移动到指定位置 + */ + public void heaterMotorMove(String cmdId, String cmdCode, HeatModuleCode heatModuleId, double position) throws Exception { DeviceCommandBundle deviceCommand = switch (heatModuleId) { case heat_module_01 -> DeviceCommandGenerator.heaterMotor1Move(position); case heat_module_02 -> DeviceCommandGenerator.heaterMotor2Move(position); @@ -131,7 +209,7 @@ public class DeviceCommandUtilService { case heat_module_05 -> DeviceCommandGenerator.heaterMotor5Move(position); case heat_module_06 -> DeviceCommandGenerator.heaterMotor6Move(position); }; - CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(deviceCommand); + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFuture); } @@ -139,8 +217,15 @@ public class DeviceCommandUtilService { * 双轴械臂 移动至指定点 */ public void dualRobotMovePoint(Point2D point2D) throws Exception { + dualRobotMovePoint(null, null, point2D); + } + + /** + * 双轴械臂 移动至指定点 + */ + public void dualRobotMovePoint(String cmdId, String cmdCode, Point2D point2D) throws Exception { DeviceCommandBundle deviceCommand = DeviceCommandGenerator.dualRobotMovePoint(point2D.getX(), point2D.getY()); - CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(deviceCommand); + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFuture); } @@ -148,18 +233,31 @@ public class DeviceCommandUtilService { * 加液机械臂回原点 */ public void dualRobotOrigin() throws Exception { + dualRobotOrigin(null, null); + } + + /** + * 加液机械臂回原点 + */ + public void dualRobotOrigin(String cmdId, String cmdCode) throws Exception { DeviceCommandBundle dualRobotJoint1OriginDeviceCommand = DeviceCommandGenerator.dualRobotJoint1Origin(); DeviceCommandBundle dualRobotJoint2OriginDeviceCommand = DeviceCommandGenerator.dualRobotJoint2Origin(); - CommandFuture dualRobotJoint1OriginDeviceCommandFuture = deviceCommandService.sendCommand(dualRobotJoint1OriginDeviceCommand); - CommandFuture dualRobotJoint2OriginDeviceCommandFuture = deviceCommandService.sendCommand(dualRobotJoint2OriginDeviceCommand); + CommandFuture dualRobotJoint1OriginDeviceCommandFuture = deviceCommandService.sendCommand(cmdId, cmdCode, dualRobotJoint1OriginDeviceCommand); + CommandFuture dualRobotJoint2OriginDeviceCommandFuture = deviceCommandService.sendCommand(cmdId, cmdCode, dualRobotJoint2OriginDeviceCommand); commandWait(dualRobotJoint1OriginDeviceCommandFuture, dualRobotJoint2OriginDeviceCommandFuture); } - /** * 添加溶液 */ public void acidPumpMoveBy(AcidPumpDeviceCode acidPumpDevice, double position) throws Exception { + acidPumpMoveBy(null, null, acidPumpDevice, position); + } + + /** + * 添加溶液 + */ + public void acidPumpMoveBy(String cmdId, String cmdCode, AcidPumpDeviceCode acidPumpDevice, double position) throws Exception { DeviceCommandBundle deviceCommand = switch (acidPumpDevice) { case acid_pump_01 -> DeviceCommandGenerator.acidPump1MoveBy(position); case acid_pump_02 -> DeviceCommandGenerator.acidPump2MoveBy(position); @@ -170,7 +268,7 @@ public class DeviceCommandUtilService { case acid_pump_07 -> DeviceCommandGenerator.acidPump7MoveBy(position); case acid_pump_08 -> DeviceCommandGenerator.acidPump8MoveBy(position); }; - CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(deviceCommand); + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFuture); } @@ -178,8 +276,15 @@ public class DeviceCommandUtilService { * 开始摇匀 */ public void shakeStart() throws Exception { + shakeStart(null, null); + } + + /** + * 开始摇匀 + */ + public void shakeStart(String cmdId, String cmdCode) throws Exception { DeviceCommandBundle deviceCommand = DeviceCommandGenerator.shakeMotorStart(); - CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(deviceCommand); + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFuture); } @@ -187,8 +292,15 @@ public class DeviceCommandUtilService { * 停止摇匀 */ public void shakeStop() throws Exception { + shakeStop(null, null); + } + + /** + * 停止摇匀 + */ + public void shakeStop(String cmdId, String cmdCode) throws Exception { DeviceCommandBundle deviceCommand = DeviceCommandGenerator.shakeMotorStop(); - CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(deviceCommand); + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFuture); } @@ -196,6 +308,13 @@ public class DeviceCommandUtilService { * 指定加热模块开始加热 */ public void heatRodOpen(HeatModuleCode heatModuleId, double temperature) throws Exception { + heatRodOpen(null, null, heatModuleId, temperature); + } + + /** + * 指定加热模块开始加热 + */ + public void heatRodOpen(String cmdId, String cmdCode, HeatModuleCode heatModuleId, double temperature) throws Exception { DeviceCommandBundle deviceCommand = switch (heatModuleId) { case heat_module_01 -> DeviceCommandGenerator.heatRod1Open(temperature); case heat_module_02 -> DeviceCommandGenerator.heatRod2Open(temperature); @@ -204,7 +323,7 @@ public class DeviceCommandUtilService { case heat_module_05 -> DeviceCommandGenerator.heatRod5Open(temperature); case heat_module_06 -> DeviceCommandGenerator.heatRod6Open(temperature); }; - CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(deviceCommand); + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFuture); } @@ -212,6 +331,13 @@ public class DeviceCommandUtilService { * 指定加热模块停止加热 */ public void heatRodClose(HeatModuleCode heatModuleId) throws Exception { + heatRodClose(null, null, heatModuleId); + } + + /** + * 指定加热模块停止加热 + */ + public void heatRodClose(String cmdId, String cmdCode, HeatModuleCode heatModuleId) throws Exception { DeviceCommandBundle deviceCommand = switch (heatModuleId) { case heat_module_01 -> DeviceCommandGenerator.heatRod1Close(); case heat_module_02 -> DeviceCommandGenerator.heatRod2Close(); @@ -220,7 +346,7 @@ public class DeviceCommandUtilService { case heat_module_05 -> DeviceCommandGenerator.heatRod5Close(); case heat_module_06 -> DeviceCommandGenerator.heatRod6Close(); }; - CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(deviceCommand); + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFuture); } @@ -228,8 +354,15 @@ public class DeviceCommandUtilService { * 开启补光灯 */ public void fillLightOpen(Double brightness) throws Exception { + fillLightOpen(null, null, brightness); + } + + /** + * 开启补光灯 + */ + public void fillLightOpen(String cmdId, String cmdCode, Double brightness) throws Exception { DeviceCommandBundle deviceCommand = DeviceCommandGenerator.fillLightOpen(brightness); - CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(deviceCommand); + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFuture); } @@ -237,8 +370,15 @@ public class DeviceCommandUtilService { * 关闭补光灯 */ public void fillLightClose() throws Exception { + fillLightClose(null, null); + } + + /** + * 关闭补光灯 + */ + public void fillLightClose(String cmdId, String cmdCode) throws Exception { DeviceCommandBundle deviceCommand = DeviceCommandGenerator.fillLightClose(); - CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(deviceCommand); + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFuture); } @@ -246,8 +386,15 @@ public class DeviceCommandUtilService { * 拍照 */ public void takePhoto() throws Exception { + takePhoto(null, null); + } + + /** + * 拍照 + */ + public void takePhoto(String cmdId, String cmdCode) throws Exception { DeviceCommandBundle deviceCommand = DeviceCommandGenerator.takePhoto(); - CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(deviceCommand); + CommandFuture deviceCommandFuture = deviceCommandService.sendCommand(cmdId, cmdCode, deviceCommand); commandWait(deviceCommandFuture); } diff --git a/src/main/java/com/iflytop/gd/app/service/DeviceStateInitializerService.java b/src/main/java/com/iflytop/gd/app/service/DeviceInitService.java similarity index 50% rename from src/main/java/com/iflytop/gd/app/service/DeviceStateInitializerService.java rename to src/main/java/com/iflytop/gd/app/service/DeviceInitService.java index 00aaf7a..3c0521b 100644 --- a/src/main/java/com/iflytop/gd/app/service/DeviceStateInitializerService.java +++ b/src/main/java/com/iflytop/gd/app/service/DeviceInitService.java @@ -3,30 +3,70 @@ package com.iflytop.gd.app.service; import com.iflytop.gd.app.core.device.DeviceState; import com.iflytop.gd.app.core.device.HeatModuleState; import com.iflytop.gd.app.core.device.SolutionContainerState; +import com.iflytop.gd.app.model.bo.DeviceInitializationData; import com.iflytop.gd.app.model.entity.Container; import com.iflytop.gd.common.enums.ContainerCode; import com.iflytop.gd.common.enums.ContainerType; import com.iflytop.gd.common.enums.HeatModuleCode; +import com.iflytop.gd.hardware.comm.can.A8kCanBusService; +import com.iflytop.gd.hardware.type.MId; +import com.opencsv.CSVReader; import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.io.FileReader; +import java.nio.file.Paths; import java.util.List; +@Slf4j @Service @RequiredArgsConstructor -public class DeviceStateInitializerService { +public class DeviceInitService { private final ContainerService containerService; private final DeviceStateService deviceStateService; + private final A8kCanBusService canBusService; @PostConstruct - public void initializeDeviceState() { + public void init() { + initDeviceSetData(); + initDeviceState(); + } + + public void initDeviceSetData() { + try { + Thread.sleep(2000); + String filePath = Paths.get("src", "main", "resources", "init", "zapp_sub_module_reg_initial_value.csv").toString(); + CSVReader reader = new CSVReader(new FileReader(filePath)); + reader.readNext(); + String[] line; + while ((line = reader.readNext()) != null) { + DeviceInitializationData data = new DeviceInitializationData(); + data.setId(Integer.parseInt(line[0])); + data.setMid(line[1]); + data.setRegIndex(line[2]); + data.setRegInitVal(Integer.parseInt(line[3])); + sendToDevice(data); + } + reader.close(); + } catch (Exception e) { + log.error("设备初始化失败", e); + } + + } + + public void sendToDevice(DeviceInitializationData data) { + System.out.println("Sending to device: " + data.getMid() + " - " + data.getRegIndex() + " = " + data.getRegInitVal()); +// canBusService.moduleSetReg(MId.valueOf(data.getMid())); + } + + public void initDeviceState() { DeviceState deviceState = deviceStateService.getDeviceState(); List heatArea = deviceState.getHeatModule(); for (HeatModuleCode code : HeatModuleCode.values()) { heatArea.add(new HeatModuleState(code)); } - List containerList = containerService.getList(); List solutionBucket = deviceState.getSolutionModule().getSolutionContainer(); for (Container container : containerList) { @@ -36,7 +76,6 @@ public class DeviceStateInitializerService { solutionBucket.add(new SolutionContainerState(container.getId(), ContainerCode.valueOf(container.getCode()), ContainerType.neutralization)); } } - deviceState.setInitComplete(true); } } diff --git a/src/main/java/com/iflytop/gd/app/service/GantryArmService.java b/src/main/java/com/iflytop/gd/app/service/GantryArmService.java index 7212852..62db198 100644 --- a/src/main/java/com/iflytop/gd/app/service/GantryArmService.java +++ b/src/main/java/com/iflytop/gd/app/service/GantryArmService.java @@ -32,7 +32,18 @@ public class GantryArmService { liquidLock.unlock(); } } - + /** + * 锁定加液区 + */ + public void setLiquidIdleFalse() { + liquidLock.lock(); + try { + deviceStateService.setSolutionModuleStateIdle(false); + liquidIdleCondition.signalAll(); // 唤醒所有等待的线程 + } finally { + liquidLock.unlock(); + } + } /** * 释放加液区 */ diff --git a/src/main/resources/init/zapp_sub_module_reg_initial_value.csv b/src/main/resources/init/zapp_sub_module_reg_initial_value.csv new file mode 100644 index 0000000..10fc7aa --- /dev/null +++ b/src/main/resources/init/zapp_sub_module_reg_initial_value.csv @@ -0,0 +1,684 @@ +id,mid,regIndex,regInitVal +1,HBotClawSV,kreg_mini_servo_limit_velocity,10000 +2,HBotClawSV,kreg_mini_servo_limit_torque,300 +3,HBotClawSV,kreg_mini_servo_protective_torque,800 +4,HBotClawSV,kreg_mini_servo_target_pos_tolerance,15 +5,HBotClawSV,kreg_mini_servo_servo_min_angle,0 +6,HBotClawSV,kreg_mini_servo_servo_max_angle,4095 +7,HBotClawSV,kreg_mini_servo_servo_max_temp,70 +8,HBotClawSV,kreg_mini_servo_servo_max_voltage,254 +9,HBotClawSV,kreg_mini_servo_servo_min_voltage,90 +10,HBotClawSV,kreg_mini_servo_servo_max_torque,1000 +11,HBotClawSV,kreg_mini_servo_servo_unload_condition,44 +12,HBotClawSV,kreg_mini_servo_servo_protect_current,500 +13,HBotClawSV,kreg_mini_servo_servo_protect_torque,40 +14,HBotClawSV,kreg_mini_servo_servo_protect_time,200 +15,HBotClawSV,kreg_mini_servo_servo_overload_torque,40 +16,HBotClawSV,kreg_mini_servo_servo_acc,0 +17,DualRobotAxis1SV,kreg_mini_servo_limit_velocity,10000 +18,DualRobotAxis1SV,kreg_mini_servo_limit_torque,300 +19,DualRobotAxis1SV,kreg_mini_servo_protective_torque,800 +20,DualRobotAxis1SV,kreg_mini_servo_target_pos_tolerance,15 +21,DualRobotAxis1SV,kreg_mini_servo_servo_min_angle,0 +22,DualRobotAxis1SV,kreg_mini_servo_servo_max_angle,4095 +23,DualRobotAxis1SV,kreg_mini_servo_servo_max_temp,70 +24,DualRobotAxis1SV,kreg_mini_servo_servo_max_voltage,254 +25,DualRobotAxis1SV,kreg_mini_servo_servo_min_voltage,90 +26,DualRobotAxis1SV,kreg_mini_servo_servo_max_torque,1000 +27,DualRobotAxis1SV,kreg_mini_servo_servo_unload_condition,44 +28,DualRobotAxis1SV,kreg_mini_servo_servo_protect_current,500 +29,DualRobotAxis1SV,kreg_mini_servo_servo_protect_torque,20 +30,DualRobotAxis1SV,kreg_mini_servo_servo_protect_time,200 +31,DualRobotAxis1SV,kreg_mini_servo_servo_overload_torque,80 +32,DualRobotAxis1SV,kreg_mini_servo_servo_acc,0 +33,DualRobotAxis2SV,kreg_mini_servo_limit_velocity,10000 +34,DualRobotAxis2SV,kreg_mini_servo_limit_torque,300 +35,DualRobotAxis2SV,kreg_mini_servo_protective_torque,800 +36,DualRobotAxis2SV,kreg_mini_servo_target_pos_tolerance,15 +37,DualRobotAxis2SV,kreg_mini_servo_servo_min_angle,0 +38,DualRobotAxis2SV,kreg_mini_servo_servo_max_angle,4095 +39,DualRobotAxis2SV,kreg_mini_servo_servo_max_temp,70 +40,DualRobotAxis2SV,kreg_mini_servo_servo_max_voltage,254 +41,DualRobotAxis2SV,kreg_mini_servo_servo_min_voltage,90 +42,DualRobotAxis2SV,kreg_mini_servo_servo_max_torque,1000 +43,DualRobotAxis2SV,kreg_mini_servo_servo_unload_condition,44 +44,DualRobotAxis2SV,kreg_mini_servo_servo_protect_current,500 +45,DualRobotAxis2SV,kreg_mini_servo_servo_protect_torque,30 +46,DualRobotAxis2SV,kreg_mini_servo_servo_protect_time,200 +47,DualRobotAxis2SV,kreg_mini_servo_servo_overload_torque,80 +48,DualRobotAxis2SV,kreg_mini_servo_servo_acc,0 +49,LiquidDistributionArm,kreg_liquid_distribution_arm_enable,1 +50,LiquidDistributionArm,kreg_liquid_distribution_arm_pos0_d0,1800 +51,LiquidDistributionArm,kreg_liquid_distribution_arm_pos0_d1,1800 +52,LiquidDistributionArm,kreg_liquid_distribution_arm_pos1_d0,1799 +53,LiquidDistributionArm,kreg_liquid_distribution_arm_pos1_d1,2100 +54,LiquidDistributionArm,kreg_liquid_distribution_arm_pos2_d0,0 +55,LiquidDistributionArm,kreg_liquid_distribution_arm_pos2_d1,0 +56,LiquidDistributionArm,kreg_liquid_distribution_arm_pos3_d0,0 +57,LiquidDistributionArm,kreg_liquid_distribution_arm_pos3_d1,0 +58,LiquidDistributionArm,kreg_liquid_distribution_arm_pos4_d0,0 +59,LiquidDistributionArm,kreg_liquid_distribution_arm_pos4_d1,0 +60,LiquidDistributionArm,kreg_liquid_distribution_arm_pos5_d0,0 +61,LiquidDistributionArm,kreg_liquid_distribution_arm_pos5_d1,0 +62,LiquidDistributionArm,kreg_liquid_distribution_arm_pos6_d0,0 +63,LiquidDistributionArm,kreg_liquid_distribution_arm_pos6_d1,0 +64,LiquidDistributionArm,kreg_liquid_distribution_arm_pos7_d0,0 +65,LiquidDistributionArm,kreg_liquid_distribution_arm_pos7_d1,0 +66,LiquidDistributionArm,kreg_liquid_distribution_arm_pos8_d0,0 +67,LiquidDistributionArm,kreg_liquid_distribution_arm_pos8_d1,0 +68,LiquidDistributionArm,kreg_liquid_distribution_arm_pos9_d0,0 +69,LiquidDistributionArm,kreg_liquid_distribution_arm_pos9_d1,0 +70,LiquidDistributionArm,kreg_liquid_distribution_arm_pos10_d0,0 +71,LiquidDistributionArm,kreg_liquid_distribution_arm_pos10_d1,0 +72,LiquidDistributionArm,kreg_liquid_distribution_arm_pos11_d0,0 +73,LiquidDistributionArm,kreg_liquid_distribution_arm_pos11_d1,0 +74,LiquidDistributionArm,kreg_liquid_distribution_arm_pos12_d0,0 +75,LiquidDistributionArm,kreg_liquid_distribution_arm_pos12_d1,0 +76,LiquidDistributionArm,kreg_liquid_distribution_arm_pos13_d0,0 +77,LiquidDistributionArm,kreg_liquid_distribution_arm_pos13_d1,0 +78,LiquidDistributionArm,kreg_liquid_distribution_arm_pos14_d0,0 +79,LiquidDistributionArm,kreg_liquid_distribution_arm_pos14_d1,0 +80,LiquidDistributionArm,kreg_liquid_distribution_arm_pos15_d0,0 +81,LiquidDistributionArm,kreg_liquid_distribution_arm_pos15_d1,0 +82,LiquidDistributionArm,kreg_liquid_distribution_arm_pos16_d0,0 +83,LiquidDistributionArm,kreg_liquid_distribution_arm_pos16_d1,0 +84,DoorM,kreg_step_motor_shaft,1 +85,DoorM,kreg_step_motor_one_circle_pulse,10000 +86,DoorM,kreg_step_motor_one_circle_pulse_denominator,1 +87,DoorM,kreg_step_motor_default_velocity,500 +88,DoorM,kreg_step_motor_low_velocity,0 +89,DoorM,kreg_step_motor_mid_velocity,0 +90,DoorM,kreg_step_motor_high_velocity,0 +91,DoorM,kreg_step_motor_ihold,5 +92,DoorM,kreg_step_motor_irun,15 +93,DoorM,kreg_step_motor_iholddelay,10 +94,DoorM,kreg_step_motor_iglobalscaler,0 +95,DoorM,kreg_step_motor_mres,0 +96,DoorM,kreg_step_motor_run_to_zero_speed,100 +97,DoorM,kreg_step_motor_look_zero_edge_speed,100 +98,DoorM,kreg_step_motor_max_d,0 +99,DoorM,kreg_step_motor_min_d,0 +100,DoorM,kreg_step_motor_in_debug_mode,0 +101,DoorM,kreg_step_motor_vstart,100 +102,DoorM,kreg_step_motor_a1,50 +103,DoorM,kreg_step_motor_amax,100 +104,DoorM,kreg_step_motor_v1,300 +105,DoorM,kreg_step_motor_dmax,100 +106,DoorM,kreg_step_motor_d1,50 +107,DoorM,kreg_step_motor_vstop,100 +108,DoorM,kreg_step_motor_tzerowait,0 +109,DoorM,kreg_step_motor_enc_resolution,0 +110,DoorM,kreg_step_motor_enable_enc,0 +111,DoorM,kreg_step_motor_dzero_pos,0 +112,DoorM,kret_step_motor_pos_devi_tolerance,0 +113,DoorM,kret_step_motor_io_trigger_append_distance,0 +114,ShakeM,kreg_step_motor_shaft,1 +115,ShakeM,kreg_step_motor_one_circle_pulse,10000 +116,ShakeM,kreg_step_motor_one_circle_pulse_denominator,1 +117,ShakeM,kreg_step_motor_default_velocity,500 +118,ShakeM,kreg_step_motor_low_velocity,0 +119,ShakeM,kreg_step_motor_mid_velocity,0 +120,ShakeM,kreg_step_motor_high_velocity,0 +121,ShakeM,kreg_step_motor_ihold,5 +122,ShakeM,kreg_step_motor_irun,10 +123,ShakeM,kreg_step_motor_iholddelay,10 +124,ShakeM,kreg_step_motor_iglobalscaler,0 +125,ShakeM,kreg_step_motor_mres,0 +126,ShakeM,kreg_step_motor_run_to_zero_speed,100 +127,ShakeM,kreg_step_motor_look_zero_edge_speed,100 +128,ShakeM,kreg_step_motor_max_d,0 +129,ShakeM,kreg_step_motor_min_d,0 +130,ShakeM,kreg_step_motor_in_debug_mode,0 +131,ShakeM,kreg_step_motor_vstart,100 +132,ShakeM,kreg_step_motor_a1,50 +133,ShakeM,kreg_step_motor_amax,100 +134,ShakeM,kreg_step_motor_v1,300 +135,ShakeM,kreg_step_motor_dmax,100 +136,ShakeM,kreg_step_motor_d1,50 +137,ShakeM,kreg_step_motor_vstop,100 +138,ShakeM,kreg_step_motor_tzerowait,0 +139,ShakeM,kreg_step_motor_enc_resolution,0 +140,ShakeM,kreg_step_motor_enable_enc,0 +141,ShakeM,kreg_step_motor_dzero_pos,0 +142,ShakeM,kret_step_motor_pos_devi_tolerance,0 +143,ShakeM,kret_step_motor_io_trigger_append_distance,0 +144,CapStorageM,kreg_step_motor_shaft,1 +145,CapStorageM,kreg_step_motor_one_circle_pulse,10000 +146,CapStorageM,kreg_step_motor_one_circle_pulse_denominator,5 +147,CapStorageM,kreg_step_motor_default_velocity,500 +148,CapStorageM,kreg_step_motor_low_velocity,0 +149,CapStorageM,kreg_step_motor_mid_velocity,0 +150,CapStorageM,kreg_step_motor_high_velocity,0 +151,CapStorageM,kreg_step_motor_ihold,5 +152,CapStorageM,kreg_step_motor_irun,10 +153,CapStorageM,kreg_step_motor_iholddelay,10 +154,CapStorageM,kreg_step_motor_iglobalscaler,0 +155,CapStorageM,kreg_step_motor_mres,0 +156,CapStorageM,kreg_step_motor_run_to_zero_speed,100 +157,CapStorageM,kreg_step_motor_look_zero_edge_speed,100 +158,CapStorageM,kreg_step_motor_max_d,0 +159,CapStorageM,kreg_step_motor_min_d,0 +160,CapStorageM,kreg_step_motor_in_debug_mode,0 +161,CapStorageM,kreg_step_motor_vstart,100 +162,CapStorageM,kreg_step_motor_a1,50 +163,CapStorageM,kreg_step_motor_amax,100 +164,CapStorageM,kreg_step_motor_v1,300 +165,CapStorageM,kreg_step_motor_dmax,100 +166,CapStorageM,kreg_step_motor_d1,50 +167,CapStorageM,kreg_step_motor_vstop,100 +168,CapStorageM,kreg_step_motor_tzerowait,0 +169,CapStorageM,kreg_step_motor_enc_resolution,0 +170,CapStorageM,kreg_step_motor_enable_enc,0 +171,CapStorageM,kreg_step_motor_dzero_pos,0 +172,CapStorageM,kret_step_motor_pos_devi_tolerance,0 +173,CapStorageM,kret_step_motor_io_trigger_append_distance,0 +174,HBotXM,kreg_step_motor_shaft,1 +175,HBotXM,kreg_step_motor_one_circle_pulse,10000 +176,HBotXM,kreg_step_motor_one_circle_pulse_denominator,5 +177,HBotXM,kreg_step_motor_default_velocity,500 +178,HBotXM,kreg_step_motor_low_velocity,0 +179,HBotXM,kreg_step_motor_mid_velocity,0 +180,HBotXM,kreg_step_motor_high_velocity,0 +181,HBotXM,kreg_step_motor_ihold,5 +182,HBotXM,kreg_step_motor_irun,30 +183,HBotXM,kreg_step_motor_iholddelay,10 +184,HBotXM,kreg_step_motor_iglobalscaler,0 +185,HBotXM,kreg_step_motor_mres,0 +186,HBotXM,kreg_step_motor_run_to_zero_speed,100 +187,HBotXM,kreg_step_motor_look_zero_edge_speed,100 +188,HBotXM,kreg_step_motor_max_d,0 +189,HBotXM,kreg_step_motor_min_d,0 +190,HBotXM,kreg_step_motor_in_debug_mode,0 +191,HBotXM,kreg_step_motor_vstart,100 +192,HBotXM,kreg_step_motor_a1,50 +193,HBotXM,kreg_step_motor_amax,100 +194,HBotXM,kreg_step_motor_v1,300 +195,HBotXM,kreg_step_motor_dmax,100 +196,HBotXM,kreg_step_motor_d1,50 +197,HBotXM,kreg_step_motor_vstop,100 +198,HBotXM,kreg_step_motor_tzerowait,0 +199,HBotXM,kreg_step_motor_enc_resolution,0 +200,HBotXM,kreg_step_motor_enable_enc,0 +201,HBotXM,kreg_step_motor_dzero_pos,0 +202,HBotXM,kret_step_motor_pos_devi_tolerance,0 +203,HBotXM,kret_step_motor_io_trigger_append_distance,0 +204,HBotYM,kreg_step_motor_shaft,1 +205,HBotYM,kreg_step_motor_one_circle_pulse,10000 +206,HBotYM,kreg_step_motor_one_circle_pulse_denominator,4 +207,HBotYM,kreg_step_motor_default_velocity,500 +208,HBotYM,kreg_step_motor_low_velocity,0 +209,HBotYM,kreg_step_motor_mid_velocity,0 +210,HBotYM,kreg_step_motor_high_velocity,0 +211,HBotYM,kreg_step_motor_ihold,5 +212,HBotYM,kreg_step_motor_irun,20 +213,HBotYM,kreg_step_motor_iholddelay,10 +214,HBotYM,kreg_step_motor_iglobalscaler,0 +215,HBotYM,kreg_step_motor_mres,0 +216,HBotYM,kreg_step_motor_run_to_zero_speed,100 +217,HBotYM,kreg_step_motor_look_zero_edge_speed,100 +218,HBotYM,kreg_step_motor_max_d,0 +219,HBotYM,kreg_step_motor_min_d,0 +220,HBotYM,kreg_step_motor_in_debug_mode,0 +221,HBotYM,kreg_step_motor_vstart,100 +222,HBotYM,kreg_step_motor_a1,50 +223,HBotYM,kreg_step_motor_amax,100 +224,HBotYM,kreg_step_motor_v1,300 +225,HBotYM,kreg_step_motor_dmax,100 +226,HBotYM,kreg_step_motor_d1,50 +227,HBotYM,kreg_step_motor_vstop,100 +228,HBotYM,kreg_step_motor_tzerowait,0 +229,HBotYM,kreg_step_motor_enc_resolution,0 +230,HBotYM,kreg_step_motor_enable_enc,0 +231,HBotYM,kreg_step_motor_dzero_pos,0 +232,HBotYM,kret_step_motor_pos_devi_tolerance,0 +233,HBotYM,kret_step_motor_io_trigger_append_distance,0 +234,HBotZM,kreg_step_motor_shaft,1 +235,HBotZM,kreg_step_motor_one_circle_pulse,10000 +236,HBotZM,kreg_step_motor_one_circle_pulse_denominator,5 +237,HBotZM,kreg_step_motor_default_velocity,500 +238,HBotZM,kreg_step_motor_low_velocity,0 +239,HBotZM,kreg_step_motor_mid_velocity,0 +240,HBotZM,kreg_step_motor_high_velocity,0 +241,HBotZM,kreg_step_motor_ihold,5 +242,HBotZM,kreg_step_motor_irun,15 +243,HBotZM,kreg_step_motor_iholddelay,10 +244,HBotZM,kreg_step_motor_iglobalscaler,0 +245,HBotZM,kreg_step_motor_mres,0 +246,HBotZM,kreg_step_motor_run_to_zero_speed,100 +247,HBotZM,kreg_step_motor_look_zero_edge_speed,100 +248,HBotZM,kreg_step_motor_max_d,0 +249,HBotZM,kreg_step_motor_min_d,0 +250,HBotZM,kreg_step_motor_in_debug_mode,0 +251,HBotZM,kreg_step_motor_vstart,100 +252,HBotZM,kreg_step_motor_a1,50 +253,HBotZM,kreg_step_motor_amax,100 +254,HBotZM,kreg_step_motor_v1,300 +255,HBotZM,kreg_step_motor_dmax,100 +256,HBotZM,kreg_step_motor_d1,50 +257,HBotZM,kreg_step_motor_vstop,100 +258,HBotZM,kreg_step_motor_tzerowait,0 +259,HBotZM,kreg_step_motor_enc_resolution,0 +260,HBotZM,kreg_step_motor_enable_enc,0 +261,HBotZM,kreg_step_motor_dzero_pos,0 +262,HBotZM,kret_step_motor_pos_devi_tolerance,0 +263,HBotZM,kret_step_motor_io_trigger_append_distance,0 +264,Heater1M,kreg_step_motor_shaft,1 +265,Heater1M,kreg_step_motor_one_circle_pulse,10000 +266,Heater1M,kreg_step_motor_one_circle_pulse_denominator,4 +267,Heater1M,kreg_step_motor_default_velocity,500 +268,Heater1M,kreg_step_motor_low_velocity,0 +269,Heater1M,kreg_step_motor_mid_velocity,0 +270,Heater1M,kreg_step_motor_high_velocity,0 +271,Heater1M,kreg_step_motor_ihold,5 +272,Heater1M,kreg_step_motor_irun,10 +273,Heater1M,kreg_step_motor_iholddelay,10 +274,Heater1M,kreg_step_motor_iglobalscaler,0 +275,Heater1M,kreg_step_motor_mres,0 +276,Heater1M,kreg_step_motor_run_to_zero_speed,100 +277,Heater1M,kreg_step_motor_look_zero_edge_speed,100 +278,Heater1M,kreg_step_motor_max_d,0 +279,Heater1M,kreg_step_motor_min_d,0 +280,Heater1M,kreg_step_motor_in_debug_mode,0 +281,Heater1M,kreg_step_motor_vstart,100 +282,Heater1M,kreg_step_motor_a1,50 +283,Heater1M,kreg_step_motor_amax,100 +284,Heater1M,kreg_step_motor_v1,300 +285,Heater1M,kreg_step_motor_dmax,100 +286,Heater1M,kreg_step_motor_d1,50 +287,Heater1M,kreg_step_motor_vstop,100 +288,Heater1M,kreg_step_motor_tzerowait,0 +289,Heater1M,kreg_step_motor_enc_resolution,0 +290,Heater1M,kreg_step_motor_enable_enc,0 +291,Heater1M,kreg_step_motor_dzero_pos,0 +292,Heater1M,kret_step_motor_pos_devi_tolerance,0 +293,Heater1M,kret_step_motor_io_trigger_append_distance,0 +294,Heater2M,kreg_step_motor_shaft,1 +295,Heater2M,kreg_step_motor_one_circle_pulse,10000 +296,Heater2M,kreg_step_motor_one_circle_pulse_denominator,4 +297,Heater2M,kreg_step_motor_default_velocity,500 +298,Heater2M,kreg_step_motor_low_velocity,0 +299,Heater2M,kreg_step_motor_mid_velocity,0 +300,Heater2M,kreg_step_motor_high_velocity,0 +301,Heater2M,kreg_step_motor_ihold,5 +302,Heater2M,kreg_step_motor_irun,10 +303,Heater2M,kreg_step_motor_iholddelay,10 +304,Heater2M,kreg_step_motor_iglobalscaler,0 +305,Heater2M,kreg_step_motor_mres,0 +306,Heater2M,kreg_step_motor_run_to_zero_speed,100 +307,Heater2M,kreg_step_motor_look_zero_edge_speed,100 +308,Heater2M,kreg_step_motor_max_d,0 +309,Heater2M,kreg_step_motor_min_d,0 +310,Heater2M,kreg_step_motor_in_debug_mode,0 +311,Heater2M,kreg_step_motor_vstart,100 +312,Heater2M,kreg_step_motor_a1,50 +313,Heater2M,kreg_step_motor_amax,100 +314,Heater2M,kreg_step_motor_v1,300 +315,Heater2M,kreg_step_motor_dmax,100 +316,Heater2M,kreg_step_motor_d1,50 +317,Heater2M,kreg_step_motor_vstop,100 +318,Heater2M,kreg_step_motor_tzerowait,0 +319,Heater2M,kreg_step_motor_enc_resolution,0 +320,Heater2M,kreg_step_motor_enable_enc,0 +321,Heater2M,kreg_step_motor_dzero_pos,0 +322,Heater2M,kret_step_motor_pos_devi_tolerance,0 +323,Heater2M,kret_step_motor_io_trigger_append_distance,0 +324,Heater3M,kreg_step_motor_shaft,1 +325,Heater3M,kreg_step_motor_one_circle_pulse,10000 +326,Heater3M,kreg_step_motor_one_circle_pulse_denominator,4 +327,Heater3M,kreg_step_motor_default_velocity,500 +328,Heater3M,kreg_step_motor_low_velocity,0 +329,Heater3M,kreg_step_motor_mid_velocity,0 +330,Heater3M,kreg_step_motor_high_velocity,0 +331,Heater3M,kreg_step_motor_ihold,5 +332,Heater3M,kreg_step_motor_irun,10 +333,Heater3M,kreg_step_motor_iholddelay,10 +334,Heater3M,kreg_step_motor_iglobalscaler,0 +335,Heater3M,kreg_step_motor_mres,0 +336,Heater3M,kreg_step_motor_run_to_zero_speed,100 +337,Heater3M,kreg_step_motor_look_zero_edge_speed,100 +338,Heater3M,kreg_step_motor_max_d,0 +339,Heater3M,kreg_step_motor_min_d,0 +340,Heater3M,kreg_step_motor_in_debug_mode,0 +341,Heater3M,kreg_step_motor_vstart,100 +342,Heater3M,kreg_step_motor_a1,50 +343,Heater3M,kreg_step_motor_amax,100 +344,Heater3M,kreg_step_motor_v1,300 +345,Heater3M,kreg_step_motor_dmax,100 +346,Heater3M,kreg_step_motor_d1,50 +347,Heater3M,kreg_step_motor_vstop,100 +348,Heater3M,kreg_step_motor_tzerowait,0 +349,Heater3M,kreg_step_motor_enc_resolution,0 +350,Heater3M,kreg_step_motor_enable_enc,0 +351,Heater3M,kreg_step_motor_dzero_pos,0 +352,Heater3M,kret_step_motor_pos_devi_tolerance,0 +353,Heater3M,kret_step_motor_io_trigger_append_distance,0 +354,Heater4M,kreg_step_motor_shaft,1 +355,Heater4M,kreg_step_motor_one_circle_pulse,10000 +356,Heater4M,kreg_step_motor_one_circle_pulse_denominator,4 +357,Heater4M,kreg_step_motor_default_velocity,500 +358,Heater4M,kreg_step_motor_low_velocity,0 +359,Heater4M,kreg_step_motor_mid_velocity,0 +360,Heater4M,kreg_step_motor_high_velocity,0 +361,Heater4M,kreg_step_motor_ihold,5 +362,Heater4M,kreg_step_motor_irun,10 +363,Heater4M,kreg_step_motor_iholddelay,10 +364,Heater4M,kreg_step_motor_iglobalscaler,0 +365,Heater4M,kreg_step_motor_mres,0 +366,Heater4M,kreg_step_motor_run_to_zero_speed,100 +367,Heater4M,kreg_step_motor_look_zero_edge_speed,100 +368,Heater4M,kreg_step_motor_max_d,0 +369,Heater4M,kreg_step_motor_min_d,0 +370,Heater4M,kreg_step_motor_in_debug_mode,0 +371,Heater4M,kreg_step_motor_vstart,100 +372,Heater4M,kreg_step_motor_a1,50 +373,Heater4M,kreg_step_motor_amax,100 +374,Heater4M,kreg_step_motor_v1,300 +375,Heater4M,kreg_step_motor_dmax,100 +376,Heater4M,kreg_step_motor_d1,50 +377,Heater4M,kreg_step_motor_vstop,100 +378,Heater4M,kreg_step_motor_tzerowait,0 +379,Heater4M,kreg_step_motor_enc_resolution,0 +380,Heater4M,kreg_step_motor_enable_enc,0 +381,Heater4M,kreg_step_motor_dzero_pos,0 +382,Heater4M,kret_step_motor_pos_devi_tolerance,0 +383,Heater4M,kret_step_motor_io_trigger_append_distance,0 +384,Heater5M,kreg_step_motor_shaft,1 +385,Heater5M,kreg_step_motor_one_circle_pulse,10000 +386,Heater5M,kreg_step_motor_one_circle_pulse_denominator,4 +387,Heater5M,kreg_step_motor_default_velocity,500 +388,Heater5M,kreg_step_motor_low_velocity,0 +389,Heater5M,kreg_step_motor_mid_velocity,0 +390,Heater5M,kreg_step_motor_high_velocity,0 +391,Heater5M,kreg_step_motor_ihold,5 +392,Heater5M,kreg_step_motor_irun,10 +393,Heater5M,kreg_step_motor_iholddelay,10 +394,Heater5M,kreg_step_motor_iglobalscaler,0 +395,Heater5M,kreg_step_motor_mres,0 +396,Heater5M,kreg_step_motor_run_to_zero_speed,100 +397,Heater5M,kreg_step_motor_look_zero_edge_speed,100 +398,Heater5M,kreg_step_motor_max_d,0 +399,Heater5M,kreg_step_motor_min_d,0 +400,Heater5M,kreg_step_motor_in_debug_mode,0 +401,Heater5M,kreg_step_motor_vstart,100 +402,Heater5M,kreg_step_motor_a1,50 +403,Heater5M,kreg_step_motor_amax,100 +404,Heater5M,kreg_step_motor_v1,300 +405,Heater5M,kreg_step_motor_dmax,100 +406,Heater5M,kreg_step_motor_d1,50 +407,Heater5M,kreg_step_motor_vstop,100 +408,Heater5M,kreg_step_motor_tzerowait,0 +409,Heater5M,kreg_step_motor_enc_resolution,0 +410,Heater5M,kreg_step_motor_enable_enc,0 +411,Heater5M,kreg_step_motor_dzero_pos,0 +412,Heater5M,kret_step_motor_pos_devi_tolerance,0 +413,Heater5M,kret_step_motor_io_trigger_append_distance,0 +414,Heater6M,kreg_step_motor_shaft,1 +415,Heater6M,kreg_step_motor_one_circle_pulse,10000 +416,Heater6M,kreg_step_motor_one_circle_pulse_denominator,4 +417,Heater6M,kreg_step_motor_default_velocity,500 +418,Heater6M,kreg_step_motor_low_velocity,0 +419,Heater6M,kreg_step_motor_mid_velocity,0 +420,Heater6M,kreg_step_motor_high_velocity,0 +421,Heater6M,kreg_step_motor_ihold,5 +422,Heater6M,kreg_step_motor_irun,10 +423,Heater6M,kreg_step_motor_iholddelay,10 +424,Heater6M,kreg_step_motor_iglobalscaler,0 +425,Heater6M,kreg_step_motor_mres,0 +426,Heater6M,kreg_step_motor_run_to_zero_speed,100 +427,Heater6M,kreg_step_motor_look_zero_edge_speed,100 +428,Heater6M,kreg_step_motor_max_d,0 +429,Heater6M,kreg_step_motor_min_d,0 +430,Heater6M,kreg_step_motor_in_debug_mode,0 +431,Heater6M,kreg_step_motor_vstart,100 +432,Heater6M,kreg_step_motor_a1,50 +433,Heater6M,kreg_step_motor_amax,100 +434,Heater6M,kreg_step_motor_v1,300 +435,Heater6M,kreg_step_motor_dmax,100 +436,Heater6M,kreg_step_motor_d1,50 +437,Heater6M,kreg_step_motor_vstop,100 +438,Heater6M,kreg_step_motor_tzerowait,0 +439,Heater6M,kreg_step_motor_enc_resolution,0 +440,Heater6M,kreg_step_motor_enable_enc,0 +441,Heater6M,kreg_step_motor_dzero_pos,0 +442,Heater6M,kret_step_motor_pos_devi_tolerance,0 +443,Heater6M,kret_step_motor_io_trigger_append_distance,0 +444,AcidPump1M,kreg_step_motor_shaft,1 +445,AcidPump1M,kreg_step_motor_one_circle_pulse,10000 +446,AcidPump1M,kreg_step_motor_one_circle_pulse_denominator,1 +447,AcidPump1M,kreg_step_motor_default_velocity,500 +448,AcidPump1M,kreg_step_motor_low_velocity,0 +449,AcidPump1M,kreg_step_motor_mid_velocity,0 +450,AcidPump1M,kreg_step_motor_high_velocity,0 +451,AcidPump1M,kreg_step_motor_ihold,5 +452,AcidPump1M,kreg_step_motor_irun,10 +453,AcidPump1M,kreg_step_motor_iholddelay,10 +454,AcidPump1M,kreg_step_motor_iglobalscaler,0 +455,AcidPump1M,kreg_step_motor_mres,0 +456,AcidPump1M,kreg_step_motor_run_to_zero_speed,100 +457,AcidPump1M,kreg_step_motor_look_zero_edge_speed,100 +458,AcidPump1M,kreg_step_motor_max_d,0 +459,AcidPump1M,kreg_step_motor_min_d,0 +460,AcidPump1M,kreg_step_motor_in_debug_mode,0 +461,AcidPump1M,kreg_step_motor_vstart,100 +462,AcidPump1M,kreg_step_motor_a1,50 +463,AcidPump1M,kreg_step_motor_amax,100 +464,AcidPump1M,kreg_step_motor_v1,300 +465,AcidPump1M,kreg_step_motor_dmax,100 +466,AcidPump1M,kreg_step_motor_d1,50 +467,AcidPump1M,kreg_step_motor_vstop,100 +468,AcidPump1M,kreg_step_motor_tzerowait,0 +469,AcidPump1M,kreg_step_motor_enc_resolution,0 +470,AcidPump1M,kreg_step_motor_enable_enc,0 +471,AcidPump1M,kreg_step_motor_dzero_pos,0 +472,AcidPump1M,kret_step_motor_pos_devi_tolerance,0 +473,AcidPump1M,kret_step_motor_io_trigger_append_distance,0 +474,AcidPump2M,kreg_step_motor_shaft,1 +475,AcidPump2M,kreg_step_motor_one_circle_pulse,10000 +476,AcidPump2M,kreg_step_motor_one_circle_pulse_denominator,1 +477,AcidPump2M,kreg_step_motor_default_velocity,500 +478,AcidPump2M,kreg_step_motor_low_velocity,0 +479,AcidPump2M,kreg_step_motor_mid_velocity,0 +480,AcidPump2M,kreg_step_motor_high_velocity,0 +481,AcidPump2M,kreg_step_motor_ihold,5 +482,AcidPump2M,kreg_step_motor_irun,10 +483,AcidPump2M,kreg_step_motor_iholddelay,10 +484,AcidPump2M,kreg_step_motor_iglobalscaler,0 +485,AcidPump2M,kreg_step_motor_mres,0 +486,AcidPump2M,kreg_step_motor_run_to_zero_speed,100 +487,AcidPump2M,kreg_step_motor_look_zero_edge_speed,100 +488,AcidPump2M,kreg_step_motor_max_d,0 +489,AcidPump2M,kreg_step_motor_min_d,0 +490,AcidPump2M,kreg_step_motor_in_debug_mode,0 +491,AcidPump2M,kreg_step_motor_vstart,100 +492,AcidPump2M,kreg_step_motor_a1,50 +493,AcidPump2M,kreg_step_motor_amax,100 +494,AcidPump2M,kreg_step_motor_v1,300 +495,AcidPump2M,kreg_step_motor_dmax,100 +496,AcidPump2M,kreg_step_motor_d1,50 +497,AcidPump2M,kreg_step_motor_vstop,100 +498,AcidPump2M,kreg_step_motor_tzerowait,0 +499,AcidPump2M,kreg_step_motor_enc_resolution,0 +500,AcidPump2M,kreg_step_motor_enable_enc,0 +501,AcidPump2M,kreg_step_motor_dzero_pos,0 +502,AcidPump2M,kret_step_motor_pos_devi_tolerance,0 +503,AcidPump2M,kret_step_motor_io_trigger_append_distance,0 +504,AcidPump3M,kreg_step_motor_shaft,1 +505,AcidPump3M,kreg_step_motor_one_circle_pulse,10000 +506,AcidPump3M,kreg_step_motor_one_circle_pulse_denominator,1 +507,AcidPump3M,kreg_step_motor_default_velocity,500 +508,AcidPump3M,kreg_step_motor_low_velocity,0 +509,AcidPump3M,kreg_step_motor_mid_velocity,0 +510,AcidPump3M,kreg_step_motor_high_velocity,0 +511,AcidPump3M,kreg_step_motor_ihold,5 +512,AcidPump3M,kreg_step_motor_irun,10 +513,AcidPump3M,kreg_step_motor_iholddelay,10 +514,AcidPump3M,kreg_step_motor_iglobalscaler,0 +515,AcidPump3M,kreg_step_motor_mres,0 +516,AcidPump3M,kreg_step_motor_run_to_zero_speed,100 +517,AcidPump3M,kreg_step_motor_look_zero_edge_speed,100 +518,AcidPump3M,kreg_step_motor_max_d,0 +519,AcidPump3M,kreg_step_motor_min_d,0 +520,AcidPump3M,kreg_step_motor_in_debug_mode,0 +521,AcidPump3M,kreg_step_motor_vstart,100 +522,AcidPump3M,kreg_step_motor_a1,50 +523,AcidPump3M,kreg_step_motor_amax,100 +524,AcidPump3M,kreg_step_motor_v1,300 +525,AcidPump3M,kreg_step_motor_dmax,100 +526,AcidPump3M,kreg_step_motor_d1,50 +527,AcidPump3M,kreg_step_motor_vstop,100 +528,AcidPump3M,kreg_step_motor_tzerowait,0 +529,AcidPump3M,kreg_step_motor_enc_resolution,0 +530,AcidPump3M,kreg_step_motor_enable_enc,0 +531,AcidPump3M,kreg_step_motor_dzero_pos,0 +532,AcidPump3M,kret_step_motor_pos_devi_tolerance,0 +533,AcidPump3M,kret_step_motor_io_trigger_append_distance,0 +534,AcidPump4M,kreg_step_motor_shaft,1 +535,AcidPump4M,kreg_step_motor_one_circle_pulse,10000 +536,AcidPump4M,kreg_step_motor_one_circle_pulse_denominator,1 +537,AcidPump4M,kreg_step_motor_default_velocity,500 +538,AcidPump4M,kreg_step_motor_low_velocity,0 +539,AcidPump4M,kreg_step_motor_mid_velocity,0 +540,AcidPump4M,kreg_step_motor_high_velocity,0 +541,AcidPump4M,kreg_step_motor_ihold,5 +542,AcidPump4M,kreg_step_motor_irun,10 +543,AcidPump4M,kreg_step_motor_iholddelay,10 +544,AcidPump4M,kreg_step_motor_iglobalscaler,0 +545,AcidPump4M,kreg_step_motor_mres,0 +546,AcidPump4M,kreg_step_motor_run_to_zero_speed,100 +547,AcidPump4M,kreg_step_motor_look_zero_edge_speed,100 +548,AcidPump4M,kreg_step_motor_max_d,0 +549,AcidPump4M,kreg_step_motor_min_d,0 +550,AcidPump4M,kreg_step_motor_in_debug_mode,0 +551,AcidPump4M,kreg_step_motor_vstart,100 +552,AcidPump4M,kreg_step_motor_a1,50 +553,AcidPump4M,kreg_step_motor_amax,100 +554,AcidPump4M,kreg_step_motor_v1,300 +555,AcidPump4M,kreg_step_motor_dmax,100 +556,AcidPump4M,kreg_step_motor_d1,50 +557,AcidPump4M,kreg_step_motor_vstop,100 +558,AcidPump4M,kreg_step_motor_tzerowait,0 +559,AcidPump4M,kreg_step_motor_enc_resolution,0 +560,AcidPump4M,kreg_step_motor_enable_enc,0 +561,AcidPump4M,kreg_step_motor_dzero_pos,0 +562,AcidPump4M,kret_step_motor_pos_devi_tolerance,0 +563,AcidPump4M,kret_step_motor_io_trigger_append_distance,0 +564,AcidPump5M,kreg_step_motor_shaft,1 +565,AcidPump5M,kreg_step_motor_one_circle_pulse,10000 +566,AcidPump5M,kreg_step_motor_one_circle_pulse_denominator,1 +567,AcidPump5M,kreg_step_motor_default_velocity,500 +568,AcidPump5M,kreg_step_motor_low_velocity,0 +569,AcidPump5M,kreg_step_motor_mid_velocity,0 +570,AcidPump5M,kreg_step_motor_high_velocity,0 +571,AcidPump5M,kreg_step_motor_ihold,5 +572,AcidPump5M,kreg_step_motor_irun,10 +573,AcidPump5M,kreg_step_motor_iholddelay,10 +574,AcidPump5M,kreg_step_motor_iglobalscaler,0 +575,AcidPump5M,kreg_step_motor_mres,0 +576,AcidPump5M,kreg_step_motor_run_to_zero_speed,100 +577,AcidPump5M,kreg_step_motor_look_zero_edge_speed,100 +578,AcidPump5M,kreg_step_motor_max_d,0 +579,AcidPump5M,kreg_step_motor_min_d,0 +580,AcidPump5M,kreg_step_motor_in_debug_mode,0 +581,AcidPump5M,kreg_step_motor_vstart,100 +582,AcidPump5M,kreg_step_motor_a1,50 +583,AcidPump5M,kreg_step_motor_amax,100 +584,AcidPump5M,kreg_step_motor_v1,300 +585,AcidPump5M,kreg_step_motor_dmax,100 +586,AcidPump5M,kreg_step_motor_d1,50 +587,AcidPump5M,kreg_step_motor_vstop,100 +588,AcidPump5M,kreg_step_motor_tzerowait,0 +589,AcidPump5M,kreg_step_motor_enc_resolution,0 +590,AcidPump5M,kreg_step_motor_enable_enc,0 +591,AcidPump5M,kreg_step_motor_dzero_pos,0 +592,AcidPump5M,kret_step_motor_pos_devi_tolerance,0 +593,AcidPump5M,kret_step_motor_io_trigger_append_distance,0 +594,AcidPump6M,kreg_step_motor_shaft,1 +595,AcidPump6M,kreg_step_motor_one_circle_pulse,10000 +596,AcidPump6M,kreg_step_motor_one_circle_pulse_denominator,1 +597,AcidPump6M,kreg_step_motor_default_velocity,500 +598,AcidPump6M,kreg_step_motor_low_velocity,0 +599,AcidPump6M,kreg_step_motor_mid_velocity,0 +600,AcidPump6M,kreg_step_motor_high_velocity,0 +601,AcidPump6M,kreg_step_motor_ihold,5 +602,AcidPump6M,kreg_step_motor_irun,10 +603,AcidPump6M,kreg_step_motor_iholddelay,10 +604,AcidPump6M,kreg_step_motor_iglobalscaler,0 +605,AcidPump6M,kreg_step_motor_mres,0 +606,AcidPump6M,kreg_step_motor_run_to_zero_speed,100 +607,AcidPump6M,kreg_step_motor_look_zero_edge_speed,100 +608,AcidPump6M,kreg_step_motor_max_d,0 +609,AcidPump6M,kreg_step_motor_min_d,0 +610,AcidPump6M,kreg_step_motor_in_debug_mode,0 +611,AcidPump6M,kreg_step_motor_vstart,100 +612,AcidPump6M,kreg_step_motor_a1,50 +613,AcidPump6M,kreg_step_motor_amax,100 +614,AcidPump6M,kreg_step_motor_v1,300 +615,AcidPump6M,kreg_step_motor_dmax,100 +616,AcidPump6M,kreg_step_motor_d1,50 +617,AcidPump6M,kreg_step_motor_vstop,100 +618,AcidPump6M,kreg_step_motor_tzerowait,0 +619,AcidPump6M,kreg_step_motor_enc_resolution,0 +620,AcidPump6M,kreg_step_motor_enable_enc,0 +621,AcidPump6M,kreg_step_motor_dzero_pos,0 +622,AcidPump6M,kret_step_motor_pos_devi_tolerance,0 +623,AcidPump6M,kret_step_motor_io_trigger_append_distance,0 +624,AcidPump7M,kreg_step_motor_shaft,1 +625,AcidPump7M,kreg_step_motor_one_circle_pulse,10000 +626,AcidPump7M,kreg_step_motor_one_circle_pulse_denominator,1 +627,AcidPump7M,kreg_step_motor_default_velocity,500 +628,AcidPump7M,kreg_step_motor_low_velocity,0 +629,AcidPump7M,kreg_step_motor_mid_velocity,0 +630,AcidPump7M,kreg_step_motor_high_velocity,0 +631,AcidPump7M,kreg_step_motor_ihold,5 +632,AcidPump7M,kreg_step_motor_irun,10 +633,AcidPump7M,kreg_step_motor_iholddelay,10 +634,AcidPump7M,kreg_step_motor_iglobalscaler,0 +635,AcidPump7M,kreg_step_motor_mres,0 +636,AcidPump7M,kreg_step_motor_run_to_zero_speed,100 +637,AcidPump7M,kreg_step_motor_look_zero_edge_speed,100 +638,AcidPump7M,kreg_step_motor_max_d,0 +639,AcidPump7M,kreg_step_motor_min_d,0 +640,AcidPump7M,kreg_step_motor_in_debug_mode,0 +641,AcidPump7M,kreg_step_motor_vstart,100 +642,AcidPump7M,kreg_step_motor_a1,50 +643,AcidPump7M,kreg_step_motor_amax,100 +644,AcidPump7M,kreg_step_motor_v1,300 +645,AcidPump7M,kreg_step_motor_dmax,100 +646,AcidPump7M,kreg_step_motor_d1,50 +647,AcidPump7M,kreg_step_motor_vstop,100 +648,AcidPump7M,kreg_step_motor_tzerowait,0 +649,AcidPump7M,kreg_step_motor_enc_resolution,0 +650,AcidPump7M,kreg_step_motor_enable_enc,0 +651,AcidPump7M,kreg_step_motor_dzero_pos,0 +652,AcidPump7M,kret_step_motor_pos_devi_tolerance,0 +653,AcidPump7M,kret_step_motor_io_trigger_append_distance,0 +654,AcidPump8M,kreg_step_motor_shaft,1 +655,AcidPump8M,kreg_step_motor_one_circle_pulse,10000 +656,AcidPump8M,kreg_step_motor_one_circle_pulse_denominator,1 +657,AcidPump8M,kreg_step_motor_default_velocity,500 +658,AcidPump8M,kreg_step_motor_low_velocity,0 +659,AcidPump8M,kreg_step_motor_mid_velocity,0 +660,AcidPump8M,kreg_step_motor_high_velocity,0 +661,AcidPump8M,kreg_step_motor_ihold,5 +662,AcidPump8M,kreg_step_motor_irun,10 +663,AcidPump8M,kreg_step_motor_iholddelay,10 +664,AcidPump8M,kreg_step_motor_iglobalscaler,0 +665,AcidPump8M,kreg_step_motor_mres,0 +666,AcidPump8M,kreg_step_motor_run_to_zero_speed,100 +667,AcidPump8M,kreg_step_motor_look_zero_edge_speed,100 +668,AcidPump8M,kreg_step_motor_max_d,0 +669,AcidPump8M,kreg_step_motor_min_d,0 +670,AcidPump8M,kreg_step_motor_in_debug_mode,0 +671,AcidPump8M,kreg_step_motor_vstart,100 +672,AcidPump8M,kreg_step_motor_a1,50 +673,AcidPump8M,kreg_step_motor_amax,100 +674,AcidPump8M,kreg_step_motor_v1,300 +675,AcidPump8M,kreg_step_motor_dmax,100 +676,AcidPump8M,kreg_step_motor_d1,50 +677,AcidPump8M,kreg_step_motor_vstop,100 +678,AcidPump8M,kreg_step_motor_tzerowait,0 +679,AcidPump8M,kreg_step_motor_enc_resolution,0 +680,AcidPump8M,kreg_step_motor_enable_enc,0 +681,AcidPump8M,kreg_step_motor_dzero_pos,0 +682,AcidPump8M,kret_step_motor_pos_devi_tolerance,0 +683,AcidPump8M,kret_step_motor_io_trigger_append_distance,0 \ No newline at end of file