Appdata für Header, Flaggensymbole laden
This commit is contained in:
parent
f3c9ced477
commit
766b191109
35
appdata.py
35
appdata.py
|
@ -2,13 +2,48 @@
|
||||||
Generische Applikationsdaten
|
Generische Applikationsdaten
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
from tracker import Tracker
|
from tracker import Tracker
|
||||||
|
|
||||||
class AppData():
|
class AppData():
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.shutdown = False # Globaler Ausschalter
|
self.shutdown = False # Globaler Ausschalter
|
||||||
self.track = Tracker('NONE')
|
self.track = Tracker('NONE')
|
||||||
self.frontend = None
|
self.frontend = None
|
||||||
|
|
||||||
|
# Für u.a. Header-Indikatoren
|
||||||
|
# TODO
|
||||||
|
self.status = {
|
||||||
|
'AP': False, # Accesspoint
|
||||||
|
'WIFI': False, # Wireless Client
|
||||||
|
'TCP': False, # TCP Network
|
||||||
|
'N2K': False, # NMEA2000
|
||||||
|
'183': False, # NMEA0183
|
||||||
|
'USB': False, # USB Datenverbindung
|
||||||
|
'GPS': False, # GPS-Fix und -daten
|
||||||
|
'TRK': False # Tracker
|
||||||
|
}
|
||||||
|
|
||||||
def setFrontend(self, frontend):
|
def setFrontend(self, frontend):
|
||||||
self.frontend = frontend # Referenz zur GUI
|
self.frontend = frontend # Referenz zur GUI
|
||||||
|
|
||||||
|
def refreshStatus(self):
|
||||||
|
self.status['AP'] = False
|
||||||
|
|
||||||
|
self.status['TCP'] = False
|
||||||
|
self.status['WIFI'] = False
|
||||||
|
for intf in os.listdir('/sys/class/net'):
|
||||||
|
statefile = os.path.join('/sys/class/net', interface, 'operstate')
|
||||||
|
wififile = os.path.join('/sys/class/net', interface, 'wireless')
|
||||||
|
if os.path.exists(statefile):
|
||||||
|
with open(statefile) as fh:
|
||||||
|
state = f.read().strip()
|
||||||
|
if state == 'up':
|
||||||
|
if os.path.exists(wififile):
|
||||||
|
self.status['WIFI'] = True
|
||||||
|
else:
|
||||||
|
self.status['TCP'] = True
|
||||||
|
|
||||||
|
self.status['TRK'] = self.track.is_active()
|
||||||
|
|
|
@ -235,6 +235,7 @@ def rxd_gps(devname, devspeed):
|
||||||
def rxd_network(address, port):
|
def rxd_network(address, port):
|
||||||
# WIP Daten über Netzwerk empfangen
|
# WIP Daten über Netzwerk empfangen
|
||||||
# Wir verwenden UDP. Ein verlorenes Paket tut uns nicht weh.
|
# Wir verwenden UDP. Ein verlorenes Paket tut uns nicht weh.
|
||||||
|
setthreadtitle("NETlistener")
|
||||||
sock = socket.socket()
|
sock = socket.socket()
|
||||||
sock.connect((address, port))
|
sock.connect((address, port))
|
||||||
while not appdata.shutdown:
|
while not appdata.shutdown:
|
||||||
|
@ -610,7 +611,7 @@ def init_profile(config, cfg, boatdata):
|
||||||
if n >= pages_max:
|
if n >= pages_max:
|
||||||
break
|
break
|
||||||
clist = {
|
clist = {
|
||||||
0: pages.System(0, cfg, boatdata)
|
0: pages.System(0, cfg, appdata, boatdata)
|
||||||
}
|
}
|
||||||
for i, p in pagedef.items():
|
for i, p in pagedef.items():
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -37,7 +37,7 @@ from .page import Page
|
||||||
class Anchor(Page):
|
class Anchor(Page):
|
||||||
|
|
||||||
def __init__(self, pageno, cfg, appdata, boatdata):
|
def __init__(self, pageno, cfg, appdata, boatdata):
|
||||||
super().__init__(pageno, cfg, boatdata)
|
super().__init__(pageno, cfg, appdata, boatdata)
|
||||||
self.sym_anchor = cairo.ImageSurface.create_from_png(os.path.join(cfg['imgpath'], "anchor.png"))
|
self.sym_anchor = cairo.ImageSurface.create_from_png(os.path.join(cfg['imgpath'], "anchor.png"))
|
||||||
self.buttonlabel[1] = 'MODE'
|
self.buttonlabel[1] = 'MODE'
|
||||||
self.buttonlabel[2] = 'DROP'
|
self.buttonlabel[2] = 'DROP'
|
||||||
|
|
|
@ -6,7 +6,7 @@ from .page import Page
|
||||||
class ApparentWind(Page):
|
class ApparentWind(Page):
|
||||||
|
|
||||||
def __init__(self, pageno, cfg, appdata, boatdata):
|
def __init__(self, pageno, cfg, appdata, boatdata):
|
||||||
super().__init__(pageno, cfg, boatdata)
|
super().__init__(pageno, cfg, appdata, boatdata)
|
||||||
self.buttonlabel[1] = 'MODE'
|
self.buttonlabel[1] = 'MODE'
|
||||||
self.mode = 'L' # (W)ind (L)ens
|
self.mode = 'L' # (W)ind (L)ens
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -12,7 +12,7 @@ from .page import Page
|
||||||
class Autobahn(Page):
|
class Autobahn(Page):
|
||||||
|
|
||||||
def __init__(self, pageno, cfg, appdata, boatdata):
|
def __init__(self, pageno, cfg, appdata, boatdata):
|
||||||
super().__init__(pageno, cfg, boatdata)
|
super().__init__(pageno, cfg, appdata, boatdata)
|
||||||
self.xte = self.bd.getRef("XTE")
|
self.xte = self.bd.getRef("XTE")
|
||||||
self.cog = self.bd.getRef("COG")
|
self.cog = self.bd.getRef("COG")
|
||||||
self.btw = self.bd.getRef("BTW")
|
self.btw = self.bd.getRef("BTW")
|
||||||
|
|
|
@ -41,7 +41,7 @@ from .page import Page
|
||||||
class Barograph(Page):
|
class Barograph(Page):
|
||||||
|
|
||||||
def __init__(self, pageno, cfg, appdata, boatdata):
|
def __init__(self, pageno, cfg, appdata, boatdata):
|
||||||
super().__init__(pageno, cfg, boatdata)
|
super().__init__(pageno, cfg, appdata, boatdata)
|
||||||
# Meßwert alle 15 Minuten:
|
# Meßwert alle 15 Minuten:
|
||||||
# 84 Stunden * 4 Werte je Stunde = 336 Meßwerte
|
# 84 Stunden * 4 Werte je Stunde = 336 Meßwerte
|
||||||
self.bd = boatdata
|
self.bd = boatdata
|
||||||
|
|
|
@ -23,7 +23,7 @@ import nmea2000.lookup
|
||||||
class Fluid(Page):
|
class Fluid(Page):
|
||||||
|
|
||||||
def __init__(self, pageno, cfg, appdata, boatdata, fluidtype):
|
def __init__(self, pageno, cfg, appdata, boatdata, fluidtype):
|
||||||
super().__init__(pageno, cfg, boatdata)
|
super().__init__(pageno, cfg, appdata, boatdata)
|
||||||
self.fluidtype = int(fluidtype)
|
self.fluidtype = int(fluidtype)
|
||||||
if self.fluidtype == 0:
|
if self.fluidtype == 0:
|
||||||
self.symbol = cairo.ImageSurface.create_from_png(os.path.join(cfg['imgpath'], "fuelpump.png"))
|
self.symbol = cairo.ImageSurface.create_from_png(os.path.join(cfg['imgpath'], "fuelpump.png"))
|
||||||
|
|
|
@ -21,7 +21,7 @@ from .page import Page
|
||||||
class FourValues(Page):
|
class FourValues(Page):
|
||||||
|
|
||||||
def __init__(self, pageno, cfg, appdata, boatdata, boatvalue1, boatvalue2, boatvalue3, boatvalue4):
|
def __init__(self, pageno, cfg, appdata, boatdata, boatvalue1, boatvalue2, boatvalue3, boatvalue4):
|
||||||
super().__init__(pageno, cfg, boatdata)
|
super().__init__(pageno, cfg, appdata, boatdata)
|
||||||
self.value1 = boatvalue1
|
self.value1 = boatvalue1
|
||||||
self.value2 = boatvalue2
|
self.value2 = boatvalue2
|
||||||
self.value3 = boatvalue3
|
self.value3 = boatvalue3
|
||||||
|
|
|
@ -19,7 +19,7 @@ from .page import Page
|
||||||
class FourValues2(Page):
|
class FourValues2(Page):
|
||||||
|
|
||||||
def __init__(self, pageno, cfg, appdata, boatdata, boatvalue1, boatvalue2, boatvalue3, boatvalue4):
|
def __init__(self, pageno, cfg, appdata, boatdata, boatvalue1, boatvalue2, boatvalue3, boatvalue4):
|
||||||
super().__init__(pageno, cfg, boatdata)
|
super().__init__(pageno, cfg, appdata, boatdata)
|
||||||
self.value1 = boatvalue1
|
self.value1 = boatvalue1
|
||||||
self.value2 = boatvalue2
|
self.value2 = boatvalue2
|
||||||
self.value3 = boatvalue3
|
self.value3 = boatvalue3
|
||||||
|
|
|
@ -16,7 +16,7 @@ from .page import Page
|
||||||
class Keel(Page):
|
class Keel(Page):
|
||||||
|
|
||||||
def __init__(self, pageno, cfg, appdata, boatdata):
|
def __init__(self, pageno, cfg, appdata, boatdata):
|
||||||
super().__init__(pageno, cfg, boatdata)
|
super().__init__(pageno, cfg, appdata, boatdata)
|
||||||
# Wert für Kielrotation
|
# Wert für Kielrotation
|
||||||
self.valref = self.bd.getRef("xdrRotK")
|
self.valref = self.bd.getRef("xdrRotK")
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ from .page import Page
|
||||||
class OneValue(Page):
|
class OneValue(Page):
|
||||||
|
|
||||||
def __init__(self, pageno, cfg, appdata, boatdata, boatvalue):
|
def __init__(self, pageno, cfg, appdata, boatdata, boatvalue):
|
||||||
super().__init__(pageno, cfg, boatdata)
|
super().__init__(pageno, cfg, appdata, boatdata)
|
||||||
self.ref1 = self.bd.getRef(boatvalue)
|
self.ref1 = self.bd.getRef(boatvalue)
|
||||||
|
|
||||||
def draw(self, ctx):
|
def draw(self, ctx):
|
||||||
|
|
|
@ -64,10 +64,11 @@ class Page():
|
||||||
c = 2 * asin(sqrt(a))
|
c = 2 * asin(sqrt(a))
|
||||||
return c * 3440
|
return c * 3440
|
||||||
|
|
||||||
def __init__(self, pageno, cfg, boatdata):
|
def __init__(self, pageno, cfg, appdata, boatdata):
|
||||||
self.pageno = pageno
|
self.pageno = pageno
|
||||||
self.cfg = cfg
|
self.cfg = cfg
|
||||||
self.fullscreen = cfg['guistyle'] == 'fullscreen'
|
self.fullscreen = cfg['guistyle'] == 'fullscreen'
|
||||||
|
self.appdata = appdata
|
||||||
self.bd = boatdata
|
self.bd = boatdata
|
||||||
self.header = True
|
self.header = True
|
||||||
self.footer = True
|
self.footer = True
|
||||||
|
@ -126,7 +127,7 @@ class Page():
|
||||||
|
|
||||||
def draw_header(self, ctx):
|
def draw_header(self, ctx):
|
||||||
"""
|
"""
|
||||||
Mögliche Zeichen für aktivierte Funktionen
|
Mögliche Zeichen für aktivierte Funktionen (max. 8)
|
||||||
AP - Accesspoint ist aktiv
|
AP - Accesspoint ist aktiv
|
||||||
WIFI - WIFI-Client
|
WIFI - WIFI-Client
|
||||||
TCP
|
TCP
|
||||||
|
@ -134,6 +135,7 @@ class Page():
|
||||||
183
|
183
|
||||||
USB
|
USB
|
||||||
GPS - GPS Fix vorhanden
|
GPS - GPS Fix vorhanden
|
||||||
|
TRK - Tracking aktiv
|
||||||
# TODO Umstellung auf Symbole je 16 Pixel zum Platz sparen
|
# TODO Umstellung auf Symbole je 16 Pixel zum Platz sparen
|
||||||
Neu: Nummer der aktiven Seite (1 - 10)
|
Neu: Nummer der aktiven Seite (1 - 10)
|
||||||
"""
|
"""
|
||||||
|
@ -143,6 +145,10 @@ class Page():
|
||||||
ctx.show_text(f"N2K GPS")
|
ctx.show_text(f"N2K GPS")
|
||||||
ctx.stroke()
|
ctx.stroke()
|
||||||
|
|
||||||
|
# AP: Nicht implementiert
|
||||||
|
# WIFI:
|
||||||
|
# /proc/net/wireless
|
||||||
|
|
||||||
# Tastenstatus
|
# Tastenstatus
|
||||||
ctx.save()
|
ctx.save()
|
||||||
if self.keylock:
|
if self.keylock:
|
||||||
|
|
|
@ -5,7 +5,7 @@ from .page import Page
|
||||||
class Rudder(Page):
|
class Rudder(Page):
|
||||||
|
|
||||||
def __init__(self, pageno, cfg, appdata, boatdata):
|
def __init__(self, pageno, cfg, appdata, boatdata):
|
||||||
super().__init__(pageno, cfg, boatdata)
|
super().__init__(pageno, cfg, appdata, boatdata)
|
||||||
self.buttonlabel[1] = 'MODE'
|
self.buttonlabel[1] = 'MODE'
|
||||||
self.mode = 'P'
|
self.mode = 'P'
|
||||||
# Werte für Ruderausschlag
|
# Werte für Ruderausschlag
|
||||||
|
|
|
@ -20,7 +20,7 @@ class SixValues(Page):
|
||||||
|
|
||||||
def __init__(self, pageno, cfg, appdata, boatdata, boatvalue1, boatvalue2,
|
def __init__(self, pageno, cfg, appdata, boatdata, boatvalue1, boatvalue2,
|
||||||
boatvalue3, boatvalue4, boatvalue5, boatvalue6):
|
boatvalue3, boatvalue4, boatvalue5, boatvalue6):
|
||||||
super().__init__(pageno, cfg, boatdata)
|
super().__init__(pageno, cfg, appdata, boatdata)
|
||||||
self.value1 = boatvalue1
|
self.value1 = boatvalue1
|
||||||
self.value2 = boatvalue2
|
self.value2 = boatvalue2
|
||||||
self.value3 = boatvalue3
|
self.value3 = boatvalue3
|
||||||
|
|
|
@ -15,7 +15,7 @@ from .page import Page
|
||||||
class SkyView(Page):
|
class SkyView(Page):
|
||||||
|
|
||||||
def __init__(self, pageno, cfg, appdata, boatdata):
|
def __init__(self, pageno, cfg, appdata, boatdata):
|
||||||
super().__init__(pageno, cfg, boatdata)
|
super().__init__(pageno, cfg, appdata, boatdata)
|
||||||
|
|
||||||
def pol2cart(azimut, elevation):
|
def pol2cart(azimut, elevation):
|
||||||
'''
|
'''
|
||||||
|
|
|
@ -4,8 +4,8 @@ import datetime
|
||||||
|
|
||||||
class System(Page):
|
class System(Page):
|
||||||
|
|
||||||
def __init__(self, pageno, cfg, boatdata):
|
def __init__(self, pageno, cfg, appdata, boatdata):
|
||||||
super().__init__(pageno, cfg, boatdata)
|
super().__init__(pageno, cfg, appdata, boatdata)
|
||||||
self.buttonlabel[1] = 'MODE'
|
self.buttonlabel[1] = 'MODE'
|
||||||
self.buttonlabel[2] = 'STBY'
|
self.buttonlabel[2] = 'STBY'
|
||||||
self.mode = ('I', 'N') # (I)nformation (N)MEA2000 Device List
|
self.mode = ('I', 'N') # (I)nformation (N)MEA2000 Device List
|
||||||
|
|
|
@ -4,7 +4,7 @@ from .page import Page
|
||||||
class ThreeValues(Page):
|
class ThreeValues(Page):
|
||||||
|
|
||||||
def __init__(self, pageno, cfg, appdata, boatdata, boatvalue1, boatvalue2, boatvalue3):
|
def __init__(self, pageno, cfg, appdata, boatdata, boatvalue1, boatvalue2, boatvalue3):
|
||||||
super().__init__(pageno, cfg, boatdata)
|
super().__init__(pageno, cfg, appdata, boatdata)
|
||||||
self.ref1 = self.bd.getRef(boatvalue1)
|
self.ref1 = self.bd.getRef(boatvalue1)
|
||||||
self.ref2 = self.bd.getRef(boatvalue2)
|
self.ref2 = self.bd.getRef(boatvalue2)
|
||||||
self.ref3 = self.bd.getRef(boatvalue3)
|
self.ref3 = self.bd.getRef(boatvalue3)
|
||||||
|
|
|
@ -1,22 +1,32 @@
|
||||||
"""
|
"""
|
||||||
Tracker with MQTT client
|
Tracker mit MQTT client
|
||||||
|
|
||||||
|
Es gibt zwei Modi: Track und Race
|
||||||
|
A) Track: Es wird nur der Track gesended / aufgezeichnet
|
||||||
|
B) Race: Es werden zusätzlich Regattadaten angezeigt, das beinhaltet
|
||||||
|
die Auswahl einer Regatta, das Teilnehmen, das Aufgeben und die
|
||||||
|
Signalisierung vor und während einer Wettfahrt.
|
||||||
|
|
||||||
|
Das Tracking kann über eine Taste ein- und ausgeschaltet werden.
|
||||||
|
Um versehentliches Umschalten zu vermeiden ist eine Nachfrage
|
||||||
|
integriert.
|
||||||
|
|
||||||
- currentry only Ragatta hero supported
|
- currentry only Ragatta hero supported
|
||||||
|
|
||||||
TODO get data from mqtt thread
|
Behandlung von Verbindungsabbrüchen:
|
||||||
|
|
||||||
Verbindungsabbrüche
|
|
||||||
- on_disconnect
|
- on_disconnect
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
import cairo
|
import cairo
|
||||||
from .page import Page
|
from .page import Page
|
||||||
|
|
||||||
class Tracker(Page):
|
class Tracker(Page):
|
||||||
|
|
||||||
def __init__(self, pageno, cfg, appdata, boatdata):
|
def __init__(self, pageno, cfg, appdata, boatdata):
|
||||||
super().__init__(pageno, cfg, boatdata)
|
super().__init__(pageno, cfg, appdata, boatdata)
|
||||||
self._appdata = appdata
|
self._appdata = appdata
|
||||||
self.bv_lat = boatdata.getRef("LAT")
|
self.bv_lat = boatdata.getRef("LAT")
|
||||||
self.bv_lon = boatdata.getRef("LON")
|
self.bv_lon = boatdata.getRef("LON")
|
||||||
|
@ -25,6 +35,20 @@ class Tracker(Page):
|
||||||
self.buttonlabel[2] = 'ON'
|
self.buttonlabel[2] = 'ON'
|
||||||
self.mode = 'N' # (N)ormal, (C)onfiguration
|
self.mode = 'N' # (N)ormal, (C)onfiguration
|
||||||
|
|
||||||
|
# Flaggengröße: 96 x 64 Pixel
|
||||||
|
self.flagpos = ((208, 140), (308, 140), (208, 210), (308, 210))
|
||||||
|
|
||||||
|
# Flaggen laden
|
||||||
|
flag = ('alpha', 'answer', 'black', 'blue', 'charlie', 'class',
|
||||||
|
'finish', 'hotel', 'india', 'november', 'orange',
|
||||||
|
'papa', 'repeat_one', 'sierra', 'start', 'uniform',
|
||||||
|
'xray', 'yankee', 'zulu')
|
||||||
|
self.sym_flag = {}
|
||||||
|
for f in flag:
|
||||||
|
flagfile = os.path.join(cfg['imgpath'], 'flags', f + '.png')
|
||||||
|
self.sym_flag[f] = cairo.ImageSurface.create_from_png(flagfile)
|
||||||
|
print(self.sym_flag)
|
||||||
|
|
||||||
def handle_key(self, buttonid):
|
def handle_key(self, buttonid):
|
||||||
if buttonid == 1:
|
if buttonid == 1:
|
||||||
# Modus umschalten
|
# Modus umschalten
|
||||||
|
@ -47,47 +71,57 @@ class Tracker(Page):
|
||||||
|
|
||||||
def draw_normal(self, ctx):
|
def draw_normal(self, ctx):
|
||||||
# Name
|
# Name
|
||||||
ctx.select_font_face("Ubuntu", cairo.FontSlant.NORMAL, cairo.FontWeight.BOLD)
|
#ctx.select_font_face("Ubuntu", cairo.FontSlant.NORMAL, cairo.FontWeight.BOLD)
|
||||||
ctx.set_font_size(32)
|
#ctx.set_font_size(32)
|
||||||
ctx.move_to(20, 80)
|
#ctx.move_to(20, 80)
|
||||||
ctx.show_text("Tracker")
|
#ctx.show_text("Tracker")
|
||||||
|
|
||||||
ctx.set_font_size(16)
|
ctx.select_font_face("DSEG7 Classic")
|
||||||
|
ctx.set_font_size(80)
|
||||||
|
|
||||||
|
if self._appdata.track.is_active():
|
||||||
ctx.move_to(20, 120)
|
ctx.move_to(20, 120)
|
||||||
|
ctx.show_text("-00:00")
|
||||||
|
else:
|
||||||
|
ctx.move_to(100, 120)
|
||||||
|
ctx.show_text("off")
|
||||||
|
|
||||||
|
x0 = 8
|
||||||
|
x1 = 104
|
||||||
|
y0 = 150
|
||||||
|
ctx.select_font_face("Ubuntu", cairo.FontSlant.NORMAL, cairo.FontWeight.BOLD)
|
||||||
|
ctx.set_font_size(16)
|
||||||
|
ctx.move_to(x0, y0)
|
||||||
ctx.show_text("Type: ")
|
ctx.show_text("Type: ")
|
||||||
|
ctx.move_to(x1, y0)
|
||||||
ctx.show_text(self._appdata.track.ttype)
|
ctx.show_text(self._appdata.track.ttype)
|
||||||
|
|
||||||
ctx.move_to(20, 140)
|
ctx.move_to(x0, y0 + 16)
|
||||||
ctx.show_text("active: ")
|
ctx.show_text("Regatta")
|
||||||
if self._appdata.track.is_active():
|
ctx.move_to(x1, y0 + 16)
|
||||||
ctx.show_text("yes")
|
ctx.show_text('')
|
||||||
else:
|
|
||||||
ctx.show_text("no")
|
|
||||||
|
|
||||||
ctx.move_to(20, 160)
|
ctx.move_to(x0, y0 + 32)
|
||||||
ctx.show_text("Lat=")
|
ctx.show_text("Lat=")
|
||||||
|
ctx.move_to(x1, y0 + 32)
|
||||||
ctx.show_text(self.bv_lat.format())
|
ctx.show_text(self.bv_lat.format())
|
||||||
ctx.move_to(20, 180)
|
|
||||||
|
ctx.move_to(x0, y0 + 48)
|
||||||
ctx.show_text("Lon=")
|
ctx.show_text("Lon=")
|
||||||
|
ctx.move_to(x1, y0 + 48)
|
||||||
ctx.show_text(self.bv_lon.format())
|
ctx.show_text(self.bv_lon.format())
|
||||||
ctx.move_to(20, 200)
|
|
||||||
|
ctx.move_to(x0, y0 + 64)
|
||||||
ctx.show_text("Sog=")
|
ctx.show_text("Sog=")
|
||||||
|
ctx.move_to(x1, y0 + 64)
|
||||||
ctx.show_text(self.bv_sog.format())
|
ctx.show_text(self.bv_sog.format())
|
||||||
|
|
||||||
# Ausgewählte Regatta (raceid)
|
|
||||||
x = 250
|
|
||||||
y = 100
|
|
||||||
ctx.move_to(x, y - 24)
|
|
||||||
ctx.show_text("Regatta: ")
|
|
||||||
# if ...
|
|
||||||
# else
|
|
||||||
# "not selected"
|
|
||||||
|
|
||||||
def draw_config(self, ctx):
|
def draw_config(self, ctx):
|
||||||
|
|
||||||
ctx.select_font_face("Ubuntu", cairo.FontSlant.NORMAL, cairo.FontWeight.BOLD)
|
ctx.select_font_face("Ubuntu", cairo.FontSlant.NORMAL, cairo.FontWeight.BOLD)
|
||||||
ctx.set_font_size(32)
|
ctx.set_font_size(32)
|
||||||
ctx.move_to(20, 80)
|
ctx.move_to(20, 80)
|
||||||
ctx.show_text("Tracker config")
|
ctx.show_text("Tracker configuration")
|
||||||
# Daten aus Konfiguration anzeigen
|
# Daten aus Konfiguration anzeigen
|
||||||
# - boot
|
# - boot
|
||||||
# - tracker
|
# - tracker
|
||||||
|
@ -109,7 +143,6 @@ class Tracker(Page):
|
||||||
ctx.show_text("keine")
|
ctx.show_text("keine")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ctx.move_to(20, 120)
|
ctx.move_to(20, 120)
|
||||||
ctx.show_text("Type: ")
|
ctx.show_text("Type: ")
|
||||||
ctx.show_text(self._appdata.track.ttype)
|
ctx.show_text(self._appdata.track.ttype)
|
||||||
|
|
|
@ -17,7 +17,7 @@ from .page import Page
|
||||||
class TwoValues(Page):
|
class TwoValues(Page):
|
||||||
|
|
||||||
def __init__(self, pageno, cfg, appdata, boatdata, boatvalue1, boatvalue2):
|
def __init__(self, pageno, cfg, appdata, boatdata, boatvalue1, boatvalue2):
|
||||||
super().__init__(pageno, cfg, boatdata)
|
super().__init__(pageno, cfg, appdata, boatdata)
|
||||||
self.ref1 = self.bd.getRef(boatvalue1)
|
self.ref1 = self.bd.getRef(boatvalue1)
|
||||||
self.ref2 = self.bd.getRef(boatvalue2)
|
self.ref2 = self.bd.getRef(boatvalue2)
|
||||||
#print(self.ref1.valname)
|
#print(self.ref1.valname)
|
||||||
|
|
|
@ -18,7 +18,7 @@ class Voltage(Page):
|
||||||
avg = (1, 10, 60, 300);
|
avg = (1, 10, 60, 300);
|
||||||
|
|
||||||
def __init__(self, pageno, cfg, appdata, boatdata):
|
def __init__(self, pageno, cfg, appdata, boatdata):
|
||||||
super().__init__(pageno, cfg, boatdata)
|
super().__init__(pageno, cfg, appdata, boatdata)
|
||||||
self.trend = True
|
self.trend = True
|
||||||
self.mode = 'A'
|
self.mode = 'A'
|
||||||
self.avgindex = 0
|
self.avgindex = 0
|
||||||
|
|
Loading…
Reference in New Issue