From bae459c4d401a50eff2dda736b3f5d12396895e2 Mon Sep 17 00:00:00 2001 From: Thomas Hooge Date: Fri, 4 Jul 2025 14:44:11 +0200 Subject: [PATCH] =?UTF-8?q?Platzhalter=20f=C3=BCr=20zuk=C3=BCnftige=20Seit?= =?UTF-8?q?en=20erstellt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/__init__.py | 6 ++++ pages/ais.py | 25 +++++++++++++++ pages/autopilot.py | 27 ++++++++++++++++ pages/compass.py | 19 +++++++++++ pages/epropulsion.py | 30 ++++++++++++++++++ pages/mob.py | 24 ++++++++++++++ pages/sixvalues.py | 75 ++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 206 insertions(+) create mode 100644 pages/ais.py create mode 100644 pages/autopilot.py create mode 100644 pages/compass.py create mode 100644 pages/epropulsion.py create mode 100644 pages/mob.py create mode 100644 pages/sixvalues.py diff --git a/pages/__init__.py b/pages/__init__.py index 441eb26..5e6476b 100644 --- a/pages/__init__.py +++ b/pages/__init__.py @@ -8,6 +8,7 @@ from .twovalues import TwoValues from .threevalues import ThreeValues from .fourvalues import FourValues from .fourvalues2 import FourValues2 +from .sixvalues import SixValues # Graphen from .onegraph import OneGraph @@ -19,15 +20,20 @@ from .clock import Clock from .fluid import Fluid # Spezialseiten +from .ais import AIS from .anchor import Anchor from .apparentwind import ApparentWind from .autobahn import Autobahn +from .autopilot import Autopilot from .barograph import Barograph from .battery import Battery from .battery2 import Battery2 from .bme280 import BME280 +from .compass import Compass from .dst810 import DST810 +from .epropulsion import EPropulsion from .keel import Keel +from .mob import MOB from .rollpitch import RollPitch from .skyview import SkyView from .solar import Solar diff --git a/pages/ais.py b/pages/ais.py new file mode 100644 index 0000000..c92e6b6 --- /dev/null +++ b/pages/ais.py @@ -0,0 +1,25 @@ +""" + +AIS + +Anzeige von Objekten in der Nähe + + - mehrere Kreise + - Bootssysmbole + - Filterfunkton + - Zoom + +""" + +import cairo +import math +from .page import Page + +class AIS(Page): + + def draw(self, ctx): + # Title + ctx.select_font_face("Ubuntu", cairo.FontSlant.NORMAL, cairo.FontWeight.BOLD) + ctx.set_font_size(24) + ctx.move_to(10, 45) + ctx.show_text("AIS") diff --git a/pages/autopilot.py b/pages/autopilot.py new file mode 100644 index 0000000..95950c3 --- /dev/null +++ b/pages/autopilot.py @@ -0,0 +1,27 @@ +""" + +Autopilot + +Steuerung Autopilot + +- pypilot +- raymarine ST1000+/ST2000+ +- TP32 +- EVO + +Siehe auch Bedieneinheit ST4000+ + +""" + +import cairo +import math +from .page import Page + +class Autopilot(Page): + + def draw(self, ctx): + # Title + ctx.select_font_face("Ubuntu", cairo.FontSlant.NORMAL, cairo.FontWeight.BOLD) + ctx.set_font_size(24) + ctx.move_to(10, 45) + ctx.show_text("Autopilot") diff --git a/pages/compass.py b/pages/compass.py new file mode 100644 index 0000000..ecb4d9b --- /dev/null +++ b/pages/compass.py @@ -0,0 +1,19 @@ +""" + +Kompass + + +""" + +import cairo +import math +from .page import Page + +class Compass(Page): + + def draw(self, ctx): + # Title + ctx.select_font_face("Ubuntu", cairo.FontSlant.NORMAL, cairo.FontWeight.BOLD) + ctx.set_font_size(24) + ctx.move_to(10, 45) + ctx.show_text("Compass") diff --git a/pages/epropulsion.py b/pages/epropulsion.py new file mode 100644 index 0000000..9cc5461 --- /dev/null +++ b/pages/epropulsion.py @@ -0,0 +1,30 @@ +""" + +Elektromotor + +Strom + Spannung, Leistung kW / W +48V Support, Ladezustand +Drehzahl +Position Gashebel +Temperatur Motor, Controller, Batterie +Status des Controllers +Fehlercodes + +Batterie: 127506, 127508, 127513 + +N2K Engine: 127448, 127489 + +""" + +import cairo +import math +from .page import Page + +class EPropulsion(Page): + + def draw(self, ctx): + # Title + ctx.select_font_face("Ubuntu", cairo.FontSlant.NORMAL, cairo.FontWeight.BOLD) + ctx.set_font_size(24) + ctx.move_to(10, 45) + ctx.show_text("E-Propulsion") diff --git a/pages/mob.py b/pages/mob.py new file mode 100644 index 0000000..9127bfa --- /dev/null +++ b/pages/mob.py @@ -0,0 +1,24 @@ +""" + +MOB - Notfallfunktion + + - aktuelle Position + - MOB-Position + - Strömungsverhältnisse + - Windverhältnisse + - Richtung und Entfernung zur MOB-Position + +""" + +import cairo +import math +from .page import Page + +class MOB(Page): + + def draw(self, ctx): + # Title + ctx.select_font_face("Ubuntu", cairo.FontSlant.NORMAL, cairo.FontWeight.BOLD) + ctx.set_font_size(24) + ctx.move_to(10, 45) + ctx.show_text("MOB") diff --git a/pages/sixvalues.py b/pages/sixvalues.py new file mode 100644 index 0000000..9d79bc9 --- /dev/null +++ b/pages/sixvalues.py @@ -0,0 +1,75 @@ +""" + +Sechs frei wählbare Meßwerte + +Layout ++--------------------+--------------------+ +| 1 | 2 | ++--------------------+--------------------+ +| 3 | 4 | ++--------------------+--------------------+ +| 5 | 6 | ++--------------------+--------------------+ + +""" + +import cairo +from .page import Page + +class SixValues(Page): + + def __init__(self, pageno, cfg, boatdata, boatvalue1, boatvalue2, boatvalue3, boatvalue4): + super().__init__(pageno, cfg, boatdata) + self.value1 = boatvalue1 + self.value2 = boatvalue2 + self.value3 = boatvalue3 + self.value4 = boatvalue4 + self.value5 = boatvalue5 + self.value6 = boatvalue6 + + def draw(self, ctx): + # Seitenunterteilung + ctx.rectangle(0, 80, 400, 3) + ctx.rectangle(0, 146, 400, 3) + ctx.rectangle(0, 214, 400, 3) + ctx.fill() + + # + + ctx.select_font_face("Ubuntu", cairo.FontSlant.NORMAL, cairo.FontWeight.BOLD) + ctx.set_font_size(32) + ctx.move_to(20, 45) + ctx.show_text("AWA") + ctx.move_to(20, 113) + ctx.show_text("AWS") + ctx.move_to(20, 181) + ctx.show_text("COG") + ctx.move_to(20, 249) + ctx.show_text("STW") + ctx.stroke() + + # Units + ctx.set_font_size(16) + ctx.move_to(20, 65) + ctx.show_text("Deg") + ctx.move_to(20, 133) + ctx.show_text("kn") + ctx.move_to(20, 201) + ctx.show_text("Deg") + ctx.move_to(20, 269) + ctx.show_text("kn") + ctx.stroke() + + # Meßwerte + ctx.select_font_face("DSEG7 Classic") + ctx.set_font_size(40) + + ctx.move_to(180, 65) + ctx.show_text("150") + ctx.move_to(180, 133) + ctx.show_text("25.3") + ctx.move_to(180, 201) + ctx.show_text("146") + ctx.move_to(180, 269) + ctx.show_text("56.4") +