You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
```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: 单次任务执行时序 --- 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 ```
```mermaid --- title: 全血样本预处理流程 --- flowchart Begin[开始] --> S1[获取当前试管信息] S1 --> S2[获取当前试管架配置信息] %% 试管样本准备阶段 S2 --> S3[夹取试管到摇匀位置] S3 --> S4[摇匀] S4 --> S5[取试管帽] S5 --> S6[设置样本预处理完成] %% 反应板夹准备阶段 S6 --> S7[丢弃反应板夹为什么] S7 --> S8[拉取反应板夹] S8 --> S9[丢弃反应板夹为什么] S9 --> S10[推送反应板夹] S10 --> S11[设置反应板夹准备完毕] %% 处理样本 S11 --> S12[刺破小缓冲液] S12 --> S13[取样] S13 --> S14[将孵育盘转到待滴液的位置] S14 --> S15[滴液] %% 孵育处理 S15 --> S16[查询项目的孵育时间] S16 --> S17[设置孵育开始时间和孵育时长开始孵育] S17 --> S18[设置样本处理完成] ```
```mermaid --- title: 样本处理类图 ---
classDiagram %% 试管 class Tube %% 试管架 class TubeHolder %% 反应液类型 class A8kReactionFlowType ```
|