Fixed default units handling. #206
authorJoseph Coffland <joseph@cauldrondevelopment.com>
Tue, 12 Jan 2021 21:59:06 +0000 (13:59 -0800)
committerJoseph Coffland <joseph@cauldrondevelopment.com>
Tue, 12 Jan 2021 21:59:06 +0000 (13:59 -0800)
CHANGELOG.md
src/py/bbctrl/Ctrl.py
src/py/bbctrl/State.py

index a10f6b1608845a5c08b3506e5af88465a0d7ccf1..cf13d27564be457d9be3bb6003ab2cfb02942f82 100644 (file)
@@ -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>``.
index 3a6c2d7b26043564e1e61d31726b1a24366ca557..e643f79fc82e906ccc2821bff07dfb5af7a9d595 100644 (file)
@@ -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):
index efb970e0d0e19475a496a5cd31914e18c59bfd23..39b77a18daaa409c305f84bf983a570bdd861a1d 100644 (file)
@@ -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):