示例#1
0
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()
示例#3
0
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()
示例#4
0
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()