The entire codebase is divided into several modules. Modules consist of a set of source files containing a bunch of components (classes) which are logically related. Consequently, these classes are also in a separate namespace and directory according to the module name. This follows the physical design philosophy. Components from different modules never directly depend on each other but only on interfaces or concepts.
Chapter | Content |
---|---|
Analog | ADC measurements, overcurrent |
DCC | Operation and service mode, DCC command generation, BiDi decoding |
DECUP | DECUP ZPP and ZSU updates (WebSocket service) |
HTTP | Access point (AP) and station (STA) HTTP servers |
MDU | MDU ZPP and ZSU updates (WebSocket service) |
Memory | NVS memory for settings, locos, accessories |
OTA | OTA update (WebSocket service) |
Out | Drivers, signal generation of DCC, DECUP, MDU and ZUSI |
Trace | Debug purposes |
UDP | UDP |
USB | ULF_COM modes |
WiFi | WiFi |
Z21 | Z21 server (UDP and WebSocket service) |
ZUSI | ZUSI ZPP updates (WebSocket service) |