22 changed files with 241 additions and 130 deletions
-
2src/main/java/a8k/service/app/appctrl/mainflowctrl/CondtionMgrService.java
-
2src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_FINISH_TUBE_PROCESS.java
-
4src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_PROCESS_ERROR_PLATE.java
-
2src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_START.java
-
2src/main/java/a8k/service/app/appctrl/mainflowctrl/action/DO_STOP.java
-
8src/main/java/a8k/service/app/appctrl/mainflowctrl/action/PLATE_OPT_SCAN.java
-
2src/main/java/a8k/service/app/appctrl/mainflowctrl/action/PROCESS_INCUBATE_COMPLETED_PLATE.java
-
20src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ1_ENTER_TUBEHOLDER_AND_SCAN.java
-
2src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ2_SWITCH_TO_THE_NEXT_TUBE.java
-
44src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ4_PRE_PROCESS.java
-
2src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ5_PROCESS.java
-
20src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ6_POST_PROCESS.java
-
2src/main/java/a8k/service/app/appctrl/mainflowctrl/action/SEQ7_EJECT_TUBEHOLDER.java
-
2src/main/java/a8k/service/app/appctrl/mainflowctrl/base/A8kStepAction.java
-
4src/main/java/a8k/service/app/devicectrl/ctrlservice/DeviceInitCtrlService.java
-
12src/main/java/a8k/service/app/devicectrl/ctrlservice/OptScanModuleCtrlService.java
-
101src/main/java/a8k/service/test/MainflowCtrlTestService.java
-
15src/main/java/a8k/service/test/state/TestModeState.java
-
9src/main/java/a8k/service/test/state/VirtualDevice.java
-
8src/main/java/a8k/type/exception/MutiAppException.java
-
51src/main/java/a8k/utils/ActionParallerExceutor.java
-
15src/main/java/a8k/utils/AppExceptionUtils.java
@ -0,0 +1,51 @@ |
|||||
|
package a8k.utils; |
||||
|
|
||||
|
import a8k.OS; |
||||
|
import a8k.type.ecode.AppError; |
||||
|
import a8k.type.exception.AppException; |
||||
|
import a8k.type.exception.MutiAppException; |
||||
|
|
||||
|
import java.util.ArrayList; |
||||
|
import java.util.List; |
||||
|
import java.util.Objects; |
||||
|
import java.util.concurrent.*; |
||||
|
|
||||
|
public class ActionParallerExceutor { |
||||
|
ThreadPoolExecutor executor = new ThreadPoolExecutor(3, 3, 0, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(10)); |
||||
|
List<Future<AppException>> futures = new ArrayList<>(); |
||||
|
|
||||
|
// var doPrepareReactionPlateFuture = executor.submit(() -> ZFnCall.callfn(this::prepareReactionPlate)); |
||||
|
//摇匀并取盖 |
||||
|
// var doShakeAndTakeCapFuture = executor.submit(() -> ZFnCall.callfn(this::shakeAndTakeCap)); |
||||
|
//准备Hbot Tip |
||||
|
// var doHbotPrepareTipFuture = executor.submit(() -> ZFnCall.callfn(this::hbotPrepareTip)); |
||||
|
|
||||
|
|
||||
|
public void submit(ZFnCall.Fn fn) { |
||||
|
var future = executor.submit(() -> ZFnCall.callfn(fn)); |
||||
|
futures.add(future); |
||||
|
} |
||||
|
|
||||
|
public MutiAppException waitAll() { |
||||
|
futures.forEach(this::wait); |
||||
|
List<AppException> exceptions = new java.util.ArrayList<>(List.of()); |
||||
|
try { |
||||
|
for (Future<AppException> future : futures) { |
||||
|
exceptions.add(future.get()); |
||||
|
} |
||||
|
} catch (InterruptedException | ExecutionException ignored) { |
||||
|
} |
||||
|
exceptions.removeIf(Objects::isNull); |
||||
|
return new MutiAppException(exceptions); |
||||
|
// List<AppError> errors = new java.util.ArrayList<>(List.of()); |
||||
|
// exceptions.forEach(e -> errors.add(e.getError())); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
void wait(Future<?> future) { |
||||
|
while (!future.isDone()) { |
||||
|
OS.forceSleep(100); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,15 @@ |
|||||
|
package a8k.utils; |
||||
|
|
||||
|
import a8k.type.ecode.AppError; |
||||
|
import a8k.type.exception.AppException; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
public class AppExceptionUtils { |
||||
|
|
||||
|
public static List<AppError> toAppErrorList(List<AppException> exceptions) { |
||||
|
List<AppError> errors = new java.util.ArrayList<>(List.of()); |
||||
|
exceptions.forEach(e -> errors.add(e.getError())); |
||||
|
return errors; |
||||
|
} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue