mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-12-22 17:45:48 -05:00
SDRDaemon device plugins migration to Remote device: final changes to remove daemon references. Updated version and Debian changelog
This commit is contained in:
parent
60ca383a6e
commit
8a0508c609
18
Readme.md
18
Readme.md
@ -45,7 +45,7 @@ Since version 3 transmission or signal generation is supported for BladeRF, Hack
|
||||
- [PlutoSDR output plugin](https://github.com/f4exb/sdrangel/tree/dev/plugins/samplesink/plutosdroutput)
|
||||
- [XTRX output plugin](https://github.com/f4exb/sdrangel/tree/dev/plugins/samplesink/xtrxoutput) Experimental.
|
||||
- [File output or file sink plugin](https://github.com/f4exb/sdrangel/tree/dev/plugins/samplesink/filesink)
|
||||
- [Remote device via Network with SDRdaemon](https://github.com/f4exb/sdrangel/tree/dev/plugins/samplesink/sdrdaemonsink) Linux only
|
||||
- [Remote device via Network](https://github.com/f4exb/sdrangel/tree/dev/plugins/samplesink/remoteoutput) Linux only
|
||||
|
||||
<h2>REST API</h2>
|
||||
|
||||
@ -55,9 +55,9 @@ Since version 4 a REST API is available to interact with the SDRangel applicatio
|
||||
|
||||
Since version 4 the `sdrangelsrv` binary launches a server mode SDRangel instance that runs wihout the GUI. More information is provided in the Readme file of the `sdrsrv` folder.
|
||||
|
||||
<h2>Detached RF head server (SDRdaemon)</h2>
|
||||
<h2>Detached RF head server</h2>
|
||||
|
||||
Since version 4.1 the previously separated project SDRdaemon has been modified and included in SDRangel. The `sdrangelsrv` headless variant can be used for this purpose using the Daemon source or sink channels.
|
||||
Since version 4.1 the previously separated project SDRdaemon has been modified and included in SDRangel. The `sdrangelsrv` headless variant can be used for this purpose using the Remote source or sink channels.
|
||||
|
||||
<h1>Notes on pulseaudio setup</h1>
|
||||
|
||||
@ -300,11 +300,11 @@ Note that this plugin does not require any of the hardware support libraries nor
|
||||
|
||||
The [Test source plugin](https://github.com/f4exb/sdrangel/tree/master/plugins/samplesource/testsource) is an internal continuous wave generator that can be used to carry out test of software internals.
|
||||
|
||||
<h2>SDRdaemon receiver input</h2>
|
||||
<h2>Remote input</h2>
|
||||
|
||||
Linux only.
|
||||
|
||||
The [SDRdaemon source input plugin](https://github.com/f4exb/sdrangel/tree/dev/plugins/samplesource/sdrdaemonsource) is the client side of an instance of SDRangel running the Daemon Sink channel plugin. On the "Data" line you must specify the local address and UDP port to which the remote server connects and samples will flow into the SDRangel application (default is `127.0.0.1`port `9090`). It uses the meta data to retrieve the sample flow characteristics such as sample rate and receiving center frequency. The remote is entirely controlled by the REST API. On the "API" line you can specify the address and port at which the remote REST API listens. However it is used just to display basic information about the remote.
|
||||
The [Remote input plugin](https://github.com/f4exb/sdrangel/tree/dev/plugins/samplesource/remoteinput) is the client side of an instance of SDRangel running the Remote Sink channel plugin. On the "Data" line you must specify the local address and UDP port to which the remote server connects and samples will flow into the SDRangel application (default is `127.0.0.1`port `9090`). It uses the meta data to retrieve the sample flow characteristics such as sample rate and receiving center frequency. The remote is entirely controlled by the REST API. On the "API" line you can specify the address and port at which the remote REST API listens. However it is used just to display basic information about the remote.
|
||||
|
||||
The data blocks transmitted via UDP are protected against loss with a Cauchy MDS block erasure codec. This makes the transmission more robust in particular with WiFi links.
|
||||
|
||||
@ -312,19 +312,19 @@ There is an automated skew rate compensation in place. During rate readjustment
|
||||
|
||||
This plugin will be built only if the [CM256cc library](https://github.com/f4exb/cm256cc) is installed in your system.
|
||||
|
||||
Note that this plugin does not require any of the hardware support libraries nor the libusb library. It is always available in the list of devices as `SDRdaemonSource[0]` even if no physical device is connected.
|
||||
Note that this plugin does not require any of the hardware support libraries nor the libusb library. It is always available in the list of devices as `RemoteInput` even if no physical device is connected.
|
||||
|
||||
<h2>SDRdaemon transmitter output</h2>
|
||||
<h2>Remote output</h2>
|
||||
|
||||
Linux only.
|
||||
|
||||
The [SDRdaemon sink output plugin](https://github.com/f4exb/sdrangel/tree/dev/plugins/samplesink/sdrdaemonsink) is the client side of and instance of SDRangel running the Daemon Source channel plugin. On the "Data" line you must specify the distant address and UDP port to which the plugin connects and samples from the SDRangel application will flow into the transmitter server (default is `127.0.0.1`port `9090`). The remote is entirely controlled by the REST API. On the "API" line you can specify the address and port at which the remote REST API listens. The API is pinged regularly to retrieve the status of the data blocks queue and allow rate control to stabilize the queue length. Therefore it is important to connect to the API properly (The status line must return "API OK" and the API label should be lit in green).
|
||||
The [Remote output plugin](https://github.com/f4exb/sdrangel/tree/dev/plugins/samplesink/remoteoutput) is the client side of and instance of SDRangel running the Remote Source channel plugin. On the "Data" line you must specify the distant address and UDP port to which the plugin connects and samples from the SDRangel application will flow into the transmitter server (default is `127.0.0.1`port `9090`). The remote is entirely controlled by the REST API. On the "API" line you can specify the address and port at which the remote REST API listens. The API is pinged regularly to retrieve the status of the data blocks queue and allow rate control to stabilize the queue length. Therefore it is important to connect to the API properly (The status line must return "API OK" and the API label should be lit in green).
|
||||
|
||||
The data blocks sent via UDP are protected against loss with a Cauchy MDS block erasure codec. This makes the transmission more robust in particular with WiFi links.
|
||||
|
||||
This plugin will be built only if the [CM256cc library](https://github.com/f4exb/cm256cc) IS installed in your system.
|
||||
|
||||
Note that this plugin does not require any of the hardware support libraries nor the libusb library. It is always available in the list of devices as `SDRdaemonSink[0]` even if no physical device is connected.
|
||||
Note that this plugin does not require any of the hardware support libraries nor the libusb library. It is always available in the list of devices as `RemoteOutput` even if no physical device is connected.
|
||||
|
||||
<h1>Channel plugins with special conditions</h1>
|
||||
|
||||
|
@ -40,8 +40,7 @@ At present the following plugins are available:
|
||||
- `FCDProPlusXxx` classes in `plugins/samplesource/fcdproplus`: Interface with Funcube Pro+ devices
|
||||
- `HackRFXxx` classes in `plugins/samplesource/hackrf`: Interface with HackRF devices
|
||||
- `RTLSDRXxx` classes in `plugins/samplesource/rtlsdr`: Interface with RTL-SDR devices
|
||||
- `SDRDaemonXxx` classes in `plugins/samplesource/sdrdaemon`: Special interface collecting I/Q samples from an UDP flow sent by a remote device using [SDRdaemon](https://github.com/f4exb/sdrdaemon).
|
||||
- `SDRDaemonFECXxx` classes in `plugins/samplesource/sdrdaemonfec`: Special interface collecting I/Q samples from an UDP flow sent by a remote device using [SDRdaemon](https://github.com/f4exb/sdrdaemon) with FEC protection of blocks.
|
||||
- `RemoteInput` class in `plugins/samplesource/remoteinput`: Special interface collecting I/Q samples from an UDP flow sent by a remote instance of SDRangel using Remote sink channel.
|
||||
- `FileSource` classes in `plugins/samplesource/filesource`: Special interface reading I/Q samples from a file directly into the baseband skipping the downsampling block
|
||||
|
||||
<h3>Device sample sink plugins</h3>
|
||||
|
@ -8,7 +8,7 @@ You should take note that the Windows scheduler is just a piece of crap and not
|
||||
|
||||
There are no plugins for both flavours of Funcubes since it uses Alsa interface which is Linux exclusively. Changing for the Qt audio portable interface instead could be a solution that will be investigated in the future.
|
||||
|
||||
Please be aware that the SDRdaemon plugin is not working well mainly due to the fact that it needs an OS with a decent scheduler and Windows is definitely not this sort of OS (see my previous warning). In fact depending on the case your mileage may vary however the Linux version works always beautifully so you know the options if you really want to use it!
|
||||
Please be aware that the Remote input/output plugin is not working well mainly due to the fact that it needs an OS with a decent scheduler and Windows is definitely not this sort of OS (see my previous warning). In fact depending on the case your mileage may vary however the Linux version works always beautifully so you know the options if you really want to use it!
|
||||
|
||||
<h3>Build environment</h3>
|
||||
|
||||
|
@ -35,7 +35,7 @@ static int runQtApplication(int argc, char* argv[], qtwebapp::LoggerWithFile *lo
|
||||
*/
|
||||
QCoreApplication::setOrganizationName("f4exb");
|
||||
QCoreApplication::setApplicationName("SDRangel");
|
||||
QCoreApplication::setApplicationVersion("4.4.2");
|
||||
QCoreApplication::setApplicationVersion("4.4.3");
|
||||
#if QT_VERSION >= 0x050600
|
||||
QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); // DPI support
|
||||
QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); //HiDPI pixmaps
|
||||
|
@ -57,7 +57,7 @@ static int runQtApplication(int argc, char* argv[], qtwebapp::LoggerWithFile *lo
|
||||
|
||||
QCoreApplication::setOrganizationName("f4exb");
|
||||
QCoreApplication::setApplicationName("SDRangelBench");
|
||||
QCoreApplication::setApplicationVersion("4.4.2");
|
||||
QCoreApplication::setApplicationVersion("4.4.3");
|
||||
|
||||
int catchSignals[] = {SIGQUIT, SIGINT, SIGTERM, SIGHUP};
|
||||
std::vector<int> vsig(catchSignals, catchSignals + sizeof(catchSignals) / sizeof(int));
|
||||
|
@ -56,7 +56,7 @@ static int runQtApplication(int argc, char* argv[], qtwebapp::LoggerWithFile *lo
|
||||
|
||||
QCoreApplication::setOrganizationName("f4exb");
|
||||
QCoreApplication::setApplicationName("SDRangelSrv");
|
||||
QCoreApplication::setApplicationVersion("4.4.2");
|
||||
QCoreApplication::setApplicationVersion("4.4.3");
|
||||
|
||||
int catchSignals[] = {SIGQUIT, SIGINT, SIGTERM, SIGHUP};
|
||||
std::vector<int> vsig(catchSignals, catchSignals + sizeof(catchSignals) / sizeof(int));
|
||||
|
@ -1,11 +1,11 @@
|
||||
project(cm256cc)
|
||||
|
||||
if (HAS_SSSE3)
|
||||
message(STATUS "SDRdaemonFEC: use SSSE3 SIMD" )
|
||||
message(STATUS "RemoteFEC: use SSSE3 SIMD" )
|
||||
elseif (HAS_NEON)
|
||||
message(STATUS "SDRdaemonFEC: use Neon SIMD" )
|
||||
message(STATUS "RemoteFEC: use Neon SIMD" )
|
||||
else()
|
||||
message(STATUS "SDRdaemonFEC: Unsupported architecture")
|
||||
message(STATUS "RemoteFEC: Unsupported architecture")
|
||||
return()
|
||||
endif()
|
||||
|
||||
|
7
debian/changelog
vendored
7
debian/changelog
vendored
@ -1,3 +1,10 @@
|
||||
sdrangel (4.4.3-1) unstable; urgency=medium
|
||||
|
||||
* Migration of SDRDaemon* devices to Remote* devices
|
||||
* PlutoSDR: get LP filter bandwidth from device
|
||||
|
||||
-- Edouard Griffiths, F4EXB <f4exb06@gmail.com> Sun, 03 Feb 2019 10:14:18 +0100
|
||||
|
||||
sdrangel (4.4.2-1) unstable; urgency=medium
|
||||
|
||||
* Migration of Daemon* channels to Remote* channels
|
||||
|
2
debian/control
vendored
2
debian/control
vendored
@ -13,7 +13,7 @@ Architecture: any
|
||||
Depends: libc6, libasound2, libfftw3-single3, libgcc1, libgl1-mesa-glx, libqt5core5a, libqt5gui5, libqt5multimedia5, libqt5network5, libqt5opengl5, libqt5widgets5, libqt5multimedia5-plugins, libstdc++6, libusb-1.0-0, libopencv-dev, pulseaudio, libxml2, ffmpeg, libavcodec-dev, libavformat-dev, ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: SDR/Analyzer/Generator front-end for various hardware
|
||||
SDR/Analyzer/Generator front-end for Airspy, BladeRF, HackRF, RTL-SDR, FunCube, LimeSDR, PlutoSDR.
|
||||
Also File source and sink for I/Q samples, network I/Q sources with SDRDaemon.
|
||||
Also File source and sink for I/Q samples, network I/Q sources with remote instance.
|
||||
Based on Qt5 framework and OpenGL for the spectrum and scope rendering.
|
||||
Builds on Linux, Windows and Mac O/S
|
||||
Reception modes supported:
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include "remotesink.h"
|
||||
|
||||
const PluginDescriptor RemoteSinkPlugin::m_pluginDescriptor = {
|
||||
QString("Remote channel Sink"),
|
||||
QString("Remote channel sink"),
|
||||
QString("4.4.2"),
|
||||
QString("(c) Edouard Griffiths, F4EXB"),
|
||||
QString("https://github.com/f4exb/sdrangel"),
|
||||
|
@ -28,7 +28,7 @@
|
||||
#include "remoteoutputplugin.h"
|
||||
|
||||
const PluginDescriptor RemoteOutputPlugin::m_pluginDescriptor = {
|
||||
QString("Remote output"),
|
||||
QString("Remote device output"),
|
||||
QString("4.4.3"),
|
||||
QString("(c) Edouard Griffiths, F4EXB"),
|
||||
QString("https://github.com/f4exb/sdrangel"),
|
||||
|
@ -20,7 +20,7 @@ For controls 10 to 13 to be effective you will need a recent version (up to date
|
||||
|
||||
<h3>1: Common stream parameters</h3>
|
||||
|
||||
![SDR Daemon source input stream GUI](../../../doc/img/SDRdaemonSource_plugin_01.png)
|
||||
![Remote source input stream GUI](../../../doc/img/RemoteInput_plugin_01.png)
|
||||
|
||||
<h4>1.1: Frequency</h4>
|
||||
|
||||
@ -81,7 +81,7 @@ The I/Q stream from the AirspyHF to host is downsampled by a power of two before
|
||||
|
||||
This button opens a dialog to set the transverter mode frequency translation options:
|
||||
|
||||
![SDR Daemon source input stream transverter dialog](../../../doc/img/RTLSDR_plugin_xvrt.png)
|
||||
![AirspyHF input stream transverter dialog](../../../doc/img/RTLSDR_plugin_xvrt.png)
|
||||
|
||||
Note that if you mouse over the button a tooltip appears that displays the translating frequency and if translation is enabled or disabled. When the frequency translation is enabled the button is lit.
|
||||
|
||||
|
@ -18,7 +18,7 @@ The BladeRF Host library is also provided by many Linux distributions (check its
|
||||
|
||||
<h3>1: Common stream parameters</h3>
|
||||
|
||||
![SDR Daemon source input stream GUI](../../../doc/img/SDRdaemonSource_plugin_01.png)
|
||||
![Remote source input stream GUI](../../../doc/img/RemoteInput_plugin_01.png)
|
||||
|
||||
<h4>1.1: Frequency</h4>
|
||||
|
||||
|
@ -18,7 +18,7 @@ The BladeRF Host library is also provided by many Linux distributions (check its
|
||||
|
||||
<h3>1: Common stream parameters</h3>
|
||||
|
||||
![SDR Daemon source input stream GUI](../../../doc/img/SDRdaemonSource_plugin_01.png)
|
||||
![Remote source input stream GUI](../../../doc/img/RemoteInput_plugin_01.png)
|
||||
|
||||
<h4>1.1: Frequency</h4>
|
||||
|
||||
|
@ -10,7 +10,7 @@ This input sample source plugin gets its samples from a [FunCube Dongle (FCD) Pr
|
||||
|
||||
<h3>1: Common stream parameters</h3>
|
||||
|
||||
![SDR Daemon source input stream GUI](../../../doc/img/SDRdaemonSource_plugin_01.png)
|
||||
![Remote source input stream GUI](../../../doc/img/RemoteInput_plugin_01.png)
|
||||
|
||||
<h4>1.1: Frequency</h4>
|
||||
|
||||
@ -62,7 +62,7 @@ The I/Q stream from the FCD Pro ADC is downsampled by a power of two before bein
|
||||
|
||||
This button opens a dialog to set the transverter mode frequency translation options:
|
||||
|
||||
![SDR Daemon source input stream transverter dialog](../../../doc/img/RTLSDR_plugin_xvrt.png)
|
||||
![FCD Pro source input stream transverter dialog](../../../doc/img/RTLSDR_plugin_xvrt.png)
|
||||
|
||||
Note that if you mouse over the button a tooltip appears that displays the translating frequency and if translation is enabled or disabled. When the frequency translation is enabled the button is lit.
|
||||
|
||||
|
@ -10,7 +10,7 @@ This input sample source plugin gets its samples from a [FunCube Dongle (FCD) Pr
|
||||
|
||||
<h3>1: Common stream parameters</h3>
|
||||
|
||||
![SDR Daemon source input stream GUI](../../../doc/img/SDRdaemonSource_plugin_01.png)
|
||||
![Remote source input stream GUI](../../../doc/img/RemoteInput_plugin_01.png)
|
||||
|
||||
<h4>1.1: Frequency</h4>
|
||||
|
||||
@ -62,7 +62,7 @@ The I/Q stream from the FCD Pro+ ADC is downsampled by a power of two before bei
|
||||
|
||||
This button opens a dialog to set the transverter mode frequency translation options:
|
||||
|
||||
![SDR Daemon source input stream transverter dialog](../../../doc/img/RTLSDR_plugin_xvrt.png)
|
||||
![FCD Pro+ source input stream transverter dialog](../../../doc/img/RTLSDR_plugin_xvrt.png)
|
||||
|
||||
Note that if you mouse over the button a tooltip appears that displays the translating frequency and if translation is enabled or disabled. When the frequency translation is enabled the button is lit.
|
||||
|
||||
|
@ -16,7 +16,7 @@ The HackRF Host library is also provided by many Linux distributions and is buil
|
||||
|
||||
<h3>1: Common stream parameters</h3>
|
||||
|
||||
![SDR Daemon source input stream GUI](../../../doc/img/SDRdaemonSource_plugin_01.png)
|
||||
![Remote source input stream GUI](../../../doc/img/RemoteInput_plugin_01.png)
|
||||
|
||||
<h4>1.1: Frequency</h4>
|
||||
|
||||
|
@ -37,7 +37,7 @@ Then add the following defines on `cmake` command line:
|
||||
|
||||
<h3>1: Common stream parameters</h3>
|
||||
|
||||
![SDR Daemon source input stream GUI](../../../doc/img/LimeSDRInput_plugin_1.png)
|
||||
![LimeSDR source input stream GUI](../../../doc/img/LimeSDRInput_plugin_1.png)
|
||||
|
||||
<h4>1.1: Frequency</h4>
|
||||
|
||||
@ -71,7 +71,7 @@ LimeSDR is a 2x2 MIMO device so it has two receiving channels. This shows the co
|
||||
|
||||
<h3>2: NCO, DC/IQ correction and external clock controls</h3>
|
||||
|
||||
![SDR Daemon source input stream GUI](../../../doc/img/LimeSDRInput_plugin_2.png)
|
||||
![LimeSDR source input stream GUI](../../../doc/img/LimeSDRInput_plugin_2.png)
|
||||
|
||||
<h4>2.1: NCO toggle</h4>
|
||||
|
||||
@ -97,7 +97,7 @@ Enables or disables the auto I/Q balance correction. The DC correction must be e
|
||||
|
||||
This button opens a dialog to set the transverter mode frequency translation options:
|
||||
|
||||
![SDR Daemon source input stream transverter dialog](../../../doc/img/RTLSDR_plugin_xvrt.png)
|
||||
![LimeSDR source input stream transverter dialog](../../../doc/img/RTLSDR_plugin_xvrt.png)
|
||||
|
||||
Note that if you mouse over the button a tooltip appears that displays the translating frequency and if translation is enabled or disabled. When the frequency translation is enabled the button is lit.
|
||||
|
||||
|
@ -27,7 +27,7 @@ It has a limited number of controls compared to other source interfaces. This is
|
||||
|
||||
<h3>1: Common stream parameters</h3>
|
||||
|
||||
![SDR Daemon source input stream GUI](../../../doc/img/SDRdaemonSource_plugin_01.png)
|
||||
![Remote source input stream GUI](../../../doc/img/RemoteInput_plugin_01.png)
|
||||
|
||||
<h4>1.1: Frequency</h4>
|
||||
|
||||
@ -73,7 +73,7 @@ The I/Q stream from the Perseus to host is downsampled by a power of two before
|
||||
|
||||
This button opens a dialog to set the transverter mode frequency translation options:
|
||||
|
||||
![SDR Daemon source input stream transverter dialog](../../../doc/img/RTLSDR_plugin_xvrt.png)
|
||||
![Perseus source input stream transverter dialog](../../../doc/img/RTLSDR_plugin_xvrt.png)
|
||||
|
||||
Note that if you mouse over the button a tooltip appears that displays the translating frequency and if translation is enabled or disabled. When the frequency translation is enabled the button is lit.
|
||||
|
||||
|
@ -76,7 +76,7 @@ These buttons control the software DSP auto correction options:
|
||||
|
||||
This button opens a dialog to set the transverter mode frequency translation options:
|
||||
|
||||
![SDR Daemon source input stream transverter dialog](../../../doc/img/RTLSDR_plugin_xvrt.png)
|
||||
![PlutoSDR source input stream transverter dialog](../../../doc/img/RTLSDR_plugin_xvrt.png)
|
||||
|
||||
Note that if you mouse over the button a tooltip appears that displays the translating frequency and if translation is enabled or disabled. When the frequency translation is enabled the button is lit.
|
||||
|
||||
|
@ -28,7 +28,7 @@
|
||||
#include "remoteinputplugin.h"
|
||||
|
||||
const PluginDescriptor RemoteInputPlugin::m_pluginDescriptor = {
|
||||
QString("Remote input"),
|
||||
QString("Remote device input"),
|
||||
QString("4.4.3"),
|
||||
QString("(c) Edouard Griffiths, F4EXB"),
|
||||
QString("https://github.com/f4exb/sdrangel"),
|
||||
|
@ -16,7 +16,7 @@ If you want to benefit from the direct sampling you will have to compile and ins
|
||||
|
||||
<h3>1: Common stream parameters</h3>
|
||||
|
||||
![SDR Daemon source input stream GUI](../../../doc/img/SDRdaemonSource_plugin_01.png)
|
||||
![Remote source input stream GUI](../../../doc/img/RemoteInput_plugin_01.png)
|
||||
|
||||
<h4>1.1: Frequency</h4>
|
||||
|
||||
@ -64,7 +64,7 @@ With SR as the sample rate before decimation Fc is calculated as:
|
||||
|
||||
This button opens a dialog to set the transverter mode frequency translation options:
|
||||
|
||||
![SDR Daemon source input stream transverter dialog](../../../doc/img/RTLSDR_plugin_xvrt.png)
|
||||
![RTLSDR source input stream transverter dialog](../../../doc/img/RTLSDR_plugin_xvrt.png)
|
||||
|
||||
Note that if you mouse over the button a tooltip appears that displays the translating frequency and if translation is enabled or disabled. When the frequency translation is enabled the button is lit.
|
||||
|
||||
|
@ -71,7 +71,7 @@ The top part described by number tags is common for all devices. The bottom part
|
||||
|
||||
<h3>1: Common stream parameters</h3>
|
||||
|
||||
![SDR Daemon source input stream GUI](../../../doc/img/SDRdaemonSource_plugin_01.png)
|
||||
![Remote source input stream GUI](../../../doc/img/RemoteInput_plugin_01.png)
|
||||
|
||||
<h4>1.1: Frequency</h4>
|
||||
|
||||
|
@ -14,7 +14,7 @@ The plugin is present in the core of the software and thus is always present in
|
||||
|
||||
<h3>1: Common stream parameters</h3>
|
||||
|
||||
![SDR Daemon source input stream GUI](../../../doc/img/SDRdaemonSource_plugin_01.png)
|
||||
![Remote source input stream GUI](../../../doc/img/RemoteInput_plugin_01.png)
|
||||
|
||||
<h4>1.1: Frequency</h4>
|
||||
|
||||
|
@ -48,7 +48,7 @@ For a group the syntax is the same but the group name is prefixed with `@` like:
|
||||
|
||||
<h3>1: Common stream parameters</h3>
|
||||
|
||||
![SDR Daemon source input stream GUI](../../../doc/img/LimeSDRInput_plugin_1.png)
|
||||
![XTRX source input stream GUI](../../../doc/img/LimeSDRInput_plugin_1.png)
|
||||
|
||||
<h4>1.1: Frequency</h4>
|
||||
|
||||
@ -82,7 +82,7 @@ LimeSDR is a 2x2 MIMO device so it has two receiving channels. This shows the co
|
||||
|
||||
<h3>2: NCO, DC/IQ correction and external clock controls</h3>
|
||||
|
||||
![SDR Daemon source input stream GUI](../../../doc/img/LimeSDRInput_plugin_2.png)
|
||||
![XTRX source input stream GUI](../../../doc/img/LimeSDRInput_plugin_2.png)
|
||||
|
||||
<h4>2.1: NCO toggle</h4>
|
||||
|
||||
|
@ -4,11 +4,11 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
||||
set(PLUGIN_PREFIX "../../../plugins/samplesink/remoteoutput")
|
||||
|
||||
if (HAS_SSSE3)
|
||||
message(STATUS "SDRdaemonFEC: use SSSE3 SIMD" )
|
||||
message(STATUS "RemoteOutput: use SSSE3 SIMD" )
|
||||
elseif (HAS_NEON)
|
||||
message(STATUS "SDRdaemonFEC: use Neon SIMD" )
|
||||
message(STATUS "RemoteOutput: use Neon SIMD" )
|
||||
else()
|
||||
message(STATUS "SDRdaemonFEC: Unsupported architecture")
|
||||
message(STATUS "RemoteOutput: Unsupported architecture")
|
||||
return()
|
||||
endif()
|
||||
|
||||
|
@ -11,7 +11,7 @@ SUBDIRS += sdrgui
|
||||
#SUBDIRS += libhackrf
|
||||
#SUBDIRS += libairspy
|
||||
SUBDIRS += plugins/samplesource/filesource
|
||||
SUBDIRS += plugins/samplesource/sdrdaemon
|
||||
SUBDIRS += plugins/samplesource/remoteinput
|
||||
#SUBDIRS += plugins/samplesource/rtlsdr
|
||||
#SUBDIRS += plugins/samplesource/hackrf
|
||||
#SUBDIRS += plugins/samplesource/airspy
|
||||
|
@ -43,7 +43,7 @@ SUBDIRS += plugins/samplesource/limesdrinput
|
||||
SUBDIRS += plugins/samplesource/perseus
|
||||
SUBDIRS += plugins/samplesource/plutosdrinput
|
||||
SUBDIRS += plugins/samplesource/rtlsdr
|
||||
SUBDIRS += plugins/samplesource/sdrdaemonsource
|
||||
SUBDIRS += plugins/samplesource/remoteinput
|
||||
SUBDIRS += plugins/samplesource/sdrplay
|
||||
SUBDIRS += plugins/samplesource/soapysdrinput
|
||||
SUBDIRS += plugins/samplesource/testsource
|
||||
@ -54,11 +54,11 @@ SUBDIRS += plugins/samplesink/filesink
|
||||
SUBDIRS += plugins/samplesink/hackrfoutput
|
||||
SUBDIRS += plugins/samplesink/limesdroutput
|
||||
SUBDIRS += plugins/samplesink/plutosdroutput
|
||||
SUBDIRS += plugins/samplesink/sdrdaemonsink
|
||||
SUBDIRS += plugins/samplesink/remoteoutput
|
||||
SUBDIRS += plugins/samplesink/soapysdroutput
|
||||
|
||||
SUBDIRS += plugins/channelrx/chanalyzer
|
||||
SUBDIRS += plugins/channelrx/daemonsink
|
||||
SUBDIRS += plugins/channelrx/remotesink
|
||||
SUBDIRS += plugins/channelrx/demodam
|
||||
#SUBDIRS += plugins/channelrx/demodatv
|
||||
SUBDIRS += plugins/channelrx/demodbfm
|
||||
@ -70,7 +70,7 @@ SUBDIRS += plugins/channelrx/demodssb
|
||||
SUBDIRS += plugins/channelrx/demodwfm
|
||||
SUBDIRS += plugins/channelrx/udpsink
|
||||
|
||||
SUBDIRS += plugins/channeltx/daemonsource
|
||||
SUBDIRS += plugins/channeltx/remotesource
|
||||
SUBDIRS += plugins/channeltx/modam
|
||||
SUBDIRS += plugins/channeltx/modatv
|
||||
SUBDIRS += plugins/channeltx/modnfm
|
||||
|
@ -37,7 +37,7 @@ SUBDIRS += plugins/samplesource/filesource
|
||||
SUBDIRS += plugins/samplesource/hackrfinput
|
||||
SUBDIRS += plugins/samplesource/limesdrinput
|
||||
CONFIG(!MSVC):SUBDIRS += plugins/samplesource/plutosdrinput
|
||||
CONFIG(MSVC):SUBDIRS += plugins/samplesource/sdrdaemonsource
|
||||
CONFIG(MSVC):SUBDIRS += plugins/samplesource/remoteinput
|
||||
SUBDIRS += plugins/samplesource/rtlsdr
|
||||
CONFIG(MSVC):SUBDIRS += plugins/samplesource/soapysdrinput
|
||||
SUBDIRS += plugins/samplesource/testsource
|
||||
@ -47,7 +47,7 @@ CONFIG(!MSVC):SUBDIRS += plugins/samplesink/bladerf2output
|
||||
SUBDIRS += plugins/samplesink/hackrfoutput
|
||||
SUBDIRS += plugins/samplesink/limesdroutput
|
||||
CONFIG(!MSVC):SUBDIRS += plugins/samplesink/plutosdroutput
|
||||
CONFIG(MSVC):SUBDIRS += plugins/samplesink/sdrdaemonsink
|
||||
CONFIG(MSVC):SUBDIRS += plugins/samplesink/remoteoutput
|
||||
CONFIG(MSVC):SUBDIRS += plugins/samplesink/soapysdroutput
|
||||
SUBDIRS += plugins/channelrx/chanalyzer
|
||||
SUBDIRS += plugins/channelrx/demodam
|
||||
|
@ -21,8 +21,8 @@
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>. //
|
||||
///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef SDRDAEMON_CHANNEL_SDRDAEMONDATABLOCK_H_
|
||||
#define SDRDAEMON_CHANNEL_SDRDAEMONDATABLOCK_H_
|
||||
#ifndef CHANNEL_REMOTEDATABLOCK_H_
|
||||
#define CHANNEL_REMOTEDATABLOCK_H_
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
@ -171,4 +171,4 @@ public:
|
||||
RemoteSuperBlock *m_superBlocks;
|
||||
};
|
||||
|
||||
#endif /* SDRDAEMON_CHANNEL_SDRDAEMONDATABLOCK_H_ */
|
||||
#endif /* CHANNEL_REMOTEDATABLOCK_H_ */
|
||||
|
@ -39,7 +39,7 @@ RemoteDataQueue::~RemoteDataQueue()
|
||||
|
||||
while ((data = pop()) != 0)
|
||||
{
|
||||
qDebug() << "SDRDaemonDataQueue::~SDRDaemonDataQueue: data block was still in queue";
|
||||
qDebug() << "RemoteDataQueue::~RemoteDataQueue: data block was still in queue";
|
||||
delete data;
|
||||
}
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ RemoteDataReadQueue::~RemoteDataReadQueue()
|
||||
|
||||
while ((data = pop()) != 0)
|
||||
{
|
||||
qDebug("SDRDaemonDataReadQueue::~SDRDaemonDataReadQueue: data block was still in queue");
|
||||
qDebug("RemoteDataReadQueue::~RemoteDataReadQueue: data block was still in queue");
|
||||
delete data;
|
||||
}
|
||||
}
|
||||
@ -50,7 +50,7 @@ void RemoteDataReadQueue::push(RemoteDataBlock* dataBlock)
|
||||
{
|
||||
if (length() >= m_maxSize)
|
||||
{
|
||||
qWarning("SDRDaemonDataReadQueue::push: queue is full");
|
||||
qWarning("RemoteDataReadQueue::push: queue is full");
|
||||
m_full = true; // stop filling the queue
|
||||
RemoteDataBlock *data = m_dataReadQueue.takeLast();
|
||||
delete data;
|
||||
@ -94,7 +94,7 @@ void RemoteDataReadQueue::readSample(Sample& s, bool scaleForTx)
|
||||
{
|
||||
if (length() >= m_maxSize/2)
|
||||
{
|
||||
qDebug("SDRDaemonDataReadQueue::readSample: initial pop new block: queue size: %u", length());
|
||||
qDebug("RemoteDataReadQueue::readSample: initial pop new block: queue size: %u", length());
|
||||
m_blockIndex = 1;
|
||||
m_dataBlock = m_dataReadQueue.takeFirst();
|
||||
convertDataToSample(s, m_blockIndex, m_sampleIndex, scaleForTx);
|
||||
@ -135,12 +135,12 @@ void RemoteDataReadQueue::readSample(Sample& s, bool scaleForTx)
|
||||
m_dataBlock = 0;
|
||||
|
||||
if (length() == 0) {
|
||||
qWarning("SDRDaemonDataReadQueue::readSample: try to pop new block but queue is empty");
|
||||
qWarning("RemoteDataReadQueue::readSample: try to pop new block but queue is empty");
|
||||
}
|
||||
|
||||
if (length() > 0)
|
||||
{
|
||||
//qDebug("SDRDaemonDataReadQueue::readSample: pop new block: queue size: %u", length());
|
||||
//qDebug("RemoteDataReadQueue::readSample: pop new block: queue size: %u", length());
|
||||
m_blockIndex = 1;
|
||||
m_dataBlock = m_dataReadQueue.takeFirst();
|
||||
convertDataToSample(s, m_blockIndex, m_sampleIndex, scaleForTx);
|
||||
|
@ -32,13 +32,13 @@
|
||||
|
||||
#include "plugin/pluginmanager.h"
|
||||
|
||||
const QString PluginManager::m_sdrDaemonSourceHardwareID = "SDRdaemonSource";
|
||||
const QString PluginManager::m_sdrDaemonSourceDeviceTypeID = "sdrangel.samplesource.sdrdaemonsource";
|
||||
const QString PluginManager::m_remoteInputHardwareID = "RemoteInput";
|
||||
const QString PluginManager::m_remoteInputDeviceTypeID = "sdrangel.samplesource.remoteinput";
|
||||
const QString PluginManager::m_fileSourceHardwareID = "FileSource";
|
||||
const QString PluginManager::m_fileSourceDeviceTypeID = "sdrangel.samplesource.filesource";
|
||||
|
||||
const QString PluginManager::m_sdrDaemonSinkHardwareID = "SDRdaemonSink";
|
||||
const QString PluginManager::m_sdrDaemonSinkDeviceTypeID = "sdrangel.samplesink.sdrdaemonsink";
|
||||
const QString PluginManager::m_remoteOutputHardwareID = "RemoteOutput";
|
||||
const QString PluginManager::m_remoteOutputDeviceTypeID = "sdrangel.samplesink.remoteoutput";
|
||||
const QString PluginManager::m_fileSinkHardwareID = "FileSink";
|
||||
const QString PluginManager::m_fileSinkDeviceTypeID = "sdrangel.samplesink.filesink";
|
||||
|
||||
|
@ -103,16 +103,16 @@ private:
|
||||
PluginAPI::SamplingDeviceRegistrations m_sampleSinkRegistrations; //!< Output sink plugins (one per device kind) register here
|
||||
|
||||
// "Local" sample source device IDs
|
||||
static const QString m_sdrDaemonSourceHardwareID; //!< SDRdaemon source hardware ID
|
||||
static const QString m_sdrDaemonSourceDeviceTypeID; //!< SDRdaemon source plugin ID
|
||||
static const QString m_fileSourceHardwareID; //!< FileSource source hardware ID
|
||||
static const QString m_fileSourceDeviceTypeID; //!< FileSource source plugin ID
|
||||
static const QString m_remoteInputHardwareID; //!< Remote input hardware ID
|
||||
static const QString m_remoteInputDeviceTypeID; //!< Remote input plugin ID
|
||||
static const QString m_fileSourceHardwareID; //!< FileSource source hardware ID
|
||||
static const QString m_fileSourceDeviceTypeID; //!< FileSource source plugin ID
|
||||
|
||||
// "Local" sample sink device IDs
|
||||
static const QString m_sdrDaemonSinkHardwareID; //!< SDRdaemon source hardware ID
|
||||
static const QString m_sdrDaemonSinkDeviceTypeID; //!< SDRdaemon source plugin ID
|
||||
static const QString m_fileSinkHardwareID; //!< FileSource source hardware ID
|
||||
static const QString m_fileSinkDeviceTypeID; //!< FileSink sink plugin ID
|
||||
static const QString m_remoteOutputHardwareID; //!< Remote output hardware ID
|
||||
static const QString m_remoteOutputDeviceTypeID; //!< Remote output plugin ID
|
||||
static const QString m_fileSinkHardwareID; //!< FileSource source hardware ID
|
||||
static const QString m_fileSinkDeviceTypeID; //!< FileSink sink plugin ID
|
||||
|
||||
void loadPluginsDir(const QDir& dir);
|
||||
};
|
||||
|
@ -61,8 +61,8 @@ SOURCES += audio/audiodevicemanager.cpp\
|
||||
audio/audionetsink.cpp\
|
||||
channel/channelsinkapi.cpp\
|
||||
channel/channelsourceapi.cpp\
|
||||
channel/sdrdaemondataqueue.cpp\
|
||||
channel/sdrdaemondatareadqueue.cpp\
|
||||
channel/remotedataqueue.cpp\
|
||||
channel/remotedatareadqueue.cpp\
|
||||
commands/command.cpp\
|
||||
device/devicesourceapi.cpp\
|
||||
device/devicesinkapi.cpp\
|
||||
@ -139,9 +139,9 @@ HEADERS += audio/audiodevicemanager.h\
|
||||
audio/audionetsink.h\
|
||||
channel/channelsinkapi.h\
|
||||
channel/channelsourceapi.h\
|
||||
channel/sdrdaemondataqueue.h\
|
||||
channel/sdrdaemondatareadqueue.h\
|
||||
channel/sdrdaemondatablock.h\
|
||||
channel/remotedataqueue.h\
|
||||
channel/remotedatareadqueue.h\
|
||||
channel/remotedatablock.h\
|
||||
commands/command.h\
|
||||
device/devicesourceapi.h\
|
||||
device/devicesinkapi.h\
|
||||
|
@ -1,6 +1,4 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////
|
||||
// SDRdaemon - send I/Q samples read from a SDR device over the network via UDP //
|
||||
// with FEC protection. GNUradio interface. //
|
||||
// //
|
||||
// http://stackoverflow.com/questions/10990618/calculate-rolling-moving-average-in-c //
|
||||
// //
|
||||
@ -124,4 +122,4 @@ class MovingAverageUtilVar
|
||||
};
|
||||
|
||||
|
||||
#endif /* GR_SDRDAEMONFEC_LIB_MOVINGAVERAGE_H_ */
|
||||
#endif /* _UTIL_MOVINGAVERAGE_H_ */
|
||||
|
@ -232,7 +232,7 @@ This is the sampling rate in kS/s of the I/Q stream extracted from the device af
|
||||
|
||||
<h4>2.4. Center frequency</h4>
|
||||
|
||||
This is the current center frequency in kHz with dot separated thousands (MHz, GHz). On devices for which frequency can be directly controlled (i.e. all except File Source and SDRdaemon) you can use the thumbwheels to set the frequency. Thumbwheels move with the mouse wheel when hovering over a digit.
|
||||
This is the current center frequency in kHz with dot separated thousands (MHz, GHz). On devices for which frequency can be directly controlled (i.e. all except File Source and Remote Input) you can use the thumbwheels to set the frequency. Thumbwheels move with the mouse wheel when hovering over a digit.
|
||||
|
||||
When left clicking on a digit a cursor is set on it and you can also use the arrows to move the corresponding thumbwheel.
|
||||
|
||||
|
@ -8,7 +8,7 @@ The main motivations are:
|
||||
- be able to run SDRangel on hardware with less CPU/GPU requirements in particular without OpenGL suport.
|
||||
- be used in sophisticated remote transponders or repeaters in a headless server configuration.
|
||||
- possibility to use Docker technology to host SDRangel server instances in a distributed environment.
|
||||
- using [SDRdaemon](https://github.com/f4exb/sdrdaemon) for the RF device interface even more distributed architectures can be supported to share workload in a cluster.
|
||||
- possibility to use SDRangel remotely for the RF device interface even more distributed architectures can be supported to share workload in a cluster.
|
||||
- using the Web REST API interface developers with web technology skills can implement their own GUI.
|
||||
|
||||
<h2>Plugins supported</h2>
|
||||
@ -16,7 +16,7 @@ The main motivations are:
|
||||
- Rx channels:
|
||||
- AM demodulator
|
||||
- BFM (Broadcast FM) demodulator
|
||||
- Daemon sink
|
||||
- Remote sink
|
||||
- DSD (Digital Vouice) demodulator
|
||||
- NFM (Narrowband FM) demodulator
|
||||
- SSB demodulator
|
||||
@ -26,7 +26,7 @@ The main motivations are:
|
||||
- Tx channels:
|
||||
- AM modulator
|
||||
- ATV modulator
|
||||
- Daemon source
|
||||
- Remote source
|
||||
- NFM (Narrowband FM) modulator
|
||||
- SSB modulator
|
||||
- WFM (Wideband FM) modulator
|
||||
@ -44,7 +44,7 @@ The main motivations are:
|
||||
- Perseus (24 bit build only)
|
||||
- PlutoSDR input
|
||||
- RTL-SDR
|
||||
- SDRdaemon source
|
||||
- Remote input
|
||||
- SDRplay RSP1
|
||||
- Test source
|
||||
|
||||
@ -54,7 +54,7 @@ The main motivations are:
|
||||
- HackRF output
|
||||
- LimeSDR output
|
||||
- PlutoSDR output
|
||||
- SDRdaemon sink
|
||||
- Remote output
|
||||
|
||||
<h2>Command line options</h2>
|
||||
|
||||
|
@ -15,9 +15,7 @@ commands = [
|
||||
["/deviceset/0/device", "PUT", None, {"hwType": "AirspyHF"}, "setup AirspyHF on Rx 0"],
|
||||
["/preset", "PATCH", None, {"deviceSetIndex": 0, "preset": {"groupName": "OM144", "centerFrequency": 145480000, "type": "R", "name": "Rept + Simplex + DV"}}, "load preset on Rx 0"],
|
||||
["/deviceset", "POST", None, None, "add Rx 1 device set"],
|
||||
["/deviceset/1/device", "PUT", None, {"hwType": "SDRdaemonSource"}, "setup SDRdaemonSource on Rx 1"],
|
||||
# ["/preset", "PATCH", None, {"deviceSetIndex": 1, "preset": {"groupName": "OM430", "centerFrequency": 439550000, "type": "R", "name": "F5ZKP Daemon RPi3 SUSE"}}, "load preset on Rx 1"],
|
||||
# ["/preset", "PATCH", None, {"deviceSetIndex": 1, "preset": {"groupName": "PRO400", "centerFrequency": 463880000, "type": "R", "name": "PM Nice NXDN daemon"}}, "load preset on Rx 1"],
|
||||
["/deviceset/1/device", "PUT", None, {"hwType": "RemoteInput"}, "setup RemoteInput on Rx 1"],
|
||||
["/preset", "PATCH", None, {"deviceSetIndex": 1, "preset": {"groupName": "PRO400", "centerFrequency": 463750000, "type": "R", "name": "PM nice low remote"}}, "load preset on Rx 1"],
|
||||
["/deviceset", "POST", None, None, "add Rx 2 device set"],
|
||||
["/deviceset/2/device", "PUT", None, {"hwType": "Perseus"}, "setup Perseus on Rx 2"],
|
||||
|
@ -64,11 +64,11 @@ copy plugins\samplesource\bladerf1input\%1\inputbladerf1.dll %2\plugins\sampleso
|
||||
copy plugins\samplesource\bladerf2input\%1\inputbladerf2.dll %2\plugins\samplesource
|
||||
copy plugins\samplesource\limesdrinput\%1\inputlimesdr.dll %2\plugins\samplesource
|
||||
copy plugins\samplesource\plutosdrinput\%1\inputplutosdr.dll %2\plugins\samplesource
|
||||
REM copy plugins\samplesource\sdrdaemonsource\%1\inputsdrdaemonsource.dll %2\plugins\samplesource
|
||||
REM copy plugins\samplesource\remoteinput\%1\inputremote.dll %2\plugins\samplesource
|
||||
copy plugins\samplesink\filesink\%1\outputfilesink.dll %2\plugins\samplesink
|
||||
copy plugins\samplesink\bladerf1output\%1\outputbladerf1.dll %2\plugins\samplesink
|
||||
copy plugins\samplesink\bladerf2output\%1\outputbladerf2.dll %2\plugins\samplesink
|
||||
copy plugins\samplesink\hackrfoutput\%1\outputhackrf.dll %2\plugins\samplesink
|
||||
copy plugins\samplesink\limesdroutput\%1\outputlimesdr.dll %2\plugins\samplesink
|
||||
copy plugins\samplesink\plutosdroutput\%1\outputplutosdr.dll %2\plugins\samplesink
|
||||
REM copy plugins\samplesink\sdrdaemonsink\%1\outputsdrdaemonsink.dll %2\plugins\samplesink
|
||||
REM copy plugins\samplesink\remoteoutput\%1\outputremote.dll %2\plugins\samplesink
|
||||
|
@ -72,7 +72,7 @@ copy plugins\channeltx\modwfm\%1\modwfm.dll %2\plugins\channeltx
|
||||
copy plugins\channeltx\udpsink\%1\udpsink.dll %2\plugins\channeltx
|
||||
copy plugins\samplesource\filesource\%1\inputfilesource.dll %2\plugins\samplesource
|
||||
copy plugins\samplesource\testsource\%1\inputtestsource.dll %2\plugins\samplesource
|
||||
copy plugins\samplesource\sdrdaemonsource\%1\inputsdrdaemonsource.dll %2\plugins\samplesource
|
||||
copy plugins\samplesource\remoteinput\%1\inputremote.dll %2\plugins\samplesource
|
||||
copy plugins\samplesource\rtlsdr\%1\inputrtlsdr.dll %2\plugins\samplesource
|
||||
copy plugins\samplesource\hackrfinput\%1\inputhackrf.dll %2\plugins\samplesource
|
||||
copy plugins\samplesource\airspy\%1\inputairspy.dll %2\plugins\samplesource
|
||||
|
Loading…
Reference in New Issue
Block a user