diff --git a/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java b/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java index 741c45d..a50b0ef 100644 --- a/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java +++ b/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java @@ -45,6 +45,42 @@ public class MotorTubeRackMoveCtrlService { @Resource MotorTubeRackMoveCtrlServiceParameterDao serviceParameterDao; + public void setEnable( Boolean enable ) throws HardwareException { + this.a8kCanBusService.callcmd( + ModId.FeedingModXM, + CmdId.kstep_motor_enable, + enable ? 1 : 0 + ); + this.a8kCanBusService.callcmd( + ModId.FeedingModInfeedM, + CmdId.kstep_motor_enable, + enable ? 1 : 0 + ); + this.a8kCanBusService.callcmd( + ModId.FeedingModOutfeedM, + CmdId.kstep_motor_enable, + enable ? 1 : 0 + ); + } + + public void stop() throws HardwareException { + this.a8kCanBusService.callcmd( + ModId.FeedingModXM, + CmdId.kstep_motor_stop, + 1 + ); + this.a8kCanBusService.callcmd( + ModId.FeedingModInfeedM, + CmdId.kstep_motor_stop, + 1 + ); + this.a8kCanBusService.callcmd( + ModId.FeedingModOutfeedM, + CmdId.kstep_motor_stop, + 1 + ); + } + // // 电机基础控制 @@ -54,8 +90,7 @@ public class MotorTubeRackMoveCtrlService { var params = this.serviceParameterDao; this.a8kCanBusService.callblockcmd( ModId.FeedingModXM, - CmdId.kstep_motor_easy_move_to_zero, - new Integer[]{}, + CmdId.kstep_motor_easy_move_to_zero, params.getMoveToZeroOvertime() ); } @@ -63,10 +98,10 @@ public class MotorTubeRackMoveCtrlService { public void moveToZero() throws HardwareException, InterruptedException { var params = this.serviceParameterDao; - var beforePosResponse = this.a8kCanBusService.callcmd(ModId.FeedingModXM, CmdId.kstep_motor_read_pos, new Integer[]{0}); + var beforePosResponse = this.a8kCanBusService.callcmd(ModId.FeedingModXM, CmdId.kstep_motor_read_pos); var beforePos = beforePosResponse.getContentI32(0); - this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to_zero, new Integer[]{}, params.getMoveToZeroOvertime()); - var afterPosResponse = this.a8kCanBusService.callcmd(ModId.FeedingModXM, CmdId.kstep_motor_read_pos, new Integer[]{0}); + this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to_zero, params.getMoveToZeroOvertime()); + var afterPosResponse = this.a8kCanBusService.callcmd(ModId.FeedingModXM, CmdId.kstep_motor_read_pos); var afterPos = afterPosResponse.getContentI32(0); var distance = beforePos - afterPos; @@ -100,7 +135,7 @@ public class MotorTubeRackMoveCtrlService { this.a8kCanBusService.callblockcmd( ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, - new Integer[]{params.getTubeRackEnterPos()}, + params.getTubeRackEnterPos(), params.getActionOvertime() ); } @@ -113,7 +148,7 @@ public class MotorTubeRackMoveCtrlService { this.a8kCanBusService.callblockcmd( ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, - new Integer[]{params.getTubeExistJudgmentPos()}, + params.getTubeRackExitPos(), params.getActionOvertime() ); } @@ -126,7 +161,7 @@ public class MotorTubeRackMoveCtrlService { this.a8kCanBusService.callblockcmd( ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, - new Integer[]{params.getTubeRackScanCodePos()}, + params.getTubeRackScanCodePos(), params.getActionOvertime() ); } @@ -136,10 +171,10 @@ public class MotorTubeRackMoveCtrlService { */ public String moveTubeRackToScanPosAndScan() throws HardwareException, InterruptedException { this.moveTubeRackToScanPos(); - this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_start_scan, new Integer[]{}); - Thread.sleep(500); - var response = this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_read_scaner_result, new Integer[]{}); - this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_stop_scan, new Integer[]{}); + this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_start_scan); + Thread.sleep(5000); + var response = this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_read_scaner_result); + this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_stop_scan); var contentBytes = response.getCmdContent(); return new String(contentBytes); } @@ -156,12 +191,11 @@ public class MotorTubeRackMoveCtrlService { */ public void moveTubeToScanPos(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { var params = this.serviceParameterDao; - var tubeInfo = this.tubeInfoDao.getTubeInfo(tubeType); - var scanPos = params.getTubeScanPos() + tubeIndex * tubeInfo.tubeSpacing; + var scanPos = params.getTubeScanPos() + tubeIndex * params.getTubeSpacing(); this.a8kCanBusService.callblockcmd( ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, - new Integer[]{scanPos}, + scanPos, params.getActionOvertime() ); } @@ -174,10 +208,10 @@ public class MotorTubeRackMoveCtrlService { public String moveTubeToScanPosAndScan(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { this.moveTubeToScanPos(tubeType, tubeIndex); - this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_start_scan, new Integer[]{}); - Thread.sleep(500); - var response = this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_read_scaner_result, new Integer[]{}); - this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_stop_scan, new Integer[]{}); + this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_start_scan); + Thread.sleep(5000); + var response = this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_read_scaner_result); + this.a8kCanBusService.callcmd(ModId.FeedingModScannerMod, CmdId.kcode_scaner_stop_scan); var contentBytes = response.getCmdContent(); return new String(contentBytes); } @@ -189,9 +223,13 @@ public class MotorTubeRackMoveCtrlService { */ public void moveTubeToHeighJudgmentPos(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { var params = this.serviceParameterDao; - var tubeInfo = this.tubeInfoDao.getTubeInfo(tubeType); - var detectPos = params.getTubeHeighJudgmentPos() + tubeIndex * tubeInfo.tubeSpacing; - this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{detectPos}, params.getActionOvertime()); + var detectPos = params.getTubeHeighJudgmentPos() + tubeIndex * params.getTubeSpacing(); + this.a8kCanBusService.callblockcmd( + ModId.FeedingModXM, + CmdId.kstep_motor_easy_move_to, + detectPos, + params.getActionOvertime() + ); } /** @@ -201,9 +239,13 @@ public class MotorTubeRackMoveCtrlService { */ public void moveTubeToPreProcessPos(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { var params = this.serviceParameterDao; - var tubeInfo = this.tubeInfoDao.getTubeInfo(tubeType); - var pos = params.getTubePreProcessPos() + tubeIndex * tubeInfo.tubeSpacing; - this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{pos}, params.getActionOvertime()); + var pos = params.getTubePreProcessPos() + tubeIndex * params.getTubeSpacing(); + this.a8kCanBusService.callblockcmd( + ModId.FeedingModXM, + CmdId.kstep_motor_easy_move_to, + pos, + params.getActionOvertime() + ); } // @@ -217,18 +259,17 @@ public class MotorTubeRackMoveCtrlService { */ public void moveTubeToExistJudgmentPos(String tubeType, Integer tubeIndex) throws HardwareException, InterruptedException { var params = this.serviceParameterDao; - var tubeInfo = this.tubeInfoDao.getTubeInfo(tubeType); - var pos = params.getTubeRackExitPos() + tubeIndex * tubeInfo.tubeSpacing; + var pos = params.getTubeRackExitPos() + tubeIndex * params.getTubeSpacing(); this.a8kCanBusService.callblockcmd(ModId.FeedingModXM, CmdId.kstep_motor_easy_move_to, new Integer[]{pos}, params.getActionOvertime()); } public boolean isTubeRackInEnterPos() throws HardwareException { - var response = this.a8kCanBusService.callcmd(ModId.FeedingModBoard, CmdId.kxymotor_read_inio, new Integer[]{3}); + var response = this.a8kCanBusService.callcmd(ModId.FeedingModBoard, CmdId.kxymotor_read_inio, 3); return response.getContentI32(0) == 1; } public boolean isTubeRackInExitPos() throws HardwareException { - var response = this.a8kCanBusService.callcmd(ModId.FeedingModBoard, CmdId.kxymotor_read_inio, new Integer[]{5}); + var response = this.a8kCanBusService.callcmd(ModId.FeedingModBoard, CmdId.kxymotor_read_inio, 5); return response.getContentI32(0) == 1; } @@ -237,7 +278,7 @@ public class MotorTubeRackMoveCtrlService { * @param photoelectricIndex 0:里光电,1:外光电 * @return true, 光电触发 false,光电没有触发 */ - public boolean getMoveChannelPhotoelectricState(int photoelectricIndex) throws HardwareException { + public boolean getMoveChannelPhotoelectricState(Integer photoelectricIndex) throws HardwareException { var index = 0 == photoelectricIndex ? 2 : 1; var response = this.a8kCanBusService.callcmd(ModId.FeedingModBoard, CmdId.kxymotor_read_inio, new Integer[]{index}); return response.getContentI32(0) == 1;