#ham-radio

rigctld

A client implementation for hamlib's rigctld

1 unstable release

0.1.0 Aug 6, 2023

#14 in #ham-radio

MPL-2.0 license

20KB
412 lines

Client implementation for hamlib's rigctld

This library makes use of rigctld, which is part of the hamlib. The deamon provides a network interface to communicate with connected ham radio rigs. Check out the link above on how to get the hamlib on your device.

The given client implements the extended response protocol. Furthermore, to not have to start the daemon each time by hand, an abstraction to start and stop rigctld is implemented.

As for now, only the functions to get/set the frequency and mode are implemented within the client. The code already provides the necessary building blocks to implement the other available commands of the extended response protocol too. If you are missing a function feel free to implement it yourself or open an issue. The same applies for the daemon. If your use case requires an additional command line switch, it should be relatively straightforward to add it. Make sure to checkout rigctld --help to get an overview of the available command line switches and their parameters. For now, invalid parameters are not detected. This may result in communication timeouts between the client and rigctld. It is therefore recommended to manually start rigctld with the required command line switches beforehand to check wether all options are set correctly.

Example

Within the basic example, the usage of the library is shown.

Tests

A few basic tests are provided for the deamon and the client. All enabled tests will use the dummy device interface.

Before running all tests at once it is recommended to first check if rigctld is available on the system. To check for that run cargo test daemon::tests::rigctld_exists. It will try to start a binary available within the systems PATH by the name rigctld. To execute all other tests run cargo test -- --test-threads 1. This makes sure that the tests run sequentially which is required since all started deamons will listen on the same port.

Dependencies

~5–14MB
~163K SLoC