コード例 #1
0
ファイル: roam_node.py プロジェクト: PR2/linux_networking
 def gen_accesspoint_msg(iface):
     msg = AccessPoint()
     msg.essid = iface.essid
     msg.macaddr = iface.bssid
     msg.signal = iface.wifi_signal 
     msg.noise = iface.wifi_noise
     msg.snr = msg.signal - msg.noise
     msg.quality = iface.wifi_quality
     msg.rate = iface.wifi_rate
     msg.tx_power = iface.wifi_txpower
     msg.channel = MultiInterfaceDiagPublisher.frequency_to_channel(iface.wifi_frequency)
     return msg
コード例 #2
0
ファイル: roam_node2.py プロジェクト: rxg847/linux_networking
    def _publish_status(self):
        now = rospy.get_rostime()

        # current_iface_id
        ai = self.interface_selector.active_interfaces
        if not ai or ai[0] not in self._interfaces:
            index = -1
        else:
            index = self._interfaces.index(ai[0])
        self.iface_id_pub.publish(index)

        # accesspoint
        best_active = self.interface_selector.radio_manager.best_active
        for iface in self._wireless_interfaces:
            msg = self.gen_accesspoint_msg(iface)
            msg.header.stamp = now
            self.all_ap_pub[iface].publish(msg)
            if iface == best_active:
                self.ap_pub.publish(msg)
        if best_active is None:
            self.ap_pub.publish(AccessPoint())

        # status
        msg = MultiInterfaceStatus()
        for iface in self._interfaces:
            msg.interfaces.append(self.gen_status_msg(iface))
        self.status_pub.publish(msg)

        # diagnostics
        diags = []
        diags.append(('Tunnel Interface', self.interface_selector.tunnel_interface))
        if self.interface_selector.active_interfaces and \
             self.interface_selector.active_interfaces[0].score != self.interface_selector.TERRIBLE_INTERFACE:
            act_iface = self.interface_selector.active_interfaces[0]
            diags.append(('Active Interface', act_iface.iface ))
            diags += act_iface.diags
            if act_iface.goodness > 95:
                diag_summary = "Active interface %s running strong"%act_iface.iface
                diag_level = 0
            elif act_iface.goodness > 50:
                diag_summary = "Active interface %s is lossy"%act_iface.iface
                diag_level = 1
            else:
              if act_iface.goodness > 0:
                diag_summary = "Active interface %s is very poor"%act_iface.iface
              else:
                diag_summary = "Active interface %s is failing to ping"%act_iface.iface
              diag_level = 2
        else:
            diags.append(('Active Interface', "none"))
            diag_summary = 'No active interface'
            diag_level = 2
        ds = self.fill_diags("synthetic interface", diag_summary, self.hostname, diags)
        ds.level = diag_level
        statuses = [ds]

        for iface in self._interfaces:
            status = iface.status
            if status == InterfaceStatus.STATE_ADDR and iface.ping_loss < 100:
                status = InterfaceStatus.STATE_PINGING
                diag_summary = "Connected (goodness %f, reliability %f)"%(iface.goodness, iface.reliability)
            else:
                diag_summary = STATUSES[status]
            ds = self.fill_diags(iface.iface, diag_summary, self.hostname, iface.diags)
            statuses.append(ds)

        da = DiagnosticArray()
        da.header.stamp = rospy.get_rostime()
        da.status = statuses
        self.diag_pub.publish(da)
コード例 #3
0
ファイル: roam_node2.py プロジェクト: rxg847/linux_networking
 def gen_accesspoint_msg(iface):
     msg = AccessPoint()
     msg.essid = iface.essid
     msg.macaddr = iface.bssid
     msg.signal = iface.wifi_signal 
     msg.noise = iface.wifi_noise
     msg.snr = msg.signal - msg.noise
     msg.quality = iface.wifi_quality
     msg.rate = iface.wifi_rate
     msg.tx_power = iface.wifi_txpower
     msg.channel = IEEE80211_Channels.get_channel(iface.wifi_frequency * 1e6)
     return msg
コード例 #4
0
ファイル: ddwrt.py プロジェクト: wb0110/wifi_ddwrt
    def fetchCurrentAP(self):
        url = "http://%s/Status_Wireless.live.asp" % self.hostname
        response = self.newBrowser().open(url)
        body = response.read()

        line = None
        lines = body.split("\n")

        d = {}
        for line in lines:
            line = line[1:-1]
            line = line.replace("&nbsp;", "")
            parts = line.split("::", 1)
            if len(parts) == 2:
                d[parts[0]] = parts[1]

        essid = d.get('wl_ssid', '')
        wl_channel = d.get('wl_channel', '').split()[0]
        channel = int(wl_channel)
        rate = d.get('wl_rate', '')

        signal = None
        noise = None
        snr = None
        quality = None

        tx_power = d.get('wl_xmit', '')

        active_wireless = d.get('active_wireless', None)
        ap = None
        if active_wireless:
            active_wireless = active_wireless.replace("'", "")
            parts = active_wireless.split(",")
            macaddr = parts[0]
            interface = parts[1]
            if len(parts) == 7:
                signal = int(parts[4])
                noise = int(parts[5])
                snr = int(parts[6])
                quality = signal * 1.24 + 116
            else:
                signal = int(parts[5])
                noise = int(parts[6])
                snr = int(parts[7])
                quality = int(parts[8]) / 10

            #self.fetchBandwidthStats(interface)

            #make sure that we put a stamp on things
            header = Header()
            header.stamp = rospy.Time.now()

            ap = AccessPoint(header=header,
                             essid=essid,
                             macaddr=macaddr,
                             signal=signal,
                             noise=noise,
                             snr=snr,
                             channel=channel,
                             rate=rate,
                             quality=quality,
                             tx_power=tx_power)

        return ap
コード例 #5
0
 def __init__(self):
     self.ap = AccessPoint()
     self.t = time.time()
     self._pick_ap()
コード例 #6
0
ファイル: roam_node.py プロジェクト: rxg847/linux_networking
 def gen_accesspoint_msg(iface):
     msg = AccessPoint()
     msg.essid = iface.essid
     msg.macaddr = iface.bssid
     msg.signal = iface.wifi_signal
     msg.noise = iface.wifi_noise
     msg.snr = msg.signal - msg.noise
     msg.quality = iface.wifi_quality
     msg.rate = iface.wifi_rate
     msg.tx_power = iface.wifi_txpower
     msg.channel = MultiInterfaceDiagPublisher.frequency_to_channel(
         iface.wifi_frequency)
     return msg