10.[Lizenzen der verwendeten Software](#lizenzen-der-verwendeten-software)
10.[Lizenzen der verwendeten Software](#lizenzen-der-verwendeten-software)
11.[Fazit und Ausblick](#fazit-und-ausblick)
11.[Fazit und Ausblick](#fazit-und-ausblick)
## Projektziel
# Projektziel
## Projektplanung
# Projektplanung
### Projektstruktur & Ablauf
## Projektstruktur & Ablauf
### UseCases
## UseCases
## Mockups & Systemskizzen
# Mockups & Systemskizzen
## Verwendete Hardware
# Verwendete Hardware
## AmbientBox
# AmbientBox
### Architektur
## Architektur
### Frontend & Backend
## Frontend & Backend
### Betriebssystem
## Betriebssystem
### Hardware
## Hardware
## Schnittstellen
# Schnittstellen
Die Kommunikation zwischen der AmbientBox und dem Accelerator erfolgt ebenso wie die interne AmbientBox-Kommunikation über Websockets. Dafür wird Socket.io Version 2.4.0 verwendet. Aufteilen lässt sich die Kommunikation zwischen den beiden Systemen in Frontend- und Backend-Kommunikation.
Die Kommunikation zwischen der AmbientBox und dem Accelerator erfolgt ebenso wie die interne AmbientBox-Kommunikation über Websockets. Dafür wird Socket.io Version 2.4.0 verwendet. Aufteilen lässt sich die Kommunikation zwischen den beiden Systemen in Frontend- und Backend-Kommunikation.
### Initialisierung der Backend-Verbindung
## Initialisierung der Backend-Verbindung
Das Backend der AmbientBox setzt sowhl einen Socket.io-Client als auch -Server um. Der Server dient zur Kommunikation zwischen dem AmbientBox Backend und Frontend. Die hauptsächliche Aufgabe besteht dabei bei der Weiterleitung von Verbindungsinformationen und Nutzerevents von Seiten des Accelerator und der AmbientBox.
Das Backend der AmbientBox setzt sowhl einen Socket.io-Client als auch -Server um. Der Server dient zur Kommunikation zwischen dem AmbientBox Backend und Frontend. Die hauptsächliche Aufgabe besteht dabei bei der Weiterleitung von Verbindungsinformationen und Nutzerevents von Seiten des Accelerator und der AmbientBox.
Die Client-Verbindung ziehlt auf die Anbindung zwischen den beiden Systemen ab. In der nachfolgenden Abbildung ist der Ablauf eines Verbindungsaufbaus zwischen den beiden Systemen zu sehen.
Die Client-Verbindung ziehlt auf die Anbindung zwischen den beiden Systemen ab. In der nachfolgenden Abbildung ist der Ablauf eines Verbindungsaufbaus zwischen den beiden Systemen zu sehen.
Abbildung X: Verbindungsabufbau zwischen der AmbientBox und dem Accelerator
Abbildung X: Verbindungsabufbau zwischen der AmbientBox und dem Accelerator
Wenn die AmbientBox angeschaltet wird, wird nach der Initialisierung von unterschiedlichen Socket-Listenern eine Verbndungsanfrage an den Accelerator gesendet. Der Accelerator initialisiert ebenfalls zu Beginn derLaufzeit Socket-Listener. Nachfolgend sind die relevanten Listener-Events der AmbientBox und des Accelerators aufgelistet aufgelistet:
Wenn die AmbientBox angeschaltet wird, wird nach der Initialisierung von unterschiedlichen Socket-Listenern eine Verbndungsanfrage an den Accelerator gesendet. Der Accelerator initialisiert ebenfalls zu Beginn derLaufzeit Socket-Listener. Nachfolgend sind die relevanten Listener-Events der AmbientBox und des Accelerators aufgelistet aufgelistet:
...
@@ -110,20 +108,20 @@ Nachdem die Verbindung zwischen den Systemen aufgebaut wurde, sendet die Ambient
...
@@ -110,20 +108,20 @@ Nachdem die Verbindung zwischen den Systemen aufgebaut wurde, sendet die Ambient
Das Objekt enthält die ID der Box, ihren Namen und die Farbe für die Anzeige im Accelerator. Der Status kann 0 (offline), 1 (online) oder 2 (in use) annehmen. Bei der Aktivierung der AmbientBox wird dieser Status auf 1, sobald die AmbientBox einem Nutzer zugeordnet wird auf 2, wenn eine AmbientBox von einem Nutzer entfernt wird wieder auf 1 und wenn eine AmbientBox vom Accelerator disconnected auf 0 gesetzt. Zusätzlich speichert die Liste den aktuellen Raum und den verbundenen Nutzer. Der gespeicherte Socket ist der Socket, über welchen die AmbientBox sich mit dem Accelerator verbunden hat. Über diesen Socket werden alle Events an die AmbientBox gesendet. Die webRTCID dient der Zuordnung zwischen der AmbientBox und der eingehenden WebRTC-Verbindung. Mehr hierzu im [nächsten Kapitel](#frontend).
Das Objekt enthält die ID der Box, ihren Namen und die Farbe für die Anzeige im Accelerator. Der Status kann 0 (offline), 1 (online) oder 2 (in use) annehmen. Bei der Aktivierung der AmbientBox wird dieser Status auf 1, sobald die AmbientBox einem Nutzer zugeordnet wird auf 2, wenn eine AmbientBox von einem Nutzer entfernt wird wieder auf 1 und wenn eine AmbientBox vom Accelerator disconnected auf 0 gesetzt. Zusätzlich speichert die Liste den aktuellen Raum und den verbundenen Nutzer. Der gespeicherte Socket ist der Socket, über welchen die AmbientBox sich mit dem Accelerator verbunden hat. Über diesen Socket werden alle Events an die AmbientBox gesendet. Die webRTCID dient der Zuordnung zwischen der AmbientBox und der eingehenden WebRTC-Verbindung. Mehr hierzu im [nächsten Kapitel](#frontend).