sige 1 year ago
parent
commit
ea88deb8cf
  1. 101
      src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java

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

Loading…
Cancel
Save