Tested as usual on Ubuntu 16.04 - 64 bit
API install OK and now libraries in /usr/local/lib are from new API 1.95.1
After this I have done a make clean; make; sudo make install for SoapySDR, SoapyRTLSDR and SoapySDRPlay
All without any error and now all libraries are updated to today date.
Now on CubicSDR. Same make clean, make. Ldd on CubicSDR show correct library link.
SoapySDRUtil --find show both devices
x64/CubicDSR find both devices and, after this, device choice is pop-up
With RTLSDR device CubicSDR run without any problem
With SDRPlay device I can see:
SDR thread starting
device init()
[INFO] using format CF32
Stream MTU: 68292
Starting readloop()
and after this Ubuntu crash with two keyboard led flashing (caps lock and last right led without label on my keyboard)
All as with previous API version
Other test done is with some Python code from SoapySDR examples
This is code:
Code: Select all
#!/usr/bin/python
import SoapySDR
from SoapySDR import * #SOAPY_SDR_ constants
import numpy #use numpy for buffers
#enumerate devices
results = SoapySDR.Device.enumerate()
for result in results: print(result)
#create device instance
#args can be user defined or from the enumeration result
args = dict(driver="sdrplay")
sdr = SoapySDR.Device(args)
#query device info
print("Antenne : ", sdr.listAntennas(SOAPY_SDR_RX, 0))
print("Gains : ", sdr.listGains(SOAPY_SDR_RX, 0))
print("Gains : ", sdr.getGain(SOAPY_SDR_RX, 0))
print("GainMode : ", sdr.hasGainMode(SOAPY_SDR_RX, 0))
print("GainMode : ", sdr.getGainMode(SOAPY_SDR_RX, 0))
print("SampleRate : ", sdr.getSampleRate(SOAPY_SDR_RX,0))
print("Bandwidth : ", sdr.getBandwidth(SOAPY_SDR_RX,0))
print("IQbalance : ", sdr.hasIQBalance(SOAPY_SDR_RX,0))
print("DCOffset : ", sdr.hasDCOffset(SOAPY_SDR_RX,0))
print("DCOffset : ", sdr.getDCOffset(SOAPY_SDR_RX,0))
print("DCOffsetMode : ", sdr.hasDCOffsetMode(SOAPY_SDR_RX,0))
print("DCOffsetMode : ", sdr.getDCOffsetMode(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, 89.3e6)
#setup a stream (complex floats)
rxStream = sdr.setupStream(SOAPY_SDR_RX, "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)
Also this test crash completely Ubuntu after device enumerate
After this test some questions:
- CubicSDR is working with RTLSDR: It is sufficient to say that it works?
- SDRPlay is correctly discovered by SoapySDRUtil and by CubicSDR: It is sufficient to say that API is working?
- There are other test that can I do for solving this problem?
- Can be a CubicSDR problem?
I need to upgrade to 16.04 for other applications, but I can't do this upgrade. CubicSDR is the only program for using SDRPlay in Linux!
Regards
Franco Spinelli
IW2DHW