def main(get_nodes=False):
    """Defines the simulation, map, monitors, persons."""
    t = time.time()
    if not get_nodes:
        try:
            name = sys.argv[1]
            port = int(sys.argv[2])
        except IndexError:
            print 'No name or port number specified!'
            print 'Usage: python external-controlled_random_wiggler.py NAME PORT'
            sys.exit(-1)
        s = SimulationControlled(geo=osm.OSMModel('../data/minimap0.osm'), name=name, host='localhost', port=port, rel_speed=40)
        print time.time() - t
        #m = s.add_monitor(EmptyMonitor, 2)
        m = s.add_monitor(SocketPlayerMonitor, 1)
        s.add_persons(RandomWiggler, 1, monitor=m)
        for p in [node for node in s.geo.way_nodes if "amenity" in node.tags and node.tags["amenity"] == "cafe"]:
            c = Cafe(p.tags['name'], s)
            p.worldobject = c
            s.activate(c, c.serve(), 0)
        s.run(until=1000000, real_time=True, monitor=True)
    else:
        s = Simulation(geo=osm.OSMModel('../data/minimap0.osm'), rel_speed=40)
        for p in [node for node in s.geo.way_nodes if "amenity" in node.tags and node.tags["amenity"] == "cafe"]:
            print p.id, p.lat, p.lon, s.geo.map_nodeid_osmnodeid[p.id]
Beispiel #2
0
def main():
    """Defines the simulation, map, monitors, persons. Cafe locations are set up at cafe POI on road network."""
    s = Simulation(geo=osm.OSMModel('../data/minimap0.osm'), rel_speed=50, seed=6)
    #m = s.add_monitor(ChildprocessPlayerChamplainMonitor, 2)
    m = s.add_monitor(SocketPlayerMonitor, 2)
    s.add_persons(PoiActWiggler, 1, monitor=m, args={"infected":True, "speed":1.7})
    s.add_persons(PoiActWiggler, 1, monitor=m)
    for p in [node for node in s.geo.way_nodes if "amenity" in node.tags and node.tags["amenity"] == "cafe"]:
        c = Cafe(p.tags['name'], s)
        p.worldobject = c
        s.activate(c, c.serve(), 0)
    s.run(until=50000, real_time=True, monitor=True)