zhaohe 1 year ago
parent
commit
593b61fce2
  1. 8
      src/main/java/a8k/service/db/dao/SamplesPreProcessModuleCtrlParamsService.java
  2. 31
      src/main/java/a8k/service/hardware/SamplesPreProcessModuleCtrlService.java

8
src/main/java/a8k/service/db/dao/SamplesPreProcessModuleCtrlParamsService.java

@ -35,6 +35,14 @@ public class SamplesPreProcessModuleCtrlParamsService {
* 升降电机相关位置
*/
public int getZMotor_HighBloodTakeTubeHeight() {
return HardwareServiceSetting.getInteger(this.serviceName, "ZMotor_HighBloodTakeTubeHeight", 0);
}
public int getZMotor_ShortBloodTakeTubeHeight() {
return HardwareServiceSetting.getInteger(this.serviceName, "ZMotor_ShortBloodTakeTubeHeight", 0);
}
// 高全血试管取帽位置
public int getZMotor_HighBloodTakeCapHeight() {
return HardwareServiceSetting.getInteger(this.serviceName, "ZMotor_HighBloodTakeCapHeight", 0);

31
src/main/java/a8k/service/hardware/SamplesPreProcessModuleCtrlService.java

@ -103,7 +103,7 @@ public class SamplesPreProcessModuleCtrlService {
CmdId.mini_servo_enable.toInt(),
enable ? 1 : 0
);
this.a8kCanBusService.stepMotorEnable(MId.ShakeModGripperZM, enable ? 1 : 0);
}
@ -129,10 +129,17 @@ public class SamplesPreProcessModuleCtrlService {
params.getActionOvertime()
);
var motorUdTubeTaskPos = params.getZMotor_ShortBloodTakeCapHeight();
this.a8kCanBusService.callblockcmd(
MId.ShakeModClampingM.toInt(),
CmdId.step_motor_easy_move_to.toInt(),
params.getTubeClampMotor_standbyPos(),
params.getActionOvertime()
);
var motorUdTubeTaskPos = params.getZMotor_ShortBloodTakeTubeHeight();
var tubeTypeValue = A8kTubeType.valueOf(tubeType);
if ( tubeTypeValue.equals(A8kTubeType.HighBlood) ) {
motorUdTubeTaskPos = params.getZMotor_HighBloodTakeCapHeight();
motorUdTubeTaskPos = params.getZMotor_HighBloodTakeTubeHeight();
}
this.a8kCanBusService.callblockcmd(
MId.ShakeModGripperZM.toInt(),
@ -236,14 +243,14 @@ public class SamplesPreProcessModuleCtrlService {
var params = this.samplesPreProcessModuleCtrlParamsService;
this.a8kCanBusService.callblockcmd(
MId.ShakeModGripperYSV.toInt(),
CmdId.step_motor_easy_move_to.toInt(),
CmdId.mini_servo_move_to.toInt(),
params.getHorizontalMotor_takePushCapPos(),
params.getActionOvertime()
);
this.a8kCanBusService.callblockcmd(
MId.ShakeModGripperSV.toInt(),
CmdId.step_motor_easy_move_to.toInt(),
CmdId.mini_servo_move_to.toInt(),
params.getGripperServo_standbyPos(),
params.getActionOvertime()
);
@ -262,8 +269,8 @@ public class SamplesPreProcessModuleCtrlService {
this.a8kCanBusService.callblockcmd(
MId.ShakeModGripperSV.toInt(),
CmdId.step_motor_easy_move_to.toInt(),
params.getGripperServo_standbyPos(),
CmdId.mini_servo_move_to.toInt(),
params.getGripperServo_takeTubePos(),
params.getActionOvertime()
);
@ -276,7 +283,7 @@ public class SamplesPreProcessModuleCtrlService {
this.a8kCanBusService.callblockcmd(
MId.ShakeModGripperYSV.toInt(),
CmdId.step_motor_easy_move_to.toInt(),
CmdId.mini_servo_move_to.toInt(),
params.getHorizontalMotor_standbyPos(),
params.getActionOvertime()
);
@ -347,7 +354,7 @@ public class SamplesPreProcessModuleCtrlService {
* @param times 摇匀次数
* @param shakeDegree 摇匀角度
*/
public void ShakeTube(String tubeType, int times, int shakeDegree) throws HardwareException, InterruptedException {
public void ShakeTube(String tubeType, Integer times, Integer shakeDegree) throws HardwareException, InterruptedException {
var params = this.samplesPreProcessModuleCtrlParamsService;
var standByPos = params.getShakeMotor_standbyPos();
var startPos = standByPos - shakeDegree/2;
@ -470,4 +477,10 @@ public class SamplesPreProcessModuleCtrlService {
this.a8kCanBusService.stepMotorEasyMoveTo(MId.ShakeModShakeM, params.getShakeMotor_standbyPos());
this.a8kCanBusService.waitForMod(MId.ShakeModShakeM, params.getActionOvertime());
}
public void openTubeClip() throws HardwareException, InterruptedException {
var params = this.samplesPreProcessModuleCtrlParamsService;
this.a8kCanBusService.stepMotorEasyMoveBy(MId.ShakeModClampingM, 10);
this.a8kCanBusService.waitForMod(MId.ShakeModClampingM, params.getActionOvertime());
}
}
Loading…
Cancel
Save