Various fixes for building the bindings properly.
Install TCL binding to $(libdir)/tcl/Hamlib, arbitrarily chosen since
there seems to be no standard installation location. When install
location is changed, tcltest.tcl documents the needed change to a TCL
script.
In the Perl and Python test scripts, improved the QRA examples. In all
scripts used tabs to line up printed values nicely.
Updated INSTALL and NEWS for recent updates. Better documented bindings
installation and uninstallation in INSTALL.
Use ax_pkg_swig.m4 from the GNU Autoconf Macro Archive as it is actively
maintained and update configure.ac accordingly.
Moved the Swig test to the bindings section of configure.ac.
Refactored the logic of the Swig test.
Updated ax_python_devel.m4 to latest version in the Autoconf Macro
Archive (removes two email addresses, not other changes).
Removed aclocal-include.m4 and lf_warnings.m4 as they were not being
used any longer.
Update macros definitions in macros/Makefile.am to recent additions and
deletion of the local macro files.
A Perl file was being compile whether Perl binding was enabled or not.
Fixed that and configured an AM_CONDITIONAL for Perl so its components
will not be built when it is not enabled.
"[This patch] allows PCR radios to use DSP units correctly for the first
time under Hamlib.
We're all familiar with a typical DSP presentation on a radio -- you can
turn it on and off, you can adjust the degree of noise processing, and
you can sometimes even enable a notch filter. In the PCR radios
that have a DSP installed, none of this worked until now.
I corrected the code in pcr.c, changes that apply to all the PCR radios,
and in pcr1500.c, the radio I have, but someone else will have to
edit the files for the radios I don't own so the user interface works
right. I decided it would be unwise to try to edit files for radios
I couldn't test.
I just re-read the above, and I need to add that the changes to prc.c
shouldn't adversely affect the PCR models other than the one I own."
Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
* The 746 has an APF, wasn't in its configuration, added, tested, works.
* The 756Pro has an ANF function, wasn't in its configuration, added,
tested, works.
* The 756Pro's signal strength conversion table was way wrong.
I noticed this while making scope plots in my program JRX --
the strong signals using the STRENGTH output would all flatten
out at a rather low level, but the RAWSTR output showed the
full range. Changed the conversion table, tested, fixed.
R8500 notes:
The R8500 on/off functions work differently than the other Icoms,
in fact it's not too strong to say that this radio is a breed apart.
Most Icom radios have a group command code for on/off functions (16),
then a code for the function, then a flag for on or off. The R8500
combines the second and third into one, and this required a bit of
recoding in "icom.c". Interestingly, someone had created some special
designators in "icom_defs.h" for the R8500, but then never coded them
to the degree that they worked. Now they work. :)
So the AGC, NB and APF functions all work now.
The R8500 doesn't have a preamp control, so I took that out.
The R8500 does have IF shift and a 3-step attenuater, so I put those in.
Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
As AC_CHECK_HEADERS and AC_CHECK_FUNCS take multiple file names,
consolidate the multiple macro calls into a single call for each.
Remove the last obsolescent macro calls.
"I've re-written the hamlib backend to stream the audio, if and spectrum
pcm samples to simple file system objects.
If no path is given, streaming is not requested. If the path can't be
openned, no streaming is requested.
The file is openned non-blocking and overruns are just silently
discarded.
I've tested it using named fifos and if there is no active reader it
fails to open and if there is an active reader it streams fine.
Thats as simple as it can get.
In terms of the project files, I've put the wrg313api.c and wrg313api.h
files in the existing linradio subfolder of winradio.
The .h file is the g313 equivalent of the wrapi.h file already there.
The .c file actually just contains the dlopen and the assignments to the
function variables.
The actual API shared library is binary only (and 32-bit only), and not
included in my patch."
Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
From the SourceForge tracker:
I am using version hamlib-1.2.15.2~rc3. Start rigctl and specify rig 2
(rigctld). The command "s" (get_split_vfo) will return two parameters,
the spilt state (0 or 1) and the TX VFO name. The command "S"
(set_split_vfo) will send one parameter, the TX VFO name, but will not
send the split state (0 or 1). This is incorrect. In the file
dummy/netrigctl.c change netrigctl_set_split_vfo() line 782:
len = sprintf(cmd, "S %s\n", rig_strvfo(tx_vfo));
to include the "split" paramater; perhaps:
len = sprintf(cmd, "S %d %s\n", split, rig_strvfo(tx_vfo));
Thanks to Jim, N2ADR for reporting this.
If libgd-dev is not installed, an Automake conditional will disable the
rigmatrix.html target in tests/Makefile. Optionally, this target may
also be disabled by use of the '--disable-html-matrix' option passed to
the configure script. By default the configure script will enable the
target if the libgd development files are found and disable it when they
are not.
Previously, invoking autogen.sh would create symbolic links to needed
Autotools files in the tree only when working from a Git checkout
(source distributions have the files included). Consideration of this
included the possibility of bugs if the Autotools packages were upgraded
on the developer's system that strange bugs could result. Copying the
files means the tree is self contained until the next time autoreconf or
autogen.sh is run.
The top level Makefile.am included the variable $(subdirs) in both
SUBDIRS and DIST_SUBDIRS assignments. While this variable may contain a
useful value, it is undocumented in the manuals. Relying on it may
result in some directory being ommitted or other changes in the future,
so removing it from the assignments.
Static libs are generally not wanted so disable their builds by default.
Remove references to '--disable-static' from documentation and example
scripts.
I found that building on Cygwin that when libxml2 is installed, MSYS
fails the compile as libxml2 is installed outside the MSYS idea of
'root'. As this feature depends on an external library, give user the
option of compiling with this support. Default is to not build rigmem
with XML support.
Use the libtool link mode argument '-version-info' to set the Hamlib 3
ABI to be compatible with Hamlib 1.2 ABI. As the current ABI has not
been changed or removed, we should be able to maintain backward
compatibility. The libtool docs state that so long as the ABI is only
added to, backward compatibility should be maintained.
My idea here is to be able to have presently compiled programs be able
to use binary libraries of Hamlib 3 without recompiling. So far I have
tested this locally on Linux and Windows. More testing is welcome.
Initializing libltdl is now done by the LTDL_INIT macro in configure.ac.
This now creates a libltdl directory in the tree (not tracked in Git)
when autoreconf is run. The downside is that this complicates the build
a little bit with the advantage that the build can now take place on a
system that does not have libltdl-dev installed as Hamlib will build on
such systems by passing the '--with-included-ltdl' flag to the configure
script. In particular, this simplifies the build on Linux for the mingw32
host by not having to run libtoolize manually and assures that libltdl
is built with the same build and host architectures as Hamlib.
Now check if '--with-included-ltdl' has been passed to configure and if
not, only then test for the presence of an installed ltdl.h.
Commented out AM_MAINTAINER_MODE macro. It is recommended by the
Automake manual that this macro and its configure options not be used as
the Autotools system is designed to regenerate its files. Let me know
if this is problem as it can be reversed easily enough. The autogen.sh
script no longer passes the '--enable-maintainer-mode' option to
configure when bootstrapping the build system from Git.
Minor edits in configure.ac to improve readability.
Updated build-win32 files in scripts/
Darrel, AK6I, has an IC-756 (non-Pro model) and reports several
functions are not supported and suggested they be modified.
(cherry picked from commit 11033470f0)
Cleaned up M4sh syntax for variable quoting, replaced shell 'if'
conditionals with M4sh AS_IF macro and shell 'case' with AS_CASE macro.
Properly quoted macro variables. Added comments to configure.ac
describing actions, commented out obsolete macros, commented obsolecent
macros, and added comments for major sections.
Corrected a Mingw linker error on the .EXE files adding
'--enable-auto-import' to their LD flags. Testing this commit on win32
shows that rigctld is now working properly. Will need to port this to
the Stable branch and test.
Replaced older local macros with newer replacements from GNU Autoconf
archive.
Using the -Wall switch to autoconf/autoreconf revealed a number of
obsolete macros. At the moment, offending macros have been commented
out using 'dnl'. They will be removed at some later date.
A macro here seems to expect ac_save_LIBS and ac_save_CPPFLAGS to
be set on entry (by configure?) but configure doesn't do any such
thing, so that would trash any pre-set CPPFLAGS and LIBS when it
runs (making ./configure CPPFLAGS=something fail to work).
Use the absolute value of any negative value that may be passed in via
the width parameter to set_mode.
If RIG_PASSBAND_NORMAL is passed in, call rig_passband_normal() to
determine the normal width for the mode before setting the bandwidth.
The width parameter is tested against wide and narrow filter values and
set to the returned values as upper and lower limits if width falls out
of those bounds.
(cherry picked from commit bb6c6493e1)
Use the absolute value of any negative value that may be passed in via
the width parameter to set_mode.
If RIG_PASSBAND_NORMAL is passed in, call rig_passband_normal() to
determine the normal width for the mode before selecting the correct
filter (needs testing).
(cherry picked from commit 94ea3ced4c)
SF Bug ID 3527331
Action: Using rigctl, request signal strength (STRENGTH) for
a low signal level (~ < -100 dBm)
Expected result: Read a signal level of -100 or less
Actual result: Impossibly large negative value is returned.
Error found in initialization of a variable. Some (useful)
instrumentation was also added to help with future debugging.