Skip to content

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
    ```
Loading

Clone this wiki locally