From 7357a8c9f043315cb6ab1a7129663bdec447f238 Mon Sep 17 00:00:00 2001 From: sige Date: Mon, 22 Jul 2024 08:19:37 +0800 Subject: [PATCH 1/4] 1 --- src/main/java/a8k/controller/SamplesPreProcessModuleCtrlController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/a8k/controller/SamplesPreProcessModuleCtrlController.java b/src/main/java/a8k/controller/SamplesPreProcessModuleCtrlController.java index c0a536f..5d83e3e 100644 --- a/src/main/java/a8k/controller/SamplesPreProcessModuleCtrlController.java +++ b/src/main/java/a8k/controller/SamplesPreProcessModuleCtrlController.java @@ -9,7 +9,6 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseBody; - import java.lang.reflect.InvocationTargetException; import java.util.List; import java.util.Map; From ec7ede301f0692b5f2194a1b11b03e0cd251a071 Mon Sep 17 00:00:00 2001 From: sige Date: Mon, 22 Jul 2024 09:11:32 +0800 Subject: [PATCH 2/4] 1 --- .../MotorTubeRackMoveCtrlController.java | 52 +++++++++++++ .../MotorTubeRackMoveCtrlServiceParameterDao.java | 85 ++++++++++++++++++++- .../hardware/MotorTubeRackMoveCtrlService.java | 89 +++++++++++++++------- 3 files changed, 196 insertions(+), 30 deletions(-) create mode 100644 src/main/java/a8k/controller/MotorTubeRackMoveCtrlController.java diff --git a/src/main/java/a8k/controller/MotorTubeRackMoveCtrlController.java b/src/main/java/a8k/controller/MotorTubeRackMoveCtrlController.java new file mode 100644 index 0000000..d4b1136 --- /dev/null +++ b/src/main/java/a8k/controller/MotorTubeRackMoveCtrlController.java @@ -0,0 +1,52 @@ +package a8k.controller; +import a8k.service.db.dao.MotorTubeRackMoveCtrlServiceParameterDao; +import a8k.service.hardware.MotorTubeRackMoveCtrlService; +import com.iflytop.uf.controller.UfApiControllerBase; +import com.iflytop.uf.controller.UfApiResponse; +import com.iflytop.uf.util.UfClassHelper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.ResponseBody; +import java.lang.reflect.InvocationTargetException; +import java.util.List; +import java.util.Map; +@Controller +public class MotorTubeRackMoveCtrlController extends UfApiControllerBase { + @Resource + private MotorTubeRackMoveCtrlService motorTubeRackMoveCtrlService; + @Resource + private MotorTubeRackMoveCtrlServiceParameterDao motorTubeRackMoveCtrlServiceParameterDao; + + @PostMapping("/api/motor-tube-rack-move-ctrl/execute-service-method") + @ResponseBody + public UfApiResponse executeServiceMethod( @RequestBody Map params ) + throws NoSuchMethodException, InvocationTargetException, IllegalAccessException { + Object service = this.motorTubeRackMoveCtrlService; + String methodName = (String)params.get("method"); + List methodArgs = (List)params.get("params"); + Object result = UfClassHelper.invokeMethod(service, methodName, methodArgs); + return this.success(result); + } + + @PostMapping("/api/motor-tube-rack-move-ctrl/list-options") + @ResponseBody + public UfApiResponse listAllOptions() throws NoSuchMethodException { + var list = this.motorTubeRackMoveCtrlServiceParameterDao.listOptions(); + return this.success(list); + } + + @PostMapping("/api/motor-tube-rack-move-ctrl/update-options") + @ResponseBody + public UfApiResponse updateOptions(@RequestBody Map params ) throws Exception { + var options = (List>)params.get("options"); + for (Map item : options) { + var name = (String)item.get("name"); + var option = this.motorTubeRackMoveCtrlServiceParameterDao.getOption(name); + option.setValue(item.get("value")); + option.save(); + } + return this.success(); + } +} diff --git a/src/main/java/a8k/service/db/dao/MotorTubeRackMoveCtrlServiceParameterDao.java b/src/main/java/a8k/service/db/dao/MotorTubeRackMoveCtrlServiceParameterDao.java index 0c68036..bb2fed4 100644 --- a/src/main/java/a8k/service/db/dao/MotorTubeRackMoveCtrlServiceParameterDao.java +++ b/src/main/java/a8k/service/db/dao/MotorTubeRackMoveCtrlServiceParameterDao.java @@ -1,13 +1,92 @@ package a8k.service.db.dao; +import a8k.service.db.entity.HardwareServiceSetting; import a8k.service.db.entity.MotorTubeRackMoveCtrlServiceParameter; +import com.iflytop.uf.UfActiveRecord; +import com.iflytop.uf.UfActiveRecordField; import org.springframework.stereotype.Component; +import java.util.List; +import java.util.Map; + @Component public class MotorTubeRackMoveCtrlServiceParameterDao { + /** + * 参数存放在HardwareServiceSetting中, + * 每个参数,依赖于Key+serviceName进行索引 + */ + public final String serviceName = "MotorTubeRackMoveCtrlServiceParameterDao"; + + public List listOptions() { + return UfActiveRecord.find(HardwareServiceSetting.class, Map.of("serviceName", this.serviceName)); + } + + public HardwareServiceSetting getOption(String optionName) { + return HardwareServiceSetting.getOption(this.serviceName, optionName); + } + + // 回零超时时间 + public int getMoveToZeroOvertime() { + return HardwareServiceSetting.getInteger(this.serviceName, "MoveToZeroOvertime", 0); + } + + // 执行动作的超时时间,该超时时间适用于当前模块在当前产品中所有动作的最大时间 + public int getActionOvertime() { + return HardwareServiceSetting.getInteger(this.serviceName, "ActionOvertime", 0); + } + + //试管扫码位置 + public int getTubeScanPos() { + return HardwareServiceSetting.getInteger(this.serviceName, "TubeScanPos", 0); + } + + //高低试管判断位置 + public Integer getTubeHeighJudgmentPos() { + return HardwareServiceSetting.getInteger(this.serviceName, "TubeHeighJudgmentPos", 0); + } + + //试管预处理位置 + public Integer getTubePreProcessPos() { + return HardwareServiceSetting.getInteger(this.serviceName, "TubePreProcessPos", 0); + } + + //入料位置 + public Integer getTubeExistJudgmentPos() { + return HardwareServiceSetting.getInteger(this.serviceName, "TubeExistJudgmentPos", 0); + } + + //出料位置 + public Integer getTubeRackEnterPos() { + return HardwareServiceSetting.getInteger(this.serviceName, "TubeRackEnterPos", 0); + } + + //出料位置 + public Integer getTubeRackExitPos() { + return HardwareServiceSetting.getInteger(this.serviceName, "TubeRackExitPos", 0); + } + + //试管架扫码位置 + public Integer getTubeRackScanCodePos() { + return HardwareServiceSetting.getInteger(this.serviceName, "TubeRackScanCodePos", 0); + } + + //水平电机丢步判断 + public Integer getHorizontalMotorLostStepThresholdVal() { + return HardwareServiceSetting.getInteger(this.serviceName, "HorizontalMotorLostStepThresholdVal", 0); + } + + //试管扫码夹紧位置 + public Integer getScanCodeClampPos() { + return HardwareServiceSetting.getInteger(this.serviceName, "ScanCodeClampPos", 0); + } + + //试管扫码释放位置 + public Integer getScanCodeReleasePos() { + return HardwareServiceSetting.getInteger(this.serviceName, "ScanCodeReleasePos", 0); + } - public MotorTubeRackMoveCtrlServiceParameter getParameter() { - //TODO: - return null; + // + public Integer getTubeSpacing() { + return HardwareServiceSetting.getInteger(this.serviceName, "TubeSpacing", 0); } } diff --git a/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java b/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java index 242e07c..741c45d 100644 --- a/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java +++ b/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java @@ -51,16 +51,21 @@ public class MotorTubeRackMoveCtrlService { // public void moveToZeroWhenDeviceSetup() throws HardwareException, InterruptedException { - var params = this.serviceParameterDao.getParameter(); - this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to_zero, new Integer[]{}, params.moveToZeroOvertime); + var params = this.serviceParameterDao; + this.a8kCanBusService.callblockcmd( + ModId.FeedingModXM, + CmdId.kstep_motor_easy_move_to_zero, + new Integer[]{}, + params.getMoveToZeroOvertime() + ); } public void moveToZero() throws HardwareException, InterruptedException { - var params = this.serviceParameterDao.getParameter(); + var params = this.serviceParameterDao; var beforePosResponse = this.a8kCanBusService.callcmd(ModId.FeedingModXM, CmdId.kstep_motor_read_pos, new Integer[]{0}); var beforePos = beforePosResponse.getContentI32(0); - this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to_zero, new Integer[]{}, params.moveToZeroOvertime); + this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to_zero, new Integer[]{}, params.getMoveToZeroOvertime()); var afterPosResponse = this.a8kCanBusService.callcmd(ModId.FeedingModXM, CmdId.kstep_motor_read_pos, new Integer[]{0}); var afterPos = afterPosResponse.getContentI32(0); var distance = beforePos - afterPos; @@ -68,7 +73,7 @@ public class MotorTubeRackMoveCtrlService { var dval = a8kCanBusService.module_read_reg(ModId.FeedingModXM, RegIndex.kreg_step_motor_dpos); - if (Math.abs(dval - distance) > params.horizontalMotorLostStepThresholdVal) { + if (Math.abs(dval - distance) > params.getHorizontalMotorLostStepThresholdVal() ) { throw new HardwareException(ModId.FeedingModXM, Errorcode.kstep_motor_lost_step); } @@ -91,24 +96,39 @@ public class MotorTubeRackMoveCtrlService { * 移动试管架到入口位置 */ public void moveTubeRackToEnterPos() throws HardwareException, InterruptedException { - var params = this.serviceParameterDao.getParameter(); - this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{params.tubeRackEnterPos}, params.actionOvertime); + var params = this.serviceParameterDao; + this.a8kCanBusService.callblockcmd( + ModId.FeedingModXM, + CmdId.kstep_motor_easy_move_to, + new Integer[]{params.getTubeRackEnterPos()}, + params.getActionOvertime() + ); } /** * 移动试管架到出口位置 */ public void moveTubeRackToExitPos() throws HardwareException, InterruptedException { - var params = this.serviceParameterDao.getParameter(); - this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{params.tubeExistJudgmentPos}, params.actionOvertime); + var params = this.serviceParameterDao; + this.a8kCanBusService.callblockcmd( + ModId.FeedingModXM, + CmdId.kstep_motor_easy_move_to, + new Integer[]{params.getTubeExistJudgmentPos()}, + params.getActionOvertime() + ); } /** * 移动试管架到试管架扫码位置 */ public void moveTubeRackToScanPos() throws HardwareException, InterruptedException { - var params = this.serviceParameterDao.getParameter(); - this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{params.tubeRackScanCodePos}, params.actionOvertime); + var params = this.serviceParameterDao; + this.a8kCanBusService.callblockcmd( + ModId.FeedingModXM, + CmdId.kstep_motor_easy_move_to, + new Integer[]{params.getTubeRackScanCodePos()}, + params.getActionOvertime() + ); } /** @@ -135,10 +155,15 @@ public class MotorTubeRackMoveCtrlService { * @param tubeIndex */ public void moveTubeToScanPos(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { - var params = this.serviceParameterDao.getParameter(); + var params = this.serviceParameterDao; var tubeInfo = this.tubeInfoDao.getTubeInfo(tubeType); - var scanPos = params.tubeScanPos + tubeIndex * tubeInfo.tubeSpacing; - this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{scanPos}, params.actionOvertime); + var scanPos = params.getTubeScanPos() + tubeIndex * tubeInfo.tubeSpacing; + this.a8kCanBusService.callblockcmd( + ModId.FeedingModXM, + CmdId.kstep_motor_easy_move_to, + new Integer[]{scanPos}, + params.getActionOvertime() + ); } /** @@ -163,10 +188,10 @@ public class MotorTubeRackMoveCtrlService { * @param tubeIndex */ public void moveTubeToHeighJudgmentPos(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { - var params = this.serviceParameterDao.getParameter(); + var params = this.serviceParameterDao; var tubeInfo = this.tubeInfoDao.getTubeInfo(tubeType); - var detectPos = params.tubeHeighJudgmentPos + tubeIndex * tubeInfo.tubeSpacing; - this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{detectPos}, params.actionOvertime); + var detectPos = params.getTubeHeighJudgmentPos() + tubeIndex * tubeInfo.tubeSpacing; + this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{detectPos}, params.getActionOvertime()); } /** @@ -175,10 +200,10 @@ public class MotorTubeRackMoveCtrlService { * @param tubeIndex */ public void moveTubeToPreProcessPos(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { - var params = this.serviceParameterDao.getParameter(); + var params = this.serviceParameterDao; var tubeInfo = this.tubeInfoDao.getTubeInfo(tubeType); - var pos = params.tubePreProcessPos + tubeIndex * tubeInfo.tubeSpacing; - this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{pos}, params.actionOvertime); + var pos = params.getTubePreProcessPos() + tubeIndex * tubeInfo.tubeSpacing; + this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{pos}, params.getActionOvertime()); } // @@ -191,10 +216,10 @@ public class MotorTubeRackMoveCtrlService { * @param tubeIndex */ public void moveTubeToExistJudgmentPos(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { - var params = this.serviceParameterDao.getParameter(); + var params = this.serviceParameterDao; var tubeInfo = this.tubeInfoDao.getTubeInfo(tubeType); - var pos = params.tubeRackExitPos + tubeIndex * tubeInfo.tubeSpacing; - this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{pos}, params.actionOvertime); + var pos = params.getTubeRackExitPos() + tubeIndex * tubeInfo.tubeSpacing; + this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{pos}, params.getActionOvertime()); } public boolean isTubeRackInEnterPos() throws HardwareException { @@ -227,16 +252,26 @@ public class MotorTubeRackMoveCtrlService { * 扫描夹紧机构夹紧 */ public void scanClampModuleCompress() throws HardwareException, InterruptedException { - var params = this.serviceParameterDao.getParameter(); - this.a8kCanBusService.callblockcmd(ModId.ShakeModTubeScanerClampingSV, CmdId.kmini_servo_move_to, new Integer[]{params.scanCodeClampPos}, params.actionOvertime); + var params = this.serviceParameterDao; + this.a8kCanBusService.callblockcmd( + ModId.ShakeModTubeScanerClampingSV, + CmdId.kmini_servo_move_to, + new Integer[]{params.getScanCodeClampPos()}, + params.getActionOvertime() + ); } /** * 扫描夹紧机构复位 */ public void scanClampModuleReset() throws HardwareException, InterruptedException { - var params = this.serviceParameterDao.getParameter(); - this.a8kCanBusService.callblockcmd(ModId.ShakeModTubeScanerClampingSV, CmdId.kmini_servo_move_to, new Integer[]{params.scanCodeReleasePos}, params.actionOvertime); + var params = this.serviceParameterDao; + this.a8kCanBusService.callblockcmd( + ModId.ShakeModTubeScanerClampingSV, + CmdId.kmini_servo_move_to, + new Integer[]{params.getScanCodeReleasePos()}, + params.getActionOvertime() + ); } From ea88deb8cf061200255580d8adb43a8c41c587e1 Mon Sep 17 00:00:00 2001 From: sige Date: Mon, 22 Jul 2024 11:03:27 +0800 Subject: [PATCH 3/4] 1 --- .../hardware/MotorTubeRackMoveCtrlService.java | 101 +++++++++++++++------ 1 file changed, 71 insertions(+), 30 deletions(-) diff --git a/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java b/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java index 741c45d..a50b0ef 100644 --- a/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java +++ b/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java @@ -45,6 +45,42 @@ public class MotorTubeRackMoveCtrlService { @Resource MotorTubeRackMoveCtrlServiceParameterDao serviceParameterDao; + public void setEnable( Boolean enable ) throws HardwareException { + this.a8kCanBusService.callcmd( + ModId.FeedingModXM, + CmdId.kstep_motor_enable, + enable ? 1 : 0 + ); + this.a8kCanBusService.callcmd( + ModId.FeedingModInfeedM, + CmdId.kstep_motor_enable, + enable ? 1 : 0 + ); + this.a8kCanBusService.callcmd( + ModId.FeedingModOutfeedM, + CmdId.kstep_motor_enable, + enable ? 1 : 0 + ); + } + + public void stop() throws HardwareException { + this.a8kCanBusService.callcmd( + ModId.FeedingModXM, + CmdId.kstep_motor_stop, + 1 + ); + this.a8kCanBusService.callcmd( + ModId.FeedingModInfeedM, + CmdId.kstep_motor_stop, + 1 + ); + this.a8kCanBusService.callcmd( + ModId.FeedingModOutfeedM, + CmdId.kstep_motor_stop, + 1 + ); + } + // // 电机基础控制 @@ -54,8 +90,7 @@ public class MotorTubeRackMoveCtrlService { var params = this.serviceParameterDao; this.a8kCanBusService.callblockcmd( ModId.FeedingModXM, - CmdId.kstep_motor_easy_move_to_zero, - new Integer[]{}, + CmdId.kstep_motor_easy_move_to_zero, params.getMoveToZeroOvertime() ); } @@ -63,10 +98,10 @@ public class MotorTubeRackMoveCtrlService { public void moveToZero() throws HardwareException, InterruptedException { var params = this.serviceParameterDao; - var beforePosResponse = this.a8kCanBusService.callcmd(ModId.FeedingModXM, CmdId.kstep_motor_read_pos, new Integer[]{0}); + var beforePosResponse = this.a8kCanBusService.callcmd(ModId.FeedingModXM, CmdId.kstep_motor_read_pos); var beforePos = beforePosResponse.getContentI32(0); - this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to_zero, new Integer[]{}, params.getMoveToZeroOvertime()); - var afterPosResponse = this.a8kCanBusService.callcmd(ModId.FeedingModXM, CmdId.kstep_motor_read_pos, new Integer[]{0}); + this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to_zero, params.getMoveToZeroOvertime()); + var afterPosResponse = this.a8kCanBusService.callcmd(ModId.FeedingModXM, CmdId.kstep_motor_read_pos); var afterPos = afterPosResponse.getContentI32(0); var distance = beforePos - afterPos; @@ -100,7 +135,7 @@ public class MotorTubeRackMoveCtrlService { this.a8kCanBusService.callblockcmd( ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, - new Integer[]{params.getTubeRackEnterPos()}, + params.getTubeRackEnterPos(), params.getActionOvertime() ); } @@ -113,7 +148,7 @@ public class MotorTubeRackMoveCtrlService { this.a8kCanBusService.callblockcmd( ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, - new Integer[]{params.getTubeExistJudgmentPos()}, + params.getTubeRackExitPos(), params.getActionOvertime() ); } @@ -126,7 +161,7 @@ public class MotorTubeRackMoveCtrlService { this.a8kCanBusService.callblockcmd( ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, - new Integer[]{params.getTubeRackScanCodePos()}, + params.getTubeRackScanCodePos(), params.getActionOvertime() ); } @@ -136,10 +171,10 @@ public class MotorTubeRackMoveCtrlService { */ public String moveTubeRackToScanPosAndScan() throws HardwareException, InterruptedException { this.moveTubeRackToScanPos(); - this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_start_scan, new Integer[]{}); - Thread.sleep(500); - var response = this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_read_scaner_result, new Integer[]{}); - this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_stop_scan, new Integer[]{}); + this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_start_scan); + Thread.sleep(5000); + var response = this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_read_scaner_result); + this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_stop_scan); var contentBytes = response.getCmdContent(); return new String(contentBytes); } @@ -156,12 +191,11 @@ public class MotorTubeRackMoveCtrlService { */ public void moveTubeToScanPos(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { var params = this.serviceParameterDao; - var tubeInfo = this.tubeInfoDao.getTubeInfo(tubeType); - var scanPos = params.getTubeScanPos() + tubeIndex * tubeInfo.tubeSpacing; + var scanPos = params.getTubeScanPos() + tubeIndex * params.getTubeSpacing(); this.a8kCanBusService.callblockcmd( ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, - new Integer[]{scanPos}, + scanPos, params.getActionOvertime() ); } @@ -174,10 +208,10 @@ public class MotorTubeRackMoveCtrlService { public String moveTubeToScanPosAndScan(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { this.moveTubeToScanPos(tubeType, tubeIndex); - this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_start_scan, new Integer[]{}); - Thread.sleep(500); - var response = this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_read_scaner_result, new Integer[]{}); - this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_stop_scan, new Integer[]{}); + this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_start_scan); + Thread.sleep(5000); + var response = this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_read_scaner_result); + this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_stop_scan); var contentBytes = response.getCmdContent(); return new String(contentBytes); } @@ -189,9 +223,13 @@ public class MotorTubeRackMoveCtrlService { */ public void moveTubeToHeighJudgmentPos(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { var params = this.serviceParameterDao; - var tubeInfo = this.tubeInfoDao.getTubeInfo(tubeType); - var detectPos = params.getTubeHeighJudgmentPos() + tubeIndex * tubeInfo.tubeSpacing; - this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{detectPos}, params.getActionOvertime()); + var detectPos = params.getTubeHeighJudgmentPos() + tubeIndex * params.getTubeSpacing(); + this.a8kCanBusService.callblockcmd( + ModId.FeedingModXM, + CmdId.kstep_motor_easy_move_to, + detectPos, + params.getActionOvertime() + ); } /** @@ -201,9 +239,13 @@ public class MotorTubeRackMoveCtrlService { */ public void moveTubeToPreProcessPos(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { var params = this.serviceParameterDao; - var tubeInfo = this.tubeInfoDao.getTubeInfo(tubeType); - var pos = params.getTubePreProcessPos() + tubeIndex * tubeInfo.tubeSpacing; - this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{pos}, params.getActionOvertime()); + var pos = params.getTubePreProcessPos() + tubeIndex * params.getTubeSpacing(); + this.a8kCanBusService.callblockcmd( + ModId.FeedingModXM, + CmdId.kstep_motor_easy_move_to, + pos, + params.getActionOvertime() + ); } // @@ -217,18 +259,17 @@ public class MotorTubeRackMoveCtrlService { */ public void moveTubeToExistJudgmentPos(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { var params = this.serviceParameterDao; - var tubeInfo = this.tubeInfoDao.getTubeInfo(tubeType); - var pos = params.getTubeRackExitPos() + tubeIndex * tubeInfo.tubeSpacing; + var pos = params.getTubeRackExitPos() + tubeIndex * params.getTubeSpacing(); this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{pos}, params.getActionOvertime()); } public boolean isTubeRackInEnterPos() throws HardwareException { - var response = this.a8kCanBusService.callcmd(ModId.FeedingModBoard, CmdId.kxymotor_read_inio, new Integer[]{3}); + var response = this.a8kCanBusService.callcmd(ModId.FeedingModBoard, CmdId.kxymotor_read_inio, 3); return response.getContentI32(0) == 1; } public boolean isTubeRackInExitPos() throws HardwareException { - var response = this.a8kCanBusService.callcmd(ModId.FeedingModBoard, CmdId.kxymotor_read_inio, new Integer[]{5}); + var response = this.a8kCanBusService.callcmd(ModId.FeedingModBoard, CmdId.kxymotor_read_inio, 5); return response.getContentI32(0) == 1; } @@ -237,7 +278,7 @@ public class MotorTubeRackMoveCtrlService { * @param photoelectricIndex 0:里光电,1:外光电 * @return true, 光电触发 false,光电没有触发 */ - public boolean getMoveChannelPhotoelectricState(int photoelectricIndex) throws HardwareException { + public boolean getMoveChannelPhotoelectricState(Integer photoelectricIndex) throws HardwareException { var index = 0 == photoelectricIndex ? 2 : 1; var response = this.a8kCanBusService.callcmd(ModId.FeedingModBoard, CmdId.kxymotor_read_inio, new Integer[]{index}); return response.getContentI32(0) == 1; From c395e73161bfc739da39da423c40794126b10c2a Mon Sep 17 00:00:00 2001 From: sige Date: Mon, 22 Jul 2024 11:29:59 +0800 Subject: [PATCH 4/4] 1 --- .../a8k/service/hardware/MotorTubeRackMoveCtrlService.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java b/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java index e22ff33..d31081b 100644 --- a/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java +++ b/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java @@ -264,13 +264,11 @@ public class MotorTubeRackMoveCtrlService { } public boolean isTubeRackInEnterPos() throws HardwareException { - var response = this.a8kCanBusService.callcmd(ModId.FeedingModBoard, CmdId.kxymotor_read_inio, 3); - return response.getContentI32(0) == 1; + return this.a8kCanBusService.getIOState(IOId.InfeedPPS); } public boolean isTubeRackInExitPos() throws HardwareException { - var response = this.a8kCanBusService.callcmd(ModId.FeedingModBoard, CmdId.kxymotor_read_inio, 5); - return response.getContentI32(0) == 1; + return this.a8kCanBusService.getIOState(IOId.OutfeedPPS); } /** @@ -279,9 +277,8 @@ public class MotorTubeRackMoveCtrlService { * @return true, 光电触发 false,光电没有触发 */ public boolean getMoveChannelPhotoelectricState(Integer photoelectricIndex) throws HardwareException { - var index = 0 == photoelectricIndex ? 2 : 1; - var response = this.a8kCanBusService.callcmd(ModId.FeedingModBoard, CmdId.kxymotor_read_inio, new Integer[]{index}); - return response.getContentI32(0) == 1; + var io = 0 == photoelectricIndex ? IOId.THChOuterPPS : IOId.THChInterPPS; + return this.a8kCanBusService.getIOState(io); } //