3 changed files with 298 additions and 0 deletions
-
223doc/检测流程.md
-
68doc/系统事件消息总线.md
-
7src/main/java/a8k/extui/page/driver/CodeScanerDriverCtrlPage.java
@ -0,0 +1,223 @@ |
|||||
|
```mermaid |
||||
|
classDiagram |
||||
|
class MainFlowCtrlScheduler |
||||
|
class GStateMgrService |
||||
|
class DeviceWorkStateMgrService |
||||
|
class DeviceState |
||||
|
class ModuleEnableCtrlDriver |
||||
|
class LiquidOperationCtrlService |
||||
|
|
||||
|
class A8kActionTask |
||||
|
class AC20ScanReactionPlate |
||||
|
AC20ScanReactionPlate --|> A8kActionTask |
||||
|
|
||||
|
class IMainFlowStateChangeProcesser |
||||
|
class Thread |
||||
|
MainFlowCtrlScheduler --> GStateMgrService |
||||
|
MainFlowCtrlScheduler --> DeviceWorkStateMgrService |
||||
|
MainFlowCtrlScheduler --> ModuleEnableCtrlDriver |
||||
|
MainFlowCtrlScheduler --> LiquidOperationCtrlService |
||||
|
MainFlowCtrlScheduler "1" --> "*" A8kActionTask |
||||
|
MainFlowCtrlScheduler --> IMainFlowStateChangeProcesser |
||||
|
MainFlowCtrlScheduler --> Thread |
||||
|
|
||||
|
DeviceWorkStateMgrService --> DeviceState |
||||
|
``` |
||||
|
|
||||
|
|
||||
|
```mermaid |
||||
|
--- |
||||
|
title: 检测流程初始化 |
||||
|
--- |
||||
|
|
||||
|
flowchart TD |
||||
|
A(开始) --> |Spring容器启动后| B[注册所有的检测流程可以将会执行的动作] |
||||
|
B --> C[注册设备状态变更处理器] |
||||
|
C --> D[核心流程将会执行的动作按照方法名字母顺序升序排序] |
||||
|
D --> E[启动职守线程处理设备工作状态变更] |
||||
|
E --> F(结束) |
||||
|
``` |
||||
|
```mermaid |
||||
|
--- |
||||
|
title: 设备工作状态变更状态图 |
||||
|
--- |
||||
|
stateDiagram-v2 |
||||
|
[*] --> IDLE |
||||
|
IDLE --> WORKING : 点击开始检测/执行检测流程 |
||||
|
WORKING --> PAUSE : 点击暂停 |
||||
|
PAUSE --> WORKING : 点击继续/onResume |
||||
|
WORKING --> IDLE : 点击停止/设备清空状态复位 |
||||
|
PAUSE --> IDLE : 点击停止 |
||||
|
``` |
||||
|
|
||||
|
```mermaid |
||||
|
--- |
||||
|
title: 系统的工作状态 |
||||
|
--- |
||||
|
stateDiagram-v2 |
||||
|
[*] --> COMPLETED |
||||
|
COMPLETED --> START_PENDING : 点击开始检测 |
||||
|
START_PENDING --> COMPLETED : [设备状态为IDLE]/设置设备状态为WORKING |
||||
|
COMPLETED --> PAUSE_PENDING : 点击暂停 |
||||
|
PAUSE_PENDING --> COMPLETED : [设备状态为WORKING]/设置设备状态为PAUSE |
||||
|
COMPLETED --> RESUME_PENDING : 点击继续 |
||||
|
RESUME_PENDING --> COMPLETED : [设备状态为PAUSE]/设置设备状态为WORKING |
||||
|
COMPLETED --> STOP_PENDING : 点击停止 |
||||
|
STOP_PENDING --> COMPLETED : [设备状态不为IDLE]/设置设备状态为IDLE |
||||
|
``` |
||||
|
|
||||
|
```mermaid |
||||
|
--- |
||||
|
title: 系统状态定时处理流程 |
||||
|
--- |
||||
|
|
||||
|
flowchart TD |
||||
|
A(开始) --> B[获取系统状态] |
||||
|
B --> C{设备错误} |
||||
|
C --Y--> B |
||||
|
C --N--> D[设备工作状态处理] |
||||
|
D --> E[系统状态处理] |
||||
|
E --> END(结束) |
||||
|
|
||||
|
``` |
||||
|
|
||||
|
|
||||
|
```mermaid |
||||
|
--- |
||||
|
title: 设备状态变更处理流程 |
||||
|
--- |
||||
|
flowchart TD |
||||
|
BEGIN(开始) --> DeviceStateDiv{设备状态} |
||||
|
DeviceStateDiv --暂停--> OnPause[do nothing] |
||||
|
DeviceStateDiv --恢复--> OnResume[do nothing] |
||||
|
DeviceStateDiv --工作--> OnWorking |
||||
|
OnPause --> END(结束) |
||||
|
OnResume --> END(结束) |
||||
|
OnWorking --> END(结束) |
||||
|
subgraph OnWorking |
||||
|
SUB_BEGIN(开始) --> G |
||||
|
G{存在就绪任务} --Y--> B[执行操作] |
||||
|
G --N--> E[获取系统状态] |
||||
|
B --> C{存在设备错误} |
||||
|
C --Y--> D[填充错误信息] |
||||
|
D --> E |
||||
|
C --N--> E |
||||
|
E --> F{系统状态切换中或者系统出现错误} |
||||
|
F --Y--> SUB_END(结束) |
||||
|
F --N--> G |
||||
|
end |
||||
|
|
||||
|
``` |
||||
|
|
||||
|
|
||||
|
```mermaid |
||||
|
--- |
||||
|
title: 系统状态处理 |
||||
|
--- |
||||
|
flowchart TD |
||||
|
BEGIN(开始) --> A[获取系统状态] |
||||
|
A --> B{存在设备错误} |
||||
|
B --Y--> C[标记为发生严重错误] |
||||
|
C --> D[设置系统状态为状态变更完成] |
||||
|
D --> E[发送应用错误信息] |
||||
|
E --> F[失能所有电机] |
||||
|
F --> G[设置设备状态为空闲] |
||||
|
G --> END(结束) |
||||
|
|
||||
|
B --N--> H{系统状态判断} |
||||
|
H --启动切换中--> OnStartPending[设备状态为IDLE则设备状态设置为WORKING] |
||||
|
H --暂停切换中--> OnPausePending[设备状态为WORKING则设备状态设置为PAUSE] |
||||
|
H --恢复切换中--> OnResumePending[设备状态为PAUSE则设备状态设置为WORKING] |
||||
|
H --停止切换中--> OnStopPending[设备状态不为IDLE则设备状态设置为IDLE] |
||||
|
OnStartPending --> J[设置系统状态为状态变更完成] |
||||
|
OnPausePending --> J |
||||
|
OnResumePending --> J |
||||
|
OnStopPending --> J |
||||
|
J --> END |
||||
|
``` |
||||
|
|
||||
|
|
||||
|
```mermaid |
||||
|
classDiagram |
||||
|
class A8kActionTask { |
||||
|
+ Boolean isReady() |
||||
|
+ List<AppError> doAction() |
||||
|
} |
||||
|
|
||||
|
class AC20ScanReactionPlate { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
AC20ScanReactionPlate --|> A8kActionTask |
||||
|
AC20ScanReactionPlate --> OptScanModuleStateMgrService |
||||
|
AC20ScanReactionPlate --> ProjectContextMgrService |
||||
|
AC20ScanReactionPlate --> ReactionRecordMgrService |
||||
|
AC20ScanReactionPlate --> OptScanModuleCtrlService |
||||
|
``` |
||||
|
|
||||
|
|
||||
|
```mermaid |
||||
|
--- |
||||
|
title: 扫描反应板获取结果工作流程 |
||||
|
--- |
||||
|
flowchart TD |
||||
|
BEGIN(开始) --> A[设置光学扫描模组状态为扫描中] |
||||
|
A --> B[获取项目上下文] |
||||
|
|
||||
|
B --> E[根据项目中的光学类型生成扫描原始结果] |
||||
|
E --> F[根据原始结果分析得到反应结果] |
||||
|
F --> G[丢弃反应板] |
||||
|
G --> H[设置光学扫描模组状态为空闲] |
||||
|
H --> I[保存反应板反应结果] |
||||
|
I --> END(结束) |
||||
|
``` |
||||
|
|
||||
|
```mermaid |
||||
|
--- |
||||
|
title: Can总线服务类图 |
||||
|
--- |
||||
|
classDiagram |
||||
|
class A8kCanBusService { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
class A8kCanBusConnection { |
||||
|
+ onOpen() |
||||
|
+ onMessage() |
||||
|
+ callcmd() |
||||
|
+ send() |
||||
|
+ moduleGetStatus() |
||||
|
} |
||||
|
|
||||
|
class WebSocketClient |
||||
|
|
||||
|
A8kCanBusService --> A8kCanBusConnection |
||||
|
A8kCanBusConnection --|> WebSocketClient |
||||
|
|
||||
|
``` |
||||
|
|
||||
|
```mermaid |
||||
|
--- |
||||
|
title: 单次任务执行时序 |
||||
|
--- |
||||
|
sequenceDiagram |
||||
|
participant A8kActionTask |
||||
|
participant OptScanModuleCtrlService |
||||
|
participant OptModuleDriver |
||||
|
participant A8kCanBusService |
||||
|
participant AC20ScanReactionPlate |
||||
|
participant A8kCanBusConnection |
||||
|
participant WebSocketClient |
||||
|
A8kActionTask ->> AC20ScanReactionPlate: doAction |
||||
|
AC20ScanReactionPlate ->> AC20ScanReactionPlate: doOptScanXX |
||||
|
AC20ScanReactionPlate ->> OptScanModuleCtrlService: optScan |
||||
|
OptScanModuleCtrlService ->> OptScanModuleCtrlService: startOptScan |
||||
|
OptScanModuleCtrlService ->> OptModuleDriver: setReg |
||||
|
OptModuleDriver ->> A8kCanBusService: moduleSetReg |
||||
|
A8kCanBusService ->> A8kCanBusConnection: callcmd2 |
||||
|
A8kCanBusConnection ->> A8kCanBusConnection: packParamsToPacket |
||||
|
A8kCanBusConnection ->> A8kCanBusConnection: autoReSend |
||||
|
A8kCanBusConnection ->> A8kCanBusConnection: priSend |
||||
|
A8kCanBusConnection ->> A8kCanBusConnection: _priSend |
||||
|
A8kCanBusConnection ->> WebSocketClient: send |
||||
|
``` |
@ -0,0 +1,68 @@ |
|||||
|
```mermaid |
||||
|
classDiagram |
||||
|
class AppEventBusService { |
||||
|
+ regListener(AppEventListener listener) |
||||
|
+ pushEvent(AppEvent appEvent) |
||||
|
- eventBusSchedule() |
||||
|
- callOnEvent(AppEvent appEvent) |
||||
|
} |
||||
|
|
||||
|
AppEventBusService --> Thread |
||||
|
AppEventBusService --> BlockingQueue |
||||
|
AppEventBusService "1" --> "*" AppEventListener |
||||
|
AppEventListener --> AppEvent |
||||
|
|
||||
|
A8kCanBusOnConnectEvent --|> AppEvent |
||||
|
AppTubeholderSettingUpdateEvent --|> AppEvent |
||||
|
A8kHardwareReport --|> AppEvent |
||||
|
A8kCanBusOnConnectEvent --|> AppEvent |
||||
|
AppIDCardMountEvent --|> AppEvent |
||||
|
AppIDCardUnmountEvent --|> AppEvent |
||||
|
AppPromptEvent --|> AppEvent |
||||
|
AppWarningNotifyEvent --|> AppEvent |
||||
|
DoA8kStepActionEvent --|> AppEvent |
||||
|
|
||||
|
``` |
||||
|
|
||||
|
```mermaid |
||||
|
flowchart TD |
||||
|
BEGIN(开始) --容器初始化完成--> A[初始化事件处理线程] |
||||
|
A --> B{阻塞消息队列存在待处理消息} |
||||
|
B --Y--> C[遍历消息处理器调用消息处理器处理消息] |
||||
|
B --N--> B |
||||
|
C --> B |
||||
|
``` |
||||
|
|
||||
|
|
||||
|
```mermaid |
||||
|
--- |
||||
|
title 设备状态与应用事件更新 |
||||
|
--- |
||||
|
classDiagram |
||||
|
class AppWebSocketEndpointMgr { |
||||
|
- broadcastEvent() |
||||
|
- broadcastState() |
||||
|
%% 上报应用事件 |
||||
|
+ reportEvent() |
||||
|
%% 上报设备状态 |
||||
|
+ reportDeviceState() |
||||
|
|
||||
|
%% 上报Session状态 |
||||
|
+ reportSessionState() |
||||
|
|
||||
|
%% 上报耗材状态 |
||||
|
+ reportConsumableStateState() |
||||
|
} |
||||
|
class AppStateWebsocketEndpoint |
||||
|
class AppEventWebsocketEndpoint |
||||
|
class FrontEndMessageBoxAndEventMgr |
||||
|
class DeviceWorkStateMgrService |
||||
|
class GStateMgrService |
||||
|
class TubeStateMgrService |
||||
|
class IncubationPlateStateMgrService |
||||
|
class OptScanModuleStateMgrService |
||||
|
class ConsumablesMgrService |
||||
|
class TubeHolderSettingMgrService |
||||
|
|
||||
|
class Report |
||||
|
``` |
Write
Preview
Loading…
Cancel
Save
Reference in new issue