From a530c2845890a6f9318e25166287413021c37fd6 Mon Sep 17 00:00:00 2001 From: Joseph Coffland Date: Tue, 12 Jan 2021 13:59:06 -0800 Subject: [PATCH] Fixed default units handling. #206 --- CHANGELOG.md | 2 ++ src/py/bbctrl/Ctrl.py | 2 ++ src/py/bbctrl/State.py | 8 +++++--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a10f6b1..cf13d27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ Buildbotics CNC Controller Firmware Changelog - Added support for DMM DYN4 VFD. - Only enable ``rapid-auto-off`` in PWM mode. #272 - Support more gamepads. + - Added copyright to LCD boot up. + - Fixed default units handling. #206 ## v0.4.15 - Set GCode variables ``#5400`` and ``#<_tool>``. diff --git a/src/py/bbctrl/Ctrl.py b/src/py/bbctrl/Ctrl.py index 3a6c2d7..e643f79 100644 --- a/src/py/bbctrl/Ctrl.py +++ b/src/py/bbctrl/Ctrl.py @@ -99,8 +99,10 @@ class Ctrl(object): def configure(self): + # Called from Comm.py after AVR vars are loaded # Indirectly configures state via calls to config() and the AVR self.config.reload() + self.state.init() def ready(self): diff --git a/src/py/bbctrl/State.py b/src/py/bbctrl/State.py index efb970e..39b77a1 100644 --- a/src/py/bbctrl/State.py +++ b/src/py/bbctrl/State.py @@ -74,15 +74,17 @@ class State(object): self.set_callback(str(i) + 'latch_velocity', lambda name, i = i: self.motor_latch_velocity(i)) - self.set_callback('metric', lambda name: 1 if self.is_metric() else 0) - self.set_callback('imperial', lambda name: 0 if self.is_metric() else 1) self.set_callback('timestamp', lambda name: time.time()) self.reset() self.load_files() - def is_metric(self): return self.get('units', 'METRIC') == 'METRIC' + def init(self): + # Initialize units + metric = self.ctrl.config.get('units', 'METRIC').upper() == 'METRIC' + if not 'metric' in self.vars: self.set('metric', metric) + if not 'imperial' in self.vars: self.set('imperial', not metric) def reset(self): -- 2.27.0