sdrangel/plugins/channelmimo/beamsteeringcwmod
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
beamsteeringcwmod.cpp Beam steering CW Mod: update threading model. Part of #1346 2022-10-10 21:45:26 +02:00
beamsteeringcwmod.h Beam steering CW Mod: update threading model. Part of #1346 2022-10-10 21:45:26 +02:00
beamsteeringcwmodbaseband.cpp Replace deprecated QMutex(Recursive) with QRecursiveMutex 2022-09-17 23:00:07 +02:00
beamsteeringcwmodbaseband.h Replace deprecated QMutex(Recursive) with QRecursiveMutex 2022-09-17 23:00:07 +02:00
beamsteeringcwmodgui.cpp dd maximize button to MainSpectrum and expandible Channels and Features. 2022-11-11 12:24:27 +00:00
beamsteeringcwmodgui.h dd maximize button to MainSpectrum and expandible Channels and Features. 2022-11-11 12:24:27 +00:00
beamsteeringcwmodgui.ui Massive UI revamping (v7): added channels 2022-04-12 16:20:45 +02:00
beamsteeringcwmodplugin.cpp Updated versions and changelogs 2022-10-19 17:40:14 +02:00
beamsteeringcwmodplugin.h Beam steering CW channel 2020-11-10 22:11:30 +01:00
beamsteeringcwmodsettings.cpp Massive UI revamping (v7): persistent channel show/hide 2022-04-12 18:27:27 +02:00
beamsteeringcwmodsettings.h Massive UI revamping (v7): persistent channel show/hide 2022-04-12 18:27:27 +02:00
beamsteeringcwmodstreamsource.cpp Beam steering CW channel 2020-11-10 22:11:30 +01:00
beamsteeringcwmodstreamsource.h Fixed -Wunused-parameter warnings 2020-11-14 11:13:32 +01:00
beamsteeringcwmodwebapiadapter.cpp Fixed -Wunused-parameter warnings 2020-11-14 11:13:32 +01:00
beamsteeringcwmodwebapiadapter.h Beam steering CW channel 2020-11-10 22:11:30 +01:00
readme.md Fix typing errors in readme's 2022-05-15 12:39:57 +02:00

readme.md

Beam Steering Continuous Wave plugin

Introduction

This MIMO transmission only (MO) plugin can be used to drive a 2 channel MO device in order to produce a continuous wave signal (CW) with a control of the phase between the two streams. When the MO device is connected to a two antenna system the resulting beam can be steered in direction using the phase difference. Control is made directly in angle units.

; This was designed more as a proof of concept of multiple output plugin rather than something really useful.

Interface

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

Beam steering CW plugin GUI

1: Channel output

The two channels A and B are connected to device output streams 0 and 1 respectively. The device must expose these channels.

Use this combo box to select channel output:

  • A,B: output A and B channels
  • A: output A channel only
  • B: output B channel only

2: Interpolation factor

The channel sample rate is interpolated by a power of two to feed the channels at baseband sample rate.

3: Channel sample rate

This is the channel sample rate in kilo or mega samples per second indicated by the k or M letter.

4: Half-band filter chain sequence display

This string represents the sequence of half-band filters used in the interpolation from channel to device baseband. Each character represents a filter type:

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

5: Center frequency shift

This is the shift of the channel center frequency from the device center frequency. Its value is driven by the baseband sample rate, the interpolation factor (2) and the filter chain sequence (4).

6: Half-band filter chain sequence adjust

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

7: Steering angle

This slider controls the beam steering angle θ in degrees when the configuration of antennas is made like this:

Beam steering CW plugin GUI