Example #1
0
 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
Example #2
0
    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
Example #3
0
    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
Example #4
0
    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()
Example #5
0
    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()
Example #6
0
 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()