feat(station): E-Paper-Anzeige fuer Modus, Lampe und Auslieferungen
render.lines() zerlegt den zusammengefuehrten Zustand (status.json + control.json + SSID aus der Konfigurationsdatei) in Textzeilen, ohne Pillow und ohne Hardware zu brauchen - render.compose() importiert Pillow erst innerhalb der Funktion. epdconfig.py ist eine eigene GPIO/SPI-Schicht auf gpiozero/spidev, weil RPi.GPIO auf Debian 13 mit Python 3.13 nicht mehr traegt; epd2in13_V2.py/epd2in13_V3.py sind unveraendert aus dem Waveshare-Repository uebernommen (siehe HERKUNFT.md), nur der epdconfig-Import zeigt auf unser Modul. display.py laeuft als eigener systemd-Dienst (Wants=, Restart=on-failure), fehlendes Panel/SPI/Bibliothek beendet ihn sauber mit sys.exit(0) statt einer Neustartschleife - eine Migration darf davon nie abhaengen. Verdrahtung in setup_pi.sh/deploy.sh/ninlight-station folgt in einem eigenen Durchgang.
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# Herkunft der Panel-Treiber
|
||||
|
||||
`epd2in13_V2.py` und `epd2in13_V3.py` sind unveraendert aus dem offiziellen
|
||||
Waveshare-Repository uebernommen:
|
||||
|
||||
- Quelle: https://github.com/waveshareteam/e-Paper
|
||||
- Pfad: `RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in13_V2.py` bzw.
|
||||
`.../epd2in13_V3.py`
|
||||
- Commit: `85802dee4b938212b0ae069a34492c54a3d99878` (2023-02-15), abgerufen am
|
||||
2026-09-13 per `git log --follow` auf diesen beiden Dateien im Repository.
|
||||
- `epd2in13_V2.py`: Treiber-Version laut Dateikopf V4.0 (2019-06-20).
|
||||
- `epd2in13_V3.py`: Treiber-Version laut Dateikopf V1.2 (2022-08-09).
|
||||
|
||||
## Was geaendert wurde
|
||||
|
||||
Ausschliesslich die Importzeile:
|
||||
|
||||
```
|
||||
from . import epdconfig
|
||||
```
|
||||
|
||||
wurde zu
|
||||
|
||||
```
|
||||
import epdconfig
|
||||
```
|
||||
|
||||
weil `display/` in diesem Repository kein Python-Package ist (kein `__init__.py`,
|
||||
`sys.path`-Import wie bei `products.py` in `server.py`), sondern flach importiert wird -
|
||||
sowohl von `display.py` als auch von `tools/station/tests/test_render.py`. Ein relativer
|
||||
Import wuerde in dieser Umgebung mit `ImportError: attempted relative import with no known
|
||||
parent package` fehlschlagen.
|
||||
|
||||
Init-Sequenz, LUT-Tabellen, Timings und der Urheberrechtsvermerk der Originaldateien
|
||||
bleiben unangetastet. Ein kurzer Herkunftsvermerk mit denselben Angaben wie oben steht
|
||||
zusaetzlich im Kopf jeder der beiden Dateien.
|
||||
|
||||
## Was NICHT uebernommen wurde
|
||||
|
||||
`epdconfig.py` in diesem Verzeichnis ist eine eigene Neuimplementierung (siehe deren
|
||||
Modul-Docstring), keine Uebernahme aus dem Waveshare-Repository: Waveshares eigenes
|
||||
`epdconfig.py` fuer den Raspberry Pi setzt `RPi.GPIO` voraus, das auf Debian 13 (trixie)
|
||||
mit Python 3.13 nicht mehr baut/importiert. Unser `epdconfig.py` implementiert dieselbe
|
||||
von den beiden Treibern erwartete Schnittstelle (Pin-Konstanten, `digital_write`,
|
||||
`digital_read`, `delay_ms`, `spi_writebyte`, `spi_writebyte2`, `module_init`,
|
||||
`module_exit`) gegen `gpiozero`/`spidev`, die auf dem Ziel-Pi vorhanden sind.
|
||||
Reference in New Issue
Block a user