--- id: 421a4a02-025a-4ab5-8ae3-fd52e2c738f0 --- flowchart LR subgraph Vehicle["Автомобиль"] OBD["OBD-II"] CANBUS["HS-CAN\n500 kbps"] OBD --> CANBUS end subgraph CANBoard["CAN-плата"] PHY0["CAN PHY"] PHY1["CAN PHY"] MCP0["MCP2515\ncan0"] MCP1["MCP2515\ncan1"] ISO["Isolation"] CANBUS --> PHY0 CANBUS --> PHY1 PHY0 --> MCP0 PHY1 --> MCP1 MCP0 --> ISO MCP1 --> ISO end subgraph Edge["Raspberry Pi 5 (Edge)"] SPI["SPI"] SocketCAN["SocketCAN\nlisten-only"] EdgeApp["Edge CAN Logger"] LocalStore["SQLite WAL\nOffline Buffer"] Forwarder["Store-and-Forward"] ISO --> SPI SPI --> SocketCAN SocketCAN --> EdgeApp EdgeApp --> LocalStore LocalStore --> Forwarder end subgraph BackendHost["Backend Host"] Influx["InfluxDB"] Flask["Flask Backend"] WS["WebSocket Server"] end subgraph UI["Web UI"] Browser["Browser"] Charts["Real-time Charts"] end Forwarder --> Influx Influx --> Flask Flask --> WS WS --> Browser Browser --> Charts