Ham radio control library for rigs, rotators, tuners, and amplifiers
Go to file
Steve Conklin e6889901da easycomm patch from Steve Conklin, AI4QR
The attached patch restores what I think is the original easycomm
rotator interface functionality. It eliminates the conditional code
for USE_CUSTOM_CODE and USE_TEST_CODE.

Apparently for a very long time, the easycomm back end has been build
with USE_CUSTOM_CODE hardcoded in the source file. This generated code
that issued commands not even remotely similar to what's specified in
the easycommII protocol, which is documented in the easycomm directory
for hamlib.

It appears that at some point someone used the easycomm back end to
implement some custom tests for something, and it was committed and
has been carried this way ever since.

This restored what I think is proper functionality according to the
easycomm spec.

If you are a user of the easycomm back end, or you know of any
easycomm compatible rotor controllers that can be used for testing,
let me know and I can be more thorough about this.

Notes and disclaimers:

0. The original easycomm spec author seems to be unavailable.

1. I don't think that there was valid code to parse the position data
returned from the rotor controller. What was actually getting compiled
simply set some hard-coded values. I replaced it with what I think is
called for by the spec.

2. The easycomm spec is vague about what is supposed to be returned
for any command, so I may still not be parsing position information
correctly as it comes from other easycomm controllers.

3. I wrote my own rotator controller code based upon an interpretation
of the easycomm II spec. This back end for rotctl works with my
implementation. I don't have access to any other easycomm controllers
or even know whether any exist, so I am unable to test this against
any other implementation of easycomm.

4. Even when you select EASYCOMM II as the back end, it sends commands
which are only supposed to be valid for easycomm I according to the
spec (i.e. the position set command includes uplink and downlink
frequency and mode information fields). My rotor controller handles
these, so I didn't change the position set portion of the code.

I understand if there's concern for breaking rotator control for
existing users of the easycomm back end (if any actually exist). If
this patch is too risky, I'll either rewrite my controller to use
another protocol, or add another back end for my own newly invented
protocol "ai4qrcomm" (and document it better than easycomm).

Thanks,

Steve, AI4QR

Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
2013-09-18 12:28:56 -05:00
adat Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
alinco Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
amsat Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
android Add Android build support 2013-04-26 22:31:56 -05:00
aor Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
ars Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
bindings Binding test scripts--fix set_freq ordering 2013-02-12 18:51:38 -06:00
c++ Set LD_LIBRARY_PATH for test programs 2013-05-07 22:22:07 -05:00
celestron Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
doc Set LD_LIBRARY_PATH for test programs 2013-05-07 22:22:07 -05:00
drake Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
dummy Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
easycomm easycomm patch from Steve Conklin, AI4QR 2013-09-18 12:28:56 -05:00
ether6 Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
flexradio Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
fodtrack Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
gnuradio Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
gs232a Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
heathkit Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
icom Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
include Revert to previous handling of getaddrinfo() 2013-09-15 19:47:49 -05:00
jrc Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
kachina Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
kenwood Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
kit Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
kylix 20060718: 2006-07-18 23:06:44 +00:00
lib Revert to previous handling of getaddrinfo() 2013-09-15 19:47:49 -05:00
lowe Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
m2 Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
macros MinGW build: Fix sleep() substitution 2013-07-29 12:38:22 -05:00
microtune Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
miniVNA Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
pcr Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
perl deprecated, use swig bindings/ instead 2002-11-05 21:33:16 +00:00
prm80 Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
racal Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
rft Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
rotorez Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
rs Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
sartek Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
scripts build-win32.sh: Distribute hamlib.html 2013-04-26 22:37:16 -05:00
skanti Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
spid Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
src Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
tapr Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
tentec Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
tests Revert to previous handling of getaddrinfo() 2013-09-15 19:47:49 -05:00
ts7400 Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
tuner Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
uniden Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
winradio Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
wj Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
yaesu Clean up backend Makefile.am files 2013-09-16 21:51:39 -05:00
.gitignore .gitignore: Ignore generated texinfo files 2013-02-24 07:31:13 -06:00
Android.mk Add Android build support 2013-04-26 22:31:56 -05:00
AUTHORS Updates for 1.2.15 cycle 2012-02-02 20:40:55 -06:00
autogen.sh Install build files rather than symlink 2012-10-13 19:09:46 -05:00
ChangeLog Update NEWS and ChangeLog for 1.2.13.1 release 2011-05-29 07:38:28 -05:00
configure.ac Clean up backend Makefile.am files 2013-09-16 21:51:39 -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
hamlib.m4 added quoting for newer autoconf [supplied by Thomas Klausner] 2005-09-28 21:07:59 +00:00
hamlib.pc.in Add Hamlib URL per pkg-config docs 2011-06-12 06:14:28 -05:00
INSTALL Revert INSTALL to prior Hamlib version 2013-09-09 21:46:53 -05:00
LICENSE LICENSE: Add 2012, format for 80 columns 2012-10-05 12:46:36 -05:00
Makefile.am Monolitic libraries. 2013-09-08 14:56:28 +01:00
NEWS Add Android build support 2013-04-26 22:31:56 -05:00
PLAN * cosmetic changes 2000-11-01 23:18:11 +00:00
README Bring documentation up to date with recent changes 2012-10-09 21:16:13 -05:00
README.betatester Document check and distcheck make targets 2013-05-08 20:48:34 -05:00
README.developer Document check and distcheck make targets 2013-05-08 20:48:34 -05:00
README.release ABI backward compatibility enhancement 2012-10-08 13:07:35 -05:00
README.win32 Disable static builds by default 2012-10-11 09:17:58 -05:00
Segfault-award Congrats Charles 2011-02-21 22:15:12 +00:00
THANKS minor changes 2008-07-14 01:31:55 +00:00
TODO Updates for 1.2.15 cycle 2012-02-02 20:40:55 -06:00
TODO.skeleton Initial revision 2000-07-18 20:55:08 +00:00

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

