Package mosp_examples :: Module pause_wiggler
[hide private]
[frames] | no frames]

Source Code for Module mosp_examples.pause_wiggler

 1  #!/bin/env python 
 2   
 3  """ Pausing example: person is paused at every node 
 4      - random movement 
 5      - at every node the person stops for 20 ticks 
 6          - uses pause_movement and Simulation.person_alarm_clock for waking up 
 7            (could alternativly be implemented using a special Location at every node) 
 8      - output to visual player, which is executed as child process 
 9  """ 
10   
11  import sys 
12  sys.path.append("..") 
13   
14  from mosp.core import Simulation, Person 
15  from mosp.geo import osm 
16  from mosp.impl import movement 
17  from mosp.monitors import ChildprocessPlayerChamplainMonitor, SocketPlayerMonitor 
18   
19  __author__ = "B. Henne" 
20  __contact__ = "henne@dcsec.uni-hannover.de" 
21  __copyright__ = "(c) 2011, DCSec, Leibniz Universitaet Hannover, Germany" 
22  __license__ = "GPLv3" 
23   
24   
25 -class PauseWiggler(Person):
26 """Implements a person with random movement pausing at any node. 27 @author: B. Henne""" 28 29 next_target = movement.person_next_target_random 30
31 - def act_at_node(self, node):
32 """Implementation of act_at_node: person paused at any node for 20 ticks.""" 33 self.pause_movement(20)
34 35
36 -def main():
37 """Defines the simulation, map, monitors, persons.""" 38 s = Simulation(geo=osm.OSMModel('../data/minimap1.osm'), rel_speed=20) 39 #m = s.add_monitor(ChildprocessPlayerChamplainMonitor, 2) 40 m = s.add_monitor(SocketPlayerMonitor, 2) 41 s.add_persons(PauseWiggler, 1, monitor=m) 42 s.run(until=500000, real_time=True, monitor=True)
43 44 45 if __name__ == '__main__': 46 main() 47