#! /usr/bin/env python3 # # Example script for interfacing with SDRPlay radio. # # Modified from: https://github.com/pothosware/SoapySDR/wiki/PythonSupport # import SoapySDR from SoapySDR import * #SOAPY_SDR_ constants import numpy #use numpy for buffers import sys #enumerate devices devices = [dict(device) for device in SoapySDR.Device.enumerate()] for device in devices: print(device) if len(devices) == 0: print('No SDR devices available.') sys.exit(1) #create device instance sdr = SoapySDR.Device(devices[0]) #query device info print(sdr.listAntennas(SOAPY_SDR_RX, 0)) print(sdr.listGains(SOAPY_SDR_RX, 0)) freqs = sdr.getFrequencyRange(SOAPY_SDR_RX, 0) for freqRange in freqs: print(freqRange) #apply settings sdr.setSampleRate(SOAPY_SDR_RX, 0, 1e6) sdr.setFrequency(SOAPY_SDR_RX, 0, 912.3e6) #setup a stream (complex floats) rxStream = sdr.setupStream(SOAPY_SDR_RX, SOAPY_SDR_CF32) sdr.activateStream(rxStream) #start streaming #create a re-usable buffer for rx samples buff = numpy.array([0]*1024, numpy.complex64) #receive some samples for i in range(10): sr = sdr.readStream(rxStream, [buff], len(buff)) print(sr.ret) #num samples or error code print(sr.flags) #flags set by receive operation print(sr.timeNs) #timestamp for receive buffer #shutdown the stream sdr.deactivateStream(rxStream) #stop streaming sdr.closeStream(rxStream)