This Soapy device wraps Alexandre Rouma's SDR++ block to allow access to any SDR exposed via Airspy's SpyServer.
- C++14-compatible compiler
- SoapySDR 0.8+ - https://github.com/pothosware/SoapySDR/wiki
- VOLK - https://github.com/gnuradio/volk
SoapySDR plugin for remotely accessing SpyServer devices
License: GNU General Public License v3.0
This Soapy device wraps Alexandre Rouma's SDR++ block to allow access to any SDR exposed via Airspy's SpyServer.
The thread-safe buffer currently being used has a std::queue under the hood, which will allocate memory to allow more elements to be added. Potentially, if the caller activates a stream but doesn't read, this queue could continue to allocate memory until it runs out. This is unlikely to happen, but it's a simple failure mode to address.
It should be replaced with a container that has a fixed-size container that tracks an overflow. See: https://github.com/pothosware/SoapyHackRF/blob/master/HackRF_Streaming.cpp#L44
It appears getNativeStreamFormat is not implemented so the default of CS16 is returned which then fails if you setup a stream using that value.
Other than that it seems to work well.
Dependencies: SoapySDR, VOLK
While doing a quick test on 22.04 w/ Soapy8 and latest GQRX, I added the SoapySpyServer. Running Airspy's SpyServer on the local host with either the RTLSDR or Airspy R2 I can connect to the SpyServer with GQRX using a blank entry for sample rate and a argument string of soapy=0,driver=spyserver,host=0.0.0.0,port=5555
However, after connecting the FFT and Waterfall is locked on the center freq around about 90 something MHz. I am unable to change the center freq and doing so just changes the GQRX GUI frequency range, not the actual spy server freq. I can raise/lowser gain and demod with great results on FM.
I can then disconnect from the spy server and load up SDR++ and actually use it to change the freq. Is it expected that from GQRX or other Soapy front ends that the user can change the frequency when it's not locked from doing so in the spy server config?
SoapySDR supports MinGW, but attempting to add jobs here to support it results in an immediate exit. I don't believe the SDR++ networking code I brought in was tested with MinGW, so something could be screwy in the Windows-specific initialization code under MinGW.
Reliable build output from "Test module registration" job:
Run $Env:PATH += ";$Env:INSTALL_PREFIX\bin"
$Env:PATH += ";$Env:INSTALL_PREFIX\bin"
SoapySDRUtil --check=spyserver
shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
env:
INSTALL_PREFIX: C:\Program Files\SoapySDR
Error: Process completed with exit code 1.
Depends on SoapySDR and VOLK
findSpyServerClient is inconsistent with SoapySpyServerClient
I had to add -
result["host"] = args.at("host");
result["port"] = args.at("port");
to the SoapySDR::Kwargs in findSpyServerClient because SoapySpyServerClient expected to find them in the SoapySDR::Kwargs created by findSpyServerClient.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.