Reference¶
pyrf.devices.thinkrf¶
pyrf.config¶
-
class
pyrf.config.SweepEntry(fstart=2400000000, fstop=2400000000, fstep=100000000, fshift=0, decimation=0, antenna=1, gain='vlow', ifgain=0, spp=1024, ppb=1, trigtype='none', level_fstart=50000000, level_fstop=10000000000, level_amplitude=-100)¶ Sweep entry for
pyrf.devices.thinkrf.WSA4000.sweep_add()Parameters: - fstart – starting frequency in Hz
- fstop – ending frequency in Hz
- shift – the frequency shift in Hz
- decimation – the decimation value (0 or 4 - 1023)
- antenna – the antenna (1 or 2)
- gain – the RF gain value (‘high’, ‘medium’, ‘low’ or ‘vlow’)
- ifgain – the IF gain in dB (-10 - 34)
- spp – samples per packet
- ppb – packets per block
- trigtype – trigger type (‘none’ or ‘level’)
- level_fstart – level trigger starting frequency in Hz
- level_fstop – level trigger ending frequency in Hz
- level_amplitude – level trigger minimum in dBm
-
class
pyrf.config.TriggerSettings(trigtype='NONE', fstart=None, fstop=None, amplitude=None)¶ Trigger settings for
pyrf.devices.thinkrf.WSA4000.trigger().Parameters: - trigtype – “LEVEL” or “NONE” to disable
- fstart – starting frequency in Hz
- fstop – ending frequency in Hz
- amplitude – minumum level for trigger in dBm
-
exception
pyrf.config.TriggerSettingsError¶
pyrf.vrt¶
-
class
pyrf.vrt.ContextPacket(pkt_type, word, socket)¶ A Context Packet received from
pyrf.vrt.Stream.read_packet()-
fields¶ a dict containing field names and values from the packet
-
is_context_packet(ptype=None)¶ Parameters: ptype – “Receiver”, “Digitizer” or None for any packet type Returns: True if this packet matches the type passed
-
is_data_packet()¶ Returns: False
-
-
class
pyrf.vrt.DataPacket(word, socket)¶ A Data Packet received from
pyrf.vrt.Stream.read_packet()-
data¶ a
pyrf.vrt.IQDataobject containing the packet data
-
is_context_packet(ptype=None)¶ Returns: False
-
is_data_packet()¶ Returns: True
-
-
class
pyrf.vrt.IQData(binary_data)¶ Data Packet values as a lazy collection of (I, Q) tuples read from binary_data.
This object behaves as an immutable python sequence, e.g. you may do any of the following:
points = len(iq_data) i_and_q = iq_data[5] for i, q in iq_data: print i, q
-
numpy_array()¶ Return a numpy array of I, Q values for this data similar to:
array([[ -44, 8], [ -40, 60], [ -12, 92], ..., [-132, -8], [-124, 56], [ -44, 80]], dtype=int16)
-
-
exception
pyrf.vrt.InvalidDataReceived¶
-
class
pyrf.vrt.Stream(socket)¶ A VRT Packet Stream interface wrapping socket.
-
has_data()¶ Returns: True if there is data waiting on socket.
-
read_packet()¶ Read a complete packet from socket and return either a
pyrf.vrt.ContextPacketor apyrf.vrt.DataPacket.
-
pyrf.util¶
-
pyrf.util.read_data_and_reflevel(dut, points=1024)¶ Wait for and capture a data packet and a reference level packet.
Returns: (data_pkt, reflevel_pkt)
-
pyrf.util.socketread(socket, count, flags=None)¶ Retry socket read until count data received, like reading from a file.
pyrf.numpy_util¶
-
pyrf.numpy_util.compute_fft(dut, data_pkt, reflevel_pkt)¶ Return an array of dBm values by computing the FFT of the passed data and reference level.
Parameters: - dut (pyrf.devices.thinkrf.WSA4000) – WSA device
- data_pkt (pyrf.vrt.DataPacket) – packet containing samples
- reflevel_pkt (pyrf.vrt.ContextPacket) – packet containing ‘reflevel’ value
This function uses only dut.ADC_DYNAMIC_RANGE, data_pkt.data and reflevel_pkt[‘reflevel’].
Returns: numpy array of dBm values as floats