示例#1
0
    def __init__(self, dev, bus):
        #TODO deprecate bus param, and dev becomes a usb.core.Device object, not a string in pyUSB 1.x use
        '''
        Instantiates the KillerBee class for the RZUSBSTICK hardware.

        @type dev:   TODO
        @param dev:  USB device identifier
        @type bus:   TODO
        @param bus:  Identifies the USB bus the device is on
        @return: None
        @rtype: None
        '''
        self._channel = None
        self.handle = None
        self.dev = dev
        self.__bus = bus

        if self.dev != None:
            self.__handle_open()
        else:
            raise Exception('No interface found')

        # Tracking the command operating mode (None or AirCapture Mode)
        self.__cmdmode = RZ_CMD_MODE_NONE

        # Tracking if the RZ_CMD_OPEN_STREAM parameter is set for packet reception
        self.__stream_open = False

        # Capabilities list
        self.capabilities = KBCapabilities()
        self.__set_capabilities()
示例#2
0
    def __init__(self, dev, revision=DEFAULT_REVISION):
        '''
        Instantiates the KillerBee class for the ApiMote platform running GoodFET firmware.
        @type dev:   String
        @param dev:  Serial device identifier (ex /dev/ttyUSB0)
        @type revision: Integer
        @param revision: The revision number for the ApiMote, which is used by 
            the called GoodFET libraries to properly communicate with
            and configure the hardware.
        @return: None
        @rtype: None
        '''
        self._channel = None
        self._page = 0
        self.handle = None
        self.dev = dev

        self.__revision_num = revision
        # Set enviroment variables for GoodFET code to use
        os.environ["platform"] = "apimote%d".format(self.__revision_num)
        os.environ["board"] = "apimote%d".format(self.__revision_num)
        self.handle = GoodFETCCSPI()
        self.handle.serInit(port=self.dev)
        self.handle.setup()
        # TODO can we verify here the revision number that was sent is correct?

        self.__stream_open = False
        self.capabilities = KBCapabilities()
        self.__set_capabilities()
示例#3
0
    def __init__(self, dev, bus, variant):
        #TODO deprecate bus param, and dev becomes a usb.core.Device object, not a string in pyUSB 1.x use
        """
        Instantiates the KillerBee class for Zigduino running GoodFET firmware.
        @type dev:   String
        @param dev:  PyUSB device
        @return: None
        @rtype: None
        """
        if variant == CC253x.VARIANT_CC2530:
            self._data_ep = CC253x.USB_CC2530_DATA_EP
        else:
            self._data_ep = CC253x.USB_CC2531_DATA_EP
        self._channel = None
        self._page = 0
        self.dev = dev

        self.__stream_open = False
        self.capabilities = KBCapabilities()
        self.__set_capabilities()

        # Set default configuration
        self.dev.set_configuration()

        # get name from USB descriptor
        self.name = usb.util.get_string(self.dev, self.dev.iProduct)

        # Get wMaxPacketSize from the data endpoint
        for cfg in self.dev:
            for intf in cfg:
                for ep in intf:
                    if ep.bEndpointAddress == self._data_ep:
                        self._maxPacketSize = ep.wMaxPacketSize
示例#4
0
 def __init__(self, serialpath):
     '''
     Instantiates the KillerBee class for our sketch running on ChibiArduino on Freakduino hardware.
     @param serialpath:  /dev/ttyUSB* type serial port identifier
     @return: None
     @rtype: None
     '''
     self._channel = None
     self.handle = None
     self.dev = serialpath
     self.date = None
     self.lon, self.lat, self.alt = (None, None, None)
     self.handle = serial.Serial(port=self.dev, baudrate=57600, \
                                 timeout=1, bytesize=8, parity='N', stopbits=1, xonxoff=0)
     self.capabilities = KBCapabilities()
     self.__set_capabilities()
示例#5
0
 def __init__(self, serialpath):
     '''
     Instantiates the KillerBee class for Silabs BEEHIVE
     @param serialpath:  /dev/ttyACM* type serial port identifier
     @return: None
     @rtype: None
     '''
     self._channel = None
     self._page = 0
     self.handle = None
     self.dev = serialpath
     self.date = None
     self.lon, self.lat, self.alt = (None, None, None)
     self.__stream_open = False
     self.handle = serial.Serial(port=self.dev, baudrate=115200, \
                                 timeout=.02, bytesize=8, parity='N', stopbits=1, xonxoff=0)
     self.capabilities = KBCapabilities()
     self.__set_capabilities()
示例#6
0
    def __init__(self, dev):
        '''
	    Instantiates the KillerBee class for Zigduino running GoodFET firmware.
	    @type dev:   String
	    @param dev:  Serial device identifier (ex /dev/ttyUSB0)
	    @return: None
	    @rtype: None
	    '''
        self._channel = None
        self.handle = None
        self.dev = dev
        self.handle = GoodFETatmel128rfa1()
        self.handle.serInit(port=self.dev)
        self.handle.setup()

        self.__stream_open = False
        self.capabilities = KBCapabilities()
        self.__set_capabilities()
示例#7
0
    def __init__(self, dev):
        '''
        Instantiates the KillerBee class for our TelosB/TmoteSky running GoodFET firmware.
        @type dev:   String
        @param dev:  Serial device identifier (ex /dev/ttyUSB0)
        @return: None
        @rtype: None
        '''
        self._channel = None
        self.handle = None
        self.dev = dev

        os.environ["board"] = "telosb" #set enviroment variable for GoodFET code to use
        self.handle = GoodFETCCSPI()
        self.handle.serInit(port=self.dev)
        self.handle.setup()

        self.__stream_open = False
        self.capabilities = KBCapabilities()
        self.__set_capabilities()
示例#8
0
    def __init__(self,
                 dev=DEFAULT_IP,
                 recvport=DEFAULT_UDP,
                 recvip=DEFAULT_GW):
        '''
        Instantiates the KillerBee class for the Sewio Sniffer.
        @type dev:   String
        @param dev:  IP address (ex 10.10.10.2)
        @type recvport: Integer
        @param recvport: UDP port to listen for sniffed packets on.
        @type recvip: String
        @param recvip: IP address of the host, where the sniffer will send sniffed packets to.
        @return: None
        @rtype: None
        '''
        self._channel = None
        self._modulation = 0  #unknown, will be set by change channel currently
        self.handle = None
        self.dev = dev

        #TODO The receive port and receive IP address are currently not
        # obtained from or verified against the Sewio sniffer, nor are they
        # used to change the settings on the sniffer.
        self.udp_recv_port = recvport
        self.udp_recv_ip = recvip

        self.__revision_num = getFirmwareVersion(self.dev)
        if self.__revision_num not in TESTED_FW_VERS:
            print(
                "Warning: Firmware revision {0} reported by the sniffer is not currently supported. Errors may occur and dev_sewio.py may need updating."
                .format(self.__revision_num))

        self.handle = socket.socket(AF_INET, SOCK_DGRAM)
        self.handle.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
        self.handle.bind((self.udp_recv_ip, self.udp_recv_port))

        self.__stream_open = False
        self.capabilities = KBCapabilities()
        self.__set_capabilities()

        self.sniffer = OpenSniffer('10.10.10.2')