|
@ -8,6 +8,7 @@ import a8k.appbean.HardwareException; |
|
|
import a8k.base_hardware.A8kCanBusService; |
|
|
import a8k.base_hardware.A8kCanBusService; |
|
|
import a8k.service.db.dao.A8kTubeInfoDao; |
|
|
import a8k.service.db.dao.A8kTubeInfoDao; |
|
|
import a8k.service.db.dao.SamplesPreProcessModuleCtrlParamsService; |
|
|
import a8k.service.db.dao.SamplesPreProcessModuleCtrlParamsService; |
|
|
|
|
|
import com.iflytop.uf.util.UfCommon; |
|
|
import jakarta.annotation.Resource; |
|
|
import jakarta.annotation.Resource; |
|
|
import org.springframework.stereotype.Component; |
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
@ -104,6 +105,17 @@ public class SamplesPreProcessModuleCtrlService { |
|
|
); |
|
|
); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 使能模组 |
|
|
|
|
|
*/ |
|
|
|
|
|
public void stop() throws HardwareException { |
|
|
|
|
|
this.a8kCanBusService.callcmd(ModuleId.ShakeModShakeM, CmdId.kstep_motor_stop); |
|
|
|
|
|
this.a8kCanBusService.callcmd(ModuleId.ShakeModClampingM, CmdId.kstep_motor_stop); |
|
|
|
|
|
this.a8kCanBusService.callcmd(ModuleId.ShakeModClampingM, CmdId.kstep_motor_stop); |
|
|
|
|
|
this.a8kCanBusService.callcmd(ModuleId.ShakeModGripperYM, CmdId.kmini_servo_stop); |
|
|
|
|
|
this.a8kCanBusService.callcmd(ModuleId.ShakeModGripperSV, CmdId.kmini_servo_stop); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -118,11 +130,11 @@ public class SamplesPreProcessModuleCtrlService { |
|
|
* @param tubeType TubeType_HighBlood,TubeType_ShortBlood,TubeType_Mini,TubeType_MiniBlood,TubeType_BulletTube1P5,TubeType_BulletTube0P5 |
|
|
* @param tubeType TubeType_HighBlood,TubeType_ShortBlood,TubeType_Mini,TubeType_MiniBlood,TubeType_BulletTube1P5,TubeType_BulletTube0P5 |
|
|
* @param judgeCapExist 是否判断试管帽子存在与否 |
|
|
* @param judgeCapExist 是否判断试管帽子存在与否 |
|
|
*/ |
|
|
*/ |
|
|
public AppErrorCode takeTube(String tubeType,boolean judgeCapExist) throws HardwareException, InterruptedException { |
|
|
|
|
|
|
|
|
public AppErrorCode takeTube(String tubeType, Boolean judgeCapExist) throws HardwareException, InterruptedException { |
|
|
var params = this.samplesPreProcessModuleCtrlParamsService; |
|
|
var params = this.samplesPreProcessModuleCtrlParamsService; |
|
|
this.a8kCanBusService.callblockcmd( |
|
|
this.a8kCanBusService.callblockcmd( |
|
|
ModuleId.ShakeModGripperYM, |
|
|
ModuleId.ShakeModGripperYM, |
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
|
|
|
|
|
CmdId.kmini_servo_move_to, |
|
|
params.getHorizontalMotor_takeCapPos(), |
|
|
params.getHorizontalMotor_takeCapPos(), |
|
|
params.getActionOvertime() |
|
|
params.getActionOvertime() |
|
|
); |
|
|
); |
|
@ -140,16 +152,18 @@ public class SamplesPreProcessModuleCtrlService { |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
if ( judgeCapExist ) { |
|
|
if ( judgeCapExist ) { |
|
|
this.a8kCanBusService.callblockcmd( |
|
|
|
|
|
ModuleId.ShakeModClampingM, |
|
|
|
|
|
|
|
|
this.a8kCanBusService.callcmd( |
|
|
|
|
|
ModuleId.ShakeModGripperSV, |
|
|
CmdId.kmini_servo_rotate_with_torque, |
|
|
CmdId.kmini_servo_rotate_with_torque, |
|
|
params.getGripperServo_takeCapTorque(), |
|
|
|
|
|
params.getActionOvertime() |
|
|
|
|
|
|
|
|
params.getGripperServo_takeCapTorque() |
|
|
); |
|
|
); |
|
|
|
|
|
UfCommon.delay(3000); |
|
|
this.a8kCanBusService.callcmd( |
|
|
this.a8kCanBusService.callcmd( |
|
|
ModuleId.ShakeModGripperSV, |
|
|
ModuleId.ShakeModGripperSV, |
|
|
CmdId.kmini_servo_stop |
|
|
|
|
|
|
|
|
CmdId.kmini_servo_stop, |
|
|
|
|
|
1 |
|
|
); |
|
|
); |
|
|
|
|
|
UfCommon.delay(1000); |
|
|
var pos = this.a8kCanBusService.callcmd( |
|
|
var pos = this.a8kCanBusService.callcmd( |
|
|
ModuleId.ShakeModGripperSV, |
|
|
ModuleId.ShakeModGripperSV, |
|
|
CmdId.kmini_servo_read_pos |
|
|
CmdId.kmini_servo_read_pos |
|
@ -159,12 +173,12 @@ public class SamplesPreProcessModuleCtrlService { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
|
|
|
|
|
|
this.a8kCanBusService.callcmd( |
|
|
ModuleId.ShakeModGripperSV, |
|
|
ModuleId.ShakeModGripperSV, |
|
|
CmdId.kmini_servo_rotate_with_torque, |
|
|
CmdId.kmini_servo_rotate_with_torque, |
|
|
params.getGripperServo_takeCapTorque(), |
|
|
|
|
|
params.getActionOvertime() |
|
|
|
|
|
|
|
|
params.getGripperServo_takeCapTorque() |
|
|
); |
|
|
); |
|
|
|
|
|
UfCommon.delay(3000); |
|
|
|
|
|
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
this.a8kCanBusService.callblockcmd( |
|
|
ModuleId.ShakeModGripperZM, |
|
|
ModuleId.ShakeModGripperZM, |
|
@ -181,6 +195,20 @@ public class SamplesPreProcessModuleCtrlService { |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
this.a8kCanBusService.callblockcmd( |
|
|
|
|
|
ModuleId.ShakeModShakeM, |
|
|
|
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
|
|
params.getShakeMotor_standbyPos(), |
|
|
|
|
|
params.getActionOvertime() |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
|
|
|
ModuleId.ShakeModClampingM, |
|
|
|
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
|
|
params.getTubeClampMotor_standbyPos(), |
|
|
|
|
|
params.getActionOvertime() |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
ModuleId.ShakeModGripperZM, |
|
|
ModuleId.ShakeModGripperZM, |
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
params.getZMotor_placeShakeHeight(), |
|
|
params.getZMotor_placeShakeHeight(), |
|
@ -189,7 +217,7 @@ public class SamplesPreProcessModuleCtrlService { |
|
|
|
|
|
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
this.a8kCanBusService.callblockcmd( |
|
|
ModuleId.ShakeModGripperSV, |
|
|
ModuleId.ShakeModGripperSV, |
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
|
|
|
|
|
CmdId.kmini_servo_move_to, |
|
|
params.getGripperServo_standbyPos(), |
|
|
params.getGripperServo_standbyPos(), |
|
|
params.getActionOvertime() |
|
|
params.getActionOvertime() |
|
|
); |
|
|
); |
|
@ -203,7 +231,7 @@ public class SamplesPreProcessModuleCtrlService { |
|
|
|
|
|
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
this.a8kCanBusService.callblockcmd( |
|
|
ModuleId.ShakeModGripperYM, |
|
|
ModuleId.ShakeModGripperYM, |
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
|
|
|
|
|
CmdId.kmini_servo_move_to, |
|
|
params.getHorizontalMotor_standbyPos(), |
|
|
params.getHorizontalMotor_standbyPos(), |
|
|
params.getActionOvertime() |
|
|
params.getActionOvertime() |
|
|
); |
|
|
); |
|
@ -227,14 +255,14 @@ public class SamplesPreProcessModuleCtrlService { |
|
|
var params = this.samplesPreProcessModuleCtrlParamsService; |
|
|
var params = this.samplesPreProcessModuleCtrlParamsService; |
|
|
this.a8kCanBusService.callblockcmd( |
|
|
this.a8kCanBusService.callblockcmd( |
|
|
ModuleId.ShakeModGripperYM, |
|
|
ModuleId.ShakeModGripperYM, |
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
|
|
|
|
|
CmdId.kmini_servo_move_to, |
|
|
params.getHorizontalMotor_takePushCapPos(), |
|
|
params.getHorizontalMotor_takePushCapPos(), |
|
|
params.getActionOvertime() |
|
|
params.getActionOvertime() |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
this.a8kCanBusService.callblockcmd( |
|
|
ModuleId.ShakeModGripperSV, |
|
|
ModuleId.ShakeModGripperSV, |
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
|
|
|
|
|
CmdId.kmini_servo_move_to, |
|
|
params.getGripperServo_standbyPos(), |
|
|
params.getGripperServo_standbyPos(), |
|
|
params.getActionOvertime() |
|
|
params.getActionOvertime() |
|
|
); |
|
|
); |
|
@ -253,7 +281,7 @@ public class SamplesPreProcessModuleCtrlService { |
|
|
|
|
|
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
this.a8kCanBusService.callblockcmd( |
|
|
ModuleId.ShakeModGripperSV, |
|
|
ModuleId.ShakeModGripperSV, |
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
|
|
|
|
|
CmdId.kmini_servo_move_to, |
|
|
params.getGripperServo_standbyPos(), |
|
|
params.getGripperServo_standbyPos(), |
|
|
params.getActionOvertime() |
|
|
params.getActionOvertime() |
|
|
); |
|
|
); |
|
@ -267,7 +295,7 @@ public class SamplesPreProcessModuleCtrlService { |
|
|
|
|
|
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
this.a8kCanBusService.callblockcmd( |
|
|
ModuleId.ShakeModGripperYM, |
|
|
ModuleId.ShakeModGripperYM, |
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
|
|
|
|
|
CmdId.kmini_servo_move_to, |
|
|
params.getHorizontalMotor_standbyPos(), |
|
|
params.getHorizontalMotor_standbyPos(), |
|
|
params.getActionOvertime() |
|
|
params.getActionOvertime() |
|
|
); |
|
|
); |
|
@ -281,14 +309,14 @@ public class SamplesPreProcessModuleCtrlService { |
|
|
var params = this.samplesPreProcessModuleCtrlParamsService; |
|
|
var params = this.samplesPreProcessModuleCtrlParamsService; |
|
|
this.a8kCanBusService.callblockcmd( |
|
|
this.a8kCanBusService.callblockcmd( |
|
|
ModuleId.ShakeModGripperYM, |
|
|
ModuleId.ShakeModGripperYM, |
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
|
|
|
|
|
CmdId.kmini_servo_move_to, |
|
|
params.getHorizontalMotor_takePushCapPos(), |
|
|
params.getHorizontalMotor_takePushCapPos(), |
|
|
params.getActionOvertime() |
|
|
params.getActionOvertime() |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
this.a8kCanBusService.callblockcmd( |
|
|
ModuleId.ShakeModGripperSV, |
|
|
ModuleId.ShakeModGripperSV, |
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
|
|
|
|
|
CmdId.kmini_servo_move_to, |
|
|
params.getGripperServo_standbyPos(), |
|
|
params.getGripperServo_standbyPos(), |
|
|
params.getActionOvertime() |
|
|
params.getActionOvertime() |
|
|
); |
|
|
); |
|
@ -307,7 +335,7 @@ public class SamplesPreProcessModuleCtrlService { |
|
|
|
|
|
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
this.a8kCanBusService.callblockcmd( |
|
|
ModuleId.ShakeModGripperSV, |
|
|
ModuleId.ShakeModGripperSV, |
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
|
|
|
|
|
CmdId.kmini_servo_move_to, |
|
|
params.getGripperServo_standbyPos(), |
|
|
params.getGripperServo_standbyPos(), |
|
|
params.getActionOvertime() |
|
|
params.getActionOvertime() |
|
|
); |
|
|
); |
|
@ -319,9 +347,46 @@ public class SamplesPreProcessModuleCtrlService { |
|
|
params.getActionOvertime() |
|
|
params.getActionOvertime() |
|
|
); |
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
// 前后移至试管架取试管位置 |
|
|
this.a8kCanBusService.callblockcmd( |
|
|
this.a8kCanBusService.callblockcmd( |
|
|
ModuleId.ShakeModGripperYM, |
|
|
ModuleId.ShakeModGripperYM, |
|
|
|
|
|
CmdId.kmini_servo_move_to, |
|
|
|
|
|
params.getHorizontalMotor_takeCapPos(), |
|
|
|
|
|
params.getActionOvertime() |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
// 升降放入试管至试管架 |
|
|
|
|
|
var motorUdTubePutPos = params.getZMotor_ShortBloodTakeCapHeight(); |
|
|
|
|
|
if ( tubeTypeValue.equals(A8kTubeType.HighBlood) ) { |
|
|
|
|
|
motorUdTubePutPos = params.getZMotor_HighBloodTakeCapHeight(); |
|
|
|
|
|
} |
|
|
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
|
|
|
ModuleId.ShakeModGripperZM, |
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
|
|
motorUdTubePutPos, |
|
|
|
|
|
params.getActionOvertime() |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
// 夹爪张开 |
|
|
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
|
|
|
ModuleId.ShakeModGripperSV, |
|
|
|
|
|
CmdId.kmini_servo_move_to, |
|
|
|
|
|
params.getGripperServo_standbyPos(), |
|
|
|
|
|
params.getActionOvertime() |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
// 升降电机复位 |
|
|
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
|
|
|
ModuleId.ShakeModGripperZM, |
|
|
|
|
|
CmdId.kstep_motor_easy_move_to, |
|
|
|
|
|
0, |
|
|
|
|
|
params.getActionOvertime() |
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
// 前后电机复位 |
|
|
|
|
|
this.a8kCanBusService.callblockcmd( |
|
|
|
|
|
ModuleId.ShakeModGripperYM, |
|
|
|
|
|
CmdId.kmini_servo_move_to, |
|
|
params.getHorizontalMotor_standbyPos(), |
|
|
params.getHorizontalMotor_standbyPos(), |
|
|
params.getActionOvertime() |
|
|
params.getActionOvertime() |
|
|
); |
|
|
); |
|
@ -338,7 +403,7 @@ public class SamplesPreProcessModuleCtrlService { |
|
|
* @param times 摇匀次数 |
|
|
* @param times 摇匀次数 |
|
|
* @param shakeDegree 摇匀角度 |
|
|
* @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 params = this.samplesPreProcessModuleCtrlParamsService; |
|
|
var standByPos = params.getShakeMotor_standbyPos(); |
|
|
var standByPos = params.getShakeMotor_standbyPos(); |
|
|
var startPos = standByPos - shakeDegree/2; |
|
|
var startPos = standByPos - shakeDegree/2; |
|
|