sdrangel/sdrgui
f4exb 9be0776d32 Massive UI revamping (v7): unify top bar size to 22px and correct the getAdditionaHeight methods. Part of #1209 2022-04-26 19:44:14 +02:00
..
channel Massive UI revamping (v7): unify top bar size to 22px and correct the getAdditionaHeight methods. Part of #1209 2022-04-26 19:44:14 +02:00
device Massive UI revamping (v7): unify top bar size to 22px and correct the getAdditionaHeight methods. Part of #1209 2022-04-26 19:44:14 +02:00
dsp Channel API rework: make it inherit from QObject and removed QObject inheritance from DSP interfaces. Fixes #1147 2022-02-13 00:57:33 +01:00
feature Massive UI revamping (v7): unify top bar size to 22px and correct the getAdditionaHeight methods. Part of #1209 2022-04-26 19:44:14 +02:00
gui Massive UI revamping (v7): Restored channel highlighted by cursor function. Part of #1213 2022-04-26 00:42:26 +02:00
limerfegui
mainspectrum Massive UI revamping (v7): unify top bar size to 22px and correct the getAdditionaHeight methods. Part of #1209 2022-04-26 19:44:14 +02:00
resources Massive UI revamping (v7): Implemented channel move to another device and more 2022-04-16 16:45:53 +02:00
soapygui
CMakeLists.txt Add FramelessWindowResizer class for resizig frameless windows. 2022-04-22 18:21:24 +01:00
audio.md
configurations.md Massive UI revamping (v7): main window documentation 2022-04-19 07:03:28 +02:00
deviceuserargs.md
limerfeusbgui.md Enable LimeRFE on Windows 2021-06-29 21:35:52 +01:00
mainwindow.cpp Massive UI revamping (v7): Renumerate workspaces and workspace index in sub windows after empty workspace trimmin. Fixes #1212 2022-04-25 23:48:14 +02:00
mainwindow.h Massive UI revamping (v7): Implemented channel move to another device and more 2022-04-16 16:45:53 +02:00
mainwindow.ui Massive UI revamping (v7): features 2022-04-05 16:28:07 +02:00
readme.md Massive UI revamping (v7): main window documentation 2022-04-19 07:03:28 +02:00

readme.md

Main Window interface

When starting the user is presented with an empty window with a menu on the top bar.

Main Window

Main menu

The menu items from left to right are:

  • File:
    • Exit (shortcut Ctl-Q): Exit the program
  • View:
    • Fullscreen (Shortcut F11): Toggle full screen mode
  • Workspaces:
    • New: create a new workspace. See "workspaces" paragraph for details
    • View all: show all workspaces
    • Remove empty: remove empty workspaces, Only workspaces without any windows can be removed.
  • Preferences:
    • Configurations: opens a dialog to manage instance configurations. See configurations dialog documentation here
    • Audio: opens a dialog to choose the audio output device. See the audio management documentation here
    • Logging: opens a dialog to choose logging options. See "Logging" paragraph next for details
    • FFT: opens a dialog to run the fftwf-wisdom utility with a choice of direct and possibly reverse FFT sizes. It produces a so called wisdom file fftw-wisdom that speeds up FFT allocations. It is created at a default location and will be used at next invocations of SDRangel. See "FFT" paragraph next for details.
    • AMBE: Opens a dialog to select AMBE3000 serial devices or AMBE server addresses to use for AMBE digital voice processing. If none is selected AMBE frames decoding will be done with mbelib if available else no audio will be produced for AMBE digital voice. See "AMBE"paragraph next for details.
    • Lime RFE: Presemt only if LimeSuite library is available. This opens a dialog to control a LimeRFE device via USB. The details are provided here.
    • My Position: opens a dialog to enter your station ("My Position") coordinates in decimal degrees with north latitudes positive and east longitudes positive. This is used whenever positional data is to be displayed (APRS, DPRS, ...). For it now only works with D-Star $$CRC frames. See DSD demod plugin for details on how to decode Digital Voice modes.
    • Devices: section to deal with devices settings
      • User arguments: opens a dialog to let the user give arguments specific to a device and its instance (sequence) in the system
    • Commands: opens a dialog to manage commands. See "Commands" paragraph next.
    • Save all: save all preferences
  • Help:
    • Loaded Plugins: shows details about the loaded plugins. See "Loaded plugins" paragraph below for details.
    • About: current version and blah blah.

1: Workspaces

The different component windows are arranged freely in the MDI (Multiple Document Interface) area of the workspace. Any number of workspaces can be added that will stack upon each other by default and can be put forward using the side tabs (1). The workspace index appears on the left of the workspace top bar (2):

