diff --git a/app.db b/app.db index 24e9426..d44b0b5 100644 Binary files a/app.db and b/app.db differ diff --git a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_STOP.java b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_STOP.java index ac1cd88..3bf556f 100644 --- a/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_STOP.java +++ b/src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_STOP.java @@ -3,6 +3,7 @@ package a8k.service.app.appctrl.mainflowctrl.action; import a8k.service.app.appctrl.mainflowctrl.base.A8kActionStepType; import a8k.service.app.appctrl.mainflowctrl.base.A8kStepAction; import a8k.service.app.appstate.GStateService; +import a8k.service.app.appstate.ProjectProcessContextMgrService; import a8k.service.app.appstate.resource.A8kPublicResourceType; import a8k.service.app.appstate.type.MainFlowCtrlState; import a8k.service.app.appstate.type.state.A8kWorkState; @@ -25,9 +26,11 @@ public class DO_STOP extends A8kStepAction { } @Resource - GStateService gstate; + GStateService gstate; @Resource - AppDebugHelperService appDebugHelper; + AppDebugHelperService appDebugHelper; + @Resource + ProjectProcessContextMgrService projectProcessContextMgrService; MainFlowCtrlState mfcs; @@ -39,6 +42,14 @@ public class DO_STOP extends A8kStepAction { @Override public void doaction() throws AppException { mfcs.workStateChangeFlag = false; + + if (appDebugHelper.isDebug()) { + appDebugHelper.doVirtualThings("清空设备", 1); + } + + projectProcessContextMgrService.finishedAll(); + + //清空所有孵育盘中的孔位 } @Override public Boolean checkCondition() { diff --git a/src/main/java/a8k/service/app/appstate/ProjectProcessContextMgrService.java b/src/main/java/a8k/service/app/appstate/ProjectProcessContextMgrService.java index e4d9c48..44d82ce 100644 --- a/src/main/java/a8k/service/app/appstate/ProjectProcessContextMgrService.java +++ b/src/main/java/a8k/service/app/appstate/ProjectProcessContextMgrService.java @@ -2,10 +2,7 @@ package a8k.service.app.appstate; import a8k.service.app.appdata.AppProjInfoMgrService; import a8k.service.app.appstate.type.*; -import a8k.service.app.appstate.type.state.IncubationSubTankState; -import a8k.service.app.appstate.type.state.OptScanModuleState; -import a8k.service.app.appstate.type.state.ProjProcessState; -import a8k.service.app.appstate.type.state.TubeState; +import a8k.service.app.appstate.type.state.*; import a8k.service.db.DeviceStatisticDBService; import a8k.service.db.SampleRecordDBService; import a8k.service.db.type.SampleRecord; @@ -125,6 +122,7 @@ public class ProjectProcessContextMgrService { } } } + synchronized public List getAllContexts() { return contexts; } @@ -400,4 +398,20 @@ public class ProjectProcessContextMgrService { tube.setState(TubeState.PROCESS_COMPLETE); } + + synchronized public void finishedAll() { + //所有的板夹仓状态设置为空 + for (IncubationSubTank incubationSubTank : gstate.getIncubationPlate().subtanks) { + incubationSubTank.state = IncubationSubTankState.EMPTY; + } + //当前正在处理的试管架状态,试管状态均设置成处理IDLE和EMPTY + for (Tube tube : gstate.getTubeHolder().tubes) { + tube.setState(TubeState.EMPTY); + } + gstate.getTubeHolder().setState(TubeHolderState.IDLE); + //光学模组状态设置为null + gstate.getOptScanModule().state = OptScanModuleState.EMPTY; + //所有正在处理的上下文均设置为空 + contexts.clear(); + } } diff --git a/src/main/java/a8k/service/debug/AppDebugHelperService.java b/src/main/java/a8k/service/debug/AppDebugHelperService.java index 3f853d4..b546502 100644 --- a/src/main/java/a8k/service/debug/AppDebugHelperService.java +++ b/src/main/java/a8k/service/debug/AppDebugHelperService.java @@ -456,10 +456,8 @@ public class AppDebugHelperService { } synchronized public void doVirtualThings(String dowhat, Integer time) { - // for (int i = 0; i < time; i++) { logger.info("VirtualDoing:" + dowhat); - OS.forceSleep(100); - // } + OS.forceSleep(1500); }