From 047a2feda867ce618843dcaebf9f97184ed3a589 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Wed, 24 Jul 2024 19:16:49 +0800 Subject: [PATCH] update --- README.md | 3 +- src/main/java/a8k/a8k_can_protocol/A8kPacket.java | 2 +- src/main/java/a8k/a8k_can_protocol/IOId.java | 2 +- .../java/a8k/base_hardware/A8kCanBusService.java | 34 +--------------------- .../hardware/MotorTubeRackMoveCtrlService.java | 32 ++++++++++++-------- 5 files changed, 25 insertions(+), 48 deletions(-) diff --git a/README.md b/README.md index f1d5b84..9aa560e 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,8 @@ 3. 试管架通道中没有试管架 4. 出料口没有试管架 5. 进出料位置没有试管 - + +逻辑漏洞 ``` diff --git a/src/main/java/a8k/a8k_can_protocol/A8kPacket.java b/src/main/java/a8k/a8k_can_protocol/A8kPacket.java index 229d542..a68c118 100644 --- a/src/main/java/a8k/a8k_can_protocol/A8kPacket.java +++ b/src/main/java/a8k/a8k_can_protocol/A8kPacket.java @@ -39,7 +39,7 @@ public class A8kPacket { public static final int PACKET_TYPE_ERROR_ACK = 2; public static final int PACKET_TYPE_EVENT = 3; - public static final int CMD_OVERTIME = 100; + public static final int CMD_OVERTIME = 2000; public A8kPacket(byte[] cmd) { raw = new byte[cmd.length]; diff --git a/src/main/java/a8k/a8k_can_protocol/IOId.java b/src/main/java/a8k/a8k_can_protocol/IOId.java index ecb2aee..d35ad28 100644 --- a/src/main/java/a8k/a8k_can_protocol/IOId.java +++ b/src/main/java/a8k/a8k_can_protocol/IOId.java @@ -5,7 +5,7 @@ public enum IOId { THChOuterPPS(ModuleType.kboard, MId.FeedingModBoard, 1),//试管架转移通道有无检测 外 THChInterPPS(ModuleType.kboard, MId.FeedingModBoard, 2),//试管架转移通道有无检测 内 OutfeedPPS(ModuleType.kboard, MId.FeedingModBoard, 3),//试管出料位置 试管架有无检测 - TubeExitPPS(ModuleType.kboard, MId.FeedingModBoard, 4),//试管有无光电 + TubeExistPPS(ModuleType.kboard, MId.FeedingModBoard, 4),//试管有无光电 InfeedPPS(ModuleType.kboard, MId.FeedingModBoard, 5),//试管架入料位置 试管架有无检测 RecycleBinOverflowPPS(ModuleType.kboard, MId.PlatesBoxTCMBoard, 2),//废料桶满溢检测 diff --git a/src/main/java/a8k/base_hardware/A8kCanBusService.java b/src/main/java/a8k/base_hardware/A8kCanBusService.java index 3397153..46fec5e 100644 --- a/src/main/java/a8k/base_hardware/A8kCanBusService.java +++ b/src/main/java/a8k/base_hardware/A8kCanBusService.java @@ -489,36 +489,6 @@ public class A8kCanBusService { return this.callcmd(moduleId, cmdId, new Integer[]{p0, p1, p2, p3}); } - public void callblockcmd(Integer moduleId, Integer cmdId, Integer p0, Integer p1, Integer p2, Integer p3, Integer acitionOvertime) throws HardwareException, InterruptedException { - this.callblockcmd(moduleId, cmdId, new Integer[]{p0, p1, p2, p3}, acitionOvertime); - } - - public void callblockcmd(Integer moduleId, Integer cmdId, Integer p0, Integer p1, Integer p2, Integer acitionOvertime) throws HardwareException, InterruptedException { - this.callblockcmd(moduleId, cmdId, new Integer[]{p0, p1, p2}, acitionOvertime); - } - - public void callblockcmd(Integer moduleId, Integer cmdId, Integer p0, Integer p1, Integer acitionOvertime) throws HardwareException, InterruptedException { - this.callblockcmd(moduleId, cmdId, new Integer[]{p0, p1}, acitionOvertime); - } - - public void callblockcmd(Integer moduleId, Integer cmdId, Integer p0, Integer acitionOvertime) throws HardwareException, InterruptedException { - this.callblockcmd(moduleId, cmdId, new Integer[]{p0}, acitionOvertime); - } - - public void callblockcmd(Integer moduleId, Integer cmdId, Integer acitionOvertime) throws HardwareException, InterruptedException { - this.callblockcmd(moduleId, cmdId, new Integer[]{}, acitionOvertime); - } - - - // TODO - public Integer module_read_reg(Integer moduleId, RegIndex regindex) { - return 0; - } - - // TODO - public void module_write_reg(Integer moduleId, RegIndex regindex, Integer reg) { - - } public A8kPacket callcmd(Integer moduleId, Integer cmdId, Integer[] params) throws HardwareException { var packet = packParamsToPacket(moduleId, cmdId, params); @@ -538,11 +508,9 @@ public class A8kCanBusService { } } try { - Thread.sleep(300); + Thread.sleep(100); } catch (InterruptedException ignore) { } - - } throw new HardwareException(MId.valueOf(pack.getModuleId()), A8kEcode.Overtime); } diff --git a/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java b/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java index 4fc98b9..f9a3721 100644 --- a/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java +++ b/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java @@ -52,42 +52,46 @@ public class MotorTubeRackMoveCtrlService implements HardwareCtrlModule { @HardwareServiceParam(name = "出料X位置", group = "试管架位置信息") public Integer getTRExitXPos() { - return 0; + return 4001; } @HardwareServiceParam(name = "试管架扫码X位置", group = "试管架位置信息") public Integer getTRScanXPos() { - return 0; + return 2202; } @HardwareServiceParam(name = "试管扫码位置", group = "试管位置信息") public Integer getTScanXPos() { - return 0; + //运动方向: -> + return 505; } @HardwareServiceParam(name = "试管高度判断位置", group = "试管位置信息") public Integer getTAltitJudgXPos() { - return 0; + //运动方向: -> + return 505; } @HardwareServiceParam(name = "试管是否存在判断位置", group = "试管位置信息") public Integer getTExistJudgXPos() { - return 0; + //运动方向: <- + return 300; } @HardwareServiceParam(name = "试管预处理位置", group = "试管位置信息") public Integer getTPreProcessXPos() { - return 0; + //运动方向: <- + return 1244; } @HardwareServiceParam(name = "试管架孔间距", group = "其他") public Integer getTubeSpacing() { - return 0; + return 200; } @HardwareServiceParam(name = "扫码舵机转速(0..900)", group = "其他") public Integer getTubeScanServoTorque() { - return 300; + return 500; } @HardwareServiceParam(name = "试管扫码超时时间", group = "其他") @@ -191,7 +195,7 @@ public class MotorTubeRackMoveCtrlService implements HardwareCtrlModule { @HardwareServiceAction(name = "入料", group = "模块基础动作") public void tryEnterTubeRack(Integer time) throws HardwareException, InterruptedException { try { - canBus.stepMotorEasyRotate(MId.FeedingModInfeedM, 1); + canBus.stepMotorEasyRotate(MId.FeedingModInfeedM, -1); Thread.sleep(time); } finally { canBus.moduleStop(MId.FeedingModInfeedM); @@ -307,7 +311,7 @@ public class MotorTubeRackMoveCtrlService implements HardwareCtrlModule { * 移动试管到试管高低判断位置 * @param tubeIndex 试管索引 */ - @HardwareServiceAction(name = "判断<试管N>位置", group = "片段") + @HardwareServiceAction(name = "判断<试管N>高低", group = "片段") public AppRet moveTubeToAltitJudgXPos(Integer tubeIndex) throws HardwareException, InterruptedException { moveTubeRackTo(getTAltitJudgXPos() + tubeIndex * getTubeSpacing()); return AppRet.success(isHighTube()); @@ -329,13 +333,17 @@ public class MotorTubeRackMoveCtrlService implements HardwareCtrlModule { @HardwareServiceAction(name = "判断<试管N>是否存在", group = "片段") public AppRet judgeTubeExist(Integer tubeIndex) throws HardwareException, InterruptedException { moveTubeRackTo(getTExistJudgXPos() + tubeIndex * getTubeSpacing()); - return AppRet.success(isTubeRackInEnterPos()); + return AppRet.success(isTubeExist()); } - // // 状态 // + @HardwareServiceStatus(name = "试管架存在") + public Boolean isTubeExist() throws HardwareException { + return canBus.getIOState(IOId.TubeExistPPS); + } + @HardwareServiceStatus(name = "入口光电") public Boolean isTubeRackInEnterPos() throws HardwareException { return canBus.getIOState(IOId.InfeedPPS);