Commit Graph

45 Commits

Author SHA1 Message Date
Clayton Smith 159885f9e6 Replace boost::shared_ptr with std::shared_ptr
Signed-off-by: Eric Wild <ewild@sysmocom.de>
2021-01-18 21:15:57 +01:00
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 137c568c60 rtl_tcp: Throw an exception if TCP connection fails
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-02 23:46:14 +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
Dimitri Stolnikov 3c7d3f1664 rtl,rtl_tcp: add bias=0|1 parameter to switch off|on bias voltage on
gpio0
2017-06-11 22:04:03 +02:00
Dimitri Stolnikov a3b4e5c815 rtl_tcp: delete LUT table in destructor 2017-06-11 21:42:05 +02:00
Krzysztof Halasa 26f93e4687 RTL-TCP: Convert to single class model
The existing RTL TCP driver is quite different from its brother RTL_SDR.
It's much more complicated, uses gr::blocks::deinterleave and
gr::blocks::float_to_complex, and generally doesn't work correctly
(e.g. https://github.com/csete/gqrx/issues/99
 Spectrum is mirrored when filter or demodulator changes (rtl_tcp) #99)

I've converted the RTL TCP driver to the model used by RTL_SDR,
simplifying it in the process, and fixing the GQRX issue.
2017-06-11 21:30:47 +02:00
Alexandru Csete c6ed80aea7 rtl, rtl_tcp: Use std::abs.
Fixes compile error on Mac OS X.
2017-02-27 22:29:18 +01:00
Josh Blum 9ceadfb645 rtl_tcp: fix ssize_t definition for MSVC
This was actually causing a cryptic compile error because of the define.
The fix was to typedef ssize_t as ptrdiff_t, the same as bladerf_common.h
2015-12-06 15:49:44 -08:00
Dimitri Stolnikov 16cd02de84 cmake: update from gnuradio master
- Update the GrXXX modules from the GNURadio master
- Force 3.7.3 since previous FindGnuradio was broken
2014-08-26 00:09:15 +02:00
Jeremy Visser 58d95b5164 Allows connecting to IPv6 hosts if an AAAA record is present
and /etc/gai.conf is not configured to prefer IPv4 hosts.

The current logic handling the output of getaddrinfo() is
flawed in that it only ever attempts to connect() to the
first address returned.

This is a problem for both round-robin and dual-stack hosts.

Furthermore, rtl_tcp_source_c::rtl_tcp_source_c() assumes a colon
in the device string is a port number.  This prevents the use
of raw IPv6 addresses.  The function will need to be taught how
to handle IPv6 addresses contained within square brackets, e.g.
"rtl_tcp=[2001:db8::1]:1234".

Therefore further work is required to improve the handling of
multiple addresses, and also device strings containing raw IPv6
addresses.

Signed-off-by: Jeremy Visser <jeremy@visser.name>
2014-08-14 23:44:46 +02:00
Dimitri Stolnikov 5410ee53b2 device: implement "nofake" hint to exclude dummy devices from discovery
usage example:

osmosdr::device_t hint( "nofake" );
osmosdr::devices_t devs = osmosdr::device::find( hint );
2013-12-10 16:59:01 +01:00
Steve Markgraf 8cbde92c94 rtl/rtl_tcp: add 2.56e6 as 'good' sample rate
Several tests have shown that this is the
highest sample rate where no samples
are being dropped on rtl devices.

Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-12-05 00:12:27 +01:00
Steve Markgraf 1aa67f08bc rtl: add R828D tuner
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2013-11-04 21:00:08 +01:00
Dimitri Stolnikov c744a7b35a remove unused variables 2013-10-25 23:32:13 +02:00
Dimitri Stolnikov 0edfcfcba0 rtl: remove residue DC component introduced by RTL chip
received from Juha Vierinen:

A student here noticed that there is dc bias even with the rafael tuner.
We looked into this issue and found that using 127.4f instead of 127.5f
removes this bias. I assume this is associated with a bug in the digital
downconversion of the RTL chip. This change fixes the problem.
2013-07-16 23:31:29 +02:00
Dimitri Stolnikov 7e55cb9224 introduce osmosdr namespace, remove _c suffix
- the namespace conversion adopts the common gnuradio coding guidelines
- suffix removal is a preparation to support 8/16 bit complex data types
2013-05-30 16:14:22 +02:00
Dimitri Stolnikov 3e6a24e5d9 convert to gnuradio 3.7 interface 2013-05-29 22:34:40 +02:00
Dimitri Stolnikov a0c50c2df1 source/sink: rename antennas to express their function 2013-04-30 21:44:31 +02:00
Dimitri Stolnikov 901dca8135 remove APPEND from include_directories 2013-03-12 20:17:24 +01:00
Dimitri Stolnikov ede9c80455 rtl_tcp: add direct_samp and offset_tune args like used in rtl= target 2013-02-18 20:43:35 +01:00
Dimitri Stolnikov faa5123186 rtl_tcp: update rtl agc mode as well when switching tuner agc on/off 2013-02-18 20:11:54 +01:00
Dimitri Stolnikov 2ca2d8cd4d rtl_tcp: add named gain stage "IF" 2013-02-17 17:59:49 +01:00
Dimitri Stolnikov d4de9d18c1 remove unused self() 2013-02-16 12:44:38 +01:00
Dimitri Stolnikov 887dbb1457 rtl_tcp: add get_devices member which returns a default device 2013-01-10 20:27:56 +01:00
Dimitri Stolnikov 6ad2043130 rtl_tcp: use gnuradio convention for indent 2013-01-02 00:29:07 +01:00
Dimitri Stolnikov 6ae9c1b4dc update tuning ranges 2013-01-01 23:03:31 +01:00
Dimitri Stolnikov 43a6afdf28 rtl_tcp: add support for tuner caps discovery 2012-12-29 17:01:33 +01:00
Dimitri Stolnikov 2193c32ae0 rtl, rtl_tcp: enable 250k rate as it has been verified for gmr and tetra 2012-11-28 22:40:28 +01:00
Dimitri Stolnikov dee9d3e696 update available samplerates for rtl devices
250k didn't work for TETRA and GMR, 2M has.
2012-09-30 20:58:21 +02:00
Dimitri Stolnikov 10f0d89348 update gain names 2012-07-01 12:43:22 +02:00
Dimitri Stolnikov 604a9d79b0 use clip method provided by range class to pick gain values 2012-07-01 11:38:46 +02:00
Dimitri Stolnikov 1ea5a90b19 rtl: add sample rate 250k 2012-07-01 11:20:40 +02:00
Dimitri Stolnikov 8fc150c64d fix frequency range definition for e4k based devices 2012-07-01 11:18:29 +02:00
Dimitri Stolnikov 27dff71304 rtl: read out gain values via library api 2012-06-02 01:18:07 +02:00
Dimitri Stolnikov 674e084bdf rtl_tcp: remove unused variables 2012-05-27 14:02:50 +02:00
Dimitri Stolnikov 4b6018b68c remove OSMOSDR_API usage where appropriate 2012-05-27 13:50:58 +02:00
Dimitri Stolnikov 6bef750ac9 change gain mode argument to 'automatic' for clarity 2012-05-17 10:35:58 +02:00
Steve Markgraf 7f796fe1b2 rtl_tcp_source: convert commands from host to network byteorder
Signed-off-by: Steve Markgraf <steve@steve-m.de>
2012-05-13 23:06:09 +02:00
Dimitri Stolnikov 8e82b44bff rtl_tcp: change device argument syntax to host[:port]
without any arguments the code will try to connect to localhost:1234
2012-05-13 19:49:07 +02:00
Dimitri Stolnikov 9b9c5bfcf4 rtl_tcp: implement frequency correction control 2012-05-07 23:02:36 +02:00
Dimitri Stolnikov e38dc2f427 rtl_tcp: implement sample rate and gain control 2012-05-06 19:42:27 +02:00
Dimitri Stolnikov f94d8da48e rtl_tcp: add initial component files
For use with the rtl_tcp utility acting as a spectrum server.

The "empty" rtl_tcp= device hint might be used to connect to rtl_tcp
running on local machine.
2012-05-05 23:47:00 +02:00