Source code for wlan_exp.device

# -*- coding: utf-8 -*-
"""
------------------------------------------------------------------------------
Mango 802.11 Reference Design Experiments Framework - Device Classes
------------------------------------------------------------------------------
License:   Copyright 2019 Mango Communications, Inc. All rights reserved.
           Use and distribution subject to terms in LICENSE.txt
------------------------------------------------------------------------------
"""
import sys

__all__ = ['WlanDevice']


# Fix to support Python 2.x and 3.x
if sys.version[0]=="3": long=None


[docs]class WlanDevice(object): """Class for WLAN Device. This is the parent class for all wlan_exp node class definitions. This class also provides a node type for devices which exist in a wireless network but are not controlled by wlan_exp (i.e. a Wi-Fi client connected to an 802.11 Reference Design AP). Args: mac_address (int, str): Medium Access Control (MAC) address of the WLAN device (48-bits) The mac_address should be of the format: 0x0123456789AB or '01:23:45:67:89:AB' name (string): User generated description of the WLAN device ht_capable (bool): Indicates if device has PHY capable of HT (802.11n) rates **Class Members:** Attributes: name (string): User generated description of the WLAN device wlan_mac_address(int): MAC Address of WLAN Device ht_capable (bool): Indicates if device has PHY capable of HT (802.11n) rates """ name = None description = None wlan_mac_address = None ht_capable = None def __init__(self, mac_address, name=None, ht_capable=True): self.name = name self.ht_capable = ht_capable if mac_address is not None: if type(mac_address) in [int, long]: self.wlan_mac_address = mac_address elif type(mac_address) is str: try: import wlan_exp.util as util self.wlan_mac_address = util.str_to_mac_addr(mac_address) except TypeError: raise TypeError("MAC address is not valid") else: raise TypeError("MAC address is not valid") else: raise TypeError("MAC address is not valid") self.description = self.__repr__() #------------------------------------------------------------------------- # WLAN Commands for the Device #------------------------------------------------------------------------- # ------------------------------------------------------------------------- # Misc methods for the Device # ------------------------------------------------------------------------- def __repr__(self): """Return device description""" msg = "" if self.wlan_mac_address is not None: from wlan_exp.util import mac_addr_to_str msg += "WLAN Device '{0}'".format(mac_addr_to_str(self.wlan_mac_address)) if self.name is not None: msg += " ({0})".format(self.name) else: msg += "Node not initialized." return msg
# End Class WlanDevice