Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion rcp/components/home/coordbar.kv
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,18 @@
halign: 'right'
valign: 'center'
on_release: root.update_position()
Label:
Button:
size_hint_y: 0.3
font_name: "fonts/iosevka-regular.ttf"
font_size: self.height / 1.5
font_style: "bold"
background_color: (0,0,0,1)
color: app.formats.display_color
text: root.formattedSpeed
text_size: self.size
halign: 'right'
valign: 'top'
on_release: root.toggle_speed_mode()

BoxLayout:
size_hint_x: None
Expand Down
9 changes: 8 additions & 1 deletion rcp/components/home/coordbar.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ def __init__(self, **kv):
self.app.bind(currentOffset=self.update_scaledPosition)
self.app.formats.bind(factor=self.update_scaledPosition)
self.app.formats.bind(factor=self.set_sync_ratio)
self.app.formats.bind(speed_conversion_factor=self.update_scaledPosition)
self.app.bind(connected=self.init_connection)
self.app.bind(update_tick=self.update_tick)
self.bind(position=self.update_scaledPosition)
Expand Down Expand Up @@ -169,7 +170,13 @@ def update_scaledPosition(self, instance=None, value=None):
) * self.app.formats.factor

self.formattedPosition = self.app.formats.position_format.format(self.scaledPosition)
self.formattedSpeed = self.app.formats.speed_format.format(self.speed)
displayed_speed = self.speed * self.app.formats.speed_conversion_factor
self.formattedSpeed = self.app.formats.speed_format.format(displayed_speed)

def toggle_speed_mode(self):
self.app.beep()
self.app.formats.toggle_speed_mode()
self.update_scaledPosition()

def on_newPosition(self, instance, value):
self.set_current_position(value)
Expand Down
27 changes: 26 additions & 1 deletion rcp/dispatchers/formats.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@ class FormatsDispatcher(SavingDispatcher):
'accept_color',
'cancel_color',
'color_on',
'color_off'
'color_off',
'metric_speed_mode',
'imperial_speed_mode'
]

metric_position = StringProperty("{:+0.3f}")
Expand All @@ -36,6 +38,10 @@ class FormatsDispatcher(SavingDispatcher):
position_format = StringProperty()
factor = ObjectProperty(Fraction(1, 1))

metric_speed_mode = BooleanProperty(True)
imperial_speed_mode = BooleanProperty(False)
speed_conversion_factor = NumericProperty(1.0)

display_color = ColorProperty("#ffcc35ff")
accept_color = ColorProperty("#32ff32ff")
cancel_color = ColorProperty("#ff3232ff")
Expand All @@ -53,14 +59,33 @@ def __init__(self, **kv):

def update_format(self, *args, **kv):
if self.current_format == "MM":
if self.metric_speed_mode:
self.speed_format = f"{self.metric_speed} M/min"
self.speed_conversion_factor = 1.0
else:
self.speed_format = f"{self.metric_speed} mm/min"
self.speed_conversion_factor = 1000
self.speed_format = f"{self.metric_speed} M/min"
self.position_format = self.metric_position
self.factor = Fraction(1, 1)
else:
if self.imperial_speed_mode:
self.speed_format = f"{self.imperial_speed} in/min"
self.speed_conversion_factor = 1.0
else:
self.speed_format = f"{self.imperial_speed} Ft/min"
self.speed_conversion_factor = 12.0
self.speed_format = f"{self.imperial_speed} Ft/min"
self.position_format = self.imperial_position
self.factor = Fraction(10, 254)

def toggle_speed_mode(self):
if self.current_format == "MM":
self.metric_speed_mode = not self.metric_speed_mode
else:
self.imperial_speed_mode = not self.imperial_speed_mode
self.update_format()

def toggle(self, *_):
if self.current_format == "MM":
self.current_format = "IN"
Expand Down