Workspaces

The different component windows are:

  • Device to interface and control a physical SDR hardware device connected to the system
  • Main Spectrum to show the spectrum of the baseband related to the device
  • Channel to control a channel plugin
  • Feature to control a feature plugin

The workspaces are attached to a docking area of the main window and can be undocked to be moved to another display in a multiple screen setup for example.

The workspace has a top bar with the following controls:

Workspaces

1.1: Workspace index

Shows the index of the workspaces in the list of workspaces as a "W" followd by the index.

1.2: Create new receiver

Creates a new receiver (source device set). A dialog opens to select which receiving device to use:

Workspaces Rx

1.3: Create new transmitter

Creates a new transmitter (sink device set). A dialog opens to select which transmitting device to use similarly to (2) but with a choice of transmitting devices.

1.4: Create new MIMO device

Creates a new MIMO device (MIMO device set). A dialog opens to select which MIMO device to use similarly to (2) but with a choice of MIMO devices.

1.5: Create a new feature

Creates a new feature. A dialog opens to select which feature to use:

Workspaces features

1.6: Feature presets

Opens a dialog to manage feature presets:

Workspaces feature presets

1.6.1: Feature selection

Move the cursor to select a feature. Features can be organized into groups at the top level (here "Test"). When selecting a group only Edit and Delete group are available

1.6.2: Add new preset

Save the current feature set in a new preset.

1.6.3: Update selected preset

Update the selected preset with the current feature set

1.6.4: Save presets

This button is inactive. All presets are saved at program exit or with the Preferences/ Save All main window menu.

1.6.5: Edit preset

Change preset name or the preset group to which this preset belongs. If selection is a group the group name can be changed.

1.6.6: Delete preset

Delete selected preset or selected group

1.6.7: Load preset

Load preset in the current feature set. The Features that were present before are dismissed.

1.6.8: Close dialog

This button dismisses the dialog.

1.7: Cascade windows

Arranges windows in the MDI area of the workspace as cascaded windows.

1.8: Tile windows

Arranges windows in the MDI area of the workspace as tiled windows.

1.9: Dock/undock workspace

use this button to dock or undock the workspace from the main window docking area.

1.10: Hide workspace

Use this button to hide the workspace. Use the Workspaces / View all common on the main window the show all (hidden) workspaces.

2: Preferences

2.1: Logging

Main Window logging preferences

Log message will appear as follows:

12.11.2017 15:03:37.864 (D) DownChannelizer::applyConfiguration in= 300000 , req= 375000 , out= 300000 , fc= 0
----------------------- --- ----------------------------------------------------------------------------------
(1)                     (2) (3)
  • 1: Timestamp in yyyy-MM-dd HH:mm:ss.zzz format
  • 2: Message level: (D): debug, (I): info, (W): warning, (C): critical, (F): fatal
  • 3: Message text

2.1.1: Console log minimum message level

This sets the minimum message level for a message do be displayed on the console:

  • Debug: all messages with QtDebug level and above
  • Info: all messages with QtInfo level and above
  • Warning: all messages with QtWarning level and above
  • Error: all messages with QtCritical level and above. Includes QtFatal.

2.1.2: File log minimum message level

This sets the minimum message level for a message do be logged to file:

  • Debug: all messages with QtDebug level and above
  • Info: all messages with QtInfo level and above
  • Warning: all messages with QtWarning level and above
  • Error: all messages with QtCritical level and above. Includes QtFatal.

2.1.3: File log enable

Use the checkbox to enable (check) or disable (uncheck) the dual logging to file

2.1.4: Log file selection

Use this button to open a file dialog to choose or create a new log file. There is a 2s delay before a file change is effective.

2.1.5: Log file name

The full path of the log file appears here

2.1.6: Confirm changes

Use the "OK" button to validate all changes

2.1.7: Dismiss changes

Use the "Cancel" button to dismiss all changes

2.2: FFT

When clicking on the FFT submenu a dialog opens for running the fftwf-wisdom utility with a choice of direct and possibly reverse FFT sizes. It produces a so called wisdom file fftw-wisdom that speeds up FFT allocations. It is created at a default location and will be used at next invocations of SDRangel.

Main Window AMBE

2.2.1: FFTW Wisdom program

Path to the fftwf-wisdom program. It looks in the PATH variable and the "current" directory (that is the same directory where the sdrangel binary resides).

2.2.2: Select FFTW Wisdom program

Opens a file selection dialog to look for the fftwf-wisdom program.

2.2.3: FFT maximum size