The purpose of this project is to provide stable, flexible, shared libraries
that enable quicker development of Amateur Radio Equipment Control
Applications.

Many Amateur Radio Transceivers come with serial interfaces that allows
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,
switches, 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 http://www.hamlib.org
to reach the Wiki.

Hamlib Design
-------------

The shared libs will provide functions for both radio control,
and data retrieval from the radio.

The structure of the libraries will be as follows.

(1)  There will be 1 frontend library "libhamlib" that
     provides the generic API for user applications.

(2)  There will be "n" backend libraries that "wrap"
     rig specific communications inside frontend API.

(3)  Frontend lib will load (on demand) the appropriate
     backend lib as required.

Frontend Library
----------------

libhamlib.so -  frontend lib that provides generic API
                for all RIG types. This is what Application
                programmers will "see".  Will have different
                names on other platforms, e.g. libhamlib-2.dll
                on MS windows.

Backend Examples are:
---------------------

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

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

Hamlib will also enable developers to develop professional looking GUI's
towards a standard control library API, and they would 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
--------------------------

C language API documentation is at:

        http://www.hamlib.org/index.php?title=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!).


Recompiling
-----------

Hamlib is entirely developed using GNU tools, under various Linux systems.
The library may be recompiled by the familiar "three step":

        ./configure
        make
        sudo make install

See the INSTALL file for more information.

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.incremental

Where

Major:  Currently at 3, 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 a couple of times throughout the life of
Hamlib.  Advancement of the major number is only for frontend API changes
that require modification of client source.  ABI compatibility is presently
maintained to prior releases so that a program linked to an earlier
1.2.Y.[Z] release will work with a later 3.Y[.Z] release without
recompiling.  Itis our intention to maintain such ABI compatibility as long
as practical.

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
Incremental release.

Incremental:    May be undefined (e.g. Hamlib 3.0) and would advance to 1
(e.g. Hamlib 3.0.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 Incremental.  When Release is advanced, Incremental will reset
to undefined and will not be included as part of the version number.

Release schedule
----------------

Hamlib has in the past maintained a "ready when it's ready" philosophy.
However, given that much of the Linux user base is now influenced by the
Ubuntu distribution and its timed six month release schedule, Hamlib
releases will be scheduled in advance of Ubuntu releases.  Planned release
dates for Hamlib are now 1 February and 1 August of each calendar year.
Between those dates various Incremental releases will occur as development
warrants.


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

  73's de vk3fcs/km5ws / f8cfe