yield ('takeoff',) start_time = time.time() while True: if time.time() - start_time > self.run_time: print 'time limit exceeded, stopping experiment' yield 'moverel', 0, 0 time.sleep(5.0) yield 'land', break i, pos = self.ferry.hop_selector.get_next_hop() print 'moving to terminal', i, 'at pos', pos yield 'moverel', pos[0], pos[1] print 'arrived at terminal', i print 'exchanging messages with terminal %d' % i self.ferry.transfer_messages(i) # write stats: delays_file = open('delays.txt', 'w') for delay in self.ferry.delays: delays_file.write('%d %d %.2f\n' % delay) delays_file.close() buf_sizes_file = open('buf_sizes.txt', 'w') for buf_size in self.ferry.buf_sizes: buf_sizes_file.write('%d %d\n' % buf_size) buf_sizes_file.close() executor = MissionExecutor(generate_map('ferry_ctrl')) executor.execute(FerryMission().generator())
def run(self): while True: data = GpsData() data.ParseFromString(self.socket.recv()) self.data = data self.event.set() def pos(self): self.event.wait() return self.data.lon, self.data.lat gps_reader = GPSReader(generate_map('dlr_logger')['gps']) gps_reader.start() def dlr_mission(): gs_pos = 50.0, 10.0 print 'taking off' yield 'takeoff', 4.5 own_pos = gps_reader.pos() bearing = calc_bearing(gs_pos, own_pos) print 'rotating to', bearing yield 'rotate', bearing executor = MissionExecutor(generate_map('ferry_ctrl')) executor.execute(dlr_mission())