From 2d0bd3c931b5e9ca06c85255f7877f38e456f48d Mon Sep 17 00:00:00 2001 From: zhaohe Date: Fri, 25 Apr 2025 13:22:55 +0800 Subject: [PATCH] =?UTF-8?q?v1.2.1|=20MiniServoDriver=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E9=87=8D=E5=8F=91(=E4=B8=BA=E4=BA=86=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E8=88=B5=E6=9C=BA=E7=94=B5=E5=8E=8B=E4=B8=8D=E7=A8=B3=E7=9F=AD?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=8E=89=E7=94=B5=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/a8k/app/constant/AppConstant.java | 2 +- .../a8k/app/hardware/driver/MiniServoDriver.java | 27 ++++++++++++++++------ .../lowerctrl/TubeFeedingExCtrlService.java | 3 +-- .../a8k/extui/page/driver/MiniServoCtrlPage.java | 2 +- .../a8k/extui/page/extapp/TemporaryTestPage.java | 15 +++++------- 5 files changed, 29 insertions(+), 20 deletions(-) diff --git a/src/main/java/a8k/app/constant/AppConstant.java b/src/main/java/a8k/app/constant/AppConstant.java index 14560f0..0d7e012 100644 --- a/src/main/java/a8k/app/constant/AppConstant.java +++ b/src/main/java/a8k/app/constant/AppConstant.java @@ -5,7 +5,7 @@ public class AppConstant { public static final int CONSUMABLE_COL_NUM = 5; public static final int CONSUMABLE_ROW_NUM = 5; public static final int TIP_NUM = 120; - public static final String APP_VERSION = "1.2.0"; + public static final String APP_VERSION = "1.2.1"; public static final int CONSUMABLE_CHANNEL_NUM = 6; diff --git a/src/main/java/a8k/app/hardware/driver/MiniServoDriver.java b/src/main/java/a8k/app/hardware/driver/MiniServoDriver.java index 4e981a9..41cbebd 100644 --- a/src/main/java/a8k/app/hardware/driver/MiniServoDriver.java +++ b/src/main/java/a8k/app/hardware/driver/MiniServoDriver.java @@ -53,19 +53,32 @@ public class MiniServoDriver { miniServoMoveToBlock(id, MiniServoConstant.getZeroPos(id)); } - public void miniServoMoveToZero(MiniServoMId id) throws AppException { - log.debug("{} miniServoMoveToZero", id.mid); - miniServoMoveTo(id, MiniServoConstant.getZeroPos(id)); - } - public void miniServoMoveTo(MiniServoMId id, int pos) throws AppException { + private void miniServoMoveTo(MiniServoMId id, int pos) throws AppException { callcmd(id.mid, CmdId.mini_servo_move_to, pos); } public void miniServoMoveToBlock(MiniServoMId id, int pos) throws AppException { log.debug("{} miniServoMoveTo {}", id.mid, pos); - miniServoMoveTo(id, pos); - canBus.waitForMod(id.mid, MiniServoConstant.actionOvertime); + int retry = 0; + do { + try { + miniServoMoveTo(id, pos); + canBus.waitForMod(id.mid, MiniServoConstant.actionOvertime); + return; + } catch (AppException e) { + if (e.getError().code.equals(A8kEcode.LOW_ERROR_SUBDEVICE_OVERTIME)) { + log.warn("CALL miniServoMoveToBlock {} FAIL, SUB DEVICE OVERTIME", id); + if (retry > 3) { + throw e; + } + } else { + throw e; + } + } + OS.hsleep(1000); + retry++; + } while (true); } diff --git a/src/main/java/a8k/app/service/lowerctrl/TubeFeedingExCtrlService.java b/src/main/java/a8k/app/service/lowerctrl/TubeFeedingExCtrlService.java index 1fd9fe3..7307f31 100644 --- a/src/main/java/a8k/app/service/lowerctrl/TubeFeedingExCtrlService.java +++ b/src/main/java/a8k/app/service/lowerctrl/TubeFeedingExCtrlService.java @@ -87,8 +87,7 @@ public class TubeFeedingExCtrlService { logger.info("扫描夹紧机构复位"); miniServoDriver.miniServoEnable(MiniServoMId.ShakeModTubeScanerClampingSV, 1); - miniServoDriver.miniServoMoveTo(MiniServoMId.ShakeModTubeScanerClampingSV, MiniServoConstant.getZeroPos(MiniServoMId.ShakeModTubeScanerClampingSV)); - canBus.waitForMod(MId.ShakeModTubeScanerClampingSV, actionOvertimeConstant.get(MId.ShakeModTubeScanerClampingSV, CmdId.mini_servo_move_to)); + miniServoDriver.miniServoMoveToBlock(MiniServoMId.ShakeModTubeScanerClampingSV, MiniServoConstant.getZeroPos(MiniServoMId.ShakeModTubeScanerClampingSV)); } } diff --git a/src/main/java/a8k/extui/page/driver/MiniServoCtrlPage.java b/src/main/java/a8k/extui/page/driver/MiniServoCtrlPage.java index 47fdcef..b36eb60 100644 --- a/src/main/java/a8k/extui/page/driver/MiniServoCtrlPage.java +++ b/src/main/java/a8k/extui/page/driver/MiniServoCtrlPage.java @@ -79,7 +79,7 @@ public class MiniServoCtrlPage { } public void moveToZero() throws AppException { - miniServoDriver.miniServoMoveToZero(id); + miniServoDriver.miniServoMoveToZeroBlock(id); } diff --git a/src/main/java/a8k/extui/page/extapp/TemporaryTestPage.java b/src/main/java/a8k/extui/page/extapp/TemporaryTestPage.java index c62dcba..fceaba7 100644 --- a/src/main/java/a8k/extui/page/extapp/TemporaryTestPage.java +++ b/src/main/java/a8k/extui/page/extapp/TemporaryTestPage.java @@ -24,8 +24,7 @@ public class TemporaryTestPage { // public void shakeModGripperYSVMoveTo(Integer pos) throws AppException { miniServoDriver.miniServoEnable(MiniServoMId.ShakeModGripperYSV, 1); - miniServoDriver.miniServoMoveTo(MiniServoMId.ShakeModGripperYSV, pos); - miniServoDriver.waitForMod(MiniServoMId.ShakeModGripperYSV); + miniServoDriver.miniServoMoveToBlock(MiniServoMId.ShakeModGripperYSV, pos); } public Integer shakeModGripperYSVReadPos() throws AppException { @@ -34,8 +33,7 @@ public class TemporaryTestPage { public void shakeModGripperSVMoveTo(Integer pos) throws AppException { miniServoDriver.miniServoEnable(MiniServoMId.ShakeModGripperSV, 1); - miniServoDriver.miniServoMoveTo(MiniServoMId.ShakeModGripperSV, pos); - miniServoDriver.waitForMod(MiniServoMId.ShakeModGripperSV); + miniServoDriver.miniServoMoveToBlock(MiniServoMId.ShakeModGripperSV, pos); } public Integer shakeModGripperSVReadPos() throws AppException { @@ -44,8 +42,7 @@ public class TemporaryTestPage { public void shakeModTubeScanerClampingSVMoveTo(Integer pos) throws AppException { miniServoDriver.miniServoEnable(MiniServoMId.ShakeModTubeScanerClampingSV, 1); - miniServoDriver.miniServoMoveTo(MiniServoMId.ShakeModTubeScanerClampingSV, pos); - miniServoDriver.waitForMod(MiniServoMId.ShakeModTubeScanerClampingSV); + miniServoDriver.miniServoMoveToBlock(MiniServoMId.ShakeModTubeScanerClampingSV, pos); } public Integer shakeModTubeScanerClampingSVReadPos() throws AppException { @@ -53,9 +50,9 @@ public class TemporaryTestPage { } public void moveTo(Integer shakeModGripperYSPos, Integer shakeModGripperPos, Integer shakeModTubeScanerClampingPos) throws AppException { - miniServoDriver.miniServoMoveTo(MiniServoMId.ShakeModGripperYSV, shakeModGripperYSPos); - miniServoDriver.miniServoMoveTo(MiniServoMId.ShakeModGripperSV, shakeModGripperPos); - miniServoDriver.miniServoMoveTo(MiniServoMId.ShakeModTubeScanerClampingSV, shakeModTubeScanerClampingPos); + miniServoDriver.miniServoMoveToBlock(MiniServoMId.ShakeModGripperYSV, shakeModGripperYSPos); + miniServoDriver.miniServoMoveToBlock(MiniServoMId.ShakeModGripperSV, shakeModGripperPos); + miniServoDriver.miniServoMoveToBlock(MiniServoMId.ShakeModTubeScanerClampingSV, shakeModTubeScanerClampingPos); }