def setPos(cls, Mininet_wifi, sta, ap, dist, ang): x = float('%.2f' % (dist * cos(ang) + int(ap.position[0]))) y = float('%.2f' % (dist * sin(ang) + int(ap.position[1]))) sta.position = x, y, 0 mobility.configLinks(sta) if Mininet_wifi.draw: try: plot2d.update(sta) except: pass
def moveNodeTo(cls, sta, ap, dist, ang): x = float('%.2f' % (dist * cos(ang) + int(ap.params['position'][0]))) y = float('%.2f' % (dist * sin(ang) + int(ap.params['position'][1]))) sta.params['position'] = x, y, 0 mobility.configLinks(sta) if Mininet_wifi.DRAW: try: plot2d.update(sta) except: pass
def moveNodeTo(cls, sta, ap, dist, ang): x = float('%.2f' % (dist * cos(ang) + int(ap.params['position'][0]))) y = float('%.2f' % (dist * sin(ang) + int(ap.params['position'][1]))) sta.params['position'] = x, y, 0 mobility.configLinks(sta) if Mininet_wifi.DRAW: try: plot2d.update(sta) except: pass
def mobility(self, nodes, Mininet_wifi): if nodes is None: nodes = Mininet_wifi.stations + Mininet_wifi.aps for node in nodes: if isinstance(node, Station): if 'position' in node.params and node not in mobility.stations: mobility.stations.append(node) if isinstance(node, AP): if 'position' in node.params and node not in mobility.aps: mobility.aps.append(node) if Mininet_wifi.DRAW: Mininet_wifi.isReplaying = False Mininet_wifi.checkDimension(nodes) plot = plot2d if Mininet_wifi.max_z != 0: plot = plot3d currentTime = time() for node in nodes: if 'speed' not in node.params: node.params['speed'] = 1.0 node.currentTime = 1 / node.params['speed'] node.timestamp = float(1.0 / node.params['speed']) node.isStationary = False if hasattr(node, 'time'): self.timestamp = True calc_pos = self.notimestamp_ if self.timestamp: calc_pos = self.timestamp_ while mobility.thread_._keep_alive: time_ = time() - currentTime if len(nodes) == 0: break for node in nodes: if hasattr(node, 'position'): calc_pos(node, time_) if len(node.position) == 0: nodes.remove(node) mobility.configLinks() if Mininet_wifi.DRAW: plot.update(node) if Mininet_wifi.DRAW: plot.pause()
def mobility(self, nodes, Mininet_wifi): if nodes is None: nodes = Mininet_wifi.stations + Mininet_wifi.aps for node in nodes: if isinstance(node, Station): if 'position' in node.params and node not in mobility.stations: mobility.stations.append(node) if isinstance(node, AP): if 'position' in node.params and node not in mobility.aps: mobility.aps.append(node) if Mininet_wifi.DRAW: Mininet_wifi.isReplaying=False Mininet_wifi.checkDimension(nodes) plot = plot2d if Mininet_wifi.max_z != 0: plot = plot3d currentTime = time() for node in nodes: if 'speed' not in node.params: node.params['speed'] = 1.0 node.currentTime = 1 / node.params['speed'] node.timestamp = float(1.0 / node.params['speed']) node.isStationary = False if hasattr(node, 'time'): self.timestamp = True calc_pos = self.notimestamp_ if self.timestamp: calc_pos = self.timestamp_ while mobility.thread_._keep_alive: time_ = time() - currentTime if len(nodes) == 0: break for node in nodes: if hasattr(node, 'position'): calc_pos(node, time_) if len(node.position) == 0: nodes.remove(node) mobility.configLinks() if Mininet_wifi.DRAW: plot.update(node) if Mininet_wifi.DRAW: plot.pause()
def mobility(self, Mininet_wifi, nodes): if nodes is None: nodes = Mininet_wifi.stations + Mininet_wifi.aps for node in nodes: if isinstance(node, Station): if 'position' in node.params and node not in mobility.stations: mobility.stations.append(node) if isinstance(node, AP): if 'position' in node.params and node not in mobility.aps: mobility.aps.append(node) is3d = False if Mininet_wifi.DRAW: is3d = instantiateGraph(Mininet_wifi) if is3d: plot = plot3d else: plot = plot2d currentTime = time() if nodes is None: nodes = Mininet_wifi.stations for node in nodes: if 'speed' in node.params: node.lastpos = 0,0,0 node.currentTime = 1 / node.params['speed'] node.timestamp = float(1.0 / node.params['speed']) node.isStationary = False if hasattr(node, 'time'): self.timestamp = True if self.timestamp: while True: time_ = time() - currentTime sleep(0.00001) if len(nodes) == 0: break for node in nodes: if hasattr(node, 'position'): position_ = (0,0,0) if time_ >= float(node.time[0]): position_ = node.position[0] del node.position[0] del node.time[0] if position_ != (0,0,0): node.setPosition(position_) if len(node.position) == 0: nodes.remove(node) mobility.configLinks() plot.pause() else: while True: time_ = time() - currentTime sleep(0.00001) if len(nodes) == 0: break for node in nodes: if hasattr(node, 'position'): position = (0,0,0) while time_ >= node.currentTime and len(node.position) != 0: position = node.position[0] del node.position[0] node.currentTime += node.timestamp if position != (0,0,0): node.setPosition(position) if len(node.position) == 0: nodes.remove(node) mobility.configLinks() plot.pause()