console: Support new artificial DELAY command

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2017-06-21 15:50:41 -04:00
parent da4f2c5ea0
commit e92ce565dd
1 changed files with 15 additions and 1 deletions

View File

@ -21,7 +21,9 @@ class KeyboardReader:
self.data = "" self.data = ""
reactor.register_fd(self.fd, self.process_kbd) reactor.register_fd(self.fd, self.process_kbd)
self.connect_timer = reactor.register_timer(self.connect, reactor.NOW) self.connect_timer = reactor.register_timer(self.connect, reactor.NOW)
self.local_commands = { "PINS": self.set_pin_map, "SET": self.set_var } self.local_commands = {
"PINS": self.set_pin_map, "SET": self.set_var, "DELAY": self.delay
}
self.eval_globals = {} self.eval_globals = {}
def connect(self, eventtime): def connect(self, eventtime):
self.ser.connect() self.ser.connect()
@ -49,6 +51,18 @@ class KeyboardReader:
except ValueError: except ValueError:
pass pass
self.eval_globals[parts[1]] = val self.eval_globals[parts[1]] = val
def delay(self, parts):
try:
val = int(parts[1])
except ValueError as e:
self.output("Error: %s" % (str(e),))
return
try:
msg = self.ser.msgparser.create_command(' '.join(parts[2:]))
except msgproto.error as e:
self.output("Error: %s" % (str(e),))
return
self.ser.send(msg, minclock=val)
def translate(self, line, eventtime): def translate(self, line, eventtime):
evalparts = re_eval.split(line) evalparts = re_eval.split(line)
if len(evalparts) > 1: if len(evalparts) > 1: