1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-03 15:31:15 -05:00
sdrangel/plugins/channelrx/remotesink
Jon Beniston c966f1cb5a dd maximize button to MainSpectrum and expandible Channels and Features.
Add sizeToContents in ChannelGUI and FeatureGUI, called when widget is
rolled, so we can remove resizing code from all of the individual
channels and features.

In RollupContents, use minimumSizeHint for calculated size, so that
minimumWidth can come from .ui file.

In DeviceGUI::sizeToContents(), call adjustSize(), so Device GUIs start
out at minimum needed size (which should restore appearance prior to
last patch).

In stackSubWindows, use available space for channels if no
spectrum/features present.
In stackSubWindows, fix spectrum from being sized too big, resulting in
scroll bars appearing.
Reset user-defined channel width in stackSubWindows, when channels are
removed.
Don't stack maximized windows.

There's one hack in Channel/FeatureGUI::maximizeWindow(). It seems that
when maximimzing a window, QOpenGLWidgets aren't always paint properly
immediately afterwards, so the code forces an additional update. I can't
see why the first call to paintGL doesn't work.
2022-11-11 12:24:27 +00:00
..
CMakeLists.txt Install debug symbols on Windows for debug builds 2022-02-06 12:56:58 +00:00
readme.md Massive UI revamping (v7): Channel window documentation. Show device type name in index tooltip 2022-04-17 10:20:07 +02:00
remotesink.cpp Remote sink: updated threading model. Part of #1346 2022-10-14 21:10:16 +02:00
remotesink.h Remote sink: updated threading model. Part of #1346 2022-10-14 21:10:16 +02:00
remotesinkbaseband.cpp Replace deprecated QMutex(Recursive) with QRecursiveMutex 2022-09-17 23:00:07 +02:00
remotesinkbaseband.h Replace deprecated QMutex(Recursive) with QRecursiveMutex 2022-09-17 23:00:07 +02:00
remotesinkfifo.cpp Remote Output and Remote Source more fixes 2021-12-14 07:57:43 +01:00
remotesinkfifo.h Remote Output and Remote Source more fixes 2021-12-14 07:57:43 +01:00
remotesinkgui.cpp dd maximize button to MainSpectrum and expandible Channels and Features. 2022-11-11 12:24:27 +00:00
remotesinkgui.h dd maximize button to MainSpectrum and expandible Channels and Features. 2022-11-11 12:24:27 +00:00
remotesinkgui.ui Massive UI revamping (v7): Fixed sizing of channel windows. Part of #1209 2022-04-24 12:28:56 +02:00
remotesinkplugin.cpp Updated versions and changelogs 2022-10-19 17:40:14 +02:00
remotesinkplugin.h Channel plugins: use specialized ChannelGUI superclass. Handle GUI lifecycle in MainWindow 2020-10-04 22:16:09 +02:00
remotesinksender.cpp Remote plugins: added new meta data for #1074 2021-12-23 16:27:19 +01:00
remotesinksender.h Remote Sink: reworked threading model. Fixed sigabort at exit time 2021-12-23 01:47:38 +01:00
remotesinksettings.cpp Massive UI revamping (v7): persistent channel show/hide 2022-04-12 18:27:27 +02:00
remotesinksettings.h Massive UI revamping (v7): persistent channel show/hide 2022-04-12 18:27:27 +02:00
remotesinksink.cpp Remote input/sink implemented remote control (1) 2021-12-24 21:06:15 +01:00
remotesinksink.h Remote plugins: added new meta data for #1074 2021-12-23 16:27:19 +01:00
remotesinkwebapiadapter.cpp Fixed -Wunused-parameter warnings 2020-11-14 11:13:32 +01:00
remotesinkwebapiadapter.h REST API: config: GET (13): corrected missing return in deserialize methods of the adapters 2019-08-05 03:42:04 +02:00

Remote sink channel plugin

Introduction

This plugin sends I/Q samples from the baseband via UDP to a distant network end point. It can use FEC protection to prevent possible data loss inherent to UDP protocol.

Build

The plugin will be built only if the CM256cc library 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_DIR=/opt/install/cm256cc to the cmake commands.

Interface

The top and bottom bars of the channel window are described here

Remote sink channel plugin GUI

1: Decimation factor

The device baseband can be decimated in the channel and its center can be selected with (5). The resulting sample rate of the I/Q stream sent over the network is the baseband sample rate divided by this value. The value is displayed in (2).

2: Network I/Q stream sample rate

This is the sample rate in kS/s of the I/Q stream sent over the network.

3: Half-band filters chain sequence

This string represents the sequence of half-band filters used in the decimation from device baseband to resulting I/Q stream. Each character represents a filter type:

  • L: lower half-band
  • H: higher half-band
  • C: centered

4: Center frequency shift

This is the shift of the channel center frequency from the device center frequency. Its value is driven by the device sample rate , the decimation (1) and the filter chain sequence (5).

5: Half-band filter chain sequence

The slider moves the channel center frequency roughly from the lower to the higher frequency in the device baseband. The number on the right represents the filter sequence as the decimal value of a base 3 number. Each base 3 digit represents the filter type and its sequence from MSB to LSB in the filter chain:

  • 0: lower half-band
  • 1: centered
  • 2: higher half-band

6: Distant address

IP address of the distant network interface from where the I/Q samples are sent via UDP

7: Data distant port

Distant port to which the I/Q samples are sent via UDP

8: Validation button

When the return key is hit within the address (1) or port (2) the changes are effective immediately. You can also use this button to set again these values.

9: Desired number of FEC blocks per frame

This sets the number of FEC blocks per frame. 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. The two numbers next are the total number of blocks and the number of FEC blocks separated by a slash (/).

10: Transmission sample size

Number of bytes per I or Q sample in transmission.