Browse Source

feat:增加业务指令debug推送

master
白凤吉 3 months ago
parent
commit
82bf7065e1
  1. 1
      build.gradle
  2. 2
      src/main/java/com/iflytop/gd/app/cmd/DoorCloseCommand.java
  3. 6
      src/main/java/com/iflytop/gd/app/cmd/DoorOpenCommand.java
  4. 2
      src/main/java/com/iflytop/gd/app/cmd/HeatStartCommand.java
  5. 2
      src/main/java/com/iflytop/gd/app/cmd/HeatStopCommand.java
  6. 38
      src/main/java/com/iflytop/gd/app/cmd/MoveToHeatAreaCommand.java
  7. 42
      src/main/java/com/iflytop/gd/app/cmd/MoveToSolutionAreaCommand.java
  8. 2
      src/main/java/com/iflytop/gd/app/cmd/ShakeStartCommand.java
  9. 2
      src/main/java/com/iflytop/gd/app/cmd/ShakeStopCommand.java
  10. 4
      src/main/java/com/iflytop/gd/app/cmd/SolutionAddCommand.java
  11. 6
      src/main/java/com/iflytop/gd/app/cmd/TakePhotoCommand.java
  12. 2
      src/main/java/com/iflytop/gd/app/cmd/TrayDownCommand.java
  13. 2
      src/main/java/com/iflytop/gd/app/cmd/TrayUpCommand.java
  14. 1
      src/main/java/com/iflytop/gd/app/core/CraftsContext.java
  15. 11
      src/main/java/com/iflytop/gd/app/core/device/CraftsState.java
  16. 11
      src/main/java/com/iflytop/gd/app/model/bo/DeviceInitializationData.java
  17. 2
      src/main/java/com/iflytop/gd/app/service/CraftsStepService.java
  18. 6
      src/main/java/com/iflytop/gd/app/service/DeviceCommandService.java
  19. 195
      src/main/java/com/iflytop/gd/app/service/DeviceCommandUtilService.java
  20. 47
      src/main/java/com/iflytop/gd/app/service/DeviceInitService.java
  21. 13
      src/main/java/com/iflytop/gd/app/service/GantryArmService.java
  22. 684
      src/main/resources/init/zapp_sub_module_reg_initial_value.csv

1
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'

2
src/main/java/com/iflytop/gd/app/cmd/DoorCloseCommand.java

@ -27,7 +27,7 @@ public class DoorCloseCommand extends BaseCommandHandler {
public CompletableFuture<Void> handle(CmdDTO cmdDTO) {
return runAsync(() -> {
Double doorOpenDistance = devicePositionService.getPosition(DevicePositionCode.doorClose).getDistance();
deviceCommandUtilService.doorMove(doorOpenDistance);
deviceCommandUtilService.doorMove(cmdDTO.getCommandId(), cmdDTO.getCommand(), doorOpenDistance);
});
}
}

6
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<Void> 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);
});
}

2
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);
});
}
}

2
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);
});
}
}

38
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);//下降加热位托盘
});
}
}

42
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);//抬升机械臂至托盘上方
});
}
}

2
src/main/java/com/iflytop/gd/app/cmd/ShakeStartCommand.java

@ -23,7 +23,7 @@ public class ShakeStartCommand extends BaseCommandHandler {
@Override
public CompletableFuture<Void> handle(CmdDTO cmdDTO) {
return runAsync(() -> {
deviceCommandUtilService.shakeStart();//开始摇匀
deviceCommandUtilService.shakeStart(cmdDTO.getCommandId(), cmdDTO.getCommand());//开始摇匀
});
}
}

2
src/main/java/com/iflytop/gd/app/cmd/ShakeStopCommand.java

@ -23,7 +23,7 @@ public class ShakeStopCommand extends BaseCommandHandler {
@Override
public CompletableFuture<Void> handle(CmdDTO cmdDTO) {
return runAsync(() -> {
deviceCommandUtilService.shakeStop();//停止摇匀
deviceCommandUtilService.shakeStop(cmdDTO.getCommandId(), cmdDTO.getCommand());//停止摇匀
});
}
}

4
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();

6
src/main/java/com/iflytop/gd/app/cmd/TakePhotoCommand.java

@ -23,9 +23,9 @@ public class TakePhotoCommand extends BaseCommandHandler {
@Override
public CompletableFuture<Void> 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());//关闭补光灯
});
}
}

2
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);//下降加热位托盘
});
}
}

2
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);//抬升加热位托盘
});
}
}

1
src/main/java/com/iflytop/gd/app/core/CraftsContext.java

@ -32,7 +32,6 @@ public class CraftsContext implements Runnable {
private final List<CraftsStep> craftsStepList;
private final StateMachine<CraftStates, CraftEvents> sm;
private final WebSocketService webSocketService;
;
private final CraftsStepService craftsStepService;
private int currentIndex = 0;

11
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;
}

11
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;
}

2
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(); //获取加热位抬升托盘位置

6
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<CommandFuture> 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 {

195
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);
}

47
src/main/java/com/iflytop/gd/app/service/DeviceStateInitializerService.java → 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<HeatModuleState> heatArea = deviceState.getHeatModule();
for (HeatModuleCode code : HeatModuleCode.values()) {
heatArea.add(new HeatModuleState(code));
}
List<Container> containerList = containerService.getList();
List<SolutionContainerState> 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);
}
}

13
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();
}
}
/**
* 释放加液区
*/

684
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
Loading…
Cancel
Save