1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-25 09:18:54 -05:00
sdrangel/sdrsrv
2023-11-19 13:43:10 +01:00
..
CMakeLists.txt Update CMakeLists.txt to support both Qt5 and Qt6. Add option ENABLE_QT6 2022-11-17 14:34:54 +00:00
mainserver.cpp Rewriting of copyright notices for all but plugins (done), sdrbase, sdrgui. Part of #1893 2023-11-19 13:43:10 +01:00
mainserver.h Rewriting of copyright notices for all but plugins (done), sdrbase, sdrgui. Part of #1893 2023-11-19 13:43:10 +01:00
readme.md Fix spelling 2023-04-02 20:18:12 +02:00

SDRangel Server

This folder holds the objects specific to the server (headless) version of SDRangel. The MainServer class is the headless equivalent of the MainWindow class in the GUI version and plays the same central role. Plugins are built specifically without GUI and are located in the pluginssrv folder.

This document focuses on the functional description of SDRangel server. More details on the technical architecture can be found in the developer's documentation.

The main motivations are:

  • be able to run SDRangel on hardware with less CPU/GPU requirements in particular without OpenGL support.
  • be used in sophisticated remote transponders or repeaters in a headless server configuration.
  • possibility to use Docker technology to host SDRangel server instances in a distributed environment.
  • possibility to use SDRangel remotely for the RF device interface even more distributed architectures can be supported to share workload in a cluster.
  • using the Web REST API interface developers with web technology skills can implement their own GUI.

Plugins supported

  • Rx channels:

    • AM demodulator
    • BFM (Broadcast FM) demodulator
    • Remote sink
    • DSD (Digital Vouice) demodulator
    • NFM (Narrowband FM) demodulator
    • SSB demodulator
    • WFM (Wideband FM) demodulator
    • UDP sink
  • Tx channels:

    • AM modulator
    • ATV modulator
    • Remote source
    • NFM (Narrowband FM) modulator
    • SSB modulator
    • WFM (Wideband FM) modulator
    • UDP source
  • Sample sources:

    • Airspy
    • Airspy HF
    • BladeRF input
    • FCD (Funcube Dongle) Pro
    • FCD Pro Plus
    • File source
    • HackRF input
    • LimeSDR input
    • Perseus (24 bit build only)
    • PlutoSDR input
    • RTL-SDR
    • Remote input
    • SDRplay RSP1
    • Test source
  • Sample sinks:

    • BladeRF output
    • File sink
    • HackRF output
    • LimeSDR output
    • PlutoSDR output
    • Remote output

Command line options

  • -h: help
  • -v: displays version information
  • -a: Web REST API server interface IP address
  • -p: Web REST API server port

☞ the GUI version supports the exact same options.

Interface

You can control the SDRangel application (server or GUI) by the means of the REST API. For SDRangel server the REST API is the only interface as there is no GUI. The network interface on which the REST API server listens can be controlled with the -a option and its port with the -p option. By default the server listens on the loopback address 127.0.0.1 and port 8091

Documentation

The API documentation is accessible online when the SDRangel application (GUI or server) is running at the address and port specified in the program options. The default is http://127.0.0.1:8091.

The documentation home page displays two links on the left:

API documentation home

  • Static HTML2 documentation: classical HTML based documentation
  • Interactive SwaggerUI documentation: dynamic interactive documentation using the SwaggerUI interface. It offers a way to visualize and interact with the running SDRangel application APIs resources.

Python examples

In the swagger/sdrangel/examples/ directory you can check various examples of Python scripts interacting with an instance of SDRangel using the REST API.