LIbrary for Amateur Radio Equipment Control Applications.
 
 
 
 
 
 
Go to file
Daniele Forsi IU5HKX 64ec35845c Return "Feature not available" for range_list_number and range_list_name
Test case:
tests/rigctl get_conf range_list_number get_conf range_list_name
error = *1:event.c(269):rig_poll_routine_start entered
*1:event.c(309):rig_poll_routine_start returning(0)
rig.c(294):add_opened_rig entered
rig.c(306):add_opened_rig returning2(0)
rig.c(1669):rig_open returning2(0)
*1:rig.c(6904):rig_get_powerstat entered
*rig.c(6918) trace
**2:dummy.c(1680):dummy_get_powerstat entered
**2:dummy.c(1683):dummy_get_powerstat returning(0)
*1:rig.c(6931):rig_get_powerstat returning(0)
Backend version: 20240709.0, Status: Stable
rigctl_parse: called, interactive=0
rigctl_parse: vfo_opt=0
rig_set_cache_timeout_ms: called selection=0, ms=1000
rig_set_cache_timeout_ms: called selection=0, ms=1000
rigctl_get_conf:
rig_token_lookup called for range_list_number
rig_confparam_lookup called for range_list_number
rig_get_conf2 called
Feature not available

error = **2:dummy.c(1680):dummy_get_powerstat entered
**2:dummy.c(1683):dummy_get_powerstat returning(0)
*1:rig.c(6931):rig_get_powerstat returning(0)
Backend version: 20240709.0, Status: Stable
rigctl_parse: called, interactive=0
rigctl_parse: vfo_opt=0
rig_set_cache_timeout_ms: called selection=0, ms=1000
rig_set_cache_timeout_ms: called selection=0, ms=1000
rigctl_get_conf:
rig_token_lookup called for range_list_number
rig_confparam_lookup called for range_list_number
rig_get_conf2 called
Feature not available
rigctl_parse: called, interactive=0
rigctl_parse: vfo_opt=0
rigctl_get_conf:
rig_token_lookup called for range_list_name
rig_confparam_lookup called for range_list_name
rig_get_conf2 called
Feature not available
2025-09-03 21:11:16 +02:00
.github Excercise the detect logic for INDI on the macOS CI 2025-08-24 14:04:54 +02:00
amplifiers More cppcheck stuff in amplifiers/ and rotators/ 2025-08-04 09:59:23 -04:00
android Fix ambiguity between system includes and Hamlib includes 2025-07-22 23:33:57 +02:00
bindings Fix build failure on openSUSE Tumbleweed, Slowroll and Leap 16.0 2025-08-22 22:02:01 +02:00
c++ Add a .gitignore for C++ tests 2025-08-03 09:35:03 +02:00
doc Rename README.osx to README.macos 2025-09-01 17:13:19 -05:00
docker-build Remove vim from Dockerfile since it is not portable 2024-12-22 06:37:50 -06:00
extra Fix typos 2025-08-03 10:49:23 +02:00
include Start removing conditional pthreads use. 2025-08-24 19:53:44 -04:00
lib Fix include config.h 2025-08-30 11:18:51 +02:00
macros Fix list of dependecies of aclocal.m4 2025-05-27 09:01:44 +02:00
rigs [dummy] Add code to get_conf static_data 2025-09-03 20:32:09 +02:00
rotators Merge GitHub PR #1876 2025-08-31 20:11:12 -05:00
scripts Fix typos 2025-08-16 11:52:55 +02:00
security Fix include config.h 2025-08-30 11:18:51 +02:00
simulators [simulators] Remove unused includes 2025-08-30 09:43:45 +02:00
src Return "Feature not available" for range_list_number and range_list_name 2025-09-03 21:11:16 +02:00
tests [rigctl] Use "fout" for consistency 2025-09-03 20:32:09 +02:00
.editorconfig Add new levels: RFPOWER_METER, COMP_METER, VD_METER and ID_METER, supported at least by most of recent Icom rigs. Add level NOTCHF_RAW for manual notch frequency without specified unit for Icom rigs. Add level MONITOR_GAIN. Add functions DUAL_WATCH and DIVERSITY, supported now by K3/K3S. Fix VOXDELAY level commands for many Icom rigs. Add MONITOR_GAIN level for Icom rigs. Fix and add many K3 commands and add specific rig models for K3S, KX2 and KX3 -- they are very similar to K3, but have slight differences. Extend dump_caps output for rigctl: add complete details of ext levels and frequency ranges. Tests have been performed on IC-7000, IC-756ProIII, IC-7300, IC-7600 and K3. 2019-05-30 09:37:49 +03:00
.gitignore Move list of ignored file to tests/ directory 2025-08-18 07:47:12 -05:00
AUTHORS Fix typos 2025-08-16 11:52:55 +02:00
Android.mk Add legal headers 2024-08-28 15:50:43 +01:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2024-03-01 08:22:03 -06:00
CONTRIBUTING.md Update CONTRIBUTING.md to be relevant to Hamlib 2025-09-01 17:27:13 -05:00
COPYING Updated GPL 2/LGPL 2.1 licenses 2011-08-22 21:38:34 -05:00
COPYING.LIB Updated GPL 2/LGPL 2.1 licenses 2011-08-22 21:38:34 -05:00
ChangeLog Update ChangeLog 2020-10-17 11:40:26 -05:00
INSTALL Update INSTALL to align with current practice 2025-09-01 17:27:13 -05:00
LICENSE Update LICENSE 2022-08-26 22:32:25 -05:00
Makefile.am Rename README.osx to README.macos 2025-09-01 17:13:19 -05:00
NEWS Update NEWS 2025-08-31 14:36:55 -04:00
PLAN Fix typos in man pages and other documentation 2024-11-24 19:24:35 +01:00
README Add README back 2022-06-17 15:56:42 -05:00
README.betatester Update READMEs 2025-09-01 17:27:13 -05:00
README.coding_style Fix typos in man pages and other documentation 2024-11-24 19:24:35 +01:00
README.developer Update READMEs 2025-09-01 17:27:13 -05:00
README.freqranges Fix typos 2025-08-16 11:52:55 +02:00
README.macos Rename README.osx to README.macos 2025-09-01 17:13:19 -05:00
README.md Update READMEs 2025-09-01 17:27:13 -05:00
README.multicast Change modelist to modes array 2023-10-22 13:18:51 -05:00
README.release Fix spelling errors 2020-07-24 09:02:48 +02:00
README.windows Update information on Windows builds 2025-09-01 17:35:22 -05:00
SECURITY.md Fix SECURITY.md 2020-05-09 07:17:19 -05:00
Segfault-award Update Segfault-award for netrigctl_open() fix 2025-08-12 11:59:33 -05:00
THANKS minor changes 2008-07-14 01:31:55 +00:00
VFOs.txt Update VFOs.txt 2021-04-04 08:07:55 -05:00
astyle.sh Add astyle.sh to format all .c files 2022-11-16 16:54:49 -06:00
bootstrap Remove bashisms from shell scripts 2020-05-27 10:54:35 -05:00
configure.ac Add requirement for POSIX threads (pthreads) 2025-08-24 19:53:44 -04:00
cppcheck.sh Add build directory search for includes to cppcheck.sh 2025-06-07 10:46:31 -04:00
hamlib.m4 Add LIBUSB flags to hamlib.m4 2021-08-17 09:17:20 -05:00
hamlib.pc.in Fix hardcoded pcconfig libdir 2017-09-03 12:33:00 -05:00

