16 changed files with 285 additions and 132 deletions
-
BINapp.db
-
1src/main/java/a8k/extapi_controler/pagecontrol/ExtApiTabConfig.java
-
118src/main/java/a8k/service/app/devicedriver/calibration/HbotSamplePosCalibration.java
-
4src/main/java/a8k/service/app/devicedriver/ctrl/HbotControler.java
-
6src/main/java/a8k/service/app/devicedriver/pos/Hbot2DCodeScanPos.java
-
94src/main/java/a8k/service/app/devicedriver/pos/HbotConsumablePosMgr.java
-
8src/main/java/a8k/service/app/devicedriver/pos/HbotFixPosMgr.java
-
20src/main/java/a8k/service/app/devicedriver/pos/HbotSamplePosMgr.java
-
20src/main/java/a8k/service/app/devicedriver/pos/OptModulePosMgr.java
-
12src/main/java/a8k/service/app/devicedriver/pos/PlatesBoxPosMgr.java
-
32src/main/java/a8k/service/app/devicedriver/pos/TubeFeedingModulePosMgr.java
-
4src/main/java/a8k/service/app/devicedriver/pos/TubeHolderParamMgr.java
-
40src/main/java/a8k/service/app/devicedriver/pos/TubePreProcesPosMgr.java
-
16src/main/java/a8k/service/app/devicedriver/pos/TurntablePosMgr.java
-
4src/main/java/a8k/service/db/utils/PosParameterReader.java
-
38src/main/java/a8k/type/HbotSamplePos.java
@ -0,0 +1,118 @@ |
|||
package a8k.service.app.devicedriver.calibration; |
|||
|
|||
|
|||
import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; |
|||
import a8k.extapi_controler.utils.ExtApiFn; |
|||
import a8k.extapi_controler.utils.ExtApiTab; |
|||
import a8k.service.app.devicedriver.basectrl.HbotModule; |
|||
import a8k.service.app.devicedriver.basectrl.PipetteCtrlModule; |
|||
import a8k.service.app.devicedriver.ctrl.HbotControler; |
|||
import a8k.service.app.devicedriver.pos.HbotConsumablePosMgr; |
|||
import a8k.service.app.devicedriver.pos.HbotSamplePosMgr; |
|||
import a8k.type.*; |
|||
import a8k.type.cfg.Pos2d; |
|||
import a8k.type.cfg.Pos3d; |
|||
import a8k.type.exception.AppException; |
|||
import a8k.utils.ZJsonHelper; |
|||
import a8k.utils.ZSimplAlgo; |
|||
import com.fasterxml.jackson.databind.node.ObjectNode; |
|||
import jakarta.annotation.Resource; |
|||
import org.aspectj.lang.annotation.Aspect; |
|||
import org.slf4j.Logger; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.List; |
|||
|
|||
@ExtApiTab(cfg = ExtApiTabConfig.HbotSamplePosCalibration) |
|||
@Component |
|||
@Aspect |
|||
public class HbotSamplePosCalibration { |
|||
static Logger logger = org.slf4j.LoggerFactory.getLogger(HbotSamplePosCalibration.class); |
|||
|
|||
@Resource |
|||
PipetteCtrlModule pipetteCtrlModule; |
|||
@Resource |
|||
HbotModule hbotModule; |
|||
|
|||
|
|||
@Resource |
|||
HbotControler hbotControler; |
|||
@Resource |
|||
HbotSamplePosMgr hbotSamplePosMgr; |
|||
|
|||
Boolean stopFlag = false; |
|||
|
|||
Boolean checkStopFlag() { |
|||
if (stopFlag) { |
|||
stopFlag = false; |
|||
return true; |
|||
} |
|||
return false; |
|||
} |
|||
|
|||
void resetStopFlag() { |
|||
stopFlag = false; |
|||
} |
|||
|
|||
void setStopFlag() { |
|||
stopFlag = true; |
|||
} |
|||
|
|||
|
|||
@ExtApiFn(name = "获取坐标", group = "基础", order = 1) |
|||
public Object getPoss() throws AppException { |
|||
return hbotSamplePosMgr.getParams(); |
|||
} |
|||
|
|||
|
|||
// 测试工具 |
|||
@ExtApiFn(name = "归零", group = "测试工具", order = 11) |
|||
public void moveToZero() throws AppException { |
|||
enableModule(); |
|||
pipetteCtrlModule.zMotorMoveZeroBlock(); |
|||
hbotModule.moveToZeroBlock(); |
|||
} |
|||
|
|||
@ExtApiFn(name = "使能相关模块", group = "测试工具", order = 12) |
|||
public void enableModule() throws AppException { |
|||
pipetteCtrlModule.zMotorEnable(1); |
|||
hbotModule.enable(1); |
|||
} |
|||
|
|||
@ExtApiFn(name = "失能相关模块", group = "测试工具", order = 13) |
|||
public void disableModule() throws AppException { |
|||
pipetteCtrlModule.zMotorEnable(0); |
|||
hbotModule.enable(0); |
|||
} |
|||
|
|||
|
|||
// |
|||
// 标定Z轴 |
|||
// |
|||
public Pos3d readPos() throws AppException { |
|||
enableModule(); |
|||
Pos2d xypos = hbotModule.readPos(); |
|||
pipetteCtrlModule.zMotorMeasureDistance(); |
|||
Integer z = pipetteCtrlModule.zMotorReadMeasureDistanceResult(); |
|||
Pos3d var = new Pos3d(xypos.x, xypos.y, z); |
|||
disableModule(); |
|||
return var; |
|||
} |
|||
|
|||
@ExtApiFn(name = "校准.采样位置", group = "标定", order = 104) |
|||
public void calibrationSamplePos(HbotSamplePos posType) throws AppException { |
|||
Pos3d pos3d = readPos(); |
|||
hbotSamplePosMgr.setSamplePos(posType, pos3d); |
|||
} |
|||
|
|||
|
|||
// |
|||
// 校验 |
|||
// |
|||
|
|||
@ExtApiFn(name = "校验坐标", group = "校验", order = 303) |
|||
public void testSamplePos(HbotSamplePos posType) throws AppException { |
|||
hbotControler.moveToSamplePos(posType); |
|||
} |
|||
|
|||
} |
@ -1,11 +1,35 @@ |
|||
package a8k.type; |
|||
|
|||
public enum HbotSamplePos { |
|||
EmergencyTubePos, //急诊位取样位置 |
|||
BloodTubeSamplePos, //全血试管 |
|||
MiniTubeSamplePos, //迷你试管 |
|||
MiniBloodSamplePos, //阳普管 |
|||
Bulltube1P5SamplePos, //子弹头试管1.5mL |
|||
Bulltube0P5SamplePos, //子弹头试管0.5mL |
|||
StoolTestTubeSamplePos, //粪便试管 |
|||
EmergencyTubeSamplePos("<急诊位>取样位置"), |
|||
EmergencyTubeSampleEndPos("<急诊位>取样结束位置"), |
|||
|
|||
BloodHTubeSamplePos("<全血高试管>取样位置"), |
|||
BloodHTubeSampleEndPos("<全血高试管>取样结束位置"), |
|||
|
|||
BloodSTubeSamplePos("<全血低试管>取样位置"), |
|||
BloodSTubeSampleEndPos("<全血低试管>取样结束位置"), |
|||
|
|||
MiniTubeSamplePos("<迷你试管>取样位置"), |
|||
MinitubeSampleEndPos("<迷你试管>取样结束位置"), |
|||
|
|||
MiniBloodSamplePos("<阳普管>取样位置"), |
|||
MiniBloodSampleEndPos("<阳普管>取样结束位置"), |
|||
|
|||
Bulltube1P5SamplePos("<子弹头试管1.5mL>取样位置"), |
|||
Bulltube1P5SampleEndPos("<子弹头试管1.5mL>取样结束位置"), |
|||
|
|||
Bulltube0P5SamplePos("<子弹头试管0.5mL>取样位置"), |
|||
Bulltube0P5SampleEndPos("<子弹头试管0.5mL>取样结束位置"), |
|||
|
|||
StoolTestTubeSamplePos("<粪便试管>取样位置"), |
|||
StoolTestTubeSampleEndPos("<粪便试管>取样结束位置"), |
|||
; |
|||
public final String chName; |
|||
|
|||
HbotSamplePos(String chName) { |
|||
this.chName = chName; |
|||
} |
|||
|
|||
|
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue