# ### Achtung! \###
Diese Datei ist nicht mehr aktuell.
Bitte nutze die neue Wiki unter [https://git.dateien.org/tobiash/itender/wiki](https://git.gaminggeneration.de/tobiash/itender/wiki) (Wiki des iTender Projekts)
# Notes und kleine Dokumentation
Was haben wir bereits am iTender Projekt gemacht?
## Konzept-Erstellung
#### Ideen
- Grund-Ideen
- Smarten Cocktail-Mischer
- 4 Getränke Behälter (mit Saft, Sirup oder Likör bzw. Schnapps)
- 4 Pumpen (Peristaltik Pumpe)
- Raspberry Pi als Prozessoreinheit
- Display in der Front mit Benutzeroberfläche
- Automatisches filtern von Getränken, je nachdem welche "Zutaten" in den Behältern sind
- Messung der aktuellen Füllmenge der Behälter, basierend auf Gewicht (mittels Wägezelle) oder Abstand zur
Wasseroberfläche (mittels Ultraschall-Sensor)
- Nice to have
- LED-Stripes für schöne Beleuchtung, basierend auf dem aktuellen Status der Maschine
- Extra Schlauch für weitere außenstehende Getränke
- Mit Bier-Fass Adapter?
- Kühlung der Container mittels Peltierelement und Lüftern
#### Erstes 3D-Modell
#### Neues 3D-Modell
## Das Programm
#### Aufbau
- Das Programm des iTenders ist getrennt in 3 Teile
- iTender Basis
- Die Basis besteht aus der Kommunikation zwischen den Pumpen, LEDs und jeglicher Hardware
- Außerdem gibt es Timer, automatische Events, Prüfung und aktualisierung von Getränken etc.
- Sie übernimmt z.B. das Starten vom Getränke-Füllen, stoppen sowie Berechnen von den Zutaten für ein Getränk
- Dieser Teil arbeitet seh eng mit dem Websocket-Server zusammen, um so auf Events vom Endnutzer zu reagieren.
- iTender Webserver
- Der Webserver ist einfach ein statischer Webserver welche Dateien "serviert", die dann von der Oberfläche geladen werden können.
- Der Client-Browser oder iTender-Display lädt dann diese Seite, erstmal passiert dann noch nichts
- iTender Websocket-Server
- Der Websocket-Server dient zur eigentlichen Live-Kommunikation zwischen Client und Gerät.
- Der Server und die Webseite (Endgerät), bauen eine Ende-zu-Ende Verbindung auf
- Die Kommunikation zwischen Client und Websocket-Server basiert auf JSON (Javascript-Objekt-Notation).
- Da der Websocket in früheren Client-Versionen anfällig für Fehler beim Übertragen von nicht alphabetischen Zeichen war, wird der gesendete Inhalt noch in Base64-Kodiert.
- Base64 dient dazu, die Daten binär zu kodieren, um sie auf der Gegenstelle wieder zu entkodieren.
- Außerdem wird beim übertragen eine Checksumme mitgegeben, um bei Fehlerhaften Paketen ein neues anzufragen.