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](https://github.com/amirna2/ClusterDuck-Docs/raw/master/assets/cdp-arch.png)