Preface
The Personal Computer has arguably become as prominent of a fixture
in the modern hamshack as HF transceivers and handheld radios. The first
PCs hams used combined with an interface also known as a terminal unit,
TU, replaced the noisy mechanical radio teletype,
RTTY, machines. Gradually, other uses became apparent
for the hamshack PC such as logging contact information, operating newer
digital modes such as AMTOR, a forward error correcting
(FEC) mode of RTTY, and packet, an
error checked way of transfering binary data between computers.
In the mid to late 1980s radio manufacturers began to offer computer
control capability to their offerings. Now the shack PC had one more duty
added to its repertoire. However, the amount of control over a given
radio's capability by computer control was often much less than from the
front panel. In large part was due to many analog controls on the front
panel that weren't under control of the radio's CPU.
Thus most radio control has been limited to control of frequency values
of the variable frequency
oscillators, VFO, and recalling and setting the radio's
memory channels.
More recent models have more of the front panel controls under the
supervision of the radio's CPU, consequently
manufacturers have enabled more control of the radio's functions through
the computer interface. This has created an explosion of command functions
not just between the different manufacturers, but also among a given
manufacturer's product line. There may also exist subtle differences in
later versions of a given model.
For the software author wishing to incorporate even the most basic of
radio control functions, the task is daunting. Even the long lived logging
program CT by Ken Wolff, K1EA has reports of subtle
bugs in one radio model or another (this is not intended as a knock of Ken
or his effort, rather it is an observation of the complexity of supporting
a multitude of radios in a monolithic program by one or a few authors). Is
every programmer doomed to recreate radio control themselves with varying
degrees of success? The answer is, no!
Enter the Hamlib project. Hamlib aims to provide application authors
with a single application programming interface, API,
regardless of the actual radio in use. Thus Hamlib is not an end user
application, but is a middle software layer that acts as a translator
between the API and the specific radio commands.
This manual will attempt to explain in detail the Hamlib API
, how to use Hamlib for writing radio control software, how to
write a radio backend library, and an overview of Hamlib's structure and
design.
Finally, Hamlib is Free Software licensed under the GNU Public
License, GPL, version 2. This will have certain
implications if you are a software author considering using Hamlib as a
part of your project. Consult the COPYING file in the base directory of
the Hamlib source distribution for more details.