====== 3. Prüfung ====== ===== Mögliche Prüfungsfragen ===== * Warum wird eine Linie grau, wenn man diese in SVG auf ganzzahligen Koordinaten mit 1 Pixel Breite zeichenet? * Schriften und Dithering, warum geht das schief? Mögliche Lösungsansätze. * Python Type-Annotations. Sinn und Nutzen, Einschränkungen. * Python Pillow: Code erklären, Grundsätzliche Funktionsweise (pixelbasiert, Image und Drawing Contexts). Vorteile für unser Projekt. * Webcrawling: Prinzipien. * E-Ink Technologie: Funktionsweise, Vor- und Nachteile. * Architektur unseres Schulzimmeranzeige-Systems: Was wird wo gespeichert? Welche Komponente initiiert die Kommunikation? Welche Daten werden ausgetauscht? * Microkontroller mit Display * Meldet sich nach Aufwachen und Reboot beim Server mit: * MAC-Adresse (fix pro Chip) * Firmware Version (überlebt reboot) * Bild-Hash (wird beim reboot zurückgesetzt, überlebt aber deep sleep) * Batteriespannung (direktes Messresultat) * Erhält folgende mögliche Antworten: * ''update'' mit URL, wo die neue Firmware zu finden ist (wenn eine neuere auf dem Server vorhanden ist). Das Update wird ausgeführt und neu gestartet, der Rest wird ignoriert. * ''bild'' mit URL, wo das aktuell anzuzeigende Bild zu finden ist. Das Bild wird heruntergeladen und angezeigt. * ''hash'' mit HASH vom aktuellen Bild (nur wenn auch ein Bild herunterzuladen ist). * ''sleep'' mit Anzahl Sekunden. Die Anzeige schläft so viele Sekunden, bis sie sich wieder beim Server meldet. Das ist der letzte Eintrag einer Antwort. * «Bild»-Server (auf für «alle» zugänglicher Server) * Speichert alle MAC-Adressen (automatisches Hinzfügen) * Speichert alle Batteriezustände als Zeitreihe * Verwaltung der Zuordnung MAC zu Zimmer * Verwaltung Zusatz-Information zu Zimmern (z.B. Zimmerverantwortliche, Sonderbilder) * Empfängt neue XML-Dateien vom «Nesa»-Programm und erzeugt die Stundenplanbilder (mit letztem bekannter Batterie-Ladung) * «Nesa»-Programm (auf privatem Server) * Holt sich Zimmerliste und Update-Zeiten vom «Bild»-Server. * Lädt XML-Dateien vom Montag aktueller Woche plus 14 Tage herunter. * Schickt neue, veränderte XML-Dateien an «Bild-Server» (min. 1x täglich am Morgen)