zhaohe 3 months ago
parent
commit
0448f3c091
  1. 24
      doc/检测流程.md
  2. 7
      doc/耗材管理.md
  3. 61
      doc/设备通信流程梳理.md
  4. 7
      src/main/java/a8k/app/hardware/channel/A8kCanBusConnection.java

24
doc/检测流程.md

@ -174,30 +174,6 @@ flowchart TD
```mermaid
---
title: Can总线服务类图
---
classDiagram
class A8kCanBusService {
}
class A8kCanBusConnection {
+ onOpen()
+ onMessage()
+ callcmd()
+ send()
+ moduleGetStatus()
}
class WebSocketClient
A8kCanBusService --> A8kCanBusConnection
A8kCanBusConnection --|> WebSocketClient
```
```mermaid
---
title: 单次任务执行时序
---
sequenceDiagram

7
doc/耗材管理.md

@ -55,12 +55,12 @@ sequenceDiagram
participant ConsumablesScanCtrlService
user->>+ConsumableScanControler: 开始扫描
ConsumableScanControler->>+AppConsumablesScanService: scanConsumables
AppConsumablesScanService->>+GStateMgrService: isDeviceInited
GStateMgrService->>-AppConsumablesScanService: 设备初始化结果
alt 未初始化
ConsumableScanControler->>+AppConsumablesScanService: scanConsumables
AppConsumablesScanService->>-ConsumableScanControler: 抛出系统未初始化异常
else
else 初始化完成
AppConsumablesScanService->>+ConsumablesScanCtrlService: doScanConsumablesAction
ConsumablesScanCtrlService->>-AppConsumablesScanService: scanRawResults原始扫描结果
loop 遍历扫描结果
@ -72,7 +72,8 @@ sequenceDiagram
AppConsumablesScanService->>+AppConsumablesScanService: loadingConsumables
AppConsumablesScanService->>-AppConsumablesScanService: 解析后的结果
end
AppConsumablesScanService->>-ConsumableScanControler:ConsumablesScanResultPacket
ConsumableScanControler->>+AppConsumablesScanService: scanConsumables
AppConsumablesScanService->>-ConsumableScanControler:result
end
ConsumableScanControler->>-user:ConsumablesScanResultPacket

61
doc/设备通信流程梳理.md

@ -0,0 +1,61 @@
```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
A8kCanBusConnection->>-A8kCanBusConnection: void
A8kCanBusConnection->>-A8kCanBusConnection: void
```

7
src/main/java/a8k/app/hardware/channel/A8kCanBusConnection.java

@ -65,11 +65,8 @@ public class A8kCanBusConnection extends WebSocketClient {
}
synchronized void pushReceipt(A8kPacket receipt) {
if (this.cmdPacket != null
&& this.cmdPacket.getPacketIndex() == receipt.getPacketIndex()
) {
if (this.cmdPacket.getModuleId() == receipt.getModuleId()
&& this.cmdPacket.getCmdId() == receipt.getCmdId()) {
if (this.cmdPacket != null && this.cmdPacket.getPacketIndex() == receipt.getPacketIndex()) {
if (this.cmdPacket.getModuleId() == receipt.getModuleId() && this.cmdPacket.getCmdId() == receipt.getCmdId()) {
receiptQueue.add(receipt);
this.cmdPacket = null;
} else {

Loading…
Cancel
Save