sannysanoff / SDRPlusPlusBrown

Cross-Platform SDR Software

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Soapy_source: more settings

nmaster2042 opened this issue · comments

On soapy_source we can change gain, sample rate, bandwidth and antenna.

A lot of devices has more settings options not shown on GUI that would provide better controls on devices (ex: bias tee, filters, etc).

This depend of the device and soapy driver but it would be great add.

i wish I had those devices to test..

All of that is available in this branch: https://github.com/ericek111/SDRPlusPlus/tree/soapysettings

One last thing missing -- custom device strings.

Albeit incomplete as of yet, someone started on a module/plugin:

https://github.com/cropinghigh/sdrpp-mirisdr-source

I'll comment here (instead of opening a new issue that will get ignored). There's a bug WRT. to LoadLibraryExW() and the
LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR flag. No .DLLs in %SOAPY_SDR_PLUGIN_PATH% will thus get loaded.
Or it the intention to have all those .DLLs in the ./modules directory? Madness if so.

I patched core/src/modules.cpp and now SDR++ works fine with SoapySDR and %SOAPY_SDR_PLUGIN_PATH%/AfedriSupport.dll. From: https://github.com/alexander-sholohov/SoapyAfedri

All of that is available in this branch: https://github.com/ericek111/SDRPlusPlus/tree/soapysettings

One last thing missing -- custom device strings.

Dear colleague, if you would create pull request, I would merge it. If it is related to soapy_source. Also, please bear in mind issues related to server-side mode ui. If you're not using SmGui, there will be issues in server mode. You must add a condition on server-side, if you have some code that works only in client mode.

I've implemented initial soapy device settings. It's available in the branch: https://github.com/alexander-sholohov/SDRPlusPlus/tree/feature/soapy-driver-start-settings

Nice add the hability to enter args manually.

Do you think it can be accumulated with the work of ericek111s' improved soapy args management he proposed ?

Because it adds all string args avaliable for the soapy device directly on the UI.

I actually tried it with success.

It would be the perfect combo to manage well soapy devices.

This is the branch with ericek111's "runtime" settings + my device initial setting + try-catch around SoapySDR::Device::make()
Please try.
https://github.com/alexander-sholohov/SDRPlusPlus/tree/feature/soapysdr-settings

I'll comment here (instead of opening a new issue that will get ignored). There's a bug WRT. to LoadLibraryExW() and the LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR flag. No .DLLs in %SOAPY_SDR_PLUGIN_PATH% will thus get loaded. Or it the intention to have all those .DLLs in the ./modules directory? Madness if so.

That’s actually fine for self contained distros. In this case soapy_source.dll will use SoapySDR.dll coming with sdrpp.exe and won’t fall back to random SoapySDR found in the paths. To organize folder with soapy modules we can set environment variable SOAPY_SDR_PLUGIN_PATH like here

@alexander-sholohov : I built your soapy_source, and I'm actually using it successfully.
It's a very good progress over original soapy_source.

I own SDRs that don't have native SDR++ support such as the funcube dongle pro+ and now I have a good control of the settings.

I made my test on desktop (with UI), I'll make some more with server mode.
SDR++ server is very flexible do put SDR and antenna far from my computer, it it's the main mode I'm using here.

I'll let you know results.

Thank you for the nice work

Hi @alexander-sholohov

I just wanted to let you know I was able to use your soapy_source in server mode exactly the same way as in GUI mode.

It's a great add for my usage of remote SDR++ server.

I merged (not merged, actually, but took the code from, because it was not rebased) into the 01c250a. Only main.cpp file related to soapy_sdr.

Please check if all is ok.

I merged (not merged, actually, but took the code from, because it was not rebased) into the 01c250a. Only main.cpp file related to soapy_sdr.

Please check if all is ok.

It compiles and works ok. Looks good.

thanks for your contribution!

@alexander-sholohov ^^ plz see if you can do something.

Я пока что задизаблил билд этого модуля на старых платформах, где не предоставляется этот плюсовый API, который ты используешь.

This is because Debian11 comes with old SoapySDR version 0.7 which doesn't have templated settings. I've disabled runtime setting when soapy_source compiles with old SoapySDR API.

If possible, plz provide pull request.

taking my words back, I see it's there already. Thank you!