aboutsummaryrefslogtreecommitdiffstats
path: root/klippy
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2018-05-28 10:21:51 -0400
committerKevin O'Connor <kevin@koconnor.net>2018-05-28 10:43:40 -0400
commit0728c1a8be5f76d62fae79a9adcc998081049f9e (patch)
tree44d4395405e22fe55578af7341f54b85f4fc16ff /klippy
parent75f870994722cf2340d8bc39c0600ca592dadc7a (diff)
downloadkutter-0728c1a8be5f76d62fae79a9adcc998081049f9e.tar.gz
kutter-0728c1a8be5f76d62fae79a9adcc998081049f9e.tar.xz
kutter-0728c1a8be5f76d62fae79a9adcc998081049f9e.zip
msgproto: Add support for a get_constant_int() method
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy')
-rw-r--r--klippy/msgproto.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/klippy/msgproto.py b/klippy/msgproto.py
index 66362e18..739f2cb1 100644
--- a/klippy/msgproto.py
+++ b/klippy/msgproto.py
@@ -327,18 +327,18 @@ class MessageParser:
logging.exception("process_identify error")
raise error("Error during identify: %s" % (str(e),))
class sentinel: pass
- def get_constant(self, name, default=sentinel):
+ def get_constant(self, name, default=sentinel, parser=str):
if name not in self.config:
if default is not self.sentinel:
return default
raise error("Firmware constant '%s' not found" % (name,))
- return self.config[name]
- def get_constant_float(self, name, default=sentinel):
- if name not in self.config and default is not self.sentinel:
- return default
try:
- return float(self.config[name])
- except ValueError:
- raise error("Firmware constant '%s' not a float" % (name,))
- except KeyError:
- raise error("Firmware constant '%s' not found" % (name,))
+ value = parser(self.config[name])
+ except:
+ raise error("Unable to parse firmware constant %s: %s" % (
+ name, self.config[name]))
+ return value
+ def get_constant_float(self, name, default=sentinel):
+ return self.get_constant(name, default, parser=float)
+ def get_constant_int(self, name, default=sentinel):
+ return self.get_constant(name, default, parser=int)