summaryrefslogtreecommitdiffhomepage
path: root/digital/io-hub/tools
diff options
context:
space:
mode:
Diffstat (limited to 'digital/io-hub/tools')
-rw-r--r--digital/io-hub/tools/decode_fsm.py6
-rw-r--r--digital/io-hub/tools/io_hub/io_hub.py2
2 files changed, 7 insertions, 1 deletions
diff --git a/digital/io-hub/tools/decode_fsm.py b/digital/io-hub/tools/decode_fsm.py
index e8c38231..41e9fe37 100644
--- a/digital/io-hub/tools/decode_fsm.py
+++ b/digital/io-hub/tools/decode_fsm.py
@@ -22,7 +22,8 @@ def parse_header(fsm_name, fname):
def parse_proto(states, events):
"""Parse proto output from stdin and output FSM transitions."""
- fsm_re = re.compile(r'!F([0-9af]{2})([0-9af]{2})([0-9af]{2})')
+ fsm_re = re.compile(r'!F([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})')
+ obstacle_re = re.compile(r'!o([0-9a-f]{4})([0-9a-f]{4})')
for l in sys.stdin:
for m in fsm_re.finditer(l):
old, event, new = [ int(i, 16) for i in m.groups() ]
@@ -34,6 +35,9 @@ def parse_proto(states, events):
print "unknown transition"
else:
print "%s -> %s -> %s" % (old, event, new)
+ for m in obstacle_re.finditer(l):
+ x, y = [ int(i, 16) for i in m.groups() ]
+ print "obstacle %s %s" % (x, y)
op = optparse.OptionParser(description=__doc__)
op.add_option('--file', '-f', metavar='HEADER',
diff --git a/digital/io-hub/tools/io_hub/io_hub.py b/digital/io-hub/tools/io_hub/io_hub.py
index 4aa388b0..7c4d2bb5 100644
--- a/digital/io-hub/tools/io_hub/io_hub.py
+++ b/digital/io-hub/tools/io_hub/io_hub.py
@@ -100,3 +100,5 @@ class ProtoGuybrush (Proto):
self.proto.send('e')
def robot_is_back(self):
self.proto.send('r')
+ def unblock_bottom_clamp(self):
+ self.proto.send('u')