Commit Graph

22 Commits

Author SHA1 Message Date
Eric Wild dadabeceaf cmake: actually make linking work
Appending to lists from subdirs does not work as expected, so work
around that to allow collecting the necessary libs.
2020-08-03 02:20:16 +02:00
Clayton Smith 52fcb0935f A lot of Boost functionality is available in C++11. Since GNU Radio is moving away from Boost, it probably makes sense to do so in gr-osmosdr as well.
This change removes all usage of boost::mutex,
boost::mutex::scoped_lock, boost::unique_lock, and
boost::condition_variable. It also removes usage of boost::shared_ptr
and boost::weak_ptr outside of block definitions (which must continue to
use Boost until GNU Radio 3.9).

Signed-off-by: Eric Wild <ewild@sysmocom.de>
2020-08-02 23:52:25 +02:00
Anton Blanchard 49f9b2df2a I'm using an Airspy HF+ Discovery with the Soapy driver. Whenever I turn AGC off it stops receiving samples.
On closer inspection, switching AGC off results in samples stalling for
an extended period (hundreds of milliseconds). As such, we hit the
timeout in SoapyAirspyHF::readStream() and return SOAPY_SDR_TIMEOUT
(-1).

Things go wrong at this point. It takes a long time before readStream()
is called again, presumably because we returned 0 from work(). By this
time our buffers have overflown, readStream() returns SOAPY_SDR_OVERFLOW
(-2) and work() returns 0. We loop forever, continually overflowing
buffers.

Fix this by looping in soapy_source_c::work() when ->readStream returns
SOAPY_SDR_OVERFLOW so that we consume the buffers straight away.

Signed-off-by: Anton Blanchard <anton at ozlabs.org>

Signed-off-by: Eric Wild <ewild@sysmocom.de>
2020-08-02 23:50:59 +02:00
Piotr Krysik 8cf6840da1 cmake: Go back CMake min ver. 3.8 by removing need for CMP0079
CMake 3.13 is not present in older (~2 years old)
Linux distributions and GNU Radio requires min CMake
version 3.8.

All that is needed in order to avoid bumping CMake version
is to not use 'target_link_libraries' in subdirectories.
Here this is done by creating a list of needed
libraries and adding them for linking at the end (like
it was done in gr-osmosdr before porting to GNU Radio 3.8).

One thing that is lost here is 'PRIVATE' statement in case
of FCD libraries linking.

Signed-off-by: Eric Wild <ewild@sysmocom.de>
2020-08-02 22:17:05 +02:00
Sylvain Munaut 5d59e56ff9 build: Update build system to GR 3.8 standards
Part of GNURadio 3.8 migration

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2020-02-16 09:52:00 +01:00
Sylvain Munaut 982945a477 build: Update CMakeLists.txt copyright header
Part of GNURadio 3.8 migration

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2020-02-16 09:51:37 +01:00
Josh Blum cf9549485a soapy - correct constant for frequency correction
This is a typo, some modules use the "CORR" string
in the setFrequency(dir, chan, name, value) API
to perform fine frequency adjustments.
Updated modules will use setFrequencyCorrection(),
this is support for backwards compatible implementations.
2017-04-21 11:29:30 -07:00
Josh Blum 117f648859 soapy: support set/getFrequencyCorrection() API
backwards compatible changes with #ifdef
set/get_freq_corr() call directly into the SoapySDR
equivalent when supported by the API version.
2017-04-18 16:29:02 -07:00
Josh Blum b361fa5a77 soapy: support newer getSampleRateRange() API call
Switch to the newer API call which can provide a list of ranges.
There are feature detection ifdefs provided by the library
so that code will always correctly compile.
2017-04-18 16:29:02 -07:00
Josh Blum a9e536f45b soapy - check for freq corr before invoking
set_freq_corr() is often a NOP for devices.
checking avoids crashes for some applications (ex GQRX)
2017-04-18 16:29:02 -07:00
Josh Blum 2a2236cc9e soapy: support step size in gain ranges
* This change is backwards compatible and checks for API support for step size.
* Created soapy_common.cc/h to house common gain range functions
* Moved factory mutex declaration to common source files as well
2017-02-02 11:33:34 -08:00
Josh Blum ae686c462d soapy: support newer getBandwidthRange() API call
Switch to the newer API call which can provide a list of ranges.
There are feature detection ifdefs provided by the library
so that code will always correctly compile.
2016-06-22 18:13:11 -07:00
Josh Blum 860e9a1a72 soapy: provide default gain range step
The soapysdr range type does not provide a step size,
however apps like the osmocom siggen use this size for a slider,
and a value of zero will cause a divide by zero error.

Although many ranges are not actually linear,
the idea to provide some default step to avoid crashes.
A future addition to the API may include providing a step.
2016-06-07 13:52:52 -07:00
Josh Blum e3b6560b04 soapy: support automatic bandwidth param
When the special 0.0 bandwidth setting is used, set the filter bandwidth to rate * 0.75.
Passing automatic 0.0 bandwidth for some devices was problematic.
2016-06-07 13:45:25 -07:00
Josh Blum b3d915f591 soapy: do not throw when IQ bal mode is set to off
The automatic IQ balance mode is not supported,
but we should not throw when it is set to disabled.
Setting to disabled is techinically allowable,
and currently throwing is disruptive for users.
2015-12-06 15:19:26 -08:00
Josh Blum 61184a19e7 soapy: make use of per component freq api 2015-02-24 20:36:36 -08:00
Josh Blum 53ed8918f3 soapy: ordering of elements for bb/if gain 2015-02-17 19:57:27 -08:00
Josh Blum a960600a1e soapy: start/stop hooks should use de/activate return code 2015-02-16 23:15:26 -08:00
Josh Blum cd0d9350c6 soapy: fix set_dc_offset_mode implementation 2015-02-16 21:25:38 -08:00
Josh Blum 535a505069 soapy: fixes from last commit w/ field test 2015-02-16 21:04:05 -08:00
Josh Blum 6d6a483cfb soapy: filled in the source and sink implementation 2015-02-15 19:20:01 -08:00
Josh Blum 3afcb7e04f soapy: began work on soapy sdr support 2015-02-15 17:57:12 -08:00