Put a looplimit on icom_get_ant_count trying to get autodetect to work
Changes to icom_get_ant_count to try and get this working
Added dummy antenna # args to rigs that don't care i.e. only have 1 antenna
ICOM test via rigctl
Rig command: w \0xfe\0xfe\0x58\0xe0\0x03\0xfd
Reply:\0xFE\0xFE\0x58\0xE0\0x03\0xFD\0xFE\0xFE\0xE0\0x58\0x03\0x00\0x50\0x09\0x14\0x00\0xFD 17
Rig command: W \0xfe\0xfe\0x58\0xe0\0x03\0xfd 17
Reply:\0xFE\0xFE\0x58\0xE0\0x03\0xFD\0xFE\0xFE\0xE0\0x58\0x03\0x00\0x50\0x09\0x14\0x00\0xFD 17
Rig command: w FA;
send_cmd: error = Invalid parameter
Rig command: W FA; 14
send_cmd_rx: error = Invalid parameter
ICOM test via rigctld
Rig command: w \0xfe\0xfe\0x58\0xe0\0x03\0xfd
Reply:\0xFE\0xFE\0x58\0xE0\0x03\0xFD\0xFE\0xFE\0xE0\0x58\0x03\0x00\0x50\0x09\0x14\0x00\0xFD 17
Rig command: W \0xfe\0xfe\0x58\0xe0\0x03\0xfd 17
Reply:\0xFE\0xFE\0x58\0xE0\0x03\0xFD\0xFE\0xFE\0xE0\0x58\0x03\0x00\0x50\0x09\0x14\0x00\0xFD 17
Rig command: w FA;
Reply:RPRT -1
Rig command: W FA; 14
Reply:RPRT -1
Kenwood test via rigctl
Rig command: w FA;
Reply:FA00014074000;
Rig command: W FA; 14
Reply:FA00014074000;
Rig command: w \0x46\0x41\0x3b
Reply:FA00014074000;
Rig command: W \0x46\0x41\0x3b 14
Reply:FA00014074000;
Kenwood test via rigctld
Rig command: w FA;
Reply:FA00014074000;
Rig command: W FA; 14
Reply:FA00014074000;
Rig command: w \0x46\0x41\0x3b
Reply:FA00014074000;
Rig command: W \0x46\0x41\0x3b 14
Reply:FA00014074000;
So we can now do this...write once to see how many bytes you get back
Rig command: w \0xfe\0xfe\0x58\0xe0\0x03\0xfd
Cmd:\0xFE\0xFE\0x58\0xE0\0x03\0xFD\0xFE\0xFE\0xE0\0x58\0x03\0x00\0x00\0x09\0x14\0x00\0xFD 17
Then use 'W' to write the command with the # of bytes to expect -- no timeout this way
Rig command: W \0xfe\0xfe\0x58\0xe0\0x03\0xfd 17
Cmd:\0xFE\0xFE\0x58\0xE0\0x03\0xFD\0xFE\0xFE\0xE0\0x58\0x03\0x00\0x00\0x09\0x14\0x00\0xFD 17
Fix declarations after statements
Remove some !rig checks...we either don't need them or need them everywhere with a new error code
If you pass a NULL rig you get what you deserve :-)
Now responds with hex string just like the input and the # of bytes
Will get hex string response for any binary data from rig from any command
Next step is to implement W command for known # of bytes in response to avoid the timeout
This found tons of errors in rig_debug statements
So this patch cleans up all the files that were producing warnings or errors
This should fix a few segfaults when running with debug turned on
Because some rigs lock their front panel when opened for CAT it is
helpful to call rig_close() in rigctld when no clients are
connected. This change does that.
A CTRL+C handler is also added to allow rig_close() to be called
during exit.
on the real rig. In rigctl_parse.c, we make sure that invalid attempts to
so so are mapped on a safe variant.
Second change to netrigctl: drain the input line before sending a new
command, to reach sync again after a timeout.
Separate FT-891 features
Fix rigctl and rigctld to not abort on function not available
Change Yaesu detection of FA length to automatic method instead of rig specific
This makes the first non-option argument end getopt_long() parsing
stop rather than shuffling non-option arguments to the end. This is
necessary so that rig/rotator command language arguments can start
with a '-' character and also it enables the '-' pseudo command to
switch to reading commands from stdin work correctly.
The change also make checking for the '-', switch to stdin, command
stricter in that it must be where a command is expected and it must be
a word containing exactly a single '-' character.
Overall this allows the following styles of use:
$ rigctl R -
$ rigctl - <<EOF
>R -
>EOF
R -
$ echo "R -" | rigctl -
R -
$ rigctl -m 1 M CW -1
$ rigctl F 434000000 - <<EOF
>M FM 15000
>f m
>EOF
M FM 15000
f 145000000
m FM
15000
$
as well as the command line interpreter operation where no commands
nor '-' are provided:
$ rigctl
Rig command: R -
Rig command: r
Rptr Shift: -
Rig command: f
Frequency: 145000000
Rig command: m
Mode: FM
Passband: 15000
Rig command: F 434000000
Rig command: f
Frequency: 434000000
Rig command: q
$
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.
This allows repeatable regression testing where a command has a finite
"settling" time. This will probably be of most use in the related
rotctl command set.
In order to write regression tests before making disruptive changes to
back ends I have added a new command to the rigctl parser which is '-'
that causes it to read commands from stdin until they are exhausted.
The commands must be white space separated and can include comments
from a '#' character until the end of the current line.
Implement first cut at storing and recalling history. At this point
history is retained for the current session only.
History is stored as complete command lines even if values are entered
at separate prompts. Readline allows editing and even deleting recalled
history lines.
Initial implementation of Readline input handling. Only if 'configure'
finds Readline will it be enabled and when enabled it will only be used
by rigctl in interactive mode. Passing rig commands from the rigctl
command line and rigctld use the original input handling which has not
been modified.
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.
Avoid null pointer segfault when -C param is specified with no '=' e.g.
"rigctl -C foo".
Thanks to Charles Suprin <hamaa1vs@gmail.com> for the report.
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@3058 7ae35d74-ebe9-4afe-98af-79ac388436b8
clients to query the state of the -b|--block or -o|--vfo options from rigctld
Cleaned up strings in dumpcaps.c to remove duplicates to facilite
their use as key:value pairs
Updated rigctld man page for new commands
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@2820 7ae35d74-ebe9-4afe-98af-79ac388436b8
Changed vfo to txvfo = RIG_VFO_TX in set_split_mode(), get_split_mode()
RIG_VFO_TX is "split or uplink vfo";
This may/will break code, maybe we want a vfo option instead?
Terry KJ4EED
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@2499 7ae35d74-ebe9-4afe-98af-79ac388436b8
* DTMF send/recv and get_dcd
* dump_state for internal use by netrigctl backend
* factorize the "END" marker for rigctld, with proprer flushing/error handling
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@2393 7ae35d74-ebe9-4afe-98af-79ac388436b8