Browse Source

v1.2.1| MiniServoDriver 支持重发(为了解决舵机电压不稳短时间掉电的问题)

master
zhaohe 3 months ago
parent
commit
2d0bd3c931
  1. 2
      src/main/java/a8k/app/constant/AppConstant.java
  2. 27
      src/main/java/a8k/app/hardware/driver/MiniServoDriver.java
  3. 3
      src/main/java/a8k/app/service/lowerctrl/TubeFeedingExCtrlService.java
  4. 2
      src/main/java/a8k/extui/page/driver/MiniServoCtrlPage.java
  5. 15
      src/main/java/a8k/extui/page/extapp/TemporaryTestPage.java

2
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;

27
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);
}

3
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));
}
}

2
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);
}

15
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);
}

Loading…
Cancel
Save