README.md

Hamlib

(C) Frank Singleton 2000 (vk3fcs@ix.netcom.com)
(C) Stephane Fillod 2000-2011
(C) The Hamlib Group 2000-2025

The purpose of this project is to provide stable, flexible, shared libraries that enable quicker development of amateur radio equipment control applications.

The master repository is https://github.com/Hamlib/Hamlib
The backup repository is https://sourceforge.net/projects/hamlib/

Daily snapshots are available at https://n0nb.users.sourceforge.net/

Development happens on the GitHub master (often by merging feature branches) and each release has a release branch.

Many amateur radio transceivers come with serial (RS-232, USB, etc.) or Ethernet/WiFi/Bluetooth interfaces that allow software to control the radio. This project will endeavour to provide shared libraries that greatly simplify the application programmer's interaction with radio equipment and other controllable devices such as rotators, amplifiers, etc.

Supported Radios

The Hamlib Wiki page, Supported Radios, contains a snapshot of the supported radios at the time of the last Hamlib release. Go to https://github.com/Hamlib/Hamlib/wiki to reach the Wiki.

Hamlib Design

The library provides functions for radio, rotator and amplifier control, and data retrieval for supported devices. A number of functions useful for calculating distance and bearing and grid square conversion are included.

libhamlib.so - library that provides generic API for all RIG types. This is what application programs will "see". Will have different names on other platforms, e.g. libhamlib-4.dll on MS windows. Also contains all radio, rotator and amplifier "backends" provided by Hamlib.

