def add_agent_artist_handler(req): global agent_names global agent_positions global agent_estimates global agent_artists global estimate_artists global subscribers_position global subscribers_estimate subscribers_position[req.name] = rp.Subscriber(name='/' + req.name + '/position', data_class=gms.Point, callback=agent_callback, callback_args=req.name, queue_size=1) subscribers_estimate[req.name] = rp.Subscriber(name='/' + req.name + '/estimate', data_class=gms.Point, callback=estimate_callback, callback_args=req.name, queue_size=1) LOCK.acquire() agent_names.append(req.name) agent_positions[req.name] = None agent_estimates[req.name] = None agent_artists[req.name] = None estimate_artists[req.name] = None LOCK.release() return dns.AddAgentResponse()
def add_agent_handler(req): global agent_names global agent_positions global position_subscribers position_subscribers[req.name] = rp.Subscriber(name='/' + req.name + '/position', data_class=gms.Point, callback=agent_callback, callback_args=req.name, queue_size=1) LOCK.acquire() agent_names.append(req.name) agent_positions[req.name] = None LOCK.release() return dns.AddAgentResponse()
def add_agent_handler(req): global agent_names global agent_bearing_measurement global bearing_measurement_subscribers bearing_measurement_subscribers[req.name] = rp.Subscriber( name='/' + req.name + '/bearing_measurement', data_class=gms.Vector, callback=agent_callback, callback_args=req.name, queue_size=1) LOCK.acquire() agent_names.append(req.name) agent_bearing_measurement[req.name] = None LOCK.release() return dns.AddAgentResponse()
def add_me_handler(req): LOCK.acquire() add_agent_proxies[req.name] = rp.ServiceProxy(req.name + '/AddAgent', dns.AddAgent) remove_agent_proxies[req.name] = rp.ServiceProxy(req.name + '/RemoveAgent', dns.RemoveAgent) remove_sensor_proxies[req.name] = rp.ServiceProxy( req.name + '/RemoveSensor', dns.RemoveAgent) remove_estimate_proxies[req.name] = rp.ServiceProxy( req.name + '/RemoveEstimate', dns.RemoveAgent) remove_vehicle_proxies[req.name] = rp.ServiceProxy( req.name + '/RemoveVehicle', dns.RemoveAgent) remove_planner_proxies[req.name] = rp.ServiceProxy( req.name + '/RemovePlanner', dns.RemoveAgent) for name in agent_names: add_agent_proxies[name].call(req.name) add_agent_proxies[req.name].call(name) agent_names.append(req.name) LOCK.release() plotter_proxy.call(req.name) return dns.AddAgentResponse()