From 4fd5d2d40cd4f2ac6eb15a90ef599dd05a692775 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Mon, 22 Jul 2024 16:44:41 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/a8k/appbean/HardwareException.java | 14 ++++ src/main/java/a8k/appbean/ecode/AppRet.java | 83 ++++++++++++++------- .../java/a8k/appbean/ecode/AppRetEcodeInfo.java | 77 +++++++++++++++++++ .../DeviceInitializationCtrlService.java | 31 ++++---- .../service/hardware/CommonHardwareOpeartion.java | 9 ++- zhaohe_app.db | Bin 479232 -> 479232 bytes 6 files changed, 172 insertions(+), 42 deletions(-) create mode 100644 src/main/java/a8k/appbean/ecode/AppRetEcodeInfo.java diff --git a/src/main/java/a8k/appbean/HardwareException.java b/src/main/java/a8k/appbean/HardwareException.java index 6013f16..c7d8698 100644 --- a/src/main/java/a8k/appbean/HardwareException.java +++ b/src/main/java/a8k/appbean/HardwareException.java @@ -1,6 +1,7 @@ package a8k.appbean; import a8k.a8k_can_protocol.A8kEcode; +import a8k.a8k_can_protocol.CmdId; import a8k.a8k_can_protocol.MId; public class HardwareException extends Exception { @@ -8,6 +9,7 @@ public class HardwareException extends Exception { A8kEcode errorCode; MId moduleId; + CmdId cmdId; public HardwareException() { super(); @@ -17,6 +19,14 @@ public class HardwareException extends Exception { super(String.format("Module ID %s has error code %s", mid, ecode)); this.errorCode = ecode; this.moduleId = mid; + this.cmdId = null; + } + + public HardwareException(MId mid, A8kEcode ecode, CmdId cmd) { + super(String.format("Module ID %s has error code %s", mid, ecode)); + this.errorCode = ecode; + this.moduleId = mid; + this.cmdId = cmd; } public MId getModuleId() { @@ -27,4 +37,8 @@ public class HardwareException extends Exception { return errorCode; } + public CmdId getCmdId() { + return cmdId; + } + } diff --git a/src/main/java/a8k/appbean/ecode/AppRet.java b/src/main/java/a8k/appbean/ecode/AppRet.java index d54e54f..8025b47 100644 --- a/src/main/java/a8k/appbean/ecode/AppRet.java +++ b/src/main/java/a8k/appbean/ecode/AppRet.java @@ -5,47 +5,80 @@ import a8k.a8k_can_protocol.MId; import a8k.a8k_can_protocol.A8kEcode; import a8k.appbean.HardwareException; -public class AppRet { - public A8kEcode errorCode; - public MId mid; - public CmdId cmd; +public class AppRet { - public AppRet(A8kEcode errorCode, MId mid) { - this.errorCode = errorCode; - this.mid = mid; - this.cmd = CmdId.NotSet; + boolean suc; + AppRetEcodeInfo ecode; + T data; + long timestamp;//接口请求时间 + + public AppRet() { + this.timestamp = System.currentTimeMillis(); + } + + public boolean isSuc() { + return suc; } - public AppRet(A8kEcode errorCode) { - this.errorCode = errorCode; - this.mid = MId.NotSet; - this.cmd = CmdId.NotSet; + public long getTimestamp() { + return timestamp; } - public AppRet(HardwareException e) { - this.errorCode = e.getErrorCode(); - this.mid = e.getModuleId(); + public AppRetEcodeInfo getEcode() { + return ecode; } + public T getData() { + return data; + } + + + public static AppRet success(T data) { + AppRet r = new AppRet<>(); + r.suc = true; + r.ecode = null; + r.data = data; + return r; + } - public boolean isOk() { - return errorCode == A8kEcode.Success; + public static AppRet success() { + AppRet r = new AppRet<>(); + r.suc = true; + r.ecode = null; + r.data = null; + return r; } - public String getEcodeChName() { - return errorCode.getChname(); + public static AppRet fail(A8kEcode errorCode, MId mid, CmdId cmd) { + AppRet r = new AppRet<>(); + r.suc = false; + r.ecode = new AppRetEcodeInfo(errorCode, mid, cmd); + r.data = null; + return r; } - public MId getMid() { - return mid; + public static AppRet fail(A8kEcode errorCode, MId mid) { + AppRet r = new AppRet<>(); + r.suc = false; + r.ecode = new AppRetEcodeInfo(errorCode, mid, null); + r.data = null; + return r; } - public String getMidChName() { - return mid.chname; + public static AppRet fail(A8kEcode errorCode) { + AppRet r = new AppRet<>(); + r.suc = false; + r.ecode = new AppRetEcodeInfo(errorCode, null, null); + r.data = null; + return r; } - public String getCmdChName() { - return cmd.chName; + public static AppRet fail(HardwareException e) { + AppRet r = new AppRet<>(); + r.suc = false; + r.ecode = new AppRetEcodeInfo(e.getErrorCode(), e.getModuleId(), e.getCmdId()); + r.data = null; + return r; } } diff --git a/src/main/java/a8k/appbean/ecode/AppRetEcodeInfo.java b/src/main/java/a8k/appbean/ecode/AppRetEcodeInfo.java new file mode 100644 index 0000000..7d09018 --- /dev/null +++ b/src/main/java/a8k/appbean/ecode/AppRetEcodeInfo.java @@ -0,0 +1,77 @@ +package a8k.appbean.ecode; + +import a8k.a8k_can_protocol.A8kEcode; +import a8k.a8k_can_protocol.CmdId; +import a8k.a8k_can_protocol.MId; + +public class AppRetEcodeInfo { + A8kEcode errorCode; + MId mid; + CmdId cmd; + + AppRetEcodeInfo(A8kEcode errorCode, MId mid, CmdId cmd) { + this.errorCode = errorCode; + this.mid = mid; + this.cmd = cmd; + } + + //code + + public Integer getCode() { + return errorCode.index; + } + + public String getCodeChName() { + return errorCode.getChname(); + } + + public String getCodeName() { + return errorCode.toString(); + } + + //mid code + + public Integer getMidCode() { + if (mid == null) { + return null; + } + return mid.toInt(); + } + + public String getMidChName() { + if (mid == null) { + return null; + } + return mid.chname; + } + + public String getMidCodeName() { + if (mid == null) { + return null; + } + return mid.toString(); + } + + //cmd code + + public Integer getCmdCode() { + if (cmd == null) { + return null; + } + return cmd.toInt(); + } + + public String getCmdChName() { + if (cmd == null) { + return null; + } + return cmd.chName; + } + + public String getCmdCodeName() { + if (cmd == null) { + return null; + } + return cmd.toString(); + } +} diff --git a/src/main/java/a8k/service/ctrl_service/DeviceInitializationCtrlService.java b/src/main/java/a8k/service/ctrl_service/DeviceInitializationCtrlService.java index 1fd2be3..3c37f4a 100644 --- a/src/main/java/a8k/service/ctrl_service/DeviceInitializationCtrlService.java +++ b/src/main/java/a8k/service/ctrl_service/DeviceInitializationCtrlService.java @@ -49,25 +49,29 @@ public class DeviceInitializationCtrlService { AppRet ecode; //硬件光电初始化 + logger.info("hardwareStaticInit"); ecode = hardwareStaticInit(); - if (!ecode.isOk()) { + if (!ecode.isSuc()) { return ecode; } //检查设备状态 + logger.info("checkDeviceState"); ecode = checkDeviceState(); - if (!ecode.isOk()) { + if (!ecode.isSuc()) { return ecode; } // 复位设备 + logger.info("moveMotorToZero"); ecode = moveMotorToZero(); - if (!ecode.isOk()) { + if (!ecode.isSuc()) { return ecode; } // 清空耗材 initSuc = true; +// throw new RuntimeException("test"); } catch (HardwareException e) { @@ -88,7 +92,8 @@ public class DeviceInitializationCtrlService { } } - return new AppRet(A8kEcode.Success); + logger.info("Device initialization completed"); + return AppRet.success(); } @@ -109,46 +114,46 @@ public class DeviceInitializationCtrlService { // 试管夹紧电机打开一点,好方便有试管夹住的时,突然断电时,将试管取出 canBus.stepMotorEasyMoveBy(MId.ShakeModClampingM, 2); canBus.waitForMod(MId.ShakeModClampingM, actionOvertime); - return new AppRet(A8kEcode.Success); + return AppRet.success(); } private AppRet checkDeviceState() throws HardwareException { //试管平移通道是否有障碍 if (canBus.getIOState(IOId.THChInterPPS) || canBus.getIOState(IOId.THChOuterPPS)) { logger.warn("THChInterPPS or THChOuterPPS is trigger"); - return new AppRet(A8kEcode.PlateStuckDetectorSensorTrigger); + return AppRet.fail(A8kEcode.PlateStuckDetectorSensorTrigger); } //板夹仓盖子是否盖上 if (!canBus.getIOState(IOId.PlateBoxCoverClosurePPS)) { logger.warn("PlateBoxCoverClosure is open"); - return new AppRet(A8kEcode.PlateBoxNotCover); + return AppRet.fail(A8kEcode.PlateBoxNotCover); } //板夹仓卡板检测 if (canBus.getIOState(IOId.PlateBoxPlateStuckPPS)) { logger.warn("PlateBoxPlateStuckPPS is trigger"); - return new AppRet(A8kEcode.PlateStuckDetectorSensorTrigger); + return AppRet.fail(A8kEcode.PlateStuckDetectorSensorTrigger); } //检查钩板电机是否处于终点位置 if (!canBus.getIOState(IOId.PullerMZeroPPS)) { logger.warn("PullerM is not in zero pos"); - return new AppRet(A8kEcode.PullerMInitPosError); + return AppRet.fail(A8kEcode.PullerMInitPosError); } //检查板夹仓光电是否处于起点位置 if (!canBus.getIOState(IOId.PusherMZeroPPS)) { logger.warn("PusherM is not in zero pos"); - return new AppRet(A8kEcode.PusherMInitPosError); + return AppRet.fail(A8kEcode.PusherMInitPosError); } //板夹仓光电 if (canBus.getIOState(IOId.RecycleBinOverflowPPS)) { logger.warn("RecycleBinOverflow is trigger"); - return new AppRet(A8kEcode.RecycleBinOverflow); + return AppRet.fail(A8kEcode.RecycleBinOverflow); } - return new AppRet(A8kEcode.Success); + return AppRet.success(); } private AppRet moveMotorToZero() throws HardwareException, InterruptedException { @@ -204,7 +209,7 @@ public class DeviceInitializationCtrlService { //canBus.waitForMod(MId.ShakeModGripperZM, actionOvertime); - return new AppRet(A8kEcode.Success); + return AppRet.success(); } diff --git a/src/main/java/a8k/service/hardware/CommonHardwareOpeartion.java b/src/main/java/a8k/service/hardware/CommonHardwareOpeartion.java index 7c3866c..c026a55 100644 --- a/src/main/java/a8k/service/hardware/CommonHardwareOpeartion.java +++ b/src/main/java/a8k/service/hardware/CommonHardwareOpeartion.java @@ -23,9 +23,9 @@ public class CommonHardwareOpeartion { try { enableAllMotor(); } catch (HardwareException e) { - return new AppRet(e); + return AppRet.fail(e); } - return new AppRet(A8kEcode.Success); + return AppRet.success(); } @PostMapping("/api/CommonHardwareOpeartion/disableAllMotorNoExcep") @@ -34,9 +34,9 @@ public class CommonHardwareOpeartion { try { enableAllMotor(); } catch (HardwareException e) { - return new AppRet(e); + return AppRet.fail(e); } - return new AppRet(A8kEcode.Success); + return AppRet.success(); } public void enableAllMotor(Boolean enable) throws HardwareException { @@ -68,6 +68,7 @@ public class CommonHardwareOpeartion { //转盘归零 canBus.stepMotorEnable(MId.IncubatorRotateCtrlM, enable ? 1 : 0); + } @PostMapping("/api/CommonHardwareOpeartion/enableAllMotor") diff --git a/zhaohe_app.db b/zhaohe_app.db index 56c73d177cbdfbefd07203a4c2a5a62b0d1e2b3d..472e04941a70980de963dd465826722a63727964 100644 GIT binary patch delta 40 vcmZozAltA&c7ilx@kAMC#^T0=)&$1Z1g6#m=GFw3)&$np1h%aS>7wHXM delta 40 vcmZozAltA&c7ilx>O>i5#?;1y)&$1Z1g6#m=GFw3)&$np1h%aS>6w3`k