CAT protocols that don't allow direct addressing of VFOs require that
the "other" VFO be queried or set via a select then get/set then
select back to original or swap then get/set then swap again. When
both frequncy and mode need to be set the sequences can be optimized
if a single funciton is avaiable.
This enhancement adds those single functions rig_set_split_freq_mode()
and rig_get_split_freq_mode() with a default impelementation that
calls the individual rig_{get,set}_split_{freq,mode}() functions. Back
ends can choose to implement an optimized version which is used
instead of the default if present.
Using these functions when an optimized implementation is available
allows the TX VFO's frequency and mode to be set in a single operation
with only one VFO exchange or selection either side of the
operation. Many CAT protocols are very efficient when getting or
setting both frequency and mode and some even combine the two in a
single command.
The letters 'K' and 'k' are used for the rigctl short command name for
these functions.
As Hamlib now restores the rig auto information state (AI) on exit
there is now a need to disable that functionality so that rigctl can
be used to set/reset AI mode on the rig explicitly.
A new public API function 'rig_no_restore_ai()' is also added that
allows any client to disable this auto AI restore functionality if
required. Most clients should do nothing as restoring AI state is a
good thing.
All,
attached is a git patch for adding the Yaesu FT-DX1200 radio to the yaesu
backend as model 134. I am humbly asking for this to be included in
hamlib.
I've tested this using a 1200 radio, using both rigctl and cqrlog. The
ft-dx1200 cat commands are a mix of ft-950 and ft-2000 radio commands, so
neither of those models will work correctly with the 1200. It was tested
and build against the master branch from github on 4/3/2015, on an Ubuntu
14.04 server.
Let me know if you have any questions.
thanks
Dave
kk6df at arrl.net
From cc0351fddc245b6223ae6c21dc6e29c5422fc822 Mon Sep 17 00:00:00 2001
From: David Fannin <dfannin@sushisoft.com>
Date: Sat, 4 Apr 2015 09:23:49 -0700
Subject: [PATCH 1/2] adding yaesu ft-dx1200 model to yaesu backend
This rig is largely similar to the TS-590S but for some reason Kenwood
have changed most the EX command ids. Even though hamlib makes little
use of the EX command, it probably will need to for future
functionality implemenattion. Hence the new rig id.
The Icom IC-7100 back end added this enum instead of using the extant
RIG_PTT_RIG enum. Also the rig_get_ptt() implementation didn't handle
it and errored out.
Note: RIG_PTT_SERIAL_CAT was added in commit
e9ee671149 - N0NB
Even though the Green Heron RT-21 rotor controller is billed as being
RotorEZ compatible, it returns its value as 'XXX;' instead of ';XXX'.
As a new backend model is being written anyway, the backend query's the
controller to return the real value which is 'XXX.Y;'.
I am making a Haskell binding to hamlib and this anonymous struct was
creating some issues for me. I am not a C-coder by day, but I think this
is harmless to add here.
Signed-off-by: Ricky Elrod <ricky@elrod.me>
I wrote first support for new version of FUNcube Dongle. Differences
against original FCD are changed USB PID and wider frequency range.
73 Lada, OK1ZIA
Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
From Martin, CT1IQI:
"Several programs under Linux rely on Hamlib for control. I wanted to
try WSJT-X (digital modes like JT65) and found that my new IC-7100 was
not yet supported, also after having compiled the current git version of
Hamlib and having compiled WSJT-X against that.
So I added a IC-7100 by taking the ic-7200 and 7420 rig files as
example, be it without going (yet) through all of the very many commands
the ic-7100 supports.
This produced the situation where there was communication, e.g. setting
and reading frequencies, but the PTT control did not work. I debugged
that to actually the lack of a PTT mode in Hamlib that uses serial and
CAT at the same time; currently PTT per 'serial' seems equivalent to
toggling certain RS232 pins but not to any serial command level. So I
added a RIG_PTT_SERIAL_CAT mode for PTT control. Now the wsjt-x program
works nicely with the ic-7100 and controls both frequency and PTT via
the single USB cable."
Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
On the Peaberry forum, we have a thread with some hamlib patches for the
Peaberry SDR (a softrock-like transceiver). Both version 1 and version 2
have been implemented and tested.
There are two patches: the first one, made by me (ON8VQ) adds support
for the two radio's, and the second one, made by R2AEE, fixes the tuning
(using PICUSB commands instead of AVRUSB).
The patches are available here:
http://ae9rb.com/forum/viewtopic.php?f=4&t=166
Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
Use the system gettaddrinfo function when possible as before. Tested on
GNU, Cygwin, MinGW on Linux, and MinGW on Windows. Under MinGW the
replacement getaddrinfo is used. Perhaps this is an area for
investigation to be certain MinGW really doesn't supply getaddrinfo.
This reverts some of the patches from Remi Chateauneu in commit
60019c9. This fixes build issues encountered building the Windows
binary daily snapshots.
Enabled static library build by default at configure time.
Fixed pthread library linking for the ars backend on MinGW.
MinGW does not natively support the POSIX sleep() function so we have
had an override that was a part of the GR_PWIN32 macro and included in
the generated config.h file. When compiling for Windows on POSIX using
MinGW, Autotools will detect sleep() and set HAVE_SLEEP which prevented
the substitution from being included in the source. Adding a test for
_WIN32 (set by MinGW's gcc) then caused a warning from src/network.c on
POSIX about winsock2.h needing to be included before windows.h. As
config.h needed to be included first, the solution to break out the
substitution that includes windows.h into its own file. This patch
provides that solution and allows the code to compile cleanly on POSIX,
using MinGW on both POSIX and Windows, and on Cygwin.
I have now written a new rotor control based on an Atmel ethernet board
and used with me. It works well so far.
Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
The C standard dictates that an enum constant is a 32 bit signed
integer. Setting a constant's bit 31 created a negative value that on
amd64 had the upper 32 bits set as well when assigned to the
misc.c:func_str structure. This caused misc.c:rig_strfunc() to fail its
comparison for RIG_FUNC_XIT on amd64 (x86_64). To use bit 31 as an
unsigned long, preprocessor macros have been used instead as a 'const
unsigned long' which cannot be used to initialize the func_str.func
members. TNX KA6MAL, AC6SL. - N0NB
Other minor formatting edits.
In response to a long standing request from Tor, N4OGW, and others, RIT
and XIT are added as members for the rig_set/get_func() members.
"RIT"/"XIT" have been added as tokens. The dummy rig backend and
testrig.c have been updated for these new functions.
Applications should test a backend with the rig_has_set/get_func() and
test for RIG_FUNC_RIT or RIG_FUNC_XIT. A non-zero result indicates
these functions are implemented by a given rig backend. It will take
some time for all backends to migrate to this new implementation. Once
implemented, RIT or XIT should be set to '0' to 'clear' the value
without deactivating the rig's RIT/XIT function. The dummy/dummy.c file
can be used as a simple guide for backend authors implementing this
behavior.
Implemented hash table to temporarily store and sort the rig models by ID
to print the --list by model numbers. Hash is implemented using
uthash.h, see http://uthash.sourceforge.net/
Suppressed rig backend register output by setting rig_debug_level to 0
for list output.
Removed riglist definition of RPC backend.
Implemented hash table to temporarily store and sort the rot models by ID
to print the --list by model numbers. Hash is implemented using
uthash.h, see http://uthash.sourceforge.net/
Suppressed rot backend register output by setting rig_debug_level to 0
for list output.
Removed rotlist definition of RPC backend.
From Øystein Hårberg, LA7LKA, a backend for a rotor based on the TS-7400
embedded ARM board running Linux from http://www.embeddedarm.com/
Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
From Mikhail Kshevetskiy <mikhail.kshevetskiy@gmail.com>
vx-1700 notes:
==============
* the only possible way to switch from VFO_A to VFO_MEM is a
switching to configured memory channel.
* vfo_op(UP/DOWN) in memory mode switch channel UP/DOWN
correspondingly
* set_mem() in VFO mode do not change memory channel, but only
remember passed value. Thus we may set non-configured memory
channel number for future use in vfo_op(OP_FROM_VFO).
* get_mem() in VFO mode returns last used memory channel value.
It may return non-configured memory channel number passed to
set_mem() previously.
WARNING: VX-1700 CAT Manual have bugs, see comments in code.
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@3052 7ae35d74-ebe9-4afe-98af-79ac388436b8
New CSS file, added Doxygen logo to footer, tweaked hamlib.cfg.in for
Doxygen configuration. Minor edits to index.doxygen.
Minor Doxygen edits to rotlist.h and network.c
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@3035 7ae35d74-ebe9-4afe-98af-79ac388436b8
Rot2Prog is now 901, Rot1Prog 902 per feedback from Magne Mæhre LA1BFA.
Minor update of spid.txt to correct a typo and clarify a point in
the documentation.
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@3028 7ae35d74-ebe9-4afe-98af-79ac388436b8
This patch extends the SPID driver with support for the Rot1Prog az
rotator controller. It also updates protocol documentation. The driver
has been tested with Rot1Prog and with Rot2Prog for regression.
Submitted by Norvald H. Ryeng <ryeng@users.sourceforge.net). Tracker
info: SPID Rot1Prog rotator driver - ID: 3167384
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@3027 7ae35d74-ebe9-4afe-98af-79ac388436b8
Added FUNcube interface to Hamlib. This is a basic FUNcube interface:
at the moment only frequency set/readout is supported. From Stefano
Speretta <s.speretta@isispace.nl>.
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@3026 7ae35d74-ebe9-4afe-98af-79ac388436b8
* added rig_lookup_mem_caps/rig_mem_count and rig_strmtype/rig_parse_mtype
* misc change to RIG_VFO* for Swig to make them available in the bindings
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@2329 7ae35d74-ebe9-4afe-98af-79ac388436b8