First commit
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Testprogramm: Koordinaten von Hand uebergeben und auf der Grossanzeige ausgeben.
|
||||
|
||||
Beispiele:
|
||||
python3 show_coords.py 12h34m56s +45d12m30s
|
||||
python3 show_coords.py 12:34:56 -07:15:00
|
||||
python3 show_coords.py 12h34m56s +45d12m30s --dry-run
|
||||
python3 show_coords.py --clear
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import sys
|
||||
|
||||
import config
|
||||
import coords
|
||||
import migra
|
||||
from display import open_display
|
||||
|
||||
|
||||
def main(argv=None):
|
||||
p = argparse.ArgumentParser(description=__doc__,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter)
|
||||
p.add_argument("ra", nargs="?", help="Rektaszension, z.B. 12h34m56s oder 12:34:56")
|
||||
p.add_argument("dec", nargs="?", help="Deklination, z.B. +45d12m30s oder +45:12:30")
|
||||
p.add_argument("--port", default=config.PORT, help="serieller Port (Vorgabe: %(default)s)")
|
||||
p.add_argument("--brightness", type=int, help="Helligkeit 0-100 %% setzen")
|
||||
p.add_argument("--clear", action="store_true", help="Anzeige loeschen und beenden")
|
||||
p.add_argument("--dry-run", action="store_true",
|
||||
help="nichts senden, nur die Telegramme als Hex zeigen")
|
||||
p.add_argument("--no-response", action="store_true",
|
||||
help="ohne Antworttelegramm senden (wenn die RS232-Rueckleitung fehlt)")
|
||||
args = p.parse_args(argv)
|
||||
|
||||
if not args.clear and (args.ra is None or args.dec is None):
|
||||
p.error("Rektaszension und Deklination angeben (oder --clear)")
|
||||
|
||||
if not args.clear:
|
||||
line1 = coords.format_ra(args.ra)
|
||||
line2 = coords.format_dec(args.dec)
|
||||
print("Zeile 1: %r" % line1)
|
||||
print("Zeile 2: %r" % line2)
|
||||
for name, line in (("Zeile 1", line1), ("Zeile 2", line2)):
|
||||
if len(line) > config.CHARS_PER_LINE:
|
||||
print("Warnung: %s ist laenger als CHARS_PER_LINE=%d"
|
||||
% (name, config.CHARS_PER_LINE), file=sys.stderr)
|
||||
|
||||
d = open_display(port=args.port, fake=args.dry_run,
|
||||
response=config.WANT_RESPONSE and not args.no_response)
|
||||
try:
|
||||
if args.brightness is not None:
|
||||
d.set_brightness(args.brightness)
|
||||
if args.clear:
|
||||
d.clear()
|
||||
else:
|
||||
d.show_lines(line1, line2, clear=True) # Einzelaufruf: einmal sauber loeschen
|
||||
except migra.MigraError as e:
|
||||
print("Fehler: %s" % e, file=sys.stderr)
|
||||
return 1
|
||||
finally:
|
||||
d.close()
|
||||
|
||||
print("OK")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
Reference in New Issue
Block a user