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, appdata, 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")
 | |
| 
 |