Files
grossanzeige/config.py
T
admin d8a9953b73 Niedrig-/Hochpraezision der Montierung + IP eingetragen
Die GM4000 laeuft in Niedrigpraezision (keine Sekunden): RA HH:MM.T,
DEC sDD°MM. Anzeige daran angepasst:
- config.HIGH_PRECISION (Vorgabe False) steuert die DEC-Darstellung:
  False -> ohne Sekunden (-00°55'), True -> mit Sekunden (+38°47'01)
- RA immer mit Sekunden (11h36m54s); bei Niedrigpraezision aus den
  Zehntel-Minuten abgeleitet (6-Sekunden-Schritte), kein Dezimalpunkt
  (der wirkt in der Sperrschrift zu luftig)
- coords.format_ra/format_dec nehmen high_precision=
- MOUNT_HOST auf die echte IP (192.168.1.115)

Hinweis: Das 'ß' in der Konsole ist nur der Rohwert (Grad-Byte 0xDF);
auf der Anzeige erscheint korrekt der Gradring.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-18 23:07:22 +02:00

69 lines
3.5 KiB
Python

"""Zentrale Einstellungen fuer die Ansteuerung der Grossanzeige."""
import migra
# -- Serielle Schnittstelle -----------------------------------------------
# Auslieferzustand der Anzeige laut Handbuch (Kap. 4.1) und identisch zur
# UART-Init des alten MSP430-Programms: 19200 8E1.
PORT = "/dev/cu.usbserial-120" # Mac; auf dem ESP32-C3 spaeter die UART-Nummer
BAUDRATE = 19200
PARITY = "E"
BYTESIZE = 8
STOPBITS = 1
# -- Telegramm ------------------------------------------------------------
DISPLAY_ADDR = 1 # Zieladresse der Anzeige (DA = 0x81)
HOST_ADDR = 0 # unsere Quelladresse (SA = 0x80)
USE_CHECKSUM = False # das alte Programm fuhr ohne Pruefsumme
# Antworttelegramm als Flusskontrolle: Rueckweg verdrahtet und verifiziert
# (2026-07-16), Anzeige liefert 02 80 81 80 30 03. Nach Erhalt der Antwort darf
# sofort das naechste Telegramm folgen; der Fehlercode wird ausgewertet.
WANT_RESPONSE = True
RESPONSE_TIMEOUT = 1.0 # Sekunden (nur relevant, wenn WANT_RESPONSE = True)
QUIET_TIME = 0.4 # Pause zwischen Telegrammen, wenn ohne Antwort gefahren wird
# -- Darstellung ----------------------------------------------------------
# Zeichensatz 0, Zeile 1 ab Pixelzeile 0, Zeile 2 ab Pixelzeile 9 (aus dem alten
# C-Programm). Am echten Geraet ausgemessen (2026-07-15):
# CHARSET_SPACED=True -> ESC z (Sperrschrift, alle Zeichen gleich breit) -- vom
# Nutzer bevorzugt, weil sich sonst schmale Ziffern beruehren. In dieser Schrift
# passen mind. 10 Zeichen pro Zeile (RA/DEC brauchen max. 10).
# CHARSET_SPACED=False -> ESC Z (proportional, schmaler, ~11 Zeichen, aber die "1"
# klebt an Nachbarn).
CHARSET = 0
CHARSET_SPACED = True
LINE_Y = (0, 9)
CHARS_PER_LINE = 9 # in Sperrschrift am Geraet ausgemessen (2026-07-15)
COLOR = migra.RED # einfarbig rote Anzeige
BACKGROUND = migra.BLACK
BRIGHTNESS = 100 # Prozent
# Gradzeichen: Im Standard-Zeichensatz 0 der Anzeige fehlt es. Der von der
# Sternwarte geladene Zeichensatz 1 hat an Position "/" (0x2F) ein hochgestelltes
# Gradzeichen -- verifiziert 2026-07-15, deckt sich mit dem alten Programm
# (asciitaf.h: Code 0xAF, per & 0x7F = 0x2F in Zeichensatz 1). Zur Ausgabe wird
# fuer dieses eine Zeichen kurz auf DEGREE_CHARSET umgeschaltet.
DEGREE_MARKER = "°" # Platzhalter im formatierten Text (siehe coords.py)
DEGREE_CHARSET = 1 # Zeichensatz mit dem Gradzeichen; None -> Fallback nutzen
DEGREE_CHAR = "/" # Zeichen, das in DEGREE_CHARSET als Grad erscheint
DEGREE_FALLBACK = "d" # Ersatz, falls DEGREE_CHARSET = None
# -- Montierung (Phase 2) -------------------------------------------------
# 10Micron GM4000 HPS II: LX200-Protokoll ueber TCP. Die IP der Montierung
# eintragen, sobald sie erreichbar ist; Port 3490 ist die Vorgabe von 10Micron.
MOUNT_HOST = "192.168.1.115" # PLATZHALTER -- echte IP der Montierung eintragen
MOUNT_PORT = 3490
MOUNT_TIMEOUT = 3.0 # Sekunden fuer Verbindung/Antwort
POLL_INTERVAL = 1.0 # Sekunden zwischen zwei Koordinatenabfragen
# Koordinaten-Praezision der Montierung.
# False = Niedrigpraezision (10Micron-Standard): RA als HH:MM.T (Zehntel-Minuten),
# DEC als sDD MM (ganze Bogenminuten) -- die Montierung sendet keine Sekunden.
# Die Anzeige zeigt entsprechend RA mit Zehntel-Minute und DEC ohne Sekunden.
# True = Hochpraezision (Montierung mit ":U#" umgestellt): RA/DEC mit Sekunden.
HIGH_PRECISION = False
# Anzeige, wenn die Montierung (noch) nicht erreichbar ist.
NOLINK_LINES = ("KEIN LINK", "MONTIERUNG")