While Hamlib has been primarily used by C and C++ programs, the ability to control a device via a network connection is an integral part of Hamlib. The means of network control is via TCP sockets.
The latest additions to the Hamlib network control family are the TCP based rigctld and rotctld daemons. The command set used by these daemons are simple text commands sent as ASCII strings. The commands are shared with the rigctl and rotctl test programs (with a couple of additions specific to the daemons). These daemons offer the latest in flexibility for applications using Hamlib.
For complete documentation of the command line options and control commands for the daemons, see the Hamlib Utilities section of the [Documentation] page, or jump right to the rigctld section followed by rigctld commands of the rigctld protocol.
There are PDF files PDFs for ease of viewing and printing.
The TCP daemons allow connections from multiple applications simultaneously. For example, here at N0NB I am using Fldigi and CQRlog with rigctld.
With the addition of the ctld daemons, applications coded to the Hamlib C/C++ API are not prevented from accessing the ctld daemons. Incorporated into the list of rig and rotor backends are NET rigctl and NET rotctl, rig/rot model 2 respectively.
For an application user, setup is easily done by these steps:
Some screenshots will help explain the syntax.
Later versions of CQRlog use rigctld for all Hamlib operations. Note that the path to the rigctld binary is explicitly set. This allows showing a locally installed version instead of one installed by the system's package manager. Two radio configurations are available as in older versions.
CQRlog's TRX Control window showing both available radio selections.
N.B. Some experimentation of timing parameters (if available) may be necessary to allow multiple programs to share the ctld daemon. For example, with default values Fldigi will poll very aggressively. Setting the Write delay field to some value will slow its polling. While the screen shot above was taken when I was experimenting with 75 mS, higher values may show improvement.