Select the maximum FFT size for precomputation. Sizes are powers of two between 128 and 32k.

2.2.4: Reverse FFT

Select this checkbox to cover reverse FFTs

2.2.5: Command line

This is the command line that will invoke the fftwf-wisdom program with its options

2.2.6: OK: launch the FFTW wisdom program

When clicking the "OK" button the fftwf-wisdom program is launched in the background. A message pop-up appears with the PID of the process and the dialog exits. A new pop-up will appear with the output content when the program completes.

2.2.7: Cancel: dismiss the dialog without execution

When clicking the "Cancel" button the dialog is dismissed without execution of the fftwf-wisdom program.

2.3: AMBE

When clicking on the AMBE submenu a dialog opens to let you specify physical AMBE devices to decode AMBE frames produced by digital voice signals (using DSD decoder plugin).

Main Window AMBE

2.3.1: AMBE server address and port or direct input

Use this freeflow text input box to specify either the address and port of an AMBE server in the form: <IPv4 address>:<port> or any directly attached physical device address like a COM port on Windows.

2.3.2: Import above address or device

Import the address or device specified in (1) into the list of used devices. The system will try to open the device or contact the server and will add it to the list only if successful.

2.3.3: Remove in use device or address

When a device or address is selected in the in use list (6) push this button to remove it from the list. The corresponding resources will be released.

2.3.4: Refresh in use list

Checks the list of devices or addresses currently in use and update the in use list (6).

2.3.5: Empty in use list

Removes all devices or addresses in use. The in use list (6) is cleared consequently. This removes all AMBE devices related resources attached to the current instance of the SDRangel program. Therefore consecutive AMBE frames decoding will be handled by the mbelib library if available or no audio will be output.

2.3.6: In use list

List of devices or addresses currently in use for AMBE frames decoding by this instance of the SDRangel program.

2.3.7: Import serial device

Imports a serial device scanned in the list of available AMBE 3000 serial devices (9) in the in use list. If this device is already in the in use list then nothing happens and this is reported in the status text (10)

2.3.8: Import all serial devices

Imports all serial devices scanned in the list of available AMBE 3000 serial devices (9) in the in use list. If any device is already in the in use list then it is not added twice.

2.3.9: List of available AMBE 3000 serial devices

This is the list of AMBE 3000 currently attached to the system directly. This list gets updated at every opening of the dialog.

2.3.10: Status text

A brief text reports the result of the current action

2.3.11: Close button

Use this button to dismiss the dialog

2.4: Commands

This is a tree view of the saved commands. Commands describe the path to an executable file, its arguments a possible link to a keystroke event that triggers the execution. Similarly to presets commands can be arranged into groups and have a description short text.

Typically an "executable file" is a script (Python, shell, whatever...) or can be a compiled program (c, c++, java, whatever...) that interacts with SDRangel using its web REST API. When called from within SDRangel they can act as "macros" allowing to perform actions automatically.

Of course any binary that resides in your system can be used that way like /bin/ls or /bin/date although these two are of anecdotal interest...

Main Window presets view

2.4.1: Command selection

You select a command or a command group by clicking on its line in the tree view. All actions (6) will be done relative to this command or command group.

2.4.2: Group

You can organize your commands into groups. Groups can be collapsed or expanded by using the caret icon on the left.

2.4.3: Description

Short description of a command.

2.4.4: Key binding indicator

  • -: no key binding
  • P: key press binding
  • R: key release binding

2.4.5: Key binding sequence

Thisis a descriptive text of the key sequence that is used for the key binding.

2.4.6: Command control or actions

The controls are located as icons at the bottom of the window:

Main Window commands

2.4.6.1: Create new command

Click on this icon to create a new command. This opens an edit dialog see the edit section (5B.6.3) for the details of the edit dialog.

2.4.6.2: Duplicate command

Click on this icon to duplicate the currently selected command (inactive on groups). Later you can edit the details of the copy with the edit dialog (see 5B.6.3 next)

2.4.6.3: Edit command or command group

Command groups

With this dialog you can rename a group using the text box or if you select an existing group with the combo this will merge the contents of the group with the existing group

Main Window command group edit

Commands

You can edit the details of the command with this dialog.

Main Window command group edit

2.4.6.3.1: Edit group

You can select an existing group with the combo or create a new one for this command using the text edit box

2.4.6.3.2: Edit description

You can edit the description using this text box. The description will appear in the tree view.

2.4.6.3.3: Executable file selection

Clicking on this button will open a file dialog to select the executable file that will be run with this command. The file selection dialog has predefined file pattern selections:

  • * for All files
  • *.py for Python files
  • *.sh or *.bat for shell or batch files
  • *.bin or *.exe for binary files
