summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--digital/io/tools/test_simu.py15
-rw-r--r--digital/io/tools/test_simu_control.py33
2 files changed, 44 insertions, 4 deletions
diff --git a/digital/io/tools/test_simu.py b/digital/io/tools/test_simu.py
index 8411b0d8..c6fc24f3 100644
--- a/digital/io/tools/test_simu.py
+++ b/digital/io/tools/test_simu.py
@@ -28,6 +28,8 @@ import utils.forked
import asserv
import asserv.init
+import mimot
+import mimot.init
import io
import io.init
from proto.popen_io import PopenIO
@@ -69,7 +71,7 @@ class TestSimu (InterNode):
True: (3000 - 300, 2100 - 305, math.radians (-270))
}
- def __init__ (self, asserv_cmd, io_cmd):
+ def __init__ (self, asserv_cmd, mimot_cmd, io_cmd):
# Hub.
self.hub = mex.hub.Hub (min_clients = 2)
self.forked_hub = utils.forked.Forked (self.hub.wait)
@@ -82,6 +84,11 @@ class TestSimu (InterNode):
**asserv.init.host)
self.asserv.async = True
self.tk.createfilehandler (self.asserv, READABLE, self.asserv_read)
+ # Mimot.
+ self.mimot = mimot.Proto (PopenIO (mimot_cmd), time,
+ **mimot.init.host)
+ self.mimot.async = True
+ self.tk.createfilehandler (self.mimot, READABLE, self.mimot_read)
# Io.
self.io = io.Proto (PopenIO (io_cmd), time, **io.init.host)
self.io.async = True
@@ -114,6 +121,10 @@ class TestSimu (InterNode):
self.asserv.proto.read ()
self.asserv.proto.sync ()
+ def mimot_read (self, file, mask):
+ self.mimot.proto.read ()
+ self.mimot.proto.sync ()
+
def io_read (self, file, mask):
self.io.proto.read ()
self.io.proto.sync ()
@@ -123,6 +134,7 @@ class TestSimu (InterNode):
simulated time."""
InterNode.step (self)
self.asserv.proto.sync ()
+ self.mimot.proto.sync ()
self.io.proto.sync ()
def change_color (self, *dummy):
@@ -138,6 +150,7 @@ class TestSimu (InterNode):
if __name__ == '__main__':
app = TestSimu (('../../asserv/src/asserv/asserv.host', '-m9', 'marcel'),
+ ('../../mimot/src/dirty/dirty.host', '-m9', 'marcel'),
('../src/io.host'))
app.mainloop ()
app.close ()
diff --git a/digital/io/tools/test_simu_control.py b/digital/io/tools/test_simu_control.py
index 79724c1c..61d0f8df 100644
--- a/digital/io/tools/test_simu_control.py
+++ b/digital/io/tools/test_simu_control.py
@@ -28,14 +28,24 @@ import math
class TestSimuControl (TestSimu):
"""Interface with extra control."""
- def __init__ (self, asserv_cmd, io_cmd):
- TestSimu.__init__ (self, asserv_cmd, io_cmd)
+ def __init__ (self, asserv_cmd, mimot_cmd, io_cmd):
+ TestSimu.__init__ (self, asserv_cmd, mimot_cmd, io_cmd)
def create_widgets (self):
TestSimu.create_widgets (self)
self.control_frame = Frame (self)
self.control_frame.pack (side = 'left', before = self.table_view,
fill = 'y')
+ self.clamp_var = IntVar ()
+ self.clamp_button = Checkbutton (self.control_frame, text = 'Clamp',
+ indicatoron = False,
+ variable = self.clamp_var, command = self.clamp_command)
+ self.clamp_button.pack ()
+ self.elevator_var = IntVar ()
+ self.elevator_button = Checkbutton (self.control_frame,
+ text = 'Elevator', indicatoron = False,
+ variable = self.elevator_var, command = self.elevator_command)
+ self.elevator_button.pack ()
self.table_view.bind ('<1>', self.move)
self.table_view.bind ('<3>', self.orient)
@@ -50,11 +60,28 @@ class TestSimuControl (TestSimu):
a = math.atan2 (y - robot_pos[1], x - robot_pos[0])
self.asserv.goto_angle (a)
+ def clamp_command (self):
+ if self.clamp_var.get ():
+ pos = 6000
+ else:
+ pos = 0
+ self.mimot.goto_pos ('a0', pos)
+ self.mimot.goto_pos ('a1', pos)
+
+ def elevator_command (self):
+ if self.elevator_var.get ():
+ pos = 11800
+ else:
+ pos = 0
+ self.asserv.goto_pos ('a0', pos)
+
def change_color (self, *dummy):
pass
if __name__ == '__main__':
app = TestSimuControl (('../../asserv/src/asserv/asserv.host', '-m9',
- 'marcel'), ('../src/io.host'))
+ 'marcel'),
+ ('../../mimot/src/dirty/dirty.host', '-m9', 'marcel'),
+ ('../src/io.host'))
app.mainloop ()
app.close ()