4 changed files with 65 additions and 32 deletions
-
24doc/检测流程.md
-
7doc/耗材管理.md
-
59doc/设备通信流程梳理.md
-
7src/main/java/a8k/app/hardware/channel/A8kCanBusConnection.java
@ -0,0 +1,59 @@ |
|||||
|
```mermaid |
||||
|
--- |
||||
|
title: Can总线服务类图 |
||||
|
--- |
||||
|
classDiagram |
||||
|
class A8kCanBusService { |
||||
|
|
||||
|
} |
||||
|
|
||||
|
class A8kCanBusConnection { |
||||
|
+ onOpen() |
||||
|
+ onMessage() |
||||
|
+ callcmd() |
||||
|
+ send() |
||||
|
+ moduleGetStatus() |
||||
|
} |
||||
|
|
||||
|
class WebSocketClient |
||||
|
|
||||
|
A8kCanBusService --> A8kCanBusConnection |
||||
|
A8kCanBusConnection --|> WebSocketClient |
||||
|
|
||||
|
``` |
||||
|
|
||||
|
```mermaid |
||||
|
--- |
||||
|
title: 收到设备发送的包处理流程 |
||||
|
--- |
||||
|
sequenceDiagram |
||||
|
participant A8kCanBusConnection |
||||
|
participant ByteArray |
||||
|
participant A8kPacket |
||||
|
participant ProcessContext |
||||
|
participant AppEventBusService |
||||
|
participant BlockingQueue |
||||
|
|
||||
|
A8kCanBusConnection ->>+ A8kCanBusConnection: onMessage |
||||
|
A8kCanBusConnection ->>+ A8kCanBusConnection: processCanRxMessage |
||||
|
|
||||
|
%% 将16进制字符串转换成二级制字节 |
||||
|
A8kCanBusConnection ->>+ ByteArray: hexStringToBytes() |
||||
|
ByteArray ->>- A8kCanBusConnection: byte[] |
||||
|
A8kCanBusConnection ->>+ A8kPacket: A8kPacket() |
||||
|
A8kPacket ->>- A8kCanBusConnection: packet |
||||
|
opt 包类型为PACKET_TYPE_ACK 或者 PACKET_TYPE_ERROR_ACK |
||||
|
A8kCanBusConnection->>+ProcessContext: pushReceipt() |
||||
|
|
||||
|
%% 执行这边之前需要判断收到的包的序号是不是当前发送的包的序号相同,并且比较moduleId和commandId是否相等 |
||||
|
ProcessContext->>+BlockingQueue: add() |
||||
|
BlockingQueue->>-ProcessContext: void |
||||
|
ProcessContext->>-A8kCanBusConnection: void |
||||
|
end |
||||
|
|
||||
|
opt 包类型为PACKET_TYPE_EVENT 处理设备上报事件 |
||||
|
A8kCanBusConnection->>+AppEventBusService: pushEvent() |
||||
|
AppEventBusService->>-A8kCanBusConnection: void |
||||
|
end |
||||
|
``` |
||||
|
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue