-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture Diagram
Amir Nathoo edited this page Dec 8, 2024
·
1 revision
graph TB
%% Application Layer
App[User Application] --> RadioMeshH[RadioMesh.h]
RadioMeshH --> Builder[DeviceBuilder]
Builder --> Device[RadioMeshDevice]
%% Framework Interfaces
subgraph Framework[Framework - Interfaces]
direction LR
IDevice
IRadio
IDisplay
ICrypto
IAesCrypto
IWifiConnector
IWifiAccessPoint
IByteStorage
end
%% Core Protocol
subgraph Core[Core Protocol Layer]
direction LR
PacketRouter --> RoutingTable
PacketRouter --> PacketTracker
PacketRouter --> RadioMeshPacket
RadioMeshPacket --> Topics[MessageTopics]
end
%% Hardware Implementations
subgraph Hardware[Hardware Implementations]
direction LR
LoraRadio --> |implements| IRadio
OledDisplay --> |implements| IDisplay
AesCrypto --> |implements| ICrypto
WifiConnector --> |implements| IWifiConnector
WifiAccessPoint --> |implements| IWifiAccessPoint
EEPROMStorage --> |implements| IByteStorage
end
%% Common Utilities
subgraph Common[Common Layer]
direction LR
Utils[Utils.h]
Definitions[Definitions.h]
Errors[Errors.h]
Logger[Logger.h]
RadioConfigs[RadioConfigs.h]
end
Device --> |implements| IDevice
Device --> |uses| PacketRouter
classDef interface fill:#f9f,stroke:#333,stroke-width:2px
classDef implementation fill:#bbf,stroke:#333,stroke-width:1px
classDef common fill:#ffd,stroke:#333,stroke-width:1px
classDef core fill:#dfd,stroke:#333,stroke-width:1px
class IDevice,IRadio,IDisplay,ICrypto,IAesCrypto,IWifiConnector,IWifiAccessPoint,IByteStorage interface
class LoraRadio,OledDisplay,WifiConnector,WifiAccessPoint,EEPROMStorage,AesCrypto implementation
class Utils,Definitions,Errors,Logger,RadioConfigs common
class PacketRouter,RoutingTable,PacketTracker,RadioMeshPacket,Topics core
```