msgproto: Support default values in get_constant() calls
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
6eefbe5e30
commit
a67306c76b
|
@ -324,12 +324,16 @@ class MessageParser:
|
|||
except Exception as e:
|
||||
logging.exception("process_identify error")
|
||||
raise error("Error during identify: %s" % (str(e),))
|
||||
def get_constant(self, name):
|
||||
try:
|
||||
return self.config[name]
|
||||
except KeyError:
|
||||
class sentinel: pass
|
||||
def get_constant(self, name, default=sentinel):
|
||||
if name not in self.config:
|
||||
if default is not self.sentinel:
|
||||
return default
|
||||
raise error("Firmware constant '%s' not found" % (name,))
|
||||
def get_constant_float(self, 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:
|
||||
|
|
|
@ -90,8 +90,8 @@ class SerialReader:
|
|||
logging.info("MCU config: %s", " ".join(
|
||||
["%s=%s" % (k, v) for k, v in msgparser.config.items()]))
|
||||
# Setup baud adjust
|
||||
mcu_baud = float(msgparser.config.get('SERIAL_BAUD', 0.))
|
||||
if mcu_baud:
|
||||
mcu_baud = msgparser.get_constant_float('SERIAL_BAUD', None)
|
||||
if mcu_baud is not None:
|
||||
baud_adjust = self.BITS_PER_BYTE / mcu_baud
|
||||
self.ffi_lib.serialqueue_set_baud_adjust(
|
||||
self.serialqueue, baud_adjust)
|
||||
|
|
Loading…
Reference in New Issue