diff --git a/src/main/java/a8k/a8k_can_protocol/IOId.java b/src/main/java/a8k/a8k_can_protocol/IOId.java index 04ce0df..ecb2aee 100644 --- a/src/main/java/a8k/a8k_can_protocol/IOId.java +++ b/src/main/java/a8k/a8k_can_protocol/IOId.java @@ -1,35 +1,35 @@ package a8k.a8k_can_protocol; public enum IOId { - TubeHeightPPS(ModuleType.kboard, 60, 0), //高低试管检测IO - THChOuterPPS(ModuleType.kboard, 60, 1),//试管架转移通道有无检测 外 - THChInterPPS(ModuleType.kboard, 60, 2),//试管架转移通道有无检测 内 - OutfeedPPS(ModuleType.kboard, 60, 3),//试管出料位置 试管架有无检测 - TubeExitPPS(ModuleType.kboard, 60, 4),//试管有无光电 - InfeedPPS(ModuleType.kboard, 60, 5),//试管架入料位置 试管架有无检测 + TubeHeightPPS(ModuleType.kboard, MId.FeedingModBoard, 0), //高低试管检测IO + THChOuterPPS(ModuleType.kboard, MId.FeedingModBoard, 1),//试管架转移通道有无检测 外 + THChInterPPS(ModuleType.kboard, MId.FeedingModBoard, 2),//试管架转移通道有无检测 内 + OutfeedPPS(ModuleType.kboard, MId.FeedingModBoard, 3),//试管出料位置 试管架有无检测 + TubeExitPPS(ModuleType.kboard, MId.FeedingModBoard, 4),//试管有无光电 + InfeedPPS(ModuleType.kboard, MId.FeedingModBoard, 5),//试管架入料位置 试管架有无检测 - RecycleBinOverflowPPS(ModuleType.kboard, 40, 2),//废料桶满溢检测 - RecycleBinOverflowPPSPowerCtrl(ModuleType.kboard, 40, 0),//废料桶光栅电源 + RecycleBinOverflowPPS(ModuleType.kboard, MId.PlatesBoxTCMBoard, 2),//废料桶满溢检测 + RecycleBinOverflowPPSPowerCtrl(ModuleType.kboard, MId.PlatesBoxTCMBoard, 0),//废料桶光栅电源 - PlateBoxCoverClosurePPS(ModuleType.kboard, 20, 0),//板夹仓舱盖闭合检测 - PlateBoxPlateStuckPPS(ModuleType.kboard, 20, 1),//板夹仓卡板检测 + PlateBoxCoverClosurePPS(ModuleType.kboard, MId.PlatesBoxBoard, 0),//板夹仓舱盖闭合检测 + PlateBoxPlateStuckPPS(ModuleType.kboard, MId.PlatesBoxBoard, 1),//板夹仓卡板检测 //转盘逻辑相关光电 //钩板电机,零点光电,终点光电 - PullerMZeroPPS(ModuleType.ktmc_step_motor, ModId.OptModPullM,0), - PullerMEndPPS(ModuleType.ktmc_step_motor, ModId.OptModPullM,1), + PullerMZeroPPS(ModuleType.ktmc_step_motor, MId.OptModPullM, 0),// + PullerMEndPPS(ModuleType.ktmc_step_motor, MId.OptModPullM, 1),// //推板电机,零点光电,终点光电 - PusherMZeroPPS(ModuleType.ktmc_step_motor, ModId.PlatesBoxPusherM,0), - PusherMEndPPS(ModuleType.ktmc_step_motor, ModId.PlatesBoxPusherM,1), + PusherMZeroPPS(ModuleType.ktmc_step_motor, MId.PlatesBoxPusherM, 0),// + PusherMEndPPS(ModuleType.ktmc_step_motor, MId.PlatesBoxPusherM, 1),// ; final public ModuleType mtype; - final public int mid; + final public MId mid; final public int ioIndex; - IOId(ModuleType mtype, int mid, int ioIndex) { + IOId(ModuleType mtype, MId mid, int ioIndex) { this.mtype = mtype; this.mid = mid; this.ioIndex = ioIndex; diff --git a/src/main/java/a8k/appbean/HardwareException.java b/src/main/java/a8k/appbean/HardwareException.java index 7fa3fcf..132d204 100644 --- a/src/main/java/a8k/appbean/HardwareException.java +++ b/src/main/java/a8k/appbean/HardwareException.java @@ -1,29 +1,30 @@ package a8k.appbean; import a8k.a8k_can_protocol.A8kEcode; +import a8k.a8k_can_protocol.MId; import a8k.a8k_can_protocol.ModId; public class HardwareException extends Exception { // 构造函数 - int errorCode; - int moduleId; + A8kEcode errorCode; + MId moduleId; public HardwareException() { super(); } - public HardwareException(int moduleId, int HardwareErrorCode) { - super(String.format("Module ID %s has error code %s", ModId.ModuleId2Name(moduleId), A8kEcode.toString(HardwareErrorCode))); - this.errorCode = HardwareErrorCode; - this.moduleId = moduleId; + public HardwareException(MId mid, A8kEcode ecode) { + super(String.format("Module ID %s has error code %s", mid, ecode)); + this.errorCode = ecode; + this.moduleId = mid; } - public int getModuleId() { + public MId getModuleId() { return moduleId; } - public int getErrorCode() { + public A8kEcode getErrorCode() { return errorCode; } diff --git a/src/main/java/a8k/appbean/ecode/AppEcode.java b/src/main/java/a8k/appbean/ecode/AppEcode.java index ab06175..27900f2 100644 --- a/src/main/java/a8k/appbean/ecode/AppEcode.java +++ b/src/main/java/a8k/appbean/ecode/AppEcode.java @@ -6,9 +6,9 @@ import a8k.a8k_can_protocol.A8kEcode; import a8k.appbean.HardwareException; public class AppEcode { - public A8kEcode errorCode; - public MId mid; - public CmdId cmd; + public A8kEcode errorCode; + public MId mid; + public CmdId cmd; public AppEcode(A8kEcode errorCode, MId mid) { this.errorCode = errorCode; @@ -23,8 +23,8 @@ public class AppEcode { } public AppEcode(HardwareException e) { - this.errorCode = A8kEcode.valueOf(e.getErrorCode()); - this.mid = MId.valueOf(e.getModuleId()); + this.errorCode = e.getErrorCode(); + this.mid = e.getModuleId(); } diff --git a/src/main/java/a8k/base_hardware/A8kCanBusService.java b/src/main/java/a8k/base_hardware/A8kCanBusService.java index 95a76ad..c244e8b 100644 --- a/src/main/java/a8k/base_hardware/A8kCanBusService.java +++ b/src/main/java/a8k/base_hardware/A8kCanBusService.java @@ -166,9 +166,9 @@ public class A8kCanBusService { return packet.getContentI32(0); } - public int moduleGetError(MId id) throws HardwareException { + public A8kEcode moduleGetError(MId id) throws HardwareException { var packet = callcmd(id.toInt(), CmdId.module_get_error.toInt()); - return packet.getContentI32(0); + return A8kEcode.valueOf(packet.getContentI32(0)); } public void moduleClearError(MId id) throws HardwareException { @@ -330,21 +330,21 @@ public class A8kCanBusService { public boolean getIOState(IOId ioid) throws HardwareException { if (ioid.mtype == ModuleType.kboard) { - return callcmd(ioid.mid, CmdId.extboard_read_inio.toInt(), ioid.ioIndex).getContentI32(0) != 0; + return callcmd(ioid.mid.toInt(), CmdId.extboard_read_inio.toInt(), ioid.ioIndex).getContentI32(0) != 0; } else if (ioid.mtype == ModuleType.ktmc_step_motor) { - return callcmd(ioid.mid, CmdId.step_motor_read_io_state.toInt(), ioid.ioIndex).getContentI32(0) != 0; + return callcmd(ioid.mid.toInt(), CmdId.step_motor_read_io_state.toInt(), ioid.ioIndex).getContentI32(0) != 0; } else if (ioid.mtype == ModuleType.kmini_servo_motor_module) { - return callcmd(ioid.mid, CmdId.mini_servo_read_io_state.toInt(), ioid.ioIndex).getContentI32(0) != 0; + return callcmd(ioid.mid.toInt(), CmdId.mini_servo_read_io_state.toInt(), ioid.ioIndex).getContentI32(0) != 0; } else { - throw new HardwareException(ioid.mid, A8kEcode.IllegalOperation.toInt()); + throw new HardwareException(ioid.mid, A8kEcode.IllegalOperation); } } public void setIOState(IOId ioid, boolean val) throws HardwareException { if (ioid.mtype == ModuleType.kboard) { - callcmd(ioid.mid, CmdId.extboard_write_outio.toInt(), ioid.ioIndex, val ? 1 : 0); + callcmd(ioid.mid.toInt(), CmdId.extboard_write_outio.toInt(), ioid.ioIndex, val ? 1 : 0); } else { - throw new HardwareException(ioid.mid, A8kEcode.IllegalOperation.toInt()); + throw new HardwareException(ioid.mid, A8kEcode.IllegalOperation); } } @@ -356,13 +356,13 @@ public class A8kCanBusService { if (status == ModuleStatus.IDLE) { break; } else if (status == ModuleStatus.ERROR) { - throw new HardwareException(mid.toInt(), moduleGetError(mid)); + throw new HardwareException(mid, moduleGetError(mid)); } } catch (HardwareException ignored) { } long now = System.currentTimeMillis(); if (now - startedAt > acitionOvertime) { - throw new HardwareException(mid.toInt(), A8kEcode.Overtime.toInt()); + throw new HardwareException(mid, A8kEcode.Overtime); } Thread.sleep(100); @@ -378,13 +378,13 @@ public class A8kCanBusService { if (status == ModuleStatus.IDLE) { break; } else if (status == ModuleStatus.ERROR) { - throw new HardwareException(mid.toInt(), moduleGetError(mid)); + throw new HardwareException(mid, moduleGetError(mid)); } } catch (HardwareException ignored) { } long now = System.currentTimeMillis(); if (now - startedAt > acitionOvertime) { - throw new HardwareException(mid.toInt(), A8kEcode.Overtime.toInt()); + throw new HardwareException(mid, A8kEcode.Overtime); } Thread.sleep(100); @@ -455,7 +455,7 @@ public class A8kCanBusService { try { return this.sendCmd(pack, A8kPacket.CMD_OVERTIME); } catch (HardwareException e) { - if (e.getErrorCode() != A8kEcode.Overtime.toInt()) + if (e.getErrorCode() != A8kEcode.Overtime) ; { throw e; @@ -483,7 +483,7 @@ public class A8kCanBusService { long now = System.currentTimeMillis(); if (now - startedAt > acitionOvertime) { - throw new HardwareException(pack.getModuleId(), A8kEcode.Overtime.toInt()); + throw new HardwareException(MId.valueOf(pack.getModuleId()), A8kEcode.Overtime); } Thread.sleep(100); @@ -510,15 +510,15 @@ public class A8kCanBusService { receipt = receiptQueue.poll(overtime, TimeUnit.MILLISECONDS); } catch (InterruptedException e) { isWaitingReceipt = false; - throw new HardwareException(pack.getModuleId(), A8kEcode.Overtime.toInt()); + throw new HardwareException(MId.valueOf(pack.getModuleId()), A8kEcode.Overtime); } isWaitingReceipt = false; if (receipt == null) { - throw new HardwareException(pack.getModuleId(), A8kEcode.Overtime.toInt()); + throw new HardwareException(MId.valueOf(pack.getModuleId()), A8kEcode.Overtime); } if (receipt.getPacketType() == A8kPacket.PACKET_TYPE_ERROR_ACK) { - throw new HardwareException(pack.getModuleId(), receipt.getContentI32(0)); + throw new HardwareException(MId.valueOf(pack.getModuleId()), A8kEcode.valueOf(receipt.getContentI32(0))); } try { Thread.sleep(10); diff --git a/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java b/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java index 8bcf594..654d81c 100644 --- a/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java +++ b/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java @@ -109,7 +109,7 @@ public class MotorTubeRackMoveCtrlService { var dval = a8kCanBusService.module_read_reg(ModId.FeedingModXM, RegIndex.kreg_step_motor_dpos); if (Math.abs(dval - distance) > params.getHorizontalMotorLostStepThresholdVal() ) { - throw new HardwareException(ModId.FeedingModXM, A8kEcode.MotorLostStep.toInt()); + throw new HardwareException(MId.FeedingModXM, A8kEcode.MotorLostStep); } //先通过move_to 指令移动到零点 diff --git a/zhaohe_app.db b/zhaohe_app.db index 628a149..a11d200 100644 Binary files a/zhaohe_app.db and b/zhaohe_app.db differ