1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-30 03:38:55 -05:00
sdrangel/plugins/samplesource/sdrdaemon
2016-05-12 10:31:57 +02:00
..
CMakeLists.txt CMakeLists.txt files cleanup 2016-03-29 09:36:19 +02:00
readme.md SDRdaemon plugin: corrections in the readme 2016-03-28 02:48:33 +02:00
sdrdaemon.pro Windows build: re-implement nanomsg and sdrdaemon plugin for 64 bit version only. Created a batch installation script for Win64 2016-03-28 02:34:14 +02:00
sdrdaemonbuffer.cpp SDRdaemon plugin: Added buffer length in seconds to the GUI 2016-03-20 14:40:40 +01:00
sdrdaemonbuffer.h SDRdaemon plugin: Added buffer length in seconds to the GUI 2016-03-20 14:40:40 +01:00
sdrdaemonbufferold.cpp SDRdaemon plugin: auto adaptive throttling preparation 2016-03-15 06:13:52 +01:00
sdrdaemonbufferold.h SDRdaemon plugin: auto adaptive throttling preparation 2016-03-15 06:13:52 +01:00
sdrdaemongui.cpp Multi device support: removed as much as possible (now) DSPDeviceEngine dependencies in MainWindow to source plugin GUIs. This includes file sink handling. Applies to BladeRF only. 2016-05-12 10:31:57 +02:00
sdrdaemongui.h Multi device support: moved DSPDeviceEngine start/stop actions and status from main window to each source plugin GUI 2016-05-11 23:35:16 +02:00
sdrdaemongui.ui Multi device support: removed as much as possible (now) DSPDeviceEngine dependencies in MainWindow to source plugin GUIs. This includes file sink handling. Applies to BladeRF only. 2016-05-12 10:31:57 +02:00
sdrdaemoninput.cpp SDRdaemon plugin: send configuration phase 1 2016-03-26 21:40:54 +01:00
sdrdaemoninput.h SDRdaemon plugin: send configuration phase 1 2016-03-26 21:40:54 +01:00
sdrdaemonplugin.cpp SDRdaemon plugin: corrected plugin name 2016-02-23 10:38:08 +01:00
sdrdaemonplugin.h Copied filesource plugin folder to new sdrdaemon 2016-01-24 19:21:21 +01:00
sdrdaemonudphandler.cpp SDRdaemon plugin: send configuration phase 1 2016-03-26 21:40:54 +01:00
sdrdaemonudphandler.h SDRdaemon plugin: send configuration phase 1 2016-03-26 21:40:54 +01:00

SDRdaemon plugin

Introduction

This input sample source plugin gets its samples over tbe network from a SDRdaemon server using UDP connection. SDRdaemon refers to the SDRdaemon utility found in this Github repostory.

Interface

SDR Daemon plugin GUI

1: Frequency

This is the center frequency in kHz sent in the meta data from the distant SDRdaemon instance and corresponds to the center frequency of reception.

2: Auto correction options

These buttons control the local DSP auto correction options:

  • DC: auto remove DC component
  • IQ: auto make I/Q balance

3: Date/time

This is the current timestamp of the block of data sent from the receiver. It is refreshed about every second. This may not and is usually not the timestamp of the samples currently shown in the displays and in the audio since there is a failty large buffer in place to damper the variations of data receiving speed due to the network (see: 5.5: Main buffer length in seconds).

9: Main buffer R/W pointers gauge

There are two gauges separated by a dot in the center. Ideally these gauges should not display any value thus read and write pointers are always half a buffer apart.

  • The left gauge is the negative gauge. It is the value in percent of buffer size from the write pointer position to the read pointer position when this difference is less than half of a buffer distance. It means that the writes are leading or reads are lagging.
  • The right gauge is the positive gauge. It is the value in percent of buffer size of the difference from the read pointer position to the write pointer position when this difference is less than half of a buffer distance. It menas that the writes are lagging or reads are leading.

4: Lock and sizes

