aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2021-01-18Replace boost::shared_ptr with std::shared_ptrClayton Smith25-49/+49
Signed-off-by: Eric Wild <ewild@sysmocom.de>
2021-01-17lib/xtrx: add missing librariesgr3.8Gwenhael Goavec-Merou1-0/+4
Linking to the libxtrx libs got lost while merging the xtrx support, which led to runtime issues when trying to use it. Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com> Signed-off-by: Eric Wild <ewild@sysmocom.de>
2021-01-10xtrx: remove BOOST_FOREACH and obsolete API callClayton Smith4-5/+6
All instances of BOOST_FOREACH were removed in an earlier commit, but it was reintroduced when xtrx support was merged. I removed BOOST_FOREACH again here. Also, xtrx support fails to build because it relies on the xtrx_open_list function, which was removed from the xtrx API in 2019. It was replaced with xtrx_open_string. I don't have xtrx hardware, so I've only tested that gr-osmosdr compiles with these changes. Signed-off-by: Eric Wild <ewild@sysmocom.de>
2021-01-04hackrf: fix bandwidth settingClayton Smith2-1/+5
The T/R switching code added in ae2253c516bfdc9ae4575ecd61fe0e6cd8608a0d fails to set custom filter bandwidths because it sets bandwidth and sample rate in the wrong order. As noted in the documentation for hackrf_set_sample_rate: "If you want to override the baseband filter selection, you must do so after setting the sample rate." To solve this problem I moved the set_bandwidth call after set_sample_rate. It was also necessary to skip the call if a custom bandwidth was not requested. Signed-off-by: Eric Wild <ewild@sysmocom.de>
2020-12-18Fix hackrf receive hangs by checking before each lock waitv0.2.3Adrian Chadd1-2/+10
Fix receive path hangs if another thread closes down the hackrf receive whilst this buffer receive function is waiting to be woken up. Now: * Sleep for up to 100ms each time waiting for the cond to be kicked; * Check whether streaming is still enabled each time rather than only when the function is entered. This fixes hangs where consumers like gqrx via gnuradio will do a stop_rx/start_rx very quickly to change something, and the buffer receive path is waiting for a buffer. Signed-off-by: Eric Wild <ewild@sysmocom.de>
2020-11-19add xtrx supportCsaba Sipos11-0/+1627
Signed-off-by: Eric Wild <ewild@sysmocom.de>
2020-11-01Remove disabled OsmoSDR and MiriSDR codeClayton Smith10-1401/+0
OsmoSDR and MiriSDR support was disabled in v0.2.1 because the hardware is rare and obsolete. I think it would be useful to completely remove the associated code, since this will reduce the future maintenance burden for gr-osmosdr. Signed-off-by: Eric Wild <ewild@sysmocom.de>
2020-11-01rfspace: Remove broken asio codeClayton Smith2-162/+0
Asio sockets were replaced with native BSD sockets in e1b699fda04b114c8973e4cbef929781d2312ba5, and the old code was placed behind #ifdef USE_ASIO. Subsequent commits soon broke the asio code. Since it's been broken for a long time, I doubt anyone is using it, so it makes sense to remove it. Signed-off-by: Eric Wild <ewild@sysmocom.de>
2020-11-01Replace BOOST_FOREACH with range-based for loopsClayton Smith14-170/+163
Range-based for loops are available since C++11. Using them reduces gr-osmosdr's dependence on Boost. Here I've done the replacement using a global search-and-replace. Signed-off-by: Eric Wild <ewild@sysmocom.de>
2020-08-09HackRF: fix hackrf_source signednessv0.2.2Mike Walters2-2/+2
The LUT changes in 2e7d343fed inadvertently started interpreting samples as unsigned. This change puts it back to signed (and fixes an outdated comment). Signed-off-by: Eric Wild <ewild@sysmocom.de>
2020-08-03disable OsmoSDR as well as MiriSDR device supportv0.2.1Eric Wild1-8/+8
The actual osmosdr had only a very limited production run many years ago and is therefore of little interest to most gr-osmosdr users. Mirisdr was experimental at best, because the dongles were never widely avaialble outside of Japan and had multiple unconnected antenna ports.
2020-08-03cmake: actually make linking workEric Wild16-18/+26
Appending to lists from subdirs does not work as expected, so work around that to allow collecting the necessary libs.
2020-08-03Remove unused imports of endian.hpp.Wim Lewis3-3/+0
Signed-off-by: Eric Wild <ewild@sysmocom.de>
2020-08-03HackRF: convert _lut to float[] to reduce size by a factor of 256Wim Lewis2-18/+11
Similar to commit 33a8d1c for RTL-SDR, this uses two lookups in a 256-element LUT instead of one lookup in a 65536-element LUT, which saves a bit of CPU cache. It also eliminates a dependency on the host's byte ordering. Signed-off-by: Eric Wild <ewild@sysmocom.de>
2020-08-03fcd: restore support for FUNcube Dongle and Pro+Clayton Smith4-46/+15
Support for the original FUNcube Dongle used to live in GNU Radio's gr-fcd module, which was removed in version 3.8. As a result, gr-osmosdr lost support for both FUNcube Dongle and FUNcube Dongle Pro+. The gr-fcdproplus out-of-tree module subsequently added support for the original FUNcube Dongle, meaning that it now supports both types. As a result, FUNcube support can easily be restored in gr-osmosdr. The now. Signed-off-by: Eric Wild <ewild@sysmocom.de> XXX
2020-08-02A lot of Boost functionality is available in C++11. Since GNU Radio is ↵Clayton Smith24-76/+82
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-02I'm using an Airspy HF+ Discovery with the Soapy driver. Whenever I turn AGC ↵Anton Blanchard1-3/+8
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-02rtl_tcp: Throw an exception if TCP connection failsClayton Smith1-5/+5
Currently, rtl_tcp_source_c repeatedly calls ::connect until it succeeds. This can result in 100% CPU utilization and/or a lot of network traffic. In addition, GUI applications like Gqrx freeze up. To solve these problems, I've changed the code to report an error if ::connect fails. Signed-off-by: Eric Wild <ewild@sysmocom.de>
2020-08-02cmake: Go back CMake min ver. 3.8 by removing need for CMP0079Piotr Krysik16-19/+21
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-02-16lib/{source/sink}: Fix the set_sample_rate value return value if no changeSylvain Munaut2-2/+2
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2020-02-16hackrf: replace boost::assign with C++11Clayton Smith4-51/+26
Since GNU Radio is gradually replacing Boost with C++11, it seemed worth doing that for the HackRF blocks I was working on. This change removes all usage of boost::assign. From: Clayton Smith <argilo@gmail.com> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2020-02-16hackrf: allow transmit/receive switchingClayton Smith7-752/+693
To allow switching between transmit and receive mode within a single flow graph, I've followed the model used by the BladeRF: I factored common code into hackrf_common.cc and hackrf_common.h, and created a "_devs" map there to keep track of which devices have been previously opened. Shared pointers are used to track how many source & sink blocks are using a particular device. Because some properties (center frequency, sample rate, bandwidth, RF amplifier state, bias tee) are shared between receive and transmit, the blocks defer setting these until receiving or transmitting is started. That way a source and sink can safely use different values for these properties, and the correct values are set during T/R switching. Because the HackRF driver and/or hardware does not seem to fully transmit all samples sent to it, the code adds some silence to the end of transmissions to ensure all samples are transmitted. I've also replaced boost with C++11 code where possible. From: Clayton Smith <argilo@gmail.com> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2020-02-16airspy: fix cmake target_link_librariesClayton Smith1-1/+1
From: Clayton Smith <argilo@gmail.com> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2020-02-16airspyhf: Add initial support for Airspy HF+Alexandru Csete7-0/+627
Info: http://airspy.com/airspy-hf-plus/ From: Alexandru Csete <oz9aec@gmail.com> Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2020-02-16build: Update build system to GR 3.8 standardsSylvain Munaut17-282/+186
Part of GNURadio 3.8 migration Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2020-02-16build: Update CMakeLists.txt copyright headerSylvain Munaut16-64/+64
Part of GNURadio 3.8 migration Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2018-08-15bladerf: update bladerf to catch up with libbladeRFRobert Ghilduta2-21/+22
2018-08-15bladeRF: add support for biastee on bladeRF microRey Tucker4-0/+54
2018-08-15bladerf: remove vestigial mapRey Tucker1-12/+0
2018-08-15bladerf: use bladerf_get_channel_count where availableRey Tucker1-9/+5
2018-08-15bladerf: compatibility with older libbladeRFRey Tucker4-6/+174
Implement compatibility with older libbladeRF versions
2018-08-15bladerf: add support for MIMORey Tucker6-1123/+1665
Squashed commit of rtucker-bladerf-hierarchy branch: commit 35442da7d390919f6f9cbae3f69d6dc32ca595bb through commit 9026136cfdbc7116f55af18cb06d1731330fa13f
2018-08-15bladerf_common: tweak buffer/transfer settingsRey Tucker1-4/+11
Based on experimentation, a good value for transfers seems to be 16, but more buffers are definitely warranted for an optimal default experience.
2018-08-15bladerf: add set_rx_mux_mode functionalityRyan Tucker2-1/+40
Also plumb through as rxmux= device argument
2018-08-15bladerf: add firmware loopback modeRyan Tucker1-0/+2
2018-08-15bladerf_common: add agc= option to set gain modeRyan Tucker1-0/+10
2018-08-15bladerf: use nchan option to enable multi-channelsRyan Tucker4-52/+52
By default, the bladeRF source and sink will expose 1 channel, unless nchan is set, in which case it will expose either that number of channels, or the number of channels supported by the device if lesser. If nchan > 1 (after validation), MIMO mode is enabled.
2018-08-15bladerf: fix get_gain_names populationRyan Tucker1-9/+9
Instead of haphazardly iterating through the gain strings, just use the count returned.
2018-08-15bladerf: formatting/style fixes on .h filesRyan Tucker3-98/+99
2018-08-15bladerf: formatting/consistency fixesRyan Tucker3-602/+645
2018-08-15bladerf_common: formatting/whitespace/consistencyRyan Tucker1-352/+395
2018-08-15bladerf: replace bladerf_module with bladerf_directionRyan Tucker4-87/+60
More closely matches the handling in the API
2018-08-15bladerf_common: cleanup on set_gain_modeRyan Tucker1-15/+4
Turns out that source/sink_impl already handle the AGC->MGC gain preservation, so this was redundant and counterproductive. Also DRY the code a bit.
2018-08-15bladeRF: fix identification of channelsRyan Tucker2-29/+30
2018-08-15bladeRF: remove set_bb_gainRyan Tucker6-20/+0
This is not meaningful with bladeRF hardware
2018-08-15update copyright datesRey Tucker6-6/+6
2018-08-15formatting/wording tweaksRey Tucker1-3/+4
2018-08-15bladerf2: add get_gain_mode and set_gain_modeRyan Tucker1-4/+42
2018-08-15WIP: libbladeRF rev2 refactoring etcRyan Tucker3-63/+82
2018-08-15WIP: more port workRyan Tucker4-60/+77