4f7375add3
Die RS232-Strecke ESP32 -> MAX3232 -> Anzeige ist am Geraet bestaetigt; damit war "probe.py pitch" moeglich und hat die offene Zeichenbreiten-Frage geklaert. Das Ergebnis korrigiert eine Annahme: Bisher stand CHARS_PER_LINE = 9, abgezaehlt am Zeilenumbruch. Gemessen wurde damit aber der Auto-Vorschub der Sperrschrift (7 px), nicht die Zeichenbreite. Die Zeichenmatrix ist 6 px breit -- zehn Ziffern, einzeln auf x = i*6 gesetzt, stehen sauber getrennt nebeneinander. - display._emit_line positioniert jedes Zeichen selbst, statt den Auto-Vorschub laufen zu lassen. CHARS_PER_LINE = 10, CELL_WIDTH = 6. - Die Deklination passt dadurch in voller Form: +38°47'01" statt +38°47'01. - show_lines sendet ein Telegramm je Zeile. Mit Einzelpositionierung kaemen beide zusammen auf 224 der erlaubten 230 Bytes -- zu wenig Reserve fuer den Dauerbetrieb. Die Reihenfolge bleibt unten vor oben (Home-Zelle). - Zeilen werden zentriert (CENTER_LINES, LINE_X). Der Zeichenblock bleibt dabei gleich breit und an derselben Stelle, damit keine Reste stehen bleiben. - probe.py kommt mit aufs Geraet: Die Anzeige haengt jetzt am ESP32, nur von dort laesst sich die Geometrie noch ausmessen. Die Tests pruefen nicht mehr auf zusammenhaengenden Text im Telegramm -- den gibt es nicht mehr -- sondern rechnen ueber die Cursor-Sequenzen zurueck, was wirklich auf welcher Zelle landet. 97 Tests gruen, Kette am Geraet im Sekundentakt bestaetigt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
58 lines
1.4 KiB
Bash
Executable File
58 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
# Die Projektdateien auf den XIAO ESP32-C3 kopieren.
|
|
#
|
|
# ./deploy.sh # alle Dateien kopieren
|
|
# ./deploy.sh /dev/cu.usbmodem1101 # anderen Port erzwingen
|
|
#
|
|
# Braucht mpremote: pip install mpremote
|
|
# Danach am REPL (mpremote repl, mit Ctrl-] wieder raus):
|
|
#
|
|
# import run_esp32
|
|
# run_esp32.main()
|
|
|
|
set -e
|
|
|
|
PORT="${1:-auto}"
|
|
|
|
# Alles, was auf dem Geraet gebraucht wird. run_display.py, show_coords.py,
|
|
# mount_mock.py und die Tests bleiben auf dem Mac -- sie brauchen argparse
|
|
# bzw. threading.
|
|
#
|
|
# probe.py kommt mit aufs Geraet: Seit die Anzeige am ESP32 haengt und nicht mehr
|
|
# am Mac, laesst sich die Geometrie nur noch von dort ausmessen. Es benutzt zwar
|
|
# sys.argv, aber nur in main() -- die Messfunktionen ruft man am REPL direkt auf:
|
|
# import probe, display
|
|
# d = display.open_display(); probe.pitch(d, 6); d.close()
|
|
FILES="
|
|
ticks.py
|
|
migra.py
|
|
config.py
|
|
transport.py
|
|
display.py
|
|
coords.py
|
|
lx200.py
|
|
mount_client.py
|
|
brightness.py
|
|
displayloop.py
|
|
wifi.py
|
|
run_esp32.py
|
|
probe.py
|
|
"
|
|
|
|
if [ ! -f wifi_config.py ]; then
|
|
echo "wifi_config.py fehlt." >&2
|
|
echo " cp wifi_config_example.py wifi_config.py und ausfuellen" >&2
|
|
exit 1
|
|
fi
|
|
|
|
for f in $FILES wifi_config.py; do
|
|
echo "-> $f"
|
|
mpremote connect "$PORT" fs cp "$f" ":$f"
|
|
done
|
|
|
|
echo
|
|
echo "Fertig. Starten mit:"
|
|
echo " mpremote connect $PORT repl"
|
|
echo " >>> import run_esp32"
|
|
echo " >>> run_esp32.main()"
|