SDR Daemon status1 GUI

4.1: Stream lock

Turns green when stream is locked to meta data. Meta data carries the number of UDP packets in following frame. Lock status is obtained when the correct number of UDP packets have been received when the next meta data block occurs.

4.2: Frame size

Data is sent in frames with one meta data header. This is the size of such a frame. Frames may be compressed however the frame will be copied uncompressed to the main buffer.

4.3: Sample rate as sent in the meta data

The receiver sends the stream data rate with this nominal value

4.4: Actual stream sample rate

When the auto follow sample rate is engaged the actual system sample rate may differ from the nominal sample rate sent in the meta data. This is the actual system sample rate.

4.5: Skew rate

This is the difference in percent between nominal sample rate sent in the meta data and actual system sample rate

4.6: Main buffer R/W pointers positions

Read and write pointers should always be a half buffer distance buffer apart. This is the difference in percent of the main buffer size from this ideal position.

  • When positive it means that the read pointer is leading
  • When negative it means that the write pointer is leading (read is lagging)

This corresponds to the value shown in the gauges above (9)

5: Compressed stream status and auto follow control buttons

SDR Daemon status2 GUI

5.1: Compressed stream

When lit in green it means the stream is compressed using LZ4.

5.2: Compression ratio

This is the ratio between the compressed data size and the original data size.

5.3: CRC OK ratio

This is the percentage of received data blocks with a correct CRC. It should be as closed to 100% as possible.

5.4: LZ4 successful decodes ratio

This is the percentage of LZ4 data blocks that were successfully uncompressed. It should be as closed to 100% as possible.

5.5: Main buffer length in seconds

This is the main buffer (writes from UDP / reads from DSP engine) length in units of time (seconds). Initially the write pointer is at the start of buffer and the read pointer is on the middle. Thus it takes half a buffer length in time to get the first useful sample. The minimum length is 8s and can be as long as to fit 50 average read chunks.

5.6: Reset buffer indexes push button

This forces the write and read pointers in their initial position regardless of the contents of the buffer. The write pointer position is set at the start of buffer and the read pointer position is set at the middle.

5.7: Auto lock main buffer R/W pointers position toggle

When set it engages the auto lock of R/W pointers position. It will try to maintain a half buffer distance between read and write pointers.

5.8: Auto lock to actual stream sample rate

This is rarely necessary. Only use it when you suspect that the sender data sample rate is not exactly as advertised in the meta data. This is normally exclusive of the auto lock R/W pointers position however the GUI allows both. You are advised to chose only one of the two.

6: Network parameters

SDR Daemon status3 GUI

6.1: Local interface IP address

Address of the network interface on the local (your) machine to which the SDRdaemon server sends samples to.

6.2: Local data port

UDP port on the local (your) machine to which the SDRdaemon server sends samples to.

6.3 Distant configuration port

TCP port on the distant machine hosting the SDRdaemon 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 it does not need to be specified.

6.4: Validation button

Whenever the address (6.1), data port (6.2) or configuration port (6.3) change this button is enabled to validate the new values.

7: Configuration parameters

SDR Daemon status4 GUI

7.1: Center frequency in kHz

This is the center frequency in kHz to which the hardware attached to the SDRdaemon instance will get tuned to.

7.2: Decimation factor

These are successive powers of two from 0 (1) to 6 (64). The SDRdaemon instance will decimate the samples coming from the attached hardware by this value. Thus the sample rate (see 7.5) will be decimated by the same value before it is sent over through the network.

7.3: Center frequency position

The center frequency in the passband wil 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.

7.4: Send data to the distant SDRdaemon instance

Whenever any of the parameters change this button gets enabled. When clicked a message is sent on the configuration port of the distant machine to which the SDRdaemon listens for instructions. Leave time for the buffering system to stabilize to get the samples flow through normally.

7.5: Sample rate in kS/s

The sample rate of the hardware device attached to the SDRdaemon instance will be set to this value in kS/s.

7.6: 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.