Backend Examples are:

  1. yaesu will provide connectivity to Yaesu FT 747GX Transceiver, FT 847 "Earth Station", etc. via a unified API.

  2. xxxx will provide connectivity to the Wiz-bang moon-melter 101A (yikes..)

Hamlib will also enable developers to develop professional looking GUI's towards a unified control library API, and they will not have to worry about the underlying connection towards physical hardware.

Initially serial (RS232) connectivity will be handled, but we expect that IP (and other) connectivity will follow afterwards. Connection via a USB port is accomplished via the Linux kernel support. USB to serial converters are well supported. Other such devices may be supported as long as they present a serial (RS-232) interface to Hamlib.

Availability

Most distributions have the latest Hamlib release in their testing or alpha versions of their distribution. Check your package manager for the Hamlib version included in your distribution.

Developing with Hamlib API

API documentation is at:

    https://github.com/Hamlib/Hamlib/wiki/Documentation

Take a look at tests/README for more info on simple programming examples and test programs.

C++ programming is supported and language bindings are available for Perl, Python, and TCL. A network daemon utility is also available for any programming language that supports network sockets (even netcat!).

Compiling

Hamlib is entirely developed using GNU tools, on various operating systems. The library may be compiled from a source "tarball" by the familiar "three step":

    ./configure
    make
    sudo make install

For debugging use this configure command:

    ./configure CFLAGS=-g -O0 -fPIC --no-create --no-recursion

See the INSTALL file for more information.

To recompile Hamlib, run:

    make clean

to remove all object files and binaries, otherwise make won't do anything!

Contributing

Consult the README.betatester and README.developer files in this directory if you feel like testing or helping with Hamlib development.

Contributions of rig specifications and protocol documentation are highly encouraged. Do keep in mind that in some cases the manufacturer may not provide complete control information or it is only available under a Non-Disclosure Agreement (NDA). Any documentation must be publicly available so we can legally write and distribute Free Software supporting a given device.

The Hamlib team is very interested to hear from you, how Hamlib builds and works on your system, especially on non-Linux system or non-PC systems. We try to make Hamlib as portable as possible.

Please report in case of problems at hamlib-developer@lists.sourceforge.net Git email formatted patches or in unified diff format are welcome!

Also, take a look at http://sourceforge.net/projects/hamlib/ Here you will find a mail list, link to the Wiki, and the latest releases. Feedback, questions, etc. about Hamlib are very welcome at the mail list:

    <hamlib-developer@lists.sourceforge.net>

Hamlib Version Numbers

Like other software projects, Hamlib uses a version numbering scheme to help program authors and users understand which releases are compatible and which are not. Hamlib releases now follow the format of:

Major.minor.point

Where

Major: Currently at 4, but can be advanced when changes to the API require client programs to be rewritten to take advantage of new features of Hamlib. This number has advanced several times throughout the life of Hamlib. Advancement of the major number signals frontend API changes that require modification of client source and Application Binary Interface changes that require relinking to the library (Note, the latter does not apply to applications using the *ctld daemons, but the command API may change).

Minor: This number advances when either new backend(s) or new rig model(s) to existing backend(s) are added. Advancing this number informs client program authors (and users of those programs) that new model/backend support has been added. Will also include bug fixes since the last point release.

Point: Formerly could be undefined (e.g. Hamlib 4.6) and would advance to 1 (e.g. Hamlib 4.6.1) for any bug fixes or feature additions to existing model(s) or backend(s), then to 2, etc. New rig models or backends are not included in point releases. When major or minor is advanced, point will reset to 0. Note: All future releases beginning with 4.7.0 will include all values to lessen confusion.

Release schedule

Hamlib has a "ready when it's ready" philosophy. There is no set schedule, though we'd like at least one minor release in a given year and a major release every several years.

Have Fun / Frank S / Stephane F / The Hamlib Group

73's de vk3fcs/km5ws / f8cfe