Ü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.

Verwendete Tools

Bildergebnis für keil uvision

Bildergebnis für simplicity studio

Bildergebnis für visual studio 2017

Bildergebnis für visual studio code