Browse Source

update

tags/v0
zhaohe 10 months ago
parent
commit
04f1a62501
  1. 2
      src/main/java/a8k/service/appctrl/CondtionMgrService.java
  2. 58
      src/main/java/a8k/service/appctrl/action/ctrl/DO_CLEAR_ERROR.java
  3. 15
      src/main/java/a8k/service/appctrl/action/ctrl/DO_PAUSE.java
  4. 14
      src/main/java/a8k/service/appctrl/action/ctrl/DO_RESUME.java
  5. 15
      src/main/java/a8k/service/appctrl/action/ctrl/DO_START.java
  6. 15
      src/main/java/a8k/service/appctrl/action/ctrl/DO_STOP.java
  7. 2
      src/main/java/a8k/service/appctrl/action/mainflow/SEQ7_EJECT_TUBEHOLDER.java
  8. 39
      src/main/java/a8k/service/appctrl/scheduler/MainFlowCtrlScheduler.java

2
src/main/java/a8k/service/appctrl/CondtionMgrService.java

@ -42,7 +42,7 @@ public class CondtionMgrService {
}
public Boolean isCanDoAction() {
return gstate.mainFlowCtrlState.workState.equals(A8kWorkState.WORKING) && !gstate.mainFlowCtrlState.errorFlag;
return gstate.mainFlowCtrlState.workState.equals(A8kWorkState.WORKING) && !gstate.mainFlowCtrlState.errorFlag && !gstate.mainFlowCtrlState.workStateChangeFlag;
}

58
src/main/java/a8k/service/appctrl/action/ctrl/DO_CLEAR_ERROR.java

@ -0,0 +1,58 @@
package a8k.service.appctrl.action.ctrl;
import a8k.service.appctrl.action.base.A8kActionStepType;
import a8k.service.appctrl.action.base.A8kStepAction;
import a8k.service.appstate.GStateService;
import a8k.service.appstate.resource.A8kPublicResourceType;
import a8k.service.appstate.type.MainFlowCtrlState;
import a8k.service.appstate.type.state.A8kWorkState;
import a8k.service.devicedriver.ctrl.SampleScanTransportCtrl;
import a8k.type.exception.AppException;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class DO_CLEAR_ERROR extends A8kStepAction {
static Logger logger = LoggerFactory.getLogger(DO_CLEAR_ERROR.class);
DO_CLEAR_ERROR() {
super(A8kActionStepType.DO_PAUSE);
}
@Resource
GStateService gstate;
MainFlowCtrlState mfcs;
@PostConstruct
void init() {
mfcs = gstate.mainFlowCtrlState;
}
@Override public void doaction() throws AppException {
//ProcessErrorBeforeContinue
mfcs.errorFlag = false;
mfcs.ecodeList.clear();
}
@Override public Boolean checkCondition() {
Boolean cond1 = mfcs.workStateChangeFlag;
Boolean cond2 = mfcs.errorFlag;
Boolean cond3 = mfcs.workState.equals(A8kWorkState.WORKING);
Boolean cond4 = mfcs.lastWorkState.equals(A8kWorkState.PAUSE) || mfcs.lastWorkState.equals(A8kWorkState.IDLE);
return cond1 && cond2 && cond3 && cond4;
}
@Override public List<A8kPublicResourceType> getResourceList() {
return List.of();
}
}

15
src/main/java/a8k/service/appctrl/action/ctrl/DO_PAUSE.java

