Test Mermaid Diagram #1

Open
opened 2026-05-13 14:13:19 -07:00 by jlpoole · 0 comments
Owner

Architecture Overview

The BLE implementation follows a layered architecture with clear separation of concerns:

flowchart TB
    subgraph Python["Python Layer (ble-reticulum)"]
        BLEInterface["BLEInterface<br/>Protocol handler, fragmentation,<br/>peer lifecycle"]
        BLEPeerInterface["BLEPeerInterface<br/>Per-peer Reticulum interface"]
        AndroidDriver["AndroidBLEDriver<br/>Chaquopy bridge to Kotlin"]
    end

    subgraph Kotlin["Kotlin Native Layer"]
        Bridge["KotlinBLEBridge<br/>Main entry point,<br/>PeerInfo tracking,<br/>deduplication"]
        Scanner["BleScanner<br/>Adaptive intervals,<br/>service filtering"]
        Advertiser["BleAdvertiser<br/>Identity naming,<br/>proactive refresh"]
        GattClient["BleGattClient<br/>Central mode,<br/>4-step handshake"]
        GattServer["BleGattServer<br/>Peripheral mode,<br/>GATT service"]
        OpQueue["BleOperationQueue<br/>Serialized GATT ops"]
    end

    subgraph Android["Android BLE Stack"]
        BluetoothAdapter["BluetoothAdapter"]
        BluetoothLeScanner["BluetoothLeScanner"]
        BluetoothLeAdvertiser["BluetoothLeAdvertiser"]
        BluetoothGatt["BluetoothGatt"]
        BluetoothGattServer["BluetoothGattServer"]
    end

    BLEInterface --> BLEPeerInterface
    BLEInterface --> AndroidDriver
    AndroidDriver -->|Chaquopy| Bridge
    Bridge --> Scanner
    Bridge --> Advertiser
    Bridge --> GattClient
    Bridge --> GattServer
    GattClient --> OpQueue
    Scanner --> BluetoothLeScanner
    Advertiser --> BluetoothLeAdvertiser
    GattClient --> BluetoothGatt
    GattServer --> BluetoothGattServer
## Architecture Overview The BLE implementation follows a layered architecture with clear separation of concerns: ```mermaid flowchart TB subgraph Python["Python Layer (ble-reticulum)"] BLEInterface["BLEInterface<br/>Protocol handler, fragmentation,<br/>peer lifecycle"] BLEPeerInterface["BLEPeerInterface<br/>Per-peer Reticulum interface"] AndroidDriver["AndroidBLEDriver<br/>Chaquopy bridge to Kotlin"] end subgraph Kotlin["Kotlin Native Layer"] Bridge["KotlinBLEBridge<br/>Main entry point,<br/>PeerInfo tracking,<br/>deduplication"] Scanner["BleScanner<br/>Adaptive intervals,<br/>service filtering"] Advertiser["BleAdvertiser<br/>Identity naming,<br/>proactive refresh"] GattClient["BleGattClient<br/>Central mode,<br/>4-step handshake"] GattServer["BleGattServer<br/>Peripheral mode,<br/>GATT service"] OpQueue["BleOperationQueue<br/>Serialized GATT ops"] end subgraph Android["Android BLE Stack"] BluetoothAdapter["BluetoothAdapter"] BluetoothLeScanner["BluetoothLeScanner"] BluetoothLeAdvertiser["BluetoothLeAdvertiser"] BluetoothGatt["BluetoothGatt"] BluetoothGattServer["BluetoothGattServer"] end BLEInterface --> BLEPeerInterface BLEInterface --> AndroidDriver AndroidDriver -->|Chaquopy| Bridge Bridge --> Scanner Bridge --> Advertiser Bridge --> GattClient Bridge --> GattServer GattClient --> OpQueue Scanner --> BluetoothLeScanner Advertiser --> BluetoothLeAdvertiser GattClient --> BluetoothGatt GattServer --> BluetoothGattServer ```
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
jlpoole/ble-reticulum#1
No description provided.