Don't hardcode tachometer redline

This commit is contained in:
XANTRONIX Development 2024-01-09 00:04:04 -05:00
parent 18139b1ada
commit 597c25914a
2 changed files with 7 additions and 6 deletions

View file

@ -110,7 +110,7 @@ class Cluster():
self.tacho = Tacho(self.WIDTH - self.HEIGHT / 2,
self.HEIGHT / 2,
self.HEIGHT / 2,
8000)
rpm_redline, rpm_max)
self.thermo = Thermometer(self.WIDTH - self.HEIGHT / 2,
self.HEIGHT / 2,

View file

@ -7,17 +7,18 @@ from hexagram.dial import Dial
from hexagram.trans import Gear, ShiftMode
class Tacho(Dial):
__slots__ = 'gear', 'shift_mode',
__slots__ = 'redline', 'gear', 'shift_mode',
MIN_ANGLE = 232.0 * (math.pi / 180.0)
MAX_ANGLE = 488.0 * (math.pi / 180.0)
FONT_FACE = "Muli"
def __init__(self, x: float, y: float, radius: float, max_value: float):
def __init__(self, x: float, y: float, radius: float, redline: float, max_value: float):
super().__init__(x, y, radius, self.MIN_ANGLE, self.MAX_ANGLE, 0, max_value)
self.value = 0
self.value = 0
self.redline = redline
self.gear: Gear = Gear.N
self.shift_mode: ShiftMode = ShiftMode.NORMAL
@ -44,7 +45,7 @@ class Tacho(Dial):
for speed in range(0, int(self.max_value)+1, 500):
min_radius = 0.81 if speed % 1000 == 0 else 0.82
if speed >= 7000:
if speed >= self.redline:
cr.set_source_rgb(0.6, 0.1, 0.1)
cr.set_line_width(6.0 if speed % 1000 == 0 else 2.0)
@ -53,7 +54,7 @@ class Tacho(Dial):
cr.set_source_rgb(1.0, 1.0, 1.0)
for speed in range(0, int(self.max_value)+1, 1000):
if speed >= 7000:
if speed >= self.redline:
cr.set_source_rgb(1.0, 0.1, 0.1)
self.draw_number(cr, 0.69, speed, "%d" % int(speed / 1000))