@ -4,6 +4,7 @@ import a8k.service.appctrl.action.base.A8kActionStepType;
import a8k.service.appctrl.action.base.A8kStepAction;
import a8k.service.appstate.GStateService;
import a8k.service.appstate.resource.A8kPublicResourceType;
import a8k.service.appstate.type.MainFlowCtrlState;
import a8k.service.appstate.type.state.A8kWorkState;
import a8k.service.devicedriver.ctrl.SampleScanTransportCtrl;
import a8k.type.exception.AppException;
@ -26,22 +27,22 @@ public class DO_PAUSE extends A8kStepAction {
@Resource
GStateService gstate;
@Resource
SampleScanTransportCtrl sampleScanTransportCtrl;
MainFlowCtrlState mfcs;
@PostConstruct
void init() {
mfcs = gstate.mainFlowCtrlState;
}
@Override public void doaction() throws AppException {
gstate.mainFlowCtrlState.workStateChangeFlag = false;
mfcs.workStateChangeFlag = false;
}
@Override public Boolean checkCondition() {
Boolean cond1 = gstate.mainFlowCtrlState.workStateChangeFlag;
Boolean cond2 = gstate.mainFlowCtrlState.lastWorkState.equals(A8kWorkState.WORKING);
Boolean cond3 = gstate.mainFlowCtrlState.workState.equals(A8kWorkState.PAUSE);
return cond1 & cond2 & cond3;
Boolean cond1 = mfcs.workStateChangeFlag && !mfcs.errorFlag;
Boolean cond2 = mfcs.lastWorkState.equals(A8kWorkState.WORKING);
Boolean cond3 = mfcs.workState.equals(A8kWorkState.PAUSE);
return cond1 && cond2 && cond3;
}
@Override public List<A8kPublicResourceType> getResourceList() {

14
src/main/java/a8k/service/appctrl/action/ctrl/DO_RESUME.java

@ -4,6 +4,7 @@ import a8k.service.appctrl.action.base.A8kActionStepType;
import a8k.service.appctrl.action.base.A8kStepAction;
import a8k.service.appstate.GStateService;
import a8k.service.appstate.resource.A8kPublicResourceType;
import a8k.service.appstate.type.MainFlowCtrlState;
import a8k.service.appstate.type.state.A8kWorkState;
import a8k.type.exception.AppException;
import jakarta.annotation.PostConstruct;
@ -25,19 +26,22 @@ public class DO_RESUME extends A8kStepAction {
@Resource
GStateService gstate;
MainFlowCtrlState mfcs;
@PostConstruct
void init() {
mfcs = gstate.mainFlowCtrlState;
}
@Override public void doaction() throws AppException {
gstate.mainFlowCtrlState.workStateChangeFlag = false;
mfcs.workStateChangeFlag = false;
}
@Override public Boolean checkCondition() {
Boolean cond1 = gstate.mainFlowCtrlState.workStateChangeFlag;
Boolean cond2 = gstate.mainFlowCtrlState.lastWorkState.equals(A8kWorkState.PAUSE);
Boolean cond3 = gstate.mainFlowCtrlState.workState.equals(A8kWorkState.WORKING);
return cond1 & cond2 & cond3;
Boolean cond1 = mfcs.workStateChangeFlag;
Boolean cond2 = mfcs.lastWorkState.equals(A8kWorkState.PAUSE);
Boolean cond3 = mfcs.workState.equals(A8kWorkState.WORKING);
return cond1 && cond2 && cond3;
}
@Override public List<A8kPublicResourceType> getResourceList() {

15
src/main/java/a8k/service/appctrl/action/ctrl/DO_START.java

@ -4,6 +4,7 @@ import a8k.service.appctrl.action.base.A8kActionStepType;
import a8k.service.appctrl.action.base.A8kStepAction;
import a8k.service.appstate.GStateService;
import a8k.service.appstate.resource.A8kPublicResourceType;
import a8k.service.appstate.type.MainFlowCtrlState;
import a8k.service.appstate.type.state.A8kWorkState;
import a8k.service.devicedriver.ctrl.SampleScanTransportCtrl;
import a8k.type.exception.AppException;
@ -29,23 +30,23 @@ public class DO_START extends A8kStepAction {
@Resource
SampleScanTransportCtrl sampleScanTransportCtrl;
MainFlowCtrlState mfcs;
@PostConstruct
void init() {
mfcs = gstate.mainFlowCtrlState;
}
@Override public void doaction() throws AppException {
gstate.mainFlowCtrlState.workStateChangeFlag = false;
mfcs.workStateChangeFlag = false;
sampleScanTransportCtrl.ejectTubeHolder();
}
@Override public Boolean checkCondition() {
Boolean cond1 = gstate.mainFlowCtrlState.workStateChangeFlag;
Boolean cond2 = gstate.mainFlowCtrlState.lastWorkState.equals(A8kWorkState.IDLE);
Boolean cond3 = gstate.mainFlowCtrlState.workState.equals(A8kWorkState.WORKING);
return cond1 & cond2 & cond3;
Boolean cond1 = mfcs.workStateChangeFlag;
Boolean cond2 = mfcs.lastWorkState.equals(A8kWorkState.IDLE);
Boolean cond3 = mfcs.workState.equals(A8kWorkState.WORKING);
return cond1 && cond2 && cond3;
}
@Override public List<A8kPublicResourceType> getResourceList() {

15
src/main/java/a8k/service/appctrl/action/ctrl/DO_STOP.java

@ -4,6 +4,7 @@ import a8k.service.appctrl.action.base.A8kActionStepType;
import a8k.service.appctrl.action.base.A8kStepAction;
import a8k.service.appstate.GStateService;
import a8k.service.appstate.resource.A8kPublicResourceType;
import a8k.service.appstate.type.MainFlowCtrlState;
import a8k.service.appstate.type.state.A8kWorkState;
import a8k.type.exception.AppException;
import jakarta.annotation.PostConstruct;
@ -25,20 +26,22 @@ public class DO_STOP extends A8kStepAction {
@Resource
GStateService gstate;
MainFlowCtrlState mfcs;
@PostConstruct
void init() {
mfcs = gstate.mainFlowCtrlState;
}
@Override public void doaction() throws AppException {
gstate.mainFlowCtrlState.workStateChangeFlag = false;
mfcs.workStateChangeFlag = false;
}
@Override public Boolean checkCondition() {
Boolean cond1 = gstate.mainFlowCtrlState.workStateChangeFlag;
Boolean cond2 = gstate.mainFlowCtrlState.lastWorkState.equals(A8kWorkState.WORKING) || gstate.mainFlowCtrlState.lastWorkState.equals(A8kWorkState.PAUSE);
Boolean cond3 = gstate.mainFlowCtrlState.workState.equals(A8kWorkState.IDLE);
return cond1 & cond2 & cond3;
Boolean cond1 = mfcs.workStateChangeFlag;
Boolean cond2 = mfcs.lastWorkState.equals(A8kWorkState.WORKING) || mfcs.lastWorkState.equals(A8kWorkState.PAUSE);
Boolean cond3 = mfcs.workState.equals(A8kWorkState.IDLE);
return cond1 && cond2 && cond3;
}
@Override public List<A8kPublicResourceType> getResourceList() {

2
src/main/java/a8k/service/appctrl/action/mainflow/SEQ7_EJECT_TUBEHOLDER.java

@ -52,7 +52,7 @@ public class SEQ7_EJECT_TUBEHOLDER extends A8kStepAction {
Boolean cond1 = cms.isCanDoAction();
Boolean cond2 = gstate.getTubeHolder().state.equals(TubeHolderState.PROCESSING);
Boolean cond3 = cms.isNoMoreTubeToBeProcessed();
return cond1 & cond2 & cond3;
return cond1 && cond2 && cond3;
}
@Override public List<A8kPublicResourceType> getResourceList() {

39
src/main/java/a8k/service/appctrl/scheduler/MainFlowCtrlScheduler.java

@ -93,11 +93,6 @@ public class MainFlowCtrlScheduler {
workThread.start();
}
public void setClearErrorPendingFlag() {
clearErrorPendingFlag = true;
}
public List<A8kStepAction> getA8kStepActionList() {
return stepActionList;
}
@ -150,23 +145,23 @@ public class MainFlowCtrlScheduler {
}
}
void clearError() {
/*
* 清除错误
*/
clearErrorPendingFlag = false;
try {
beforeDoWhat(A8kActionStepType.DO_CLEAR_ERROR);
boolean suc = ecodeClearProcesser.process(state.ecodeList);
if (suc) {
state.ecodeList.clear();
state.errorFlag = false;
}
} catch (AppException appe) {
A8kErrorContext context = new A8kErrorContext(A8kActionStepType.DO_CLEAR_ERROR, appe.error);
a8kEcodePostProcesser(List.of(context));
}
}
// void clearError() {
// /*
// * 清除错误
// */
// clearErrorPendingFlag = false;
// try {
// beforeDoWhat(A8kActionStepType.DO_CLEAR_ERROR);
// boolean suc = ecodeClearProcesser.process(state.ecodeList);
// if (suc) {
// state.ecodeList.clear();
// state.errorFlag = false;
// }
// } catch (AppException appe) {
// A8kErrorContext context = new A8kErrorContext(A8kActionStepType.DO_CLEAR_ERROR, appe.error);
// a8kEcodePostProcesser(List.of(context));
// }
// }
List<A8kErrorContext> waitAllActionIsDone(List<Future<A8kErrorContext>> futureList) {

Loading…
Cancel
Save