kopia lustrzana https://github.com/Hamlib/Hamlib
357 wiersze
9.8 KiB
Groff
357 wiersze
9.8 KiB
Groff
.\" Hey, EMACS: -*- nroff -*-
|
||
.\"
|
||
.\" For layout and available macros, see man(7), man-pages(7), groff_man(7)
|
||
.\" Please adjust the date whenever revising the manpage.
|
||
.\"
|
||
.\" Please keep this file in sync with doc/nutshell.texi
|
||
.\"
|
||
.TH HAMLIB "7" "2020-09-08" "Hamlib" "Hamlib Information Manual"
|
||
.
|
||
.
|
||
.SH NAME
|
||
.
|
||
hamlib \- radio and rotator control library
|
||
.
|
||
.
|
||
.SH DESCRIPTION
|
||
.
|
||
The
|
||
.BR "Ham Radio Control Libraries" ,
|
||
.B Hamlib
|
||
for short, is a development effort to provide a consistent interface for
|
||
programmers wanting to incorporate radio and rotator control in their
|
||
programs.
|
||
.
|
||
.PP
|
||
Hamlib is not a complete user application, rather, it is a software layer
|
||
intended to make controlling various radios and other amateur radio station
|
||
(shack) hardware much easier.
|
||
.
|
||
Hamlib will allow authors of software such as logging programs, digital
|
||
communications programs, or those wanting to develop the ultimate radio
|
||
control software to concentrate on the user interface and the basic function
|
||
of the program rather than radio control.
|
||
.
|
||
Hamlib consists of several parts, the programming library, utility programs,
|
||
and library interfaces to other programming languages.
|
||
.
|
||
.PP
|
||
Most recent amateur radio transceivers allow external control of their
|
||
functions through a serial interface.
|
||
.
|
||
Unfortunately, control commands are not always consistent across a
|
||
manufacturer's product line and each manufacturer's product line differs
|
||
greatly from its competitors.
|
||
.
|
||
.PP
|
||
Hamlib attempts to solve this problem by presenting a
|
||
.I virtual radio
|
||
to the programmer by providing an interface to actions such as setting a given
|
||
Variable Frequency Oscillator's (VFO) frequency, setting the operating mode,
|
||
querying the radio of its current status and settings, and giving the
|
||
application a list of a given radio's capabilities.
|
||
.
|
||
Unfortunately, what can be accomplished by Hamlib is limited by the radios
|
||
themselves and some offer very limited capability.
|
||
.
|
||
.PP
|
||
Other devices, such as antenna rotators, can be placed into the Hamlib control
|
||
scheme.
|
||
.
|
||
Other recent developments include network interface servers and a USB
|
||
interface capability.
|
||
.
|
||
Language bindings are provided for
|
||
.BR C ", " C++ ", " Perl ", " Python ", " Lua " and " TCL
|
||
(more to come).
|
||
.
|
||
.
|
||
.SS Overview
|
||
.
|
||
Hamlib is a
|
||
.I front end
|
||
library providing a
|
||
.B C
|
||
language Application Programming Interface (API) to programmers wishing to
|
||
integrate radio or rotator control in their applications.
|
||
.
|
||
Hamlib presents a
|
||
.I virtual radio
|
||
or
|
||
.I virtual rotator
|
||
that is a consistent interface to an application despite wide differences in
|
||
radio and rotator interfaces and capabilities.
|
||
.
|
||
.PP
|
||
The front end library uses a number of
|
||
.I back end
|
||
libraries to translate from the front end to the various individual radio and
|
||
rotator models.
|
||
.
|
||
A back end library handles conversion of the front end variables to the format
|
||
needed by the radio or rotator device it controls.
|
||
.
|
||
The back end libraries are generally grouped by manufacturer and in some cases
|
||
by a common control protocol.
|
||
.
|
||
.PP
|
||
Hamlib also provides an interface library for each of several common
|
||
.I scripting
|
||
languages such as
|
||
.UR http://www.perl.org
|
||
.B Perl
|
||
.UE ,
|
||
.UR http://www.python.org
|
||
.B Python
|
||
.UE ,
|
||
.UR https://www.lua.org
|
||
.B Lua
|
||
.UE ,
|
||
and
|
||
.UR http://www.tcl.tk
|
||
.B TCL
|
||
.UE .
|
||
.
|
||
These language
|
||
.I bindings
|
||
are
|
||
generated through the use of
|
||
.UR http://www.swig.org
|
||
.B SWIG
|
||
.UE ,
|
||
a parser/generator for multiple language interfaces to a
|
||
.B C
|
||
library.
|
||
.
|
||
A natively generated
|
||
.B C++
|
||
language interface is also provided.
|
||
.
|
||
.PP
|
||
Besides the C and supplemental APIs, Hamlib also provides a pair of network
|
||
daemons that provide a text command based API for controlling an attached
|
||
radio or rotator through a
|
||
.BR TCP / IP
|
||
network connection.
|
||
.
|
||
The daemons then handle the interface to the Hamlib C API.
|
||
.
|
||
.PP
|
||
More than one type of device, radio or rotator, may be controlled at a
|
||
time, however, there is generally a limit of one device per serial port
|
||
or other port.
|
||
.
|
||
.
|
||
.SS Hamlib project information
|
||
.
|
||
The Hamlib Project was founded by Frank Singleton, VK3FCS/KM5WS in July 2000.
|
||
.
|
||
Shortly after Stephane Fillod, F8CFE, joined Frank on the Hamlib project and
|
||
the API and implementation development led to a reasonable level of maturity
|
||
in a few years.
|
||
.
|
||
A major milestone was reached when Hamlib 1.2.0 was released in March 2004.
|
||
.
|
||
The API and Application Binary Interface (ABI) interfaces have remained stable
|
||
since that time up to the release of 3.3 in mid 2018.
|
||
.
|
||
Version 4.0 marks a major change to the ABI and certain changes to the API.
|
||
.
|
||
.PP
|
||
Development continues through the major version number
|
||
.RI 4. x
|
||
series and beyond.
|
||
.
|
||
The 4.0 release marks a major change in the ABI with several changes for
|
||
additional modes and such that will require client programs that use the C ABI
|
||
to be recompiled/relinked, etc.
|
||
.
|
||
Other goals include improving the overall documentation (this man page with
|
||
more in progress), and other updates as warranted.
|
||
.
|
||
.PP
|
||
The Project is hosted by
|
||
.UR https://sourceforge.net
|
||
SourceForge.net
|
||
.UE
|
||
at the
|
||
.UR https://sourceforge.net/projects/hamlib/
|
||
Hamlib project page
|
||
.UE .
|
||
.
|
||
As
|
||
.UR https://github.com
|
||
GitHub
|
||
.UE
|
||
has become a very popular project hosting site, Hamlib also has a dedicated
|
||
.UR https://github.com/Hamlib/Hamlib
|
||
GitHub project page
|
||
.UE .
|
||
.
|
||
GitHub also hosts the
|
||
.UR http://www.hamlib.org
|
||
hamlib.org
|
||
.UE
|
||
Web site and the
|
||
.UR https://github.com/Hamlib/Hamlib/wiki
|
||
Hamlib Wiki
|
||
.UE .
|
||
.
|
||
.PP
|
||
Development discussion and most user support take place on the
|
||
.UR https://sourceforge.net/p/hamlib/mailman/
|
||
hamlib-developer mailing list
|
||
.UE .
|
||
While there are
|
||
.UR https://sourceforge.net/p/hamlib/discussion/
|
||
SourceForge.net discussion forums
|
||
.UE ,
|
||
they are rarely used and not as closely read by the developers as the mailing
|
||
list.
|
||
.
|
||
.PP
|
||
For
|
||
.IR "source code management" ,
|
||
the project uses
|
||
.UR http://git-scm.com/
|
||
.B Git
|
||
.UE ,
|
||
a fast, distributed content tracker.
|
||
.
|
||
Among its features is that every developer has the complete Hamlib
|
||
development history available locally.
|
||
.
|
||
For more information on using Git, see
|
||
.BR hamlib\-git (7).
|
||
.
|
||
.IP
|
||
.BR Note :
|
||
while a canonical Git repository is hosted at SourceForge, its availability is
|
||
not essential to continued development although development work flows would
|
||
change temporarily.
|
||
.
|
||
Several developers find the GitHub Web interface easier to use and lately
|
||
development has centered around GitHub rather than SourceForge.
|
||
.
|
||
.
|
||
.SS Applications using Hamlib
|
||
.
|
||
A number of application developers have taken advantage of Hamlib's
|
||
capabilities to implement radio and/or rotator control.
|
||
.
|
||
While not exhaustive, a list is maintained at the Hamlib Wiki,
|
||
.UR https://github.com/Hamlib/Hamlib/wiki/Applications-and-Screen-Shots
|
||
Applications/Screenshots
|
||
.UE .
|
||
Developers are encouraged to request their applications be added to the
|
||
gallery by way of the hamlib-developer mailing list.
|
||
.
|
||
.
|
||
.SS Using Hamlib with your program
|
||
.
|
||
As with other Free Software projects, Hamlib relies heavily on copyleft
|
||
licensing to encourage development contributions and provide an open
|
||
atmosphere for development.
|
||
.
|
||
Hamlib's source code is released under two
|
||
licenses, the
|
||
.B Lesser General Public License
|
||
(LGPL) version 2.1 for the library portion, and the
|
||
.B General Public License
|
||
(GPL) version 2 for the utility programs.
|
||
.
|
||
.PP
|
||
The LGPL allows the library to be used (linked) by programs regardless of
|
||
their individual license.
|
||
.
|
||
However, any contributions to the library source remain under a copyleft
|
||
license which means that the library source code may not be used in violation
|
||
of the terms of the LGPL (see the file
|
||
.B COPYING.LIB
|
||
in the main source directory).
|
||
.
|
||
Concepts learned by studying these sources for the purpose of understanding
|
||
the Hamlib API is not covered nor prohibited by the LGPL, however, directly
|
||
copying LGPL sources into any work that is incompatible with the terms of the
|
||
LGPL is a violation of the terms of the license.
|
||
.
|
||
.PP
|
||
The utility program source files are released under the GPL.
|
||
.
|
||
Any direct use of these sources must be in a form that complies with the terms
|
||
of the GPL (see the file
|
||
.B COPYING
|
||
in the main source directory).
|
||
.
|
||
Concepts learned by studying these sources for the purpose of understanding
|
||
the Hamlib API is not covered nor prohibited by the GPL, however, directly
|
||
copying GPL sources into any work that is incompatible with the terms of the
|
||
GPL is a violation of the terms of the license.
|
||
.
|
||
.
|
||
.SS Radios with a clone capability
|
||
.
|
||
Hamlib's focus is on controlling radios that employ a port and command
|
||
protocol for setting frequency, mode, VFO, PTT, etc.
|
||
.
|
||
Most VHF/UHF transceivers do not employ such control capability but do provide
|
||
for cloning the memory contents from radio to another of the same model.
|
||
.
|
||
A related project,
|
||
.UR http://chirp.danplanet.com
|
||
.B Chirp
|
||
.UE ,
|
||
aims to support radios with such a clone capability.
|
||
.
|
||
Please contact the Chirp project for support of such radios.
|
||
.
|
||
.
|
||
.SS Pronouncing Hamlib
|
||
.
|
||
English speakers seem to have two alternate pronunciations for our project:
|
||
.
|
||
.nf
|
||
.IP \(bu 4
|
||
Hamlib (Ham \- lib, long \(oqi\(cq, as in library.) IPA style: /\(aqham læb/
|
||
.
|
||
.IP \(bu 4
|
||
Hamlib (Ham \- lib, short \(oqi\(cq, as in liberty.) IPA style: /\(aqham lɪb/
|
||
.fi
|
||
.
|
||
.PP
|
||
Then again, we have people who say Linux \(lqL-eye-nux\(rq and those who say
|
||
\(lqL-in-nux\(rq...
|
||
.
|
||
.PP
|
||
If you're French, the above does not apply! :-)
|
||
.
|
||
.
|
||
.SH COPYING
|
||
.
|
||
This file is part of Hamlib, a project to develop a library that simplifies
|
||
radio, rotator, and amplifier control functions for developers of software
|
||
primarily of interest to radio amateurs and those interested in radio
|
||
communications.
|
||
.
|
||
.PP
|
||
Copyright \(co 2001-2020 Hamlib Group (various contributors)
|
||
.
|
||
.PP
|
||
This is free software; see the file COPYING for copying conditions. There is
|
||
NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||
.
|
||
.
|
||
.SH SEE ALSO
|
||
.
|
||
.BR hamlib-primer (7)
|
||
.
|
||
.
|
||
.SH COLOPHON
|
||
.
|
||
Links to the Hamlib Wiki, Git repository, release archives, and daily snapshot
|
||
archives are available via
|
||
.
|
||
.UR http://www.hamlib.org
|
||
hamlib.org
|
||
.UE .
|