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
-
1src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ7_EJECT_TUBEHOLDER.java
-
3src/main/java/a8k/service/app/appstate/ConsumablesMgrService.java
-
24src/main/java/a8k/service/app/appstate/GStateService.java
-
4src/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
-
42src/main/java/a8k/service/app/devicectrl/script/DeviceCtrlScripter.java
-
114src/main/java/a8k/service/app/devicectrl/test/PipetteGunTest.java
-
137src/main/java/a8k/service/test/MainflowCtrlTestService.java
-
6src/main/java/a8k/service/test/fakeproj/FakeProjInfo.java
-
16src/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