Überblick
Die Software wurde in Module aufgeteilt um möglichst viel Code-Sharing über die verwendeten Platformen zu ermöglichen. Wichtig war dabei unter anderem die Programmiersprache: Auf den eingebetteten Systemen kommt nur C zum Einsatz, auf den Platformen mit Betriebssystem (Host mit Linux, Simulationen auf Windows und Linux) kommt C++ zum Einsatz. Daher müssen Module, die auch auf einem eingebetteten System zum Einsatz kommen, in c implementiert werden. Alle anderen Module wurden zur leichteren Entwicklung in C++ implementiert.
Module
- Netzwerkprotokoll: Implementiert das Netwerkprotokoll zwischen Host und Nodes. Die allgemeine Implementierung ist in C, Hilfsfunktionen für den Host wurden in C++ implementiert.
- Wire-Protokoll: Sichert die Datenkonsistenz bei Übertragungen die auf ungesicherten Kabelverbindungen basieren (zum Beispiel UART/RS-232). Wurde in C implementiert da es nur in eingebetteten Systemen verwendet wird.
- Node-Firmware: Steuert den Mikrocontroller am Node, wertet Sensoren aus und nutzt die Protokolle zur Kommunikation. Implementiert in C, verwendet Keil als Entwicklungs- und Debuggingumgebung.
- Bluetooth Node: Steuert den Bluetooth-Chip auf dem Node und stellt dem Host Interfaces zur Verfügung. Implementiert in C, verwendet Simplicity Studio als Entwicklungs- und Debuggingumgebung.
- Bluetooth Host: Steuert den Bluetooth-Chip auf dem Host, verbindet sich mit den Nodes und übermittelt Daten zwischen dem Host und den verbundenen Nodes. Implementiert in C, verwendet Simplicity Studio als Entwicklungs- und Debuggingumgebung.
- Communication Layer (Host): Implementiert die Kommunikation mit den Nodes. Es enumeriert die Knoten, verteilt Bus-IDs und konfiguriert die Knoten. Implementierung in C++ mit Visual Studio auf Windows und Visual Studio Code auf Linux.
- Data Layer (Host): Verarbeitet die Daten, die vom Communicatio Layer empfangen wurden, und verteilt sie an die Applikationen am Host. Implementierung in C++ mit Visual Studio auf Windows und Visual Studio Code auf Linux.