22 changed files with 345 additions and 176 deletions
-
2README2.md
-
5src/main/java/a8k/extapi_controler/pagecontrol/ExtApiTabConfig.java
-
4src/main/java/a8k/hardware/A8kModParamInitializer.java
-
1src/main/java/a8k/hardware/type/a8kcanprotocol/CmdId.java
-
2src/main/java/a8k/optalgo/A8kOptAlgoV2.java
-
4src/main/java/a8k/service/app/appctrl/AppMainFlowCtrlService.java
-
4src/main/java/a8k/service/app/appctrl/mainflowctrl/MainFlowCtrlScheduler.java
-
5src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_CLEAR_ERROR_BEFORE_WORK.java
-
1src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_STOP.java
-
5src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ7_EJECT_TUBEHOLDER.java
-
5src/main/java/a8k/service/app/appstate/ConsumablesMgrService.java
-
24src/main/java/a8k/service/app/appstate/GStateService.java
-
16src/main/java/a8k/service/app/appstate/ProjectProcessContextMgrService.java
-
3src/main/java/a8k/service/app/devicectrl/ctrlservice/DeviceInitCtrlService.java
-
10src/main/java/a8k/service/app/devicectrl/driver/PipetteCtrlDriver.java
-
109src/main/java/a8k/service/app/devicectrl/param/LowerDeviceParamMgr.java
-
44src/main/java/a8k/service/app/devicectrl/script/DeviceCtrlScripter.java
-
114src/main/java/a8k/service/app/devicectrl/test/PipetteGunTest.java
-
139src/main/java/a8k/service/test/MainflowCtrlTestService.java
-
6src/main/java/a8k/service/test/fakeproj/FakeProjInfo.java
-
18src/main/java/a8k/type/exception/AppException.java
-
BINsrc/main/resources/app.db
@ -0,0 +1,114 @@ |
|||||
|
package a8k.service.app.devicectrl.test; |
||||
|
|
||||
|
import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; |
||||
|
import a8k.extapi_controler.utils.ExtApiFn; |
||||
|
import a8k.extapi_controler.utils.ExtApiTab; |
||||
|
import a8k.hardware.type.LldType; |
||||
|
import a8k.service.app.devicectrl.driver.PipetteCtrlDriver; |
||||
|
import a8k.service.app.devicectrl.exdriver.HbotBaseMoveExDriver; |
||||
|
import a8k.service.app.devicectrl.exdriver.MotorEnableExDriver; |
||||
|
import a8k.service.app.devicectrl.param.param_mgr.PipetteGunLLDParamMgr; |
||||
|
import a8k.service.app.devicectrl.param.type.PipetteGunLLDThresholdParam; |
||||
|
import a8k.service.app.devicectrl.param.type.PipetteGunLLDTypeParam; |
||||
|
import a8k.type.exception.AppException; |
||||
|
import jakarta.annotation.Resource; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
@ExtApiTab(cfg = ExtApiTabConfig.PipetteGunTest) |
||||
|
@Component |
||||
|
public class PipetteGunTest { |
||||
|
|
||||
|
@Resource |
||||
|
PipetteGunLLDParamMgr pipetteGunLLDParamMgr; |
||||
|
|
||||
|
@Resource |
||||
|
PipetteCtrlDriver pipetteCtrlDriver; |
||||
|
@Resource |
||||
|
HbotBaseMoveExDriver hbotBaseMoveExDriver; |
||||
|
@Resource |
||||
|
MotorEnableExDriver motorEnableExDriver; |
||||
|
|
||||
|
|
||||
|
// 测试工具 |
||||
|
// @ExtApiFn(name = "归零", group = "基础", order = 1) |
||||
|
// public void moveToZero() throws AppException { |
||||
|
// enableModule(); |
||||
|
// pipetteCtrlDriver.zMotorMoveZeroBlock(); |
||||
|
// } |
||||
|
|
||||
|
@ExtApiFn(name = "移液枪初始化(Tip会掉落)", group = "基础", order = 2) |
||||
|
public void pipetteInitDeviceBlock() throws AppException { |
||||
|
pipetteCtrlDriver.pipetteInitDeviceBlock(); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
@ExtApiFn(name = "使能相关模块", group = "基础", order = 3) |
||||
|
public void enableModule() throws AppException { |
||||
|
pipetteCtrlDriver.zMotorEnable(1); |
||||
|
} |
||||
|
|
||||
|
@ExtApiFn(name = "失能相关模块", group = "基础", order = 4) |
||||
|
public void disableModule() throws AppException { |
||||
|
motorEnableExDriver.forceDisableAllMotor(); |
||||
|
} |
||||
|
|
||||
|
@ExtApiFn(name = "获取相关参数", group = "基础", order = 5) |
||||
|
public Object getParams() throws AppException { |
||||
|
return pipetteGunLLDParamMgr.getParams(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
Integer lldStartPos; |
||||
|
Integer lldEndPos; |
||||
|
|
||||
|
@ExtApiFn(name = "设置LLD开始位置", group = "测试", order = 100) |
||||
|
public void setStartTestPos() throws AppException { |
||||
|
pipetteCtrlDriver.zMotorEnable(1); |
||||
|
pipetteCtrlDriver.zMotorMeasureDistance(); |
||||
|
lldStartPos = pipetteCtrlDriver.zMotorReadMeasureDistanceResult(); |
||||
|
pipetteCtrlDriver.zMotorEnable(0); |
||||
|
} |
||||
|
|
||||
|
@ExtApiFn(name = "设置LLD结束位置", group = "测试", order = 101) |
||||
|
public void setEndTestPos() throws AppException { |
||||
|
pipetteCtrlDriver.zMotorEnable(1); |
||||
|
pipetteCtrlDriver.zMotorMeasureDistance(); |
||||
|
lldEndPos = pipetteCtrlDriver.zMotorReadMeasureDistanceResult(); |
||||
|
pipetteCtrlDriver.zMotorEnable(0); |
||||
|
} |
||||
|
|
||||
|
@ExtApiFn(name = "LLD准备(每次LLD前都要调用一次,同时更换tip头)", group = "测试", order = 102) |
||||
|
public void lldPrepare() throws AppException { |
||||
|
pipetteCtrlDriver.zMotorEnable(1); |
||||
|
pipetteCtrlDriver.zMotorMoveZeroBlock(); |
||||
|
pipetteCtrlDriver.lldPrepareBlock(); |
||||
|
} |
||||
|
|
||||
|
@ExtApiFn(name = "LDD测量液体属性", group = "测试", order = 103) |
||||
|
public Object lldCalibrate() throws AppException { |
||||
|
if (lldStartPos > lldEndPos) { |
||||
|
throw AppException.of("开始位置大于结束位置"); |
||||
|
} |
||||
|
|
||||
|
pipetteCtrlDriver.zMotorEnable(1); |
||||
|
pipetteCtrlDriver.zMotorMoveZeroBlock(); |
||||
|
pipetteCtrlDriver.setStartZ(lldStartPos); |
||||
|
pipetteCtrlDriver.setEndZ(lldEndPos); |
||||
|
pipetteCtrlDriver.lldCalibrationBlock(); |
||||
|
return pipetteCtrlDriver.getSensorSampleData(); |
||||
|
} |
||||
|
|
||||
|
@ExtApiFn(name = "LLD测试", group = "测试", order = 104) |
||||
|
public void lldTest(LldType type, Integer c_val, Integer p_val) throws AppException { |
||||
|
pipetteCtrlDriver.zMotorEnable(1); |
||||
|
pipetteCtrlDriver.zMotorMoveZeroBlock(); |
||||
|
pipetteCtrlDriver.setStartZ(lldStartPos); |
||||
|
pipetteCtrlDriver.setEndZ(lldEndPos); |
||||
|
pipetteCtrlDriver.setLldType(type); |
||||
|
pipetteCtrlDriver.setLldCThreshold(c_val); |
||||
|
pipetteCtrlDriver.setLldPThreshold(p_val); |
||||
|
pipetteCtrlDriver.lldBlock(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue