From db77414aa05074db2b6f1d3143af857fe665e278 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sat, 15 Sep 2018 10:33:04 +0200 Subject: [PATCH] SDRDaemonSource: updated documentation --- Readme.md | 4 - doc/img/SDRdaemonSource_plugin.png | Bin 36683 -> 29744 bytes doc/img/SDRdaemonSource_plugin_02.png | Bin 5841 -> 6121 bytes doc/img/SDRdaemonSource_plugin_04.png | Bin 8841 -> 7957 bytes doc/img/SDRdaemonSource_plugin_05.png | Bin 5983 -> 5458 bytes doc/img/SDRdaemonSource_plugin_06.png | Bin 0 -> 5057 bytes doc/img/SDRdaemonSource_plugin_06.xcf | Bin 0 -> 15754 bytes .../samplesource/sdrdaemonsource/readme.md | 82 +++++++----------- sdrsrv/readme.md | 6 +- 9 files changed, 36 insertions(+), 56 deletions(-) create mode 100644 doc/img/SDRdaemonSource_plugin_06.png create mode 100644 doc/img/SDRdaemonSource_plugin_06.xcf diff --git a/Readme.md b/Readme.md index 54c920605..a497a81c1 100644 --- a/Readme.md +++ b/Readme.md @@ -211,8 +211,6 @@ The [Test source plugin](https://github.com/f4exb/sdrangel/tree/master/plugins/s

SDRdaemon receiver input

-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 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. @@ -225,8 +223,6 @@ Note that this plugin does not require any of the hardware support libraries nor

SDRdaemon transmitter output

-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 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. diff --git a/doc/img/SDRdaemonSource_plugin.png b/doc/img/SDRdaemonSource_plugin.png index f435841f666d75b027df1f109e784c10347a3410..60ad568375a4f874f145914bb2c3b8bb44df98e6 100644 GIT binary patch literal 29744 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 literal 36683 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 diff --git a/doc/img/SDRdaemonSource_plugin_02.png b/doc/img/SDRdaemonSource_plugin_02.png index a9b63f0769acf9149892925ca125db32e58b57f5..5e350cecd31d7ca716927e4a1ca170b22aa205e8 100644 GIT binary patch literal 6121 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 Pn7Av+tIK_VY8w0>nWGsc literal 5841 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 diff --git a/doc/img/SDRdaemonSource_plugin_04.png b/doc/img/SDRdaemonSource_plugin_04.png index 8068428195089e0661846bda46dde4ee5801c647..2c2fd4bf6bcbb6fb5b2193f879c3769c440706b7 100644 GIT binary patch literal 7957 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 W$xY)NchDh%B>q80wCKII&wl{uFrEGY diff --git a/doc/img/SDRdaemonSource_plugin_05.png b/doc/img/SDRdaemonSource_plugin_05.png index 5a07c3a821be344d95e3d617703dd2d90ec4c242..a5ec1f341ed04606955514156c1f22542257d912 100644 GIT binary patch literal 5458 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 TP!_a|02{5))e(?zO*8ucgM^Y8 literal 0 HcmV?d00001 diff --git a/plugins/samplesource/sdrdaemonsource/readme.md b/plugins/samplesource/sdrdaemonsource/readme.md index 91a27b9c7..465ced28c 100644 --- a/plugins/samplesource/sdrdaemonsource/readme.md +++ b/plugins/samplesource/sdrdaemonsource/readme.md @@ -8,6 +8,8 @@ Forward Error Correction with a Cauchy MDS block erasure codec is used to preven Please note that there is no provision for handling out of sync UDP blocks. It is assumed that frames and block numbers always increase with possible blocks missing. Such out of sync situation has never been encountered in practice. +The distant SDRangel instance that sends the data stream is controlled via its REST API using a separate control software for example [SDRangelcli](https://github.com/f4exb/sdrangelcli) +

Build

The plugin will be built only if the [CM256cc library](https://github.com/f4exb/cm256cc) is installed in your system. For CM256cc library you will have to specify the include and library paths on the cmake command line. Say if you install cm256cc in `/opt/install/cm256cc` you will have to add `-DCM256CC_INCLUDE_DIR=/opt/install/cm256cc/include/cm256cc -DCM256CC_LIBRARIES=/opt/install/cm256cc/lib/libcm256cc.so` to the cmake commands. @@ -41,7 +43,7 @@ Stream I/Q sample rate in kS/s

2: Auto correction options and stream status

-![SDR Daemon source input AC and stream1 GUI](../../../doc/img/SDRdaemonSource_plugin_02.png) +![SDR Daemon source input stream GUI](../../../doc/img/SDRdaemonSource_plugin_02.png)

2.1: Auto correction options

@@ -76,20 +78,22 @@ There are two gauges separated by a dot in the center. Ideally these gauges shou The system tries to compensate read / write unbalance however at start or when a large stream disruption has occurred a delay of a few tens of seconds is necessary before read / write reaches equilibrium. -

4: Forward Error Correction setting and status

+

4: Data stream status

-![SDR Daemon source input FEC GUI](../../../doc/img/SDRdaemonSource_plugin_04.png) +![SDR Daemon source input stream GUI](../../../doc/img/SDRdaemonSource_plugin_04.png) -

4.1: Desired number of FEC blocks per frame

+

4.1: Sample size

-This is the number of FEC blocks per frame set by the user. A frame consists of 128 data blocks (1 meta data block followed by 127 I/Q data blocks) and a variable number of FEC blocks used to protect the UDP transmission with a Cauchy MDS block erasure correction. - -Using the Cauchy MDS block erasure correction ensures that if at least the number of data blocks (128) is received per complete frame then all lost blocks in any position can be restored. For example if 8 FEC blocks are used then 136 blocks are transmitted per frame. If only 130 blocks (128 or greater) are received then data can be recovered. If only 127 blocks (or less) are received then none of the lost blocks can be recovered. +This is the size in bits of a I or Q sample sent in the stream by the distant server.

4.2: Total number of frames and number of FEC blocks

This is the total number of frames and number of FEC blocks separated by a slash '/' as sent in the meta data block thus acknowledged by the distant server. When you set the number of FEC blocks with (4.1) the effect may not be immediate and this information can be used to monitor when it gets effectively set in the distant server. +A frame consists of 128 data blocks (1 meta data block followed by 127 I/Q data blocks) and a variable number of FEC blocks used to protect the UDP transmission with a Cauchy MDS block erasure correction. + +Using the Cauchy MDS block erasure correction ensures that if at least the number of data blocks (128) is received per complete frame then all lost blocks in any position can be restored. For example if 8 FEC blocks are used then 136 blocks are transmitted per frame. If only 130 blocks (128 or greater) are received then data can be recovered. If only 127 blocks (or less) are received then none of the lost blocks can be recovered. +

4.3: Stream status

The color of the icon indicates stream status: @@ -124,68 +128,46 @@ This counter counts the unrecoverable error conditions found (i.e. 4.4 between 1 This HH:mm:ss time display shows the time since the reset events counters button (4.6) was pushed. -

5: Network parameters

+

5: Distant server API address and port

-![SDR Daemon status3 GUI](../../../doc/img/SDRdaemonSource_plugin_05.png) +![SDR Daemon source input stream GUI](../../../doc/img/SDRdaemonSource_plugin_05.png) -

5.1: Local interface IP address

+

5.1: API connection indicator

-Address of the network interface on the local (your) machine to which the SDRdaemon Rx server sends samples to. +The "API" label is lit in green when the connection is successful -

5.2: Local data port

+

5.2: API IP address

-UDP port on the local (your) machine to which the SDRdaemon Rx server sends samples to. +IP address of the distant SDRangel instance REST API -

5.3 Distant configuration port

+

5.3: API port

-TCP port on the distant machine hosting the SDRdaemon Rx instance to send control messages to. The IP address of the host where the SDRdaemon instance runs is guessed from the address sending the data blocks hence the distant address does not need to be specified. +Port of the distant SDRangel instance REST API

5.4: Validation button

-When the return key is hit within the address (5.1), data port (5.2) or configuration port (5.3) boxes the changes are effective immediately. You can also use this button to set again these values. +When the return key is hit within the address (5.2) or port (5.3) the changes are effective immediately. You can also use this button to set again these values. Clicking on this button will send a request to the API to get the distant SDRangel instance information that is displayed in the API message box (8) -

6: Desired center frequency

+

6: Local data address and port

-This is the center frequency sent to the distant device. This becomes reflected in the main frequency dial (1.1) only when it gets acknowledged by the distant server and this frequency is sent back in the frames meta data. +![SDR Daemon source input stream GUI](../../../doc/img/SDRdaemonSource_plugin_06.png) -Use the wheels to adjust the frequency. Left click on a digit sets the cursor position at this digit. Right click on a digit sets all digits on the right to zero. This effectively floors value at the digit position. The minimum value is 0 Hz and the maximum value is 9.9 GHz. Wheels are moved with the mousewheel while pointing at the wheel or by selecting the wheel with the left mouse click and using the keyboard arrows. Pressing shift simultaneously moves digit by 5 and pressing control moves it by 2. +

6.1: Data IP address

-

7: Delay between UDP blocks transmission

+IP address of the local network interface the distant SDRangel instance sends the data to -This sets the minimum delay between transmission of an UDP block (send datagram) and the next. This allows throttling of the UDP transmission that is otherwise uncontrolled and causes network congestion. +

6.2: Data port

-The value is a percentage of the nominal time it takes to process a block of samples corresponding to one UDP block (512 bytes). This is calculated as follows: +Local port the distant SDRangel instance sends the data to - - Sample rate on the network: _SR_ - - Delay percentage: _d_ - - Number of FEC blocks: _F_ - - There are 127 blocks of I/Q data per frame (1 meta block for 128 blocks) and each I/Q data block of 512 bytes (128 samples) has a 8 bytes header (1 sample for 24 bit and 2 samples for 16 bit) thus there are 126 (16 bit) or 63 (24 bit) samples remaining effectively. - -Formula (16 bit): ((127 ✕ 126 ✕ _d_) / _SR_) / (128 + _F_) -Formula (24 bit): ((127 ✕ 63 ✕ _d_) / _SR_) / (128 + _F_) thus half the above +

6.3: Validation button

-

8: Desired distant device sample rate

+When the return key is hit within the address (5.2) or port (5.3) the changes are effective immediately. You can also use this button to set again these values. -This is the device sample rate sent to the distant device. It will be divided in the distant server by the decimation factor set with (9) to give the actual sample rate over the network. This becomes effective and displayed in (1.4) only when it gets acknowledged by the distant server and this sample rate is sent back in the frames meta data. +

7: Status message

-Use the wheels to adjust the sample rate. Left click on a digit sets the cursor position at this digit. Right click on a digit sets all digits on the right to zero. This effectively floors value at the digit position. The minimum value is 32 kS/s and the maximum value is 9.9 MS/s. Wheels are moved with the mousewheel while pointing at the wheel or by selecting the wheel with the left mouse click and using the keyboard arrows. Pressing shift simultaneously moves digit by 5 and pressing control moves it by 2. +The API status is displayed in this box. It shows "API OK" when the connection is successful and reply is OK -

9: Desired distant decimation factor

+

8: API information

-This is the decimation factor to be set in the distant server downsampler. The hardware device sample rate is divided by this factor before the I/Q blocks are sent over the network. The actual network sample rate becomes effective and displayed in (1.4) only when it gets acknowledged by the distant server and this sample rate is sent back in the frames meta data. - -

10: Center frequency position

- -The center frequency in the passband will be set either: - - - below the local oscillator (NCO) or infradyne. Actually -1/4th the bandwidth. - - above the local oscillator (NCO) or supradyne. Actually +1/4th the bandwidth. - - centered on the local oscillator or zero IF. - -

11: Other parameters hardware specific

- -These are the parameters that are specific to the hardware attached to the distant SDRdaemon instance. You have to know which device is attached to send the proper parameters. Please refer to the SDRdaemon documentation or its line help to get information on these parameters. - -

12: Send data to the distant SDRdaemon Rx instance

- -When any of the parameters change they get immediately transmitted to the distant server over the TCP link. You can however use this button to send again the complete configuration. This is handy if for some reason you are unsure of the parameters set in the distant server. +This is the information returned by the API and is the distance SDRangel instance information if transaction is successful diff --git a/sdrsrv/readme.md b/sdrsrv/readme.md index f93b6fb92..80fbf8d6f 100644 --- a/sdrsrv/readme.md +++ b/sdrsrv/readme.md @@ -16,19 +16,21 @@ The main motivations are: - Rx channels: - AM demodulator - BFM (Broadcast FM) demodulator + - Daemon sink - DSD (Digital Vouice) demodulator - NFM (Narrowband FM) demodulator - SSB demodulator - WFM (Wideband FM) demodulator - - UDP source + - UDP sink - Tx channels: - AM modulator - ATV modulator + - Daemon source - NFM (Narrowband FM) modulator - SSB modulator - WFM (Wideband FM) modulator - - UDP sink + - UDP source - Sample sources: - Airspy