2.4.6.3.4: Executable file path

This is the full path of the selected executable file.

2.4.6.3.5: Command line arguments

Use the text box to edit the arguments given to the executable file as in program arguments.

You can use special codes to insert information specific to the application context:

  • %1: the address of the web REST API
  • %2: the port of the web REST API
  • %3: the currently selected device set index
2.4.6.3.6: Key binding

Use this checkbox to enable or disable the command execution binding to a key or combination of keys press or release event

2.4.6.3.7: Key binding capture

Use this button to capture the key or key combination that will be used for the key binding. After pushing this button just type in the key or key combination.

2.4.6.3.8: Key binding display

This shows the key or combination of keys used for the key binding.

2.4.6.3.9: Release key binding

Use this checkbox to bind the key or combination of keys to the key release event. If unchecked the binding will be associated to the key press event.

2.4.6.3.10: Confirm changes

Use the "OK" button to confirm the changes.

2.4.6.3.11: Cancel changes

Use the "Cancel" button to cancel the changes.

2.4.6.4: Run command or groups of commands

This will run the currently selected command. If the selection is a group it will run all commands of the group starting them in the displayed order. Please note that commands are run in independent processes and therefore all launched commands in the group will run concurrently.

2.4.6.5: View last command run details

This dialog will show the results of the last run including the output (merged stdout and stderr).

Main Window command output

2.4.6.5.1: Process status

When the process is not running the stop icon (■) is displayed. The background color indicate different states:

  • no color (same as background): the process has never run during this session
  • red: the process ended with error
  • green: the process ended successfully. This does not mean that there was no programmatic error.

When the process is running the play icon (▶) is displayed with an orange background.

2.4.6.5.2: Refresh data

Pushing this button will update the data displayed with the latest status. Please note that the log is displayed only when the process is terminated.

2.4.6.5.3: Start time

This is the timestamp of process start. It is filled with dots ... if the process has never started during this session.

2.4.6.5.4: End time

This is the timestamp of process end. It is filled with dots ... if the process has never terminated during this session.

2.4.6.5.3: PID

This is the process PID. It is 0 if the process has never run during this session.

2.4.6.5.6: Process kill

Use this button to kill (send SIGKILL) the running process. It has no effect if the process is not running.

2.4.6.5.7: Command line

This shows the actual command line that was used to start the process

2.4.6.5.8: Error status

This is the translation of QProcess::ProcessError. Possible values are:

  • ...: the process has never run during this session
  • Failed to start: the process could not start. For example the executable file has no execution rights actually
  • Crashed: the process ended with crash. This is the status when you killed the process
  • Timed out: the last waitFor...() function timed out.
  • Write error: an error occurred when attempting to write to the process. For example, the process may not be running, or it may have closed its input channel.
  • Read error: an error occurred when attempting to read from the process. For example, the process may not be running.
  • Unknown error: an unknown error occurred.
2.4.6.5.9: Exit code

This is the program exit code. When the process crashes this is the signal by which the process end was caused. For example if you kill the process with button (6) it sends the process a SIGKILL (code 9) and therefore the value is 9.

2.4.6.5.10: Exit status

There are only two possibilities: either the program exits normally but possibly with a non zero exit code or it ends with a crash.

2.4.6.5.11: Process log

This is the log of the process (merged stdout and stderr). Please note that it is updated only on program termination.

2.4.6.5.12: Exit

By pushing the "Close" button the process output window is closed.

2.4.6.6: Save commands

This will save the commands immediately. The commands will be automatically saved when the application exits normally.

2.4.6.7: Delete commands or group of commands

This will delete the currently selected command or if selection is a group this will delete all commands in the group.

2.4.6.8: Activate keyboard bindings

Use this button to activate the keyboard bindings. Note that you need to have this button selected (its background should be lit in beige/orange) for the key bindings to be effective.

3: Help

3.1: Loaded plugins

When clicking on Help -> Loaded Plugins from the main menu bar a dialog box appears that shows information about the plugins loaded in SDRangel:

Main Window loaded plugins

Name

Plugin display name. Tells briefly what this plugin is about.

Version

Starting with SDRangel version 2.0.0 this is the SDRangel version when the plugin was last updated.

GPL

Tells if the plugin is under GPL license.

Expansion

The plugin entry can be expanded or collapsed using the caret on the left. When expanded it shows more information about the copyright of the author and locations on the web where the plugin can be found. In all cases this is just here.

OK button

Click here when done to dismiss the dialog.