The SWLog suite of programs provides for the ability to directly or indirectly control a radio via a variety of methods: direct COM control, over TCP/IP, or indirect control via the HamLib and OmniRig libraries. With this control, the logging program is able to read the frequency and mode from the receiver to aid with logging. SWLog can also tune the radio via the What's Playing Now (WPN) functions.
Radio Control Desktop
The Radio Control Desktop program provides the link between the logging program and the receiver. The receiver may be directly connected via a serial port, have a shared serial port via OmniRig, reside on the network with a HamLib driver, or be a modern SDR piece of software such as SDR Console, SDR#, or the WiNRADiO control program.
The Radio Control program provides information about the current state of the radio to the logging program so that it can be used to populate items like the frequency, filter, and mode being used to aid in lookups. This is quite useful for the What's Playing Now (WPN) functions. WPN can also provide tuning commands to the radio by clicking on a frequency.
This program is designed to supplement, rather than rather than replace, existing favorite radio or SDR programs. There are far too many radios and SDRs in existence to ever be able to reach the same level of features and functionality. So the Radio Control program is intended to serve the SWLog logging program and to provide basic functionality along side a more full-featured, specialized program.
In a few cases, such as when using a native driver (see the next column), the Radio Control program may indeed serve as the primary program.
The following receivers are native to the application, meaning that each has a custom-coded driver that only exists within the SWLog suite. These drivers are specifically tuned for the features of SWLog. In the case of SDR# and WiNRADiO, custom plug-ins are used as those programs are extensible via that method.
Ham Radio Control Libraries (HamLib)
Hamlib is an open source library that supports controlling over 220 types of radios. Although it is named HamLib, it supports many receive-only radios. SWLog works with HamLib via its rigctld TCP daemon. By using the TCP daemon, this effectively puts any radio on the home network. This allows for SWLog and the Radio Control program to have the radio connected to localhost or another, hopefully more RF quiet, room in the house. Thus HamLib aligns nicely with the goal of SWLog to scale from a single notebook to home lab to cloud.
Hamlib can be downloaded from here.
OmniRig is a set of two programs that essentially provide a multi-application front-end to a serial-port receiver. With a serial port, there can be only one connection. If one application (e.g. Radio Control) is connected, no other applications may connect. OmniRig allows multiple applications to access a virtual serial port, which then connects to the radio over the physical serial port.
SWLog supports both the 1.x and 2.x variants of OmniRig, although SWLog currently only uses virtual RIG1 for 2.x. Version 1.x can be downloaded from Afreet Software and version 2.x can be downloaded from HB9RYZ.
SWLog does not provide the facility to stream audio as there are many existing programs. For Windows, Rocket Streaming Audio Server performs quite well. For Linux (e.g. a Raspberry Pi running as a web and radio control server), PulseAudio is a viable option. Note that any streaming solution will introduce latency.