Don't hardcode tachometer redline
This commit is contained in:
parent
18139b1ada
commit
597c25914a
2 changed files with 7 additions and 6 deletions
|
@ -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,
|
||||
|
|
|
@ -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))
|
||||
|
|
Loading…
Add table
Reference in a new issue