forked from sdr/gr-osmosdr
Clayton Smith
ae2253c516
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> |
||
---|---|---|
apps | ||
cmake | ||
docs | ||
grc | ||
include/osmosdr | ||
lib | ||
python | ||
swig | ||
AUTHORS | ||
CMakeLists.txt | ||
COPYING | ||
MANIFEST.md | ||
README |
README
While primarily being developed for the OsmoSDR hardware, this block as well supports: * FUNcube Dongle through libgnuradio-fcd * FUNcube Dongle Pro+ through gr-fcdproplus * sysmocom OsmoSDR Devices through libosmosdr * RTL2832U based DVB-T dongles through librtlsdr * RTL-TCP spectrum server (see librtlsdr project) * MSi2500 based DVB-T dongles through libmirisdr * SDRplay RSP through SDRplay API library * gnuradio .cfile input through libgnuradio-blocks * RFSPACE SDR-IQ, SDR-IP, NetSDR (incl. X2 option) * AirSpy Wideband Receiver through libairspy * CCCamp 2015 rad1o Badge through libhackrf * Great Scott Gadgets HackRF through libhackrf * Nuand LLC bladeRF through libbladeRF library * Ettus USRP Devices through Ettus UHD library * Fairwaves UmTRX through Fairwaves' fork of UHD * Red Pitaya SDR transceiver (http://bazaar.redpitaya.com) * FreeSRP through libfreesrp By using the OsmoSDR block you can take advantage of a common software api in your application(s) independent of the underlying radio hardware. For installation and usage guidelines please read the documentation available at http://sdr.osmocom.org/trac/wiki/GrOsmoSDR For the impatient :) a short excerpt: The Gnu Radio block requires a recent gnuradio (>= v3.7) to be installed. Before building the block you have to make sure that all the dependencies (see list of supported devices above) you are intend to work with are properly installed. The build system of gr-osmosdr will recognize them and enable specific source/sink components thereafter. Please note: prior pulling a new version from git and compiling it, please do a "make uninstall" first to properly remove the previous version. Building with cmake: git clone git://git.osmocom.org/gr-osmosdr cd gr-osmosdr/ mkdir build cd build/ cmake ../ make sudo make install sudo ldconfig NOTE: The osmocom blocks will appear under 'Sources' and 'Sinks' categories in GRC menu.