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.tacho = Tacho(self.WIDTH - self.HEIGHT / 2,
|
||||||
self.HEIGHT / 2,
|
self.HEIGHT / 2,
|
||||||
self.HEIGHT / 2,
|
self.HEIGHT / 2,
|
||||||
8000)
|
rpm_redline, rpm_max)
|
||||||
|
|
||||||
self.thermo = Thermometer(self.WIDTH - self.HEIGHT / 2,
|
self.thermo = Thermometer(self.WIDTH - self.HEIGHT / 2,
|
||||||
self.HEIGHT / 2,
|
self.HEIGHT / 2,
|
||||||
|
|
|
@ -7,17 +7,18 @@ from hexagram.dial import Dial
|
||||||
from hexagram.trans import Gear, ShiftMode
|
from hexagram.trans import Gear, ShiftMode
|
||||||
|
|
||||||
class Tacho(Dial):
|
class Tacho(Dial):
|
||||||
__slots__ = 'gear', 'shift_mode',
|
__slots__ = 'redline', 'gear', 'shift_mode',
|
||||||
|
|
||||||
MIN_ANGLE = 232.0 * (math.pi / 180.0)
|
MIN_ANGLE = 232.0 * (math.pi / 180.0)
|
||||||
MAX_ANGLE = 488.0 * (math.pi / 180.0)
|
MAX_ANGLE = 488.0 * (math.pi / 180.0)
|
||||||
|
|
||||||
FONT_FACE = "Muli"
|
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)
|
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.gear: Gear = Gear.N
|
||||||
self.shift_mode: ShiftMode = ShiftMode.NORMAL
|
self.shift_mode: ShiftMode = ShiftMode.NORMAL
|
||||||
|
|
||||||
|
@ -44,7 +45,7 @@ class Tacho(Dial):
|
||||||
for speed in range(0, int(self.max_value)+1, 500):
|
for speed in range(0, int(self.max_value)+1, 500):
|
||||||
min_radius = 0.81 if speed % 1000 == 0 else 0.82
|
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_source_rgb(0.6, 0.1, 0.1)
|
||||||
|
|
||||||
cr.set_line_width(6.0 if speed % 1000 == 0 else 2.0)
|
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)
|
cr.set_source_rgb(1.0, 1.0, 1.0)
|
||||||
|
|
||||||
for speed in range(0, int(self.max_value)+1, 1000):
|
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)
|
cr.set_source_rgb(1.0, 0.1, 0.1)
|
||||||
|
|
||||||
self.draw_number(cr, 0.69, speed, "%d" % int(speed / 1000))
|
self.draw_number(cr, 0.69, speed, "%d" % int(speed / 1000))
|
||||||
|
|
Loading…
Add table
Reference in a new issue