|
|
@ -9,31 +9,42 @@ import a8k.service.app.devicedriver.basectrl.MiniServoControler; |
|
|
|
import a8k.service.app.devicedriver.basectrl.StepMotorControler; |
|
|
|
import a8k.service.app.devicedriver.basectrl.type.MiniServoMId; |
|
|
|
import a8k.service.app.devicedriver.basectrl.type.StepMotorMId; |
|
|
|
import a8k.service.app.devicedriver.ctrl.TubePreProcesControler; |
|
|
|
import a8k.service.app.devicedriver.pos.TubePreProcesPosMgr; |
|
|
|
import a8k.type.exception.AppException; |
|
|
|
import jakarta.annotation.Resource; |
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
@ExtApiTab(cfg = ExtApiTabConfig.TubeScanPosCalibration) |
|
|
|
@ExtApiTab(cfg = ExtApiTabConfig.TubePreProcesPosCalibration) |
|
|
|
@Component |
|
|
|
public class TubePreProcesPosCalibration { |
|
|
|
|
|
|
|
final static Integer overtime = 6000; |
|
|
|
|
|
|
|
@Resource |
|
|
|
TubePreProcesPosMgr tubePreProcesPosMgr; |
|
|
|
|
|
|
|
@Resource |
|
|
|
A8kCanBusService canBus; |
|
|
|
A8kCanBusService canBus; |
|
|
|
@Resource |
|
|
|
MiniServoControler miniServoControler; |
|
|
|
@Resource |
|
|
|
MiniServoControler miniServoControler; |
|
|
|
StepMotorControler stepMotorControler; |
|
|
|
@Resource |
|
|
|
StepMotorControler stepMotorControler; |
|
|
|
TubePreProcesControler tubePreProcesControler; |
|
|
|
|
|
|
|
//基础工具 |
|
|
|
@ExtApiFn(name = "归零", group = "测试工具", order = 11) |
|
|
|
public void deviceReset() throws AppException { |
|
|
|
enableModule(); |
|
|
|
stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.FeedingModXM, 15000); |
|
|
|
|
|
|
|
miniServoControler.miniServoMoveToBlock(MiniServoMId.ShakeModTubeScanerClampingSV, 20, overtime); |
|
|
|
miniServoControler.miniServoMoveToBlock(MiniServoMId.ShakeModGripperSV, 300, overtime); |
|
|
|
miniServoControler.miniServoMoveToBlock(MiniServoMId.ShakeModGripperYSV, 300, overtime); |
|
|
|
stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModClampingM, overtime); |
|
|
|
stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModGripperZM, overtime); |
|
|
|
stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.ShakeModShakeM, overtime); |
|
|
|
stepMotorControler.stepMotorEasyMoveToBlock(StepMotorMId.ShakeModShakeM, 90, overtime); |
|
|
|
} |
|
|
|
|
|
|
|
@ExtApiFn(name = "使能相关模块", group = "测试工具", order = 12) |
|
|
@ -43,18 +54,70 @@ public class TubePreProcesPosCalibration { |
|
|
|
stepMotorControler.stepMotorEnable(StepMotorMId.ShakeModClampingM, 1); |
|
|
|
stepMotorControler.stepMotorEnable(StepMotorMId.ShakeModGripperZM, 1); |
|
|
|
stepMotorControler.stepMotorEnable(StepMotorMId.ShakeModShakeM, 1); |
|
|
|
stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModXM, 1); |
|
|
|
} |
|
|
|
|
|
|
|
@ExtApiFn(name = "失能相关模块", group = "测试工具", order = 13) |
|
|
|
public void disableModule() throws AppException { |
|
|
|
stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModInfeedM, 0); |
|
|
|
stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModOutfeedM, 0); |
|
|
|
miniServoControler.miniServoEnable(MiniServoMId.ShakeModGripperSV, 0); |
|
|
|
miniServoControler.miniServoEnable(MiniServoMId.ShakeModGripperYSV, 0); |
|
|
|
stepMotorControler.stepMotorEnable(StepMotorMId.ShakeModClampingM, 0); |
|
|
|
stepMotorControler.stepMotorEnable(StepMotorMId.ShakeModGripperZM, 0); |
|
|
|
stepMotorControler.stepMotorEnable(StepMotorMId.ShakeModShakeM, 0); |
|
|
|
stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModXM, 0); |
|
|
|
miniServoControler.miniServoEnable(MiniServoMId.ShakeModTubeScanerClampingSV, 0); |
|
|
|
} |
|
|
|
@ExtApiFn(name = "读取夹爪当前位置", group = "测试工具", order = 13) |
|
|
|
public Integer readGripperPos() throws AppException { |
|
|
|
return miniServoControler.miniServoReadPos(MiniServoMId.ShakeModGripperSV); |
|
|
|
} |
|
|
|
//标定和校准 |
|
|
|
|
|
|
|
//夹爪 : 设置参考点,标定,验证 |
|
|
|
//YSV : 设置参考点,标定,验证 |
|
|
|
//ZM : 标定,验证 |
|
|
|
//XProcessPos: 标定,验证 |
|
|
|
//ShakeClamp : 标定,校验 |
|
|
|
|
|
|
|
//标定和校准 |
|
|
|
@ExtApiFn(name = "设置当前位置为<参考点>", group = "夹爪", order = 21) |
|
|
|
public Integer gripperSVSetCurrentPosAsRef() throws AppException { |
|
|
|
miniServoControler.miniServoSetCurPos(MiniServoMId.ShakeModGripperSV, 100); |
|
|
|
return 100; |
|
|
|
} |
|
|
|
|
|
|
|
@ExtApiFn(name = "<标定>当前点为<抓手张开位置>", group = "夹爪", order = 22) |
|
|
|
public Integer gripperSVSetCurrentPosAsOpenPos() throws AppException { |
|
|
|
Integer pos = miniServoControler.miniServoReadPos(MiniServoMId.ShakeModGripperSV); |
|
|
|
tubePreProcesPosMgr.setGripperServoOpenPos(pos); |
|
|
|
return pos; |
|
|
|
} |
|
|
|
|
|
|
|
@ExtApiFn(name = "<标定>当前点为<抓手闭合位置>", group = "夹爪", order = 23) |
|
|
|
public Integer gripperSVSetCurrentPosAsClosePos() throws AppException { |
|
|
|
Integer pos = miniServoControler.miniServoReadPos(MiniServoMId.ShakeModGripperSV); |
|
|
|
tubePreProcesPosMgr.setGripperServoClosePos(pos); |
|
|
|
return pos; |
|
|
|
} |
|
|
|
|
|
|
|
@ExtApiFn(name = "<标定>当前点为<抓手取试管位置>", group = "夹爪", order = 24) |
|
|
|
public Integer gripperSVSetCurrentPosAsTakeCapPos() throws AppException { |
|
|
|
Integer pos = miniServoControler.miniServoReadPos(MiniServoMId.ShakeModGripperSV); |
|
|
|
tubePreProcesPosMgr.setGripperServoTakeCapPos(pos); |
|
|
|
return pos; |
|
|
|
} |
|
|
|
|
|
|
|
@ExtApiFn(name = "<校验>张开", group = "夹爪", order = 26) |
|
|
|
public void gripperSVOpen() throws AppException { |
|
|
|
tubePreProcesControler.gripperSVOpen(); |
|
|
|
} |
|
|
|
|
|
|
|
@ExtApiFn(name = "<校验>夹紧", group = "夹爪", order = 25) |
|
|
|
public void gripperSVCClose() throws AppException { |
|
|
|
tubePreProcesControler.gripperSVCClose(); |
|
|
|
} |
|
|
|
|
|
|
|
@ExtApiFn(name = "<校验>夹住试管", group = "夹爪", order = 25) |
|
|
|
public void gripperSVClampTube() throws AppException { |
|
|
|
tubePreProcesControler.gripperSVClampTube(); |
|
|
|
} |
|
|
|
|
|
|
|
} |