Konzept-Beschreibung
Die folgende Abbildung zeigt die Kommunikationsstruktur und den Aufbau der einzelnen Komponenten. Das Schaubild soll helfen, der folgenden Konzept-Beschreibung besser folgen zu können.
2.1 Beacon Line
Beacon Line ist eine Bluetooth® Low Energy Infrastruktur und basiert auf einem Gateway mit bis zu 20 Ankern, welche über ein Twisted-Pair-Kabel (Cat 5) seriell miteinander verbunden und stromversorgt werden.
2.2 Anker
Jeder Anker enthält ein Bluetooth® Low Energy Modul, das für die Funkkommunikation zuständig ist. Die Firmware wurde als HCI-Controller (Host Controller Interface) implementiert und ermöglicht alle Bluetooth® Low Energy Rollen (Central, Observer und Broadcaster) und Funktionalitäten.
2.3 Gateway
Das Gateway ermöglicht die Kommunikation zwischen den Ankern und den Bline-Servern über TCP/IP. Das Gateway als TCP-Server bekommt seine IP-Adresse dynamisch von einem DHCP Server und ist erreichbar über die IP-Adresse oder Hostname (BLGD-MAC). Die MAC-Adresse ist auf dem Gehäuse des Gateways abgebildet (z.B. BLGD-8C8E7601441E). Um mit dem Gateway zu kommunizieren wird ein “.local” an den Hostnamen (MAC-Adresse) gehängt, also bei diesem Beispiel: BLGD-8C8E7601441E.local
2.4 HCI
Das HCI ist eine standardisierte Bluetooth®-Schnittstelle zum Senden von Befehlen, Empfangen von Ereignissen und zum Senden und Empfangen von Daten. Gemäß Bedeutung von HCI wird dieses verwendet, um die Host- und Controller-Geräte zu überbrücken. Der Nutzer hat mit dieser Ebene keinen Kontakt. Es sind nur die Beacon Line Schnittstellen zugänglich.
2.5 Bline-Server
Die Software wurde für die Linux, Windows und macOS entwickelt. Der Bline-Server deckt auf einer Seite die HCI Host Role ab und auf andere Seite bietet es eine RESTful API für die Kommunikation mit den Ankern und ein TCP Port zum Folgen der Observer-Daten. Diese Dokumentation erklärt die RESTful API und Observer-Daten über TCP.
2.6 RESTful API
Representational State Transfer (REST) ist ein Paradigma für die Softwarearchitektur, die eine einheitliche Schnittstelle zwischen getrennten Komponenten in einer HTTP-fähigen Client-Server-Architektur beschreibt.
2.7 OpenAPI
Die OpenAPI Specification (vormals Swagger Specification) ist ein Standard zur Beschreibung von REST-konformen Programmierschnittstellen (API).