Design Document - r41d/ClusterDuck-Protocol GitHub Wiki

Project Source Folder Description

ClusterDuck Project Root

├── Libraries                   Arduiono libraries CDP depends on
├── examples                    Arduiono example applications using the CDP APIs
├── platformio.ini              PlatformIO project file
├──src                          CDP Source folder
├── ClusterDuck.cpp                 The main class implementing external APIs
├── ClusterDuck.h                   Public Header file for the CDP external APIs
├── DuckDisplay.cpp                 Implements the OLED display component used by ClusterDuck main class                
├── DuckEsp.cpp                     Provides ESP32 specific utility functions
├── DuckLed.cpp                     Implements LED function
├── DuckLora.cpp                    Implements internal LoRa network functions (setup network, receive/send packets, read data,...)
├── DuckNet.cpp                     Implements internal Networking related fucntions (WebServer, Wifi AP, DNS,...)
├── DuckUtils.cpp                   Provides platform independent utility functions
└── include                     Private components definitions                         
    ├── DuckDisplay.h
    ├── DuckEsp.h
    ├── DuckLed.h
    ├── DuckLora.h
    ├── DuckNet.h
    ├── DuckPacket.h
    ├── DuckUtils.h
    ├── LoraPacket.h
    ├── OTAPage.h               Over The Air web page
    ├── cdpcfg.h                CDP platform/board configuration
    └── index.h                 ClusterDuck Emergency Portal web page
    └── wificredentials.h       Wifi setup page 

High level component diagram

cdp-arch