5 from visualizer.base import Link, transform_distance_canvas_to_simulation
 
    8     def __init__(self, parent_canvas_item, sta, dev):
 
   15                                                  visibility=goocanvas.ITEM_HIDDEN)
 
   18                                               stroke_color_rgba=0xC00000FF,
 
   19                                               line_dash=goocanvas.LineDash([2.0, 2.0 ]))
 
   20         self.invisible_line.props.pointer_events = (goocanvas.EVENTS_STROKE_MASK
 
   21                                                     |goocanvas.EVENTS_FILL_MASK
 
   22                                                     |goocanvas.EVENTS_PAINTED_MASK)
 
   23         self.canvas_item.set_data(
"pyviz-object", self)
 
   24         self.canvas_item.lower(
None)
 
   30         if self.
node2 is not None:
 
   31             self.node2.remove_link(self)
 
   33         if self.
node2 is None:
 
   34             self.canvas_item.set_property(
"visibility", goocanvas.ITEM_HIDDEN)
 
   36             self.node2.add_link(self)
 
   37             self.canvas_item.set_property(
"visibility", goocanvas.ITEM_VISIBLE)
 
   41         if self.
node2 is None:
 
   43         pos1_x, pos1_y = self.node1.get_position()
 
   44         pos2_x, pos2_y = self.node2.get_position()
 
   45         points = goocanvas.Points([(pos1_x, pos1_y), (pos2_x, pos2_y)])
 
   46         self.visible_line.set_property(
"points", points)
 
   47         self.invisible_line.set_property(
"points", points)
 
   50         self.canvas_item.destroy()
 
   55         pos1_x, pos1_y = self.node1.get_position()
 
   56         pos2_x, pos2_y = self.node2.get_position()
 
   60         mac = self.dev.GetMac()
 
   61         tooltip.set_text((
"WiFi link between STA Node %i and AP Node %i; distance=%.2f m.\n" 
   64                          % (self.node1.node_index, self.node2.node_index, d,
 
   65                             mac.GetSsid(), mac.GetBssid()))
 
   74         for (sta_netdevice, viz_node, wifi_link) 
in self.
stations:
 
   80         for node 
in viz.nodes.itervalues():
 
   81             ns3_node = ns.network.NodeList.GetNode(node.node_index)
 
   82             for devI 
in range(ns3_node.GetNDevices()):
 
   83                 dev = ns3_node.GetDevice(devI)
 
   84                 if not isinstance(dev, ns.wifi.WifiNetDevice):
 
   86                 wifi_mac = dev.GetMac()
 
   87                 if isinstance(wifi_mac, ns.wifi.StaWifiMac):
 
   88                     wifi_link = 
WifiLink(viz.links_group, node, dev)
 
   89                     self.stations.append((dev, node, wifi_link))
 
   90                 elif isinstance(wifi_mac, ns.wifi.ApWifiMac):
 
   91                     bssid = ns.network.Mac48Address.ConvertFrom(dev.GetAddress())
 
   97         for (sta_netdevice, viz_node, wifi_link) 
in self.
stations:
 
   98             if not sta_netdevice.IsLinkUp():
 
   99                 wifi_link.set_ap(
None)
 
  101             bssid = str(sta_netdevice.GetMac().GetBssid())
 
  102             if bssid == 
'00:00:00:00:00:00':
 
  103                 wifi_link.set_ap(
None)
 
  109         for (dummy_sta_netdevice, dummy_viz_node, wifi_link) 
in self.
stations:
 
  110             if wifi_link 
is not None:
 
  111                 wifi_link.update_points()
 
  116     viz.connect(
"simulation-periodic-update", link_monitor.simulation_periodic_update)
 
  117     viz.connect(
"update-view", link_monitor.update_view)
 
  118     viz.connect(
"topology-scanned", link_monitor.scan_nodes)
 
def tooltip_query(self, tooltip)
def simulation_periodic_update(self, viz)
def __init__(self, dummy_viz)
def update_view(self, viz)
def scan_nodes(self, viz)
def __init__(self, parent_canvas_item, sta, dev)
def transform_distance_canvas_to_simulation(d)