From a750fc58646c6f1ab5319d9bcf786be7a525a77c Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Sun, 22 Apr 2012 22:07:20 +0200 Subject: digital/{ai,beacon,io-hub}: add beacon simulation stub --- digital/ai/tools/guybrush.py | 9 ++++++++- digital/ai/tools/test_simu.py | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'digital/ai/tools') diff --git a/digital/ai/tools/guybrush.py b/digital/ai/tools/guybrush.py index 0600a494..340d7ef7 100644 --- a/digital/ai/tools/guybrush.py +++ b/digital/ai/tools/guybrush.py @@ -7,6 +7,7 @@ import io_hub.init from proto.popen_io import PopenIO import math +import subprocess class Robot: """Guybrush robot instance.""" @@ -23,24 +24,30 @@ class Robot: True: (3000 - 250, 2000 - 250, math.radians (180)) } - client_nb = 3 + client_nb = 4 def __init__ (self, proto_time, instance = 'robot0'): self.instance = instance def proto (proto_class, cmd, init): cmd = [ s.format (instance = instance) for s in cmd ] return proto_class (PopenIO (cmd), proto_time, **init) + def prog (cmd): + cmd = [ s.format (instance = instance) for s in cmd ] + subprocess.Popen (cmd) asserv_cmd = ('../../mimot/src/asserv/asserv.host', '-i{instance}:asserv0', '-m9', 'guybrush') mimot_cmd = ('../../mimot/src/dirty/dirty.host', '-i{instance}:mimot0', '-m9', 'guybrush') io_hub_cmd = ('../../io-hub/src/guybrush/io_hub.host', '-i{instance}:io0') + beacon_stub_cmd = ('../../beacon/src/stub/simu_stub.host', + '-i{instance}:beacon0') self.asserv = proto (asserv.Proto, asserv_cmd, asserv.init.host['guybrush']) self.mimot = proto (mimot.Proto, mimot_cmd, mimot.init.host['guybrush']) self.io = proto (io_hub.ProtoGuybrush, io_hub_cmd, io_hub.init.host['guybrush']) + self.beacon_stub = prog (beacon_stub_cmd) self.protos = (self.asserv, self.mimot, self.io) diff --git a/digital/ai/tools/test_simu.py b/digital/ai/tools/test_simu.py index fad3ac62..dc8b9481 100644 --- a/digital/ai/tools/test_simu.py +++ b/digital/ai/tools/test_simu.py @@ -93,6 +93,9 @@ class TestSimu (InterNode): if color_switch_set_pos: r.asserv.set_pos (*r.robot_start_pos[i]) r.model.color_switch.register (change_color) + # Beacon system. + if hasattr (r.link, 'beacon'): + r.link.beacon.position[0].register_to (self.obstacle) def close (self): self.forked_hub.kill () -- cgit v1.2.3