67 lines
1.5 KiB
Python
67 lines
1.5 KiB
Python
"""
|
|
|
|
Batteriewerte eines INA219 oder INA226 Sensors
|
|
Ähnlich ThreeValue
|
|
|
|
"""
|
|
|
|
import cairo
|
|
from .page import Page
|
|
|
|
class Battery(Page):
|
|
|
|
avg = (1, 10, 60, 300);
|
|
|
|
def __init__(self, pageno, cfg, boatdata):
|
|
super().__init__(pageno, cfg, boatdata)
|
|
self.avgindex = 0
|
|
self.buttonlabel[1] = 'AVG'
|
|
|
|
def handle_key(self, buttonid):
|
|
if buttonid == 1:
|
|
if self.avgindex < len(self.avg) -1:
|
|
self.avgindex += 1
|
|
else:
|
|
self.avgindex = 0
|
|
return True
|
|
return False
|
|
|
|
def draw(self, ctx):
|
|
|
|
# Aufteilung in 3 Bereiche durch 2 Linien
|
|
ctx.rectangle(0, 105, 400, 3);
|
|
ctx.rectangle(0, 195, 400, 3);
|
|
ctx.fill()
|
|
|
|
# Name
|
|
ctx.select_font_face("Ubuntu", cairo.FontSlant.NORMAL, cairo.FontWeight.BOLD)
|
|
ctx.set_font_size(40)
|
|
ctx.move_to(20, 55)
|
|
ctx.show_text("VBat")
|
|
ctx.move_to(20, 145)
|
|
ctx.show_text("IBat")
|
|
ctx.move_to(20, 235)
|
|
ctx.show_text("PBat")
|
|
ctx.stroke()
|
|
|
|
# Einheit
|
|
ctx.set_font_size(24)
|
|
ctx.move_to(20, 90)
|
|
ctx.show_text("V")
|
|
ctx.move_to(20, 180)
|
|
ctx.show_text("A")
|
|
ctx.move_to(20, 270)
|
|
ctx.show_text("W")
|
|
|
|
|
|
# Werte
|
|
ctx.select_font_face("DSEG7 Classic")
|
|
ctx.set_font_size(60)
|
|
ctx.move_to(180, 90)
|
|
ctx.show_text("12.3")
|
|
ctx.move_to(180, 180)
|
|
ctx.show_text("3.2")
|
|
ctx.move_to(180, 270)
|
|
ctx.show_text("39.4")
|
|
|