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.
47 lines
1.9 KiB
Markdown
47 lines
1.9 KiB
Markdown
# 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.
|