Erstveröffentlichung Weihnachten 2024
This commit is contained in:
107
pages/system.py
Normal file
107
pages/system.py
Normal file
@@ -0,0 +1,107 @@
|
||||
import cairo
|
||||
from .page import Page
|
||||
import datetime
|
||||
|
||||
class System(Page):
|
||||
|
||||
def __init__(self, pageno, cfg, boatdata):
|
||||
super().__init__(pageno, cfg, boatdata)
|
||||
self.buttonlabel[1] = 'MODE'
|
||||
self.buttonlabel[2] = 'STBY'
|
||||
self.mode = ('I', 'N') # (I)nformation (N)MEA2000 Device List
|
||||
self.modeindex = 1
|
||||
self.standby = False
|
||||
|
||||
def handle_key(self, buttonid):
|
||||
if self.standby and buttonid != 1:
|
||||
return True
|
||||
if buttonid == 1:
|
||||
if self.standby:
|
||||
self.standby = False
|
||||
self.buttonlabel[1] = 'MODE'
|
||||
self.buttonlabel[2] = 'STBY'
|
||||
self.header = True
|
||||
self.footer = True
|
||||
else:
|
||||
if self.modeindex < len(self.mode):
|
||||
self.modeindex += 1
|
||||
else:
|
||||
self.modeindex = 0
|
||||
return True
|
||||
if buttonid == 2:
|
||||
self.buttonlabel[1] = None
|
||||
self.buttonlabel[2] = None
|
||||
self.header = False
|
||||
self.footer = False
|
||||
self.standby = True
|
||||
return False
|
||||
|
||||
def draw_stby(self, ctx):
|
||||
# Standby
|
||||
# TODO Kopf und Fußzeile ausschalten
|
||||
# Ein Klick auf die Mode-Taste weckt das System wieder auf
|
||||
pass
|
||||
|
||||
def draw_info(self, ctx):
|
||||
|
||||
# Bezeichnung
|
||||
ctx.select_font_face("Ubuntu", cairo.FontSlant.NORMAL, cairo.FontWeight.BOLD)
|
||||
ctx.set_font_size(32)
|
||||
self.draw_text_center(ctx, 200, 40 , "System Info")
|
||||
|
||||
ctx.set_font_size(16)
|
||||
|
||||
# System name
|
||||
# Software version
|
||||
|
||||
# Linke Seite
|
||||
ctx.move_to(2, 80)
|
||||
ctx.show_text("Simulation: ")
|
||||
ctx.move_to(140, 80)
|
||||
ctx.show_text('On' if self.cfg['simulation'] else 'Off')
|
||||
|
||||
ctx.move_to(2, 100)
|
||||
ctx.show_text("BME280/BMP280: ")
|
||||
ctx.move_to(140, 100)
|
||||
ctx.show_text('On' if self.cfg['bme280'] else 'Off')
|
||||
|
||||
ctx.move_to(2, 120)
|
||||
ctx.show_text("GPS: ")
|
||||
ctx.move_to(140, 120)
|
||||
ctx.show_text('On' if self.cfg['gps'] else 'Off')
|
||||
|
||||
# Rechte Seite
|
||||
ctx.move_to(202, 80)
|
||||
ctx.show_text("Wifi: ")
|
||||
ctx.move_to(340, 80)
|
||||
ctx.show_text('On')
|
||||
|
||||
ctx.move_to(202, 100)
|
||||
ctx.show_text("Buzzer: ")
|
||||
ctx.move_to(340, 100)
|
||||
ctx.show_text('60%')
|
||||
|
||||
ctx.move_to(202, 120)
|
||||
ctx.show_text("Timezone: ")
|
||||
ctx.move_to(340, 120)
|
||||
ctx.show_text(datetime.datetime.now().astimezone().tzname())
|
||||
|
||||
ctx.stroke()
|
||||
|
||||
# Geräteliste
|
||||
ctx.move_to(2, 150)
|
||||
ctx.show_text("NMEA2000 Device List")
|
||||
|
||||
ctx.set_line_width(1.5)
|
||||
ctx.rectangle(2, 155, 394, 100)
|
||||
ctx.stroke()
|
||||
|
||||
def draw_devlist(self, ctx):
|
||||
# NMEA2000 Geräteliste, Vollbild
|
||||
# scrollen mit Up/Down
|
||||
pass
|
||||
|
||||
def draw(self, ctx):
|
||||
if self.standby:
|
||||
return
|
||||
self.draw_info(ctx)
|
||||
Reference in New Issue
Block a user