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; |
package a8k.type; |
||||
|
|
||||
public enum HbotSamplePos { |
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