summaryrefslogtreecommitdiffhomepage
path: root/digital/io-hub/tools
diff options
context:
space:
mode:
authorNicolas Schodet2011-05-30 23:42:52 +0200
committerNicolas Schodet2011-05-30 23:42:52 +0200
commit850cc292ac7ea847f6be2afcdc5bae89418cabda (patch)
tree7d943f8700fbc7db79fe773662f75b615673f987 /digital/io-hub/tools
parent683d37717c83cd8ec8b752c194cb8c0bbc19af6d (diff)
digital/io-hub: add path finding
Diffstat (limited to 'digital/io-hub/tools')
-rw-r--r--digital/io-hub/tools/io_hub/mex.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/digital/io-hub/tools/io_hub/mex.py b/digital/io-hub/tools/io_hub/mex.py
index 66060ea1..8d758382 100644
--- a/digital/io-hub/tools/io_hub/mex.py
+++ b/digital/io-hub/tools/io_hub/mex.py
@@ -121,6 +121,24 @@ class Mex:
m.push ('L', self.contacts)
self.node.send (m)
+ class Path (Observable):
+ """Path finding algorithm report.
+
+ - path: sequence of (x, y) coordinates (millimeters).
+
+ """
+
+ def __init__ (self, node, instance):
+ Observable.__init__ (self)
+ self.path = [ ]
+ node.register (instance + ':path', self.__handle)
+
+ def __handle (self, msg):
+ self.path = [ ]
+ while len (msg) >= 4:
+ self.path.append (msg.pop ('hh'))
+ self.notify ()
+
class PosReport (Observable):
"""General purpose position report.
@@ -149,5 +167,6 @@ class Mex:
self.__contact_pack = self.Contact.Pack (node, instance)
self.contact = tuple (self.Contact (self.__contact_pack, i)
for i in range (CONTACT_NB))
+ self.path = self.Path (node, instance)
self.pos_report = self.PosReport (node, instance)