hamlib-cvs-digest Mailing List for Ham Radio Control Libraries (Page 5)
Library to control radio transceivers and receivers
Brought to you by:
n0nb
You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(57) |
Nov
(27) |
Dec
(25) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(41) |
Feb
(101) |
Mar
(60) |
Apr
(32) |
May
(32) |
Jun
(198) |
Jul
(95) |
Aug
(60) |
Sep
(48) |
Oct
(96) |
Nov
(27) |
Dec
(222) |
2002 |
Jan
(180) |
Feb
(46) |
Mar
(68) |
Apr
(11) |
May
(36) |
Jun
(34) |
Jul
(113) |
Aug
(42) |
Sep
(71) |
Oct
(65) |
Nov
(116) |
Dec
(40) |
2003 |
Jan
(32) |
Feb
(92) |
Mar
(29) |
Apr
(102) |
May
(21) |
Jun
(34) |
Jul
(3) |
Aug
(60) |
Sep
(30) |
Oct
(62) |
Nov
(57) |
Dec
(33) |
2004 |
Jan
(28) |
Feb
(46) |
Mar
(16) |
Apr
(14) |
May
(31) |
Jun
(21) |
Jul
(10) |
Aug
(80) |
Sep
(42) |
Oct
(11) |
Nov
(28) |
Dec
(13) |
2005 |
Jan
(35) |
Feb
(26) |
Mar
(20) |
Apr
(118) |
May
(2) |
Jun
(5) |
Jul
|
Aug
|
Sep
(5) |
Oct
(1) |
Nov
(13) |
Dec
(1) |
2006 |
Jan
(9) |
Feb
(25) |
Mar
(22) |
Apr
(6) |
May
|
Jun
|
Jul
(2) |
Aug
(1) |
Sep
(3) |
Oct
(46) |
Nov
(13) |
Dec
(7) |
2007 |
Jan
(9) |
Feb
(14) |
Mar
(3) |
Apr
|
May
(6) |
Jun
(1) |
Jul
|
Aug
(11) |
Sep
(7) |
Oct
(8) |
Nov
(41) |
Dec
(3) |
2008 |
Jan
(27) |
Feb
(16) |
Mar
(13) |
Apr
(23) |
May
(39) |
Jun
(4) |
Jul
(7) |
Aug
(1) |
Sep
(13) |
Oct
(52) |
Nov
(44) |
Dec
(55) |
2009 |
Jan
(72) |
Feb
(69) |
Mar
|
Apr
|
May
|
Jun
(13) |
Jul
(1) |
Aug
(6) |
Sep
(15) |
Oct
(11) |
Nov
(31) |
Dec
(20) |
2010 |
Jan
(24) |
Feb
(21) |
Mar
(22) |
Apr
(40) |
May
(38) |
Jun
(4) |
Jul
(2) |
Aug
(22) |
Sep
(19) |
Oct
(14) |
Nov
(5) |
Dec
(8) |
2011 |
Jan
(14) |
Feb
(36) |
Mar
(6) |
Apr
|
May
|
Jun
(23) |
Jul
(13) |
Aug
(8) |
Sep
(7) |
Oct
|
Nov
(3) |
Dec
(9) |
2012 |
Jan
(17) |
Feb
(13) |
Mar
(10) |
Apr
|
May
(1) |
Jun
(14) |
Jul
(4) |
Aug
(12) |
Sep
(2) |
Oct
(24) |
Nov
(14) |
Dec
(2) |
2013 |
Jan
(4) |
Feb
(3) |
Mar
(3) |
Apr
(3) |
May
(10) |
Jun
(4) |
Jul
(7) |
Aug
|
Sep
(15) |
Oct
(5) |
Nov
(1) |
Dec
(2) |
2014 |
Jan
|
Feb
(8) |
Mar
(1) |
Apr
(3) |
May
(1) |
Jun
|
Jul
|
Aug
(1) |
Sep
(3) |
Oct
(7) |
Nov
(6) |
Dec
(3) |
2015 |
Jan
(4) |
Feb
(5) |
Mar
(8) |
Apr
(8) |
May
(2) |
Jun
|
Jul
(4) |
Aug
(7) |
Sep
(8) |
Oct
|
Nov
(6) |
Dec
(4) |
2016 |
Jan
(6) |
Feb
(26) |
Mar
(3) |
Apr
(10) |
May
(6) |
Jun
(5) |
Jul
(1) |
Aug
(4) |
Sep
(3) |
Oct
(4) |
Nov
(3) |
Dec
(10) |
2017 |
Jan
(11) |
Feb
(11) |
Mar
(2) |
Apr
(1) |
May
(7) |
Jun
(2) |
Jul
(11) |
Aug
(9) |
Sep
(5) |
Oct
(5) |
Nov
(1) |
Dec
(2) |
2018 |
Jan
(5) |
Feb
(2) |
Mar
(19) |
Apr
(7) |
May
(11) |
Jun
(3) |
Jul
(4) |
Aug
(10) |
Sep
(2) |
Oct
(8) |
Nov
(6) |
Dec
(9) |
2019 |
Jan
(9) |
Feb
(6) |
Mar
(2) |
Apr
(4) |
May
(6) |
Jun
(9) |
Jul
(6) |
Aug
(3) |
Sep
(5) |
Oct
(2) |
Nov
(8) |
Dec
(9) |
2020 |
Jan
(15) |
Feb
(1) |
Mar
(18) |
Apr
(33) |
May
(43) |
Jun
(87) |
Jul
(45) |
Aug
(8) |
Sep
(43) |
Oct
(3) |
Nov
(5) |
Dec
(42) |
2021 |
Jan
(116) |
Feb
(40) |
Mar
(58) |
Apr
(48) |
May
(29) |
Jun
(2) |
Jul
|
Aug
(22) |
Sep
(18) |
Oct
(1) |
Nov
|
Dec
(3) |
2022 |
Jan
(1) |
Feb
(1) |
Mar
|
Apr
(1) |
May
(2) |
Jun
(1) |
Jul
|
Aug
(1) |
Sep
|
Oct
(6) |
Nov
(2) |
Dec
(9) |
2023 |
Jan
(10) |
Feb
|
Mar
|
Apr
(10) |
May
(3) |
Jun
(1) |
Jul
(2) |
Aug
(4) |
Sep
(1) |
Oct
|
Nov
(2) |
Dec
(3) |
2024 |
Jan
(4) |
Feb
(1) |
Mar
(2) |
Apr
(2) |
May
(5) |
Jun
(3) |
Jul
(1) |
Aug
(2) |
Sep
|
Oct
(2) |
Nov
(3) |
Dec
(9) |
2025 |
Jan
(5) |
Feb
(5) |
Mar
|
Apr
(10) |
May
(20) |
Jun
(43) |
Jul
(24) |
Aug
(11) |
Sep
|
Oct
|
Nov
|
Dec
|
From: n0nb <n0...@us...> - 2025-04-22 03:04:58
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via 5d81ea38bbdfd92e680995057b8ed46f53f5a8d8 (commit) via 923a789c29ad81abfbb7149f80cebd51afc6b756 (commit) from 9aed2637a63abb8b175a21b06942cca5308e7527 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 5d81ea38bbdfd92e680995057b8ed46f53f5a8d8 Merge: 9aed2637a 923a789c2 Author: Nate Bargmann <n0...@n0...> Date: Mon Apr 21 22:03:00 2025 -0500 Merge pull request #1710 from N0NB/aclog_get_freq-thousands_separator Fix sscanf() truncating input from thousands separator commit 923a789c29ad81abfbb7149f80cebd51afc6b756 Author: Nate Bargmann <n0...@n0...> Date: Mon Apr 21 21:27:55 2025 -0500 Fix sscanf() truncating input from thousands separator Per Github issue #1704, N3FJP logger sends a string with an embedded comma for frequencies above 1 GHz resulting in such frequencies being truncated. This patch uses the optional apostrophe character in the sscanf() format string to ignore the thousands separator. A possible bug is when the locale of the system on which libhamlib is executing uses a dot for the thousands separator rather than a comma. It is unclear if the N3FJP software obeys such locales or not. If this turns out to be an issue then this fix will need to be reconsidered. diff --git a/rigs/dummy/aclog.c b/rigs/dummy/aclog.c index 3e0f69803..8baeef075 100644 --- a/rigs/dummy/aclog.c +++ b/rigs/dummy/aclog.c @@ -461,7 +461,7 @@ static int aclog_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) char *p = strstr(value, "<FREQ>"); *freq = 0; - if (p) { sscanf(p, "<FREQ>%lf", freq); } + if (p) { sscanf(p, "<FREQ>%'lf", freq); } *freq *= 1e6; // convert from MHz to Hz ----------------------------------------------------------------------- Summary of changes: rigs/dummy/aclog.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: n0nb <n0...@us...> - 2025-04-21 22:28:27
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via 9aed2637a63abb8b175a21b06942cca5308e7527 (commit) via 4f3f308d7af83316eb8e3aebe48abb960f9e9e11 (commit) via 1f707ab31ef5ceebd552e1292d541fd9baed55a1 (commit) via 8150583541e4230c6b76dc38209b58694f6e6f99 (commit) via ba011462efc37b12d18d5bf59d0e0a7b117fceeb (commit) from 8f641b2b6a4fabe4d4f3062f4fa591ba2e7a672f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 9aed2637a63abb8b175a21b06942cca5308e7527 Merge: 8f641b2b6 4f3f308d7 Author: Nate Bargmann <n0...@n0...> Date: Mon Apr 21 17:27:29 2025 -0500 Merge pull request #1708 from GeoBaltz/fix27 Minor fixes/cleanups for 4.6.3 commit 4f3f308d7af83316eb8e3aebe48abb960f9e9e11 Author: George Baltz N3GB <Geo...@gm...> Date: Mon Apr 21 13:32:42 2025 -0400 Enable rig_vfo_op for TS-890S diff --git a/rigs/kenwood/ts890s.c b/rigs/kenwood/ts890s.c index c5906f6dc..32d8c4533 100644 --- a/rigs/kenwood/ts890s.c +++ b/rigs/kenwood/ts890s.c @@ -669,6 +669,7 @@ struct rig_caps ts890s_caps = .get_mode = kenwood_get_mode, .set_vfo = kenwood_set_vfo, .get_vfo = kenwood_get_vfo_if, + .vfo_op = kenwood_vfo_op, .set_split_vfo = kenwood_set_split_vfo, .get_split_vfo = ts890s_get_split_vfo, .set_ctcss_tone = kenwood_set_ctcss_tone_tn, commit 1f707ab31ef5ceebd552e1292d541fd9baed55a1 Author: George Baltz N3GB <Geo...@gm...> Date: Wed Apr 16 03:35:48 2025 -0400 Make local functions static. diff --git a/tests/rigmem.c b/tests/rigmem.c index bf73e7102..6c8d9bac2 100644 --- a/tests/rigmem.c +++ b/tests/rigmem.c @@ -55,7 +55,7 @@ extern int csv_parm_load(RIG *rig, const char *infilename); */ void usage(); void version(); -int set_conf(RIG *rig, char *conf_parms); +static int set_conf(RIG *rig, char *conf_parms); int clear_chans(RIG *rig, const char *infilename); @@ -442,7 +442,7 @@ void usage() } -int set_conf(RIG *rig, char *conf_parms) +static int set_conf(RIG *rig, char *conf_parms) { char *p, *n; diff --git a/tests/rigswr.c b/tests/rigswr.c index 0caf9bb22..2754ec214 100644 --- a/tests/rigswr.c +++ b/tests/rigswr.c @@ -374,7 +374,7 @@ void usage() } -int set_conf(RIG *rig, char *conf_parms) +static int set_conf(RIG *rig, char *conf_parms) { char *p, *n; commit 8150583541e4230c6b76dc38209b58694f6e6f99 Author: George Baltz N3GB <Geo...@gm...> Date: Wed Apr 16 03:33:51 2025 -0400 Drop redundant token lookups. diff --git a/tests/ampctl.c b/tests/ampctl.c index 6a0cf29b3..04ed2cef5 100644 --- a/tests/ampctl.c +++ b/tests/ampctl.c @@ -315,7 +315,7 @@ int main(int argc, char *argv[]) continue; } - retcode = amp_set_conf(my_amp, amp_token_lookup(my_amp, mytoken), myvalue); + retcode = amp_set_conf(my_amp, lookup, myvalue); if (retcode != RIG_OK) { diff --git a/tests/ampctld.c b/tests/ampctld.c index 079eb068b..fda0bfa09 100644 --- a/tests/ampctld.c +++ b/tests/ampctld.c @@ -340,7 +340,7 @@ int main(int argc, char *argv[]) continue; } - retcode = amp_set_conf(my_amp, amp_token_lookup(my_amp, mytoken), myvalue); + retcode = amp_set_conf(my_amp, lookup, myvalue); if (retcode != RIG_OK) { diff --git a/tests/rigctl.c b/tests/rigctl.c index 35d1241b3..064e54f14 100644 --- a/tests/rigctl.c +++ b/tests/rigctl.c @@ -585,7 +585,7 @@ int main(int argc, char *argv[]) continue; } - retcode = rig_set_conf(my_rig, rig_token_lookup(my_rig, mytoken), myvalue); + retcode = rig_set_conf(my_rig, lookup, myvalue); if (retcode != RIG_OK) { diff --git a/tests/rigctld.c b/tests/rigctld.c index 8ee613cf1..f14effe7b 100644 --- a/tests/rigctld.c +++ b/tests/rigctld.c @@ -681,7 +681,7 @@ int main(int argc, char *argv[]) continue; } - retcode = rig_set_conf(my_rig, rig_token_lookup(my_rig, mytoken), myvalue); + retcode = rig_set_conf(my_rig, lookup, myvalue); if (retcode != RIG_OK) { diff --git a/tests/rotctl.c b/tests/rotctl.c index 873c9b96e..9b713d3ad 100644 --- a/tests/rotctl.c +++ b/tests/rotctl.c @@ -355,7 +355,7 @@ int main(int argc, char *argv[]) continue; } - retcode = rot_set_conf(my_rot, rot_token_lookup(my_rot, mytoken), myvalue); + retcode = rot_set_conf(my_rot, lookup, myvalue); if (retcode != RIG_OK) { diff --git a/tests/rotctld.c b/tests/rotctld.c index e68227acf..aa61d71a4 100644 --- a/tests/rotctld.c +++ b/tests/rotctld.c @@ -363,7 +363,7 @@ int main(int argc, char *argv[]) continue; } - retcode = rot_set_conf(my_rot, rot_token_lookup(my_rot, mytoken), myvalue); + retcode = rot_set_conf(my_rot, lookup, myvalue); if (retcode != RIG_OK) { commit ba011462efc37b12d18d5bf59d0e0a7b117fceeb Author: George Baltz N3GB <Geo...@gm...> Date: Wed Apr 16 03:31:14 2025 -0400 Add dates for recent releases diff --git a/NEWS b/NEWS index 9ab81f35b..7da905aae 100644 --- a/NEWS +++ b/NEWS @@ -17,12 +17,14 @@ Version 4.6.3 * Add rig CODAN 2110 Version 4.6.2 + * 2025-02-09 * Add missing levels for IC746/PRO RIG_LEVEL_RFPOWER_METER,RIG_LEVEL_RFPOWER_METER_WATTS,RIG_LEVEL_SWR,RIG_LEVEL_ALC * Fix IC905 for gpredict * Fix potential segfault on QMX * Fix pmr171 Version 4.6.1 + * 2025-01-21 * Fix C++ builds failing on rig_list_foreach function * Fix IC9100 rigctld startup to end up on VFOA * Fix grig build by removing sys/socket.h -- apparently not needed @@ -34,6 +36,7 @@ Version 4.6.1 * Fix SDRConsole by removing lots of things it does not have Version 4.6 + * 2024-12-24 * send_raw can now take hex digits as colon-separated -- e.g. send_raw icom xfe:xfe:x94:xe0:03:xfd * Add IC7760 * IC7300 Mode filter can now be set by # (i.e. 1,2,3) ----------------------------------------------------------------------- Summary of changes: NEWS | 3 +++ rigs/kenwood/ts890s.c | 1 + tests/ampctl.c | 2 +- tests/ampctld.c | 2 +- tests/rigctl.c | 2 +- tests/rigctld.c | 2 +- tests/rigmem.c | 4 ++-- tests/rigswr.c | 2 +- tests/rotctl.c | 2 +- tests/rotctld.c | 2 +- 10 files changed, 13 insertions(+), 9 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: n0nb <n0...@us...> - 2025-04-21 22:25:12
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via 8f641b2b6a4fabe4d4f3062f4fa591ba2e7a672f (commit) via cee0fcb2cb621deba277fe9e2c4f8283f43b136a (commit) via 7f717d520d0e7adbb436f258e03e8ce6105d65f9 (commit) via cd82f08ec56b153029067be4a616bf0fd136b6a4 (commit) via 2c0067d51062b7d37f66274e1ecee6a2869b8f5e (commit) via faae6b5405fd24c7f10810d46f6684042ab18bab (commit) via 0323d3a06a4ebe48c342a86972bb9976949fdde5 (commit) via 735d54e318da14309308e9bb0b35ac3b39729335 (commit) via 576cfb66b1efd20c9bcd5057a15023de34a0845b (commit) via 69f2c609393437b126d3e620f025a77026d83192 (commit) via 19de592d3ca0a1a1afb52be874b198eb26619c20 (commit) via f9deb43e803a4177440f69a18136e64efe7fd11f (commit) via cd092fc65421a1494abde9da5c8dbe5b9eed0eb8 (commit) via f890fcf6482c8197b3c29f716cad7370a9806d6b (commit) via d724f04163d0bfe29717b11efb8f044025204807 (commit) from 49af447f27ffd1c481e72293d04e9fa1dd56de53 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 8f641b2b6a4fabe4d4f3062f4fa591ba2e7a672f Merge: 49af447f2 cee0fcb2c Author: Nate Bargmann <n0...@n0...> Date: Mon Apr 21 17:22:59 2025 -0500 Merge pull request #1707 from dforsi/fix/manpage Fix/manpage commit cee0fcb2cb621deba277fe9e2c4f8283f43b136a Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Mon Apr 21 22:21:10 2025 +0200 Add -b, --bind-all to --help text diff --git a/tests/rigctld.c b/tests/rigctld.c index 487ff22f4..beb369fc5 100644 --- a/tests/rigctld.c +++ b/tests/rigctld.c @@ -1531,6 +1531,7 @@ void usage(void) " -Z, --debug-time-stamps enable time stamps for debug messages\n" " -A, --password=PASSWORD set password for rigctld access (NOT IMPLEMENTED)\n" " -R, --rigctld-idle make rigctld close the rig when no clients are connected\n" + " -b, --bind-all make rigctld bind to first network device available\n" " -h, --help display this help and exit\n" " -V, --version output version information and exit\n\n", portno); commit 7f717d520d0e7adbb436f258e03e8ce6105d65f9 Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Mon Apr 21 20:11:40 2025 +0200 Add that passwords aren't implemented diff --git a/doc/man1/rigctl.1 b/doc/man1/rigctl.1 index 3b46c3754..2fec9b6a9 100644 --- a/doc/man1/rigctl.1 +++ b/doc/man1/rigctl.1 @@ -1491,6 +1491,7 @@ before sending the next command to the radio. .TP .BR password " \(aq" \fIPassword\fP \(aq Sends password to rigctld when rigctld has been secured with -A. Must use the 32-char shared secret from rigctld. +(NOT IMPLEMENTED) . .TP .BR set_lock_mode " \(aq" \fILocked\fP \(aq diff --git a/doc/man1/rigctld.1 b/doc/man1/rigctld.1 index e5ff2b199..187ecfce1 100644 --- a/doc/man1/rigctld.1 +++ b/doc/man1/rigctld.1 @@ -404,6 +404,7 @@ option as it generates no output on its own. Sets password on .B rigctld which requires hamlib to use rig_set_password and rigctl to use \\password to access rigctld. A 32-char shared secret will be displayed to be used on the client side. +(NOT IMPLEMENTED) . .TP .BR \-R ", " \-\-rigctld\-idle diff --git a/tests/rigctld.c b/tests/rigctld.c index 9d16c4606..487ff22f4 100644 --- a/tests/rigctld.c +++ b/tests/rigctld.c @@ -1529,7 +1529,7 @@ void usage(void) " -w, --twiddle_rit=SECONDS suppress VFOB getfreq so RIT can be twiddled\n" " -x, --uplink set uplink get_freq ignore, 1=Sub, 2=Main\n" " -Z, --debug-time-stamps enable time stamps for debug messages\n" - " -A, --password=PASSWORD set password for rigctld access\n" + " -A, --password=PASSWORD set password for rigctld access (NOT IMPLEMENTED)\n" " -R, --rigctld-idle make rigctld close the rig when no clients are connected\n" " -h, --help display this help and exit\n" " -V, --version output version information and exit\n\n", commit cd82f08ec56b153029067be4a616bf0fd136b6a4 Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Mon Apr 21 20:00:02 2025 +0200 Add missing command line short option -b for --bind-all diff --git a/tests/rigctld.c b/tests/rigctld.c index dee99fee3..9d16c4606 100644 --- a/tests/rigctld.c +++ b/tests/rigctld.c @@ -81,7 +81,7 @@ * keep up to date SHORT_OPTIONS, usage()'s output and man page. thanks. * TODO: add an option to read from a file */ -#define SHORT_OPTIONS "m:r:p:d:P:D:s:S:c:T:t:C:W:w:x:z:lLuovhVZRA:" +#define SHORT_OPTIONS "m:r:p:d:P:D:s:S:c:T:t:C:W:w:x:z:lLuovhVZRA:b" static struct option long_options[] = { {"model", 1, 0, 'm'}, commit 2c0067d51062b7d37f66274e1ecee6a2869b8f5e Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Mon Apr 21 19:57:44 2025 +0200 Remove unused command line short options -M and -N The long options --multicast-addr and --multicast-port were removed in commit c8c8869a. diff --git a/tests/rigctld.c b/tests/rigctld.c index d600c68a1..dee99fee3 100644 --- a/tests/rigctld.c +++ b/tests/rigctld.c @@ -81,7 +81,7 @@ * keep up to date SHORT_OPTIONS, usage()'s output and man page. thanks. * TODO: add an option to read from a file */ -#define SHORT_OPTIONS "m:r:p:d:P:D:s:S:c:T:t:C:W:w:x:z:lLuovhVZMRA:n:" +#define SHORT_OPTIONS "m:r:p:d:P:D:s:S:c:T:t:C:W:w:x:z:lLuovhVZRA:" static struct option long_options[] = { {"model", 1, 0, 'm'}, commit faae6b5405fd24c7f10810d46f6684042ab18bab Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Mon Apr 21 19:46:29 2025 +0200 Add missing arguments to command line options diff --git a/tests/rigctld.c b/tests/rigctld.c index 8ee613cf1..d600c68a1 100644 --- a/tests/rigctld.c +++ b/tests/rigctld.c @@ -1525,11 +1525,11 @@ void usage(void) " -u, --dump-caps dump capabilities and exit\n" " -o, --vfo do not default to VFO_CURR, require extra vfo arg\n" " -v, --verbose set verbose mode, cumulative (-v to -vvvvv)\n" - " -W, --twiddle_timeout timeout after detecting vfo manual change\n" - " -w, --twiddle_rit suppress VFOB getfreq so RIT can be twiddled\n" + " -W, --twiddle_timeout=SECONDS timeout after detecting vfo manual change\n" + " -w, --twiddle_rit=SECONDS suppress VFOB getfreq so RIT can be twiddled\n" " -x, --uplink set uplink get_freq ignore, 1=Sub, 2=Main\n" " -Z, --debug-time-stamps enable time stamps for debug messages\n" - " -A, --password set password for rigctld access\n" + " -A, --password=PASSWORD set password for rigctld access\n" " -R, --rigctld-idle make rigctld close the rig when no clients are connected\n" " -h, --help display this help and exit\n" " -V, --version output version information and exit\n\n", commit 0323d3a06a4ebe48c342a86972bb9976949fdde5 Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Mon Apr 21 19:40:15 2025 +0200 Add description for -w/--twiddle_rit diff --git a/doc/man1/rigctld.1 b/doc/man1/rigctld.1 index b8144f58e..e5ff2b199 100644 --- a/doc/man1/rigctld.1 +++ b/doc/man1/rigctld.1 @@ -380,6 +380,10 @@ Should only be needed when controlling software should be "paused" so you can move the VFO. Continuous movement extends the timeout. . .TP +.BR \-w ", " \-\-twiddle_rit = \fIseconds\fP +Suppress VFOB getfreq so RIT can be twiddled. +. +.TP .BR \-x ", " \-\-uplink = \fIoption\fP 1=Sub, 2=Main .IP commit 735d54e318da14309308e9bb0b35ac3b39729335 Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Sun Apr 20 23:36:04 2025 +0200 Sync text between man rigctl and man rigctld diff --git a/doc/man1/rigctl.1 b/doc/man1/rigctl.1 index e22181be6..3b46c3754 100644 --- a/doc/man1/rigctl.1 +++ b/doc/man1/rigctl.1 @@ -384,9 +384,9 @@ Since most of the .B Hamlib operations have a .BR set " and a " get -method, a single upper case letter will often be used for a +method, a single upper case letter will be used for .B set -method whereas the corresponding single lower case letter refers to the +methods whereas the corresponding single lower case letter refers to the .B get method. Each operation also has a long name; in interactive mode, prepend a backslash, \(oq\\\(cq, to enter a long command name all lower case. @@ -528,7 +528,8 @@ Set .RI \(aq VFO \(aq. .IP VFO is a token: \(oqVFOA\(cq, \(oqVFOB\(cq, \(oqVFOC\(cq, \(oqcurrVFO\(cq, -\(oqVFO\(cq, \(oqMEM\(cq, \(oqMain\(cq, \(oqSub\(cq, \(oqTX\(cq, \(oqRX\(cq. +\(oqVFO\(cq, \(oqMEM\(cq, \(oqMain\(cq, \(oqSub\(cq, \(oqTX\(cq, \(oqRX\(cq, +\(oqMainA\(cq, \(oqMainB\(cq, \(oqMainC\(cq, \(oqSubA\(cq, \(oqSubB\(cq \(oqSubC\(cq. .IP In VFO mode (see .B \-\-vfo @@ -733,7 +734,7 @@ Option returned depends on rig. For Icom it is likely the RX only flag. .BR b ", " send_morse " \(aq" \fIMorse\fP \(aq Send .RI \(aq Morse \(aq -symbols. For Yaesu rigs use memory#1-5 or up to 50 char msg +symbols. For Yaesu rigs use memory# (1-5 for most rigs) or up to 50 char message (which will use memory#1) Example from command line: .EX @@ -750,7 +751,7 @@ Stop sending the current morse code. . .TP .BR 0xbc ", " wait_morse " -Wait for morse to finish -- only works on full break-in +Wait for morse to finish -- only works on full break-in. . .TP .BR 0x94 ", " send_voice_mem " \(aq" \fIMsgnum\fP \(aq @@ -1532,7 +1533,9 @@ For Unix/Linux . .TP .BR client_version " \(aq" \fIString\fP "\(aq -Client can send its version to rigctld and get feedback on compatibility, deprecation, and alternatives. +Client can send its version to +.B rigctld +and get feedback on compatibility, deprecation, and alternatives .TP .BR hamlib_version Returns Hamlib version with ISO8601 date/time diff --git a/doc/man1/rigctld.1 b/doc/man1/rigctld.1 index cc790d4fe..b8144f58e 100644 --- a/doc/man1/rigctld.1 +++ b/doc/man1/rigctld.1 @@ -110,7 +110,7 @@ Here is a summary of the supported options: . .TP .BR \-m ", " \-\-model = \fIid\fP -Select radio model number. Defaults to dummy device. +Select radio model number. Defaults to dummy rig. .IP See model list (use \(lqrigctld -l\(rq). .IP @@ -163,7 +163,7 @@ Use of Push-To-Talk device. .IP Supported types are \(oqRIG\(cq (CAT command), \(oqDTR\(cq, \(oqRTS\(cq, -\(oqPARALLEL\(cq, \(oqNONE\(cq, overriding PTT type defined in the rig's +\(oqPARALLEL\(cq, \(oqCM108\(cq, \(oqGPIO\(cq, \(oqGPION\(cq, \(oqNONE\(cq, overriding PTT type defined in the rig's backend. .IP Some side effects of this command are that when type is set to DTR, read @@ -179,7 +179,7 @@ Use of Data Carrier Detect device. .IP Supported types are \(oqRIG\(cq (CAT command), \(oqDSR\(cq, \(oqCTS\(cq, -\(oqCD\(cq, \(oqPARALLEL\(cq, \(oqNONE\(cq. +\(oqCD\(cq, \(oqPARALLEL\(cq, \(oqCM108\(cq, \(oqGPIO\(cq, \(oqGPION\(cq, \(oqNONE\(cq. . .TP .BR \-s ", " \-\-serial\-speed = \fIbaud\fP @@ -517,6 +517,7 @@ Mode is a token: \(oqUSB\(cq, \(oqLSB\(cq, \(oqCW\(cq, \(oqCWR\(cq, \(oqDSB\(cq. .IP Passband is in Hz as an integer, -1 for no change, or \(oq0\(cq for the radio backend default. +IC7300 can use 1,2,3 to select which filter to use .IP .BR Note : Passing a \(oq?\(cq (query) as the first argument instead of a Mode token will @@ -708,21 +709,23 @@ Returns TX Mode as a token and TX Passband in Hz as in above. . .TP -.BR Y ", " set_ant " \(aq" \fIAntenna\fP \(aq +.BR Y ", " set_ant " \(aq" \fIAntenna\fP "\(aq \(aq" \fIOption\fP \(aq Set .RI \(aq Antenna \(aq -number (\(oq0\(cq, \(oq1\(cq, \(oq2\(cq, ...). +and +.RI \(aq Option \(aq. .IP +Number is 1-based antenna# (\(oq1\(cq, \(oq2\(cq, \(oq3\(cq, ...). .IP Option depends on rig. For Icom it probably sets the Tx & Rx antennas as in the IC-7851. See your manual for rig specific option values. Most rigs don't care about the option. .IP -For the IC-7851 (and perhaps others) it means this: +For the IC-7851, FTDX3000 (and perhaps others) it means this: .IP .in +4n .EX -1 = TX/RX = ANT1 -2 = TX/RX = ANT2 -3 = TX/RX = ANT3 +1 = TX/RX = ANT1 FTDX3000=ANT1/ANT3 +2 = TX/RX = ANT2 FTDX3000=ANT2/ANT3 +3 = TX/RX = ANT3 FTDX3000=ANT3 4 = TX/RX = ANT1/ANT4 5 = TX/RX = ANT2/ANT4 6 = TX/RX = ANT3/ANT4 @@ -730,10 +733,15 @@ For the IC-7851 (and perhaps others) it means this: .in . .TP -.BR y ", " get_ant +.BR y ", " get_ant " \(aq" \fIAntenna\fP \(aq Get .RI \(aq Antenna \(aq -number (\(oq0\(cq, \(oq1\(cq, \(oq2\(cq, ...). +.IP +A value of 0 for Antenna will return the current TX antenna +.IP +> 0 is 1-based antenna# (\(oq1\(cq, \(oq2\(cq, \(oq3\(cq, ...). +.IP +Option returned depends on rig. For Icom it is likely the RX only flag. . .TP .BR b ", " send_morse " \(aq" \fIMorse\fP \(aq @@ -861,16 +869,55 @@ Set and .RI \(aq "Func Status" \(aq. .IP -Func is a token: \(oqFAGC\(cq, \(oqNB\(cq, \(oqCOMP\(cq, \(oqVOX\(cq, -\(oqTONE\(cq, \(oqTSQL\(cq, \(oqSBKIN\(cq, \(oqFBKIN\(cq, \(oqANF\(cq, -\(oqNR\(cq, \(oqAIP\(cq, \(oqAPF\(cq, \(oqMON\(cq, \(oqMN\(cq, \(oqRF\(cq, -\(oqARO\(cq, \(oqLOCK\(cq, \(oqMUTE\(cq, \(oqVSC\(cq, \(oqREV\(cq, -\(oqSQL\(cq, \(oqABM\(cq, \(oqBC\(cq, \(oqMBC\(cq, \(oqRIT\(cq, \(oqAFC\(cq, -\(oqSATMODE\(cq, \(oqSCOPE\(cq, \(oqRESUME\(cq, \(oqTBURST\(cq, \(oqTUNER\(cq, -\(oqXIT\(cq, \(oqNB2\(cq, \(oqDSQL\(cq, \(oqAFLT\(cq, \(oqANL\(cq, \(oqBC2\(cq, -\(oqDUAL_WATCH\(cq, \(oqDIVERSITY\(cq, \(oqCSQL\(cq, \(oqSCEN\(cq, -\(oqTRANSCEIVE\(cq, \(oqSPECTRUM\(cq, \(oqSPECTRUM_HOLD\(cq, \(oqSEND_MORSE\(cq, -\(oqSEND_VOICE_MEM\(cq, \(oqOVF_STATUS\(cq, \(oqSYNC\(cq. +Func is a token: +\(oqABM\(cq, +\(oqAFC\(cq, +\(oqAFLT\(cq, +\(oqAIP\(cq, +\(oqANF\(cq, +\(oqANL\(cq, +\(oqAPF\(cq, +\(oqARO\(cq, +\(oqBC2\(cq, +\(oqBC\(cq, +\(oqCOMP\(cq, +\(oqCSQL\(cq, +\(oqDIVERSITY\(cq, +\(oqDSQL\(cq, +\(oqDUAL_WATCH\(cq, +\(oqFAGC\(cq, +\(oqFBKIN\(cq, +\(oqLOCK\(cq, +\(oqMBC\(cq, +\(oqMN\(cq, +\(oqMON\(cq, +\(oqMUTE\(cq, +\(oqNB2\(cq, +\(oqNB\(cq, +\(oqNR\(cq, +\(oqOVF_STATUS\(cq, +\(oqRESUME\(cq, +\(oqREV\(cq, +\(oqRF\(cq, +\(oqRIT\(cq, +\(oqSATMODE\(cq, +\(oqSBKIN\(cq, +\(oqSCEN\(cq, +\(oqSCOPE\(cq, +\(oqSEND_MORSE\(cq, +\(oqSEND_VOICE_MEM\(cq, +\(oqSPECTRUM\(cq, +\(oqSPECTRUM_HOLD\(cq, +\(oqSQL\(cq, +\(oqSYNC\(cq, +\(oqTBURST\(cq, +\(oqTONE\(cq, +\(oqTRANSCEIVE\(cq, +\(oqTSQL\(cq, +\(oqTUNER\(cq, +\(oqVOX\(cq, +\(oqVSC\(cq, +\(oqXIT\(cq. .IP Func Status is a non null value for \(lqactivate\(rq or \(lqde-activate\(rq otherwise, much as TRUE/FALSE definitions in the C language (true is non-zero @@ -1138,7 +1185,8 @@ Set .RI \(aq "Power Status" \(aq. .IP Power Status is a value: \(oq0\(cq = Power Off, \(oq1\(cq = Power On, -\(oq2\(cq = Power Standby. +\(oq2\(cq = Power Standby (enter standby), \(oq4\(cq = Power Operate (leave +standby). . .TP .BR 0x88 ", " get_powerstat @@ -1163,11 +1211,11 @@ Get DTMF Get misc information about the rig. . .TP -.BR 0xf5 ", " get_rig_info " -Get misc information about the rig vfos and other info. +.BR 0xf5 ", " get_rig_info +Get misc information about the rig vfo status and other info. . .TP -.BR 0xf3 ", " get_vfo_info " \(aq" "\fIVFO\fP" \(aq +.BR 0xf3 ", " get_vfo_info " \(aq" \fIVFO\fP \(aq Get misc information about a specific vfo. . .TP @@ -1226,15 +1274,29 @@ Set .RI \(aq DateTime \(aq .IP Sets rig clock -- note that some rigs do not handle seconds or milliseconds. -If you try to set that you will get a debug warning message. +If you try to set sec/msec and rig does not support it you will get a debug warning message. Format is ISO8601. +Formats accepted allow for 2-digit or 4-digit time zone .EX -Formats accepted -YYYY-MM-DDTHH:MM:SS.sss+ZZ (where +ZZ is either -/+ UTC offset) +YYYY-MM-DDTHH:MM:SS.SSS+ZZ (where +ZZ is either -/+ UTC offset HH) +YYYY-MM-DDTHH:MM:SS.SSS+ZZZZ (where +ZZZZ is either -/+ UTC offset HHMM) YYYY-MM-DDTHH:MM:SS+ZZ +YYYY-MM-DDTHH:MM:SS+ZZZZ YYYY-MM-DDTHH:MM+ZZ +YYYY-MM-DDTHH:MM+ZZZZ YYYY-MM-DD (sets date only) +local (sets both clocks to local time) +utc (sets both clocks to utc time) .EE +Note: Icom rigs expect you to set local time and the hours off to UTC. +So...4PM EST example would be 2021-12-01T16:00:00-0500 +But...if you want to display GMT you must set the clock for GMT with zero UTC offset. +Hopefully Icom will allow displaying either clock in the future + +Note: Kenwood rigs only allow setting local clock, and then only if not autoset by NTP. +Trying to set clock when NTP is in use will set the offset, but not the time - +and no error status will be returned. +Time displayed on the auxiliary clock is solely determined by UTC and the aux offset. . .TP .BR get_clock commit 576cfb66b1efd20c9bcd5057a15023de34a0845b Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Sun Apr 20 20:55:34 2025 +0200 Fix typos diff --git a/doc/man1/rigctl.1 b/doc/man1/rigctl.1 index 055cae80f..e22181be6 100644 --- a/doc/man1/rigctl.1 +++ b/doc/man1/rigctl.1 @@ -1417,7 +1417,7 @@ Set .IP Sets rig clock -- note that some rigs do not handle seconds or milliseconds. If you try to set sec/msec and rig does not support it you will get a debug warning message. -Format is ISO8601, +Format is ISO8601. Formats accepted allow for 2-digit or 4-digit time zone .EX YYYY-MM-DDTHH:MM:SS.SSS+ZZ (where +ZZ is either -/+ UTC offset HH) @@ -1535,7 +1535,7 @@ For Unix/Linux Client can send its version to rigctld and get feedback on compatibility, deprecation, and alternatives. .TP .BR hamlib_version -Returns hamlib version with ISO8601 date/time +Returns Hamlib version with ISO8601 date/time . .TP .BR test diff --git a/doc/man1/rigctld.1 b/doc/man1/rigctld.1 index 2332dd936..cc790d4fe 100644 --- a/doc/man1/rigctld.1 +++ b/doc/man1/rigctld.1 @@ -88,7 +88,7 @@ directly through a TCP socket. . .PP Keep in mind that Hamlib is BETA level software. While a lot of backend -libraries lack complete rotator support, the basic functions are usually well +libraries lack complete rig support, the basic functions are usually well supported. . .PP commit 69f2c609393437b126d3e620f025a77026d83192 Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Sun Apr 20 20:42:18 2025 +0200 Add missing diagram diff --git a/doc/man1/rigctlsync.1 b/doc/man1/rigctlsync.1 index d35dd41eb..18c454567 100644 --- a/doc/man1/rigctlsync.1 +++ b/doc/man1/rigctlsync.1 @@ -274,6 +274,8 @@ to communicate with a radio connected to Flrig: . .PP .in +4n +.EX +Flrig -><- rigctlcom -> COM9 <- virt_port_pipe -> COM10 <- N1MM .EE .in . commit 19de592d3ca0a1a1afb52be874b198eb26619c20 Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Sun Apr 20 19:43:59 2025 +0200 Fix list of parameters for get_parm/set_parm Fixes: AFIF_ACC, AFIF_LAN, AFIF_WLAN were missing. Uses the list returned by \get_parm ? sorted alphabetically to be more user friendly and to easily spot any missing item in future. diff --git a/doc/man1/rigctl.1 b/doc/man1/rigctl.1 index c419c1ee0..055cae80f 100644 --- a/doc/man1/rigctl.1 +++ b/doc/man1/rigctl.1 @@ -1121,8 +1121,21 @@ Set and .RI \(aq "Parm Value" \(aq. .IP -Parm is a token: \(oqANN\(cq, \(oqAPO\(cq, \(oqBACKLIGHT\(cq, \(oqBEEP\(cq, -\(oqTIME\(cq, \(oqBAT\(cq, \(oqKEYLIGHT\(cq, \(oqSCREENSAVER\(cq, \(oqAFIF\(cq, \(oqBANDSELECT\(cq, \(oqKEYERTYPE\(cq. +Parm is a token: +\(oqAFIF\(cq, +\(oqAFIF_ACC\(cq, +\(oqAFIF_LAN\(cq, +\(oqAFIF_WLAN\(cq, +\(oqANN\(cq, +\(oqAPO\(cq, +\(oqBACKLIGHT\(cq, +\(oqBANDSELECT\(cq, +\(oqBAT\(cq, +\(oqBEEP\(cq, +\(oqKEYERTYPE\(cq, +\(oqKEYLIGHT\(cq, +\(oqSCREENSAVER\(cq, +\(oqTIME\(cq. .IP .BR Note : Passing a \(oq?\(cq (query) as the first argument instead of a Parm token will diff --git a/doc/man1/rigctld.1 b/doc/man1/rigctld.1 index 2b3227e5a..2332dd936 100644 --- a/doc/man1/rigctld.1 +++ b/doc/man1/rigctld.1 @@ -989,8 +989,21 @@ Set and .RI \(aq "Parm Value" \(aq. .IP -Parm is a token: \(oqANN\(cq, \(oqAPO\(cq, \(oqBACKLIGHT\(cq, \(oqBEEP\(cq, -\(oqTIME\(cq, \(oqBAT\(cq, \(oqKEYLIGHT\(cq, \(oqBANDSELECT\(cq, \(oqKEYERTYPE\(cq. +Parm is a token: +\(oqAFIF\(cq, +\(oqAFIF_ACC\(cq, +\(oqAFIF_LAN\(cq, +\(oqAFIF_WLAN\(cq, +\(oqANN\(cq, +\(oqAPO\(cq, +\(oqBACKLIGHT\(cq, +\(oqBANDSELECT\(cq, +\(oqBAT\(cq, +\(oqBEEP\(cq, +\(oqKEYERTYPE\(cq, +\(oqKEYLIGHT\(cq, +\(oqSCREENSAVER\(cq, +\(oqTIME\(cq. .IP .BR Note : Passing a \(oq?\(cq (query) as the first argument instead of a Parm token will commit f9deb43e803a4177440f69a18136e64efe7fd11f Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Sun Apr 20 19:34:26 2025 +0200 Fix list of parameters for get_level/set_level Fixes: BAND_SELECT and COMP_METER were spelled wrong, NB was spelled NQ, USB_AF_INPUT, AGC_TIME, MGL, MGF, MGC, were missing. Uses the list returned by \get_level ? sorted alphabetically to be more user friendly and to easily spot any missing item in future. diff --git a/doc/man1/rigctl.1 b/doc/man1/rigctl.1 index b5897f2f1..c419c1ee0 100644 --- a/doc/man1/rigctl.1 +++ b/doc/man1/rigctl.1 @@ -985,17 +985,61 @@ Set and .RI \(aq "Level Value" \(aq. .IP -Level is a token: \(oqPREAMP\(cq, \(oqATT\(cq, \(oqVOXDELAY\(cq, \(oqAF\(cq, -\(oqRF\(cq, \(oqSQL\(cq, \(oqIF\(cq, \(oqAPF\(cq, \(oqNR\(cq, \(oqPBT_IN\(cq, -\(oqPBT_OUT\(cq, \(oqCWPITCH\(cq, \(oqRFPOWER\(cq, \(oqMICGAIN\(cq, -\(oqKEYSPD\(cq, \(oqNOTCHF\(cq, \(oqCOMP\(cq, \(oqAGC\(cq, \(oqBKINDL\(cq, -\(oqBAL\(cq, \(oqMETER\(cq, \(oqVOXGAIN\(cq, \(oqANTIVOX\(cq, -\(oqSLOPE_LOW\(cq, \(oqSLOPE_HIGH\(cq, \(oqBKIN_DLYMS\(cq, \(oqRAWSTR\(cq, \(oqSWR\(cq, -\(oqALC\(cq, \(oqSTRENGTH\(cq, \(oqRFPOWER_METER\(cq, \(oqCOMPMETER\(cq, \(oqVD_METER\(cq, \(oqID_METER\(cq, -\(oqNOTCHF_RAW\(cq, \(oqMONITOR_GAIN\(cq, \(oqNQ\(cq, \(oqRFPOWER_METER_WATTS\(cq, \(oqSPECTRUM_MODE\(cq, -\(oqSPECTRUM_SPAN\(cq, \(oqSPECTRUM_EDGE_LOW\(cq, \(oqSPECTRUM_EDGE_HIGH\(cq, \(oqSPECTRUM_SPEED\(cq, -\(oqSPECTRUM_REF\(cq, \(oqSPECTRUM_AVG\(cq, \(oqSPECTRUM_ATT\(cq, \(oqTEMP_METER\(cq, \(oqBANDSELECT\(cq, -\(oqUSB_AF\(cq. +Level is a token: +\(oqAF\(cq, +\(oqAGC\(cq, +\(oqAGC_TIME\(cq, +\(oqALC\(cq, +\(oqANTIVOX\(cq, +\(oqAPF\(cq, +\(oqATT\(cq, +\(oqBAL\(cq, +\(oqBAND_SELECT\(cq, +\(oqBKINDL\(cq, +\(oqBKIN_DLYMS\(cq, +\(oqCOMP\(cq, +\(oqCOMP_METER\(cq, +\(oqCWPITCH\(cq, +\(oqID_METER\(cq, +\(oqIF\(cq, +\(oqKEYSPD\(cq, +\(oqMETER\(cq, +\(oqMGC\(cq, +\(oqMGF\(cq, +\(oqMGL\(cq, +\(oqMICGAIN\(cq, +\(oqMONITOR_GAIN\(cq, +\(oqNB\(cq, +\(oqNOTCHF\(cq, +\(oqNOTCHF_RAW\(cq, +\(oqNR\(cq, +\(oqPBT_IN\(cq, +\(oqPBT_OUT\(cq, +\(oqPREAMP\(cq, +\(oqRAWSTR\(cq, +\(oqRF\(cq, +\(oqRFPOWER\(cq, +\(oqRFPOWER_METER\(cq, +\(oqRFPOWER_METER_WATTS\(cq, +\(oqSLOPE_HIGH\(cq, +\(oqSLOPE_LOW\(cq, +\(oqSPECTRUM_ATT\(cq, +\(oqSPECTRUM_AVG\(cq, +\(oqSPECTRUM_EDGE_HIGH\(cq, +\(oqSPECTRUM_EDGE_LOW\(cq, +\(oqSPECTRUM_MODE\(cq, +\(oqSPECTRUM_REF\(cq, +\(oqSPECTRUM_SPAN\(cq, +\(oqSPECTRUM_SPEED\(cq, +\(oqSQL\(cq, +\(oqSTRENGTH\(cq, +\(oqSWR\(cq, +\(oqTEMP_METER\(cq, +\(oqUSB_AF\(cq, +\(oqUSB_AF_INPUT\(cq, +\(oqVD_METER\(cq, +\(oqVOXDELAY\(cq, +\(oqVOXGAIN\(cq. .IP The Level Value can be a float or an integer value. For the AGC token the value is one of \(oq0\(cq = OFF, \(oq1\(cq = SUPERFAST, \(oq2\(cq = FAST, diff --git a/doc/man1/rigctld.1 b/doc/man1/rigctld.1 index 93916d9cd..2b3227e5a 100644 --- a/doc/man1/rigctld.1 +++ b/doc/man1/rigctld.1 @@ -902,17 +902,61 @@ Set and .RI \(aq "Level Value" \(aq. .IP -Level is a token: \(oqPREAMP\(cq, \(oqATT\(cq, \(oqVOXDELAY\(cq, \(oqAF\(cq, -\(oqRF\(cq, \(oqSQL\(cq, \(oqIF\(cq, \(oqAPF\(cq, \(oqNR\(cq, \(oqPBT_IN\(cq, -\(oqPBT_OUT\(cq, \(oqCWPITCH\(cq, \(oqRFPOWER\(cq, \(oqMICGAIN\(cq, -\(oqKEYSPD\(cq, \(oqNOTCHF\(cq, \(oqCOMP\(cq, \(oqAGC\(cq, \(oqBKINDL\(cq, -\(oqBAL\(cq, \(oqMETER\(cq, \(oqVOXGAIN\(cq, \(oqANTIVOX\(cq, -\(oqSLOPE_LOW\(cq, \(oqSLOPE_HIGH\(cq, \(oqBKIN_DLYMS\(cq, \(oqRAWSTR\(cq, \(oqSWR\(cq, -\(oqALC\(cq, \(oqSTRENGTH\(cq, \(oqRFPOWER_METER\(cq, \(oqCOMPMETER\(cq, \(oqVD_METER\(cq, \(oqID_METER\(cq, -\(oqNOTCHF_RAW\(cq, \(oqMONITOR_GAIN\(cq, \(oqNQ\(cq, \(oqRFPOWER_METER_WATTS\(cq, \(oqSPECTRUM_MODE\(cq, -\(oqSPECTRUM_SPAN\(cq, \(oqSPECTRUM_EDGE_LOW\(cq, \(oqSPECTRUM_EDGE_HIGH\(cq, \(oqSPECTRUM_SPEED\(cq, -\(oqSPECTRUM_REF\(cq, \(oqSPECTRUM_AVG\(cq, \(oqSPECTRUM_ATT\(cq, \(oqTEMP_METER\(cq, \(oqBAND_SELECT\(cq, -\(oqUSB_AF\(cq. +Level is a token: +\(oqAF\(cq, +\(oqAGC\(cq, +\(oqAGC_TIME\(cq, +\(oqALC\(cq, +\(oqANTIVOX\(cq, +\(oqAPF\(cq, +\(oqATT\(cq, +\(oqBAL\(cq, +\(oqBAND_SELECT\(cq, +\(oqBKINDL\(cq, +\(oqBKIN_DLYMS\(cq, +\(oqCOMP\(cq, +\(oqCOMP_METER\(cq, +\(oqCWPITCH\(cq, +\(oqID_METER\(cq, +\(oqIF\(cq, +\(oqKEYSPD\(cq, +\(oqMETER\(cq, +\(oqMGC\(cq, +\(oqMGF\(cq, +\(oqMGL\(cq, +\(oqMICGAIN\(cq, +\(oqMONITOR_GAIN\(cq, +\(oqNB\(cq, +\(oqNOTCHF\(cq, +\(oqNOTCHF_RAW\(cq, +\(oqNR\(cq, +\(oqPBT_IN\(cq, +\(oqPBT_OUT\(cq, +\(oqPREAMP\(cq, +\(oqRAWSTR\(cq, +\(oqRF\(cq, +\(oqRFPOWER\(cq, +\(oqRFPOWER_METER\(cq, +\(oqRFPOWER_METER_WATTS\(cq, +\(oqSLOPE_HIGH\(cq, +\(oqSLOPE_LOW\(cq, +\(oqSPECTRUM_ATT\(cq, +\(oqSPECTRUM_AVG\(cq, +\(oqSPECTRUM_EDGE_HIGH\(cq, +\(oqSPECTRUM_EDGE_LOW\(cq, +\(oqSPECTRUM_MODE\(cq, +\(oqSPECTRUM_REF\(cq, +\(oqSPECTRUM_SPAN\(cq, +\(oqSPECTRUM_SPEED\(cq, +\(oqSQL\(cq, +\(oqSTRENGTH\(cq, +\(oqSWR\(cq, +\(oqTEMP_METER\(cq, +\(oqUSB_AF\(cq, +\(oqUSB_AF_INPUT\(cq, +\(oqVD_METER\(cq, +\(oqVOXDELAY\(cq, +\(oqVOXGAIN\(cq. .IP The Level Value can be a float or an integer value. For the AGC token the value is one of \(oq0\(cq = OFF, \(oq1\(cq = SUPERFAST, \(oq2\(cq = FAST, commit cd092fc65421a1494abde9da5c8dbe5b9eed0eb8 Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Sun Apr 20 19:16:56 2025 +0200 Fix list of parameters for get_func/set_func Fixes: OVF_STATUS was spelled wrong, SYNC was missing, SLICE is not available. Uses the list returned by \get_func ? sorted alphabetically to be more user friendly and to easily spot any missing item in future. diff --git a/doc/man1/rigctl.1 b/doc/man1/rigctl.1 index 3e28d2785..b5897f2f1 100644 --- a/doc/man1/rigctl.1 +++ b/doc/man1/rigctl.1 @@ -855,65 +855,104 @@ Set and .RI \(aq "Func Status" \(aq. .IP -Func is a token: \(oqFAGC\(cq, \(oqNB\(cq, \(oqCOMP\(cq, \(oqVOX\(cq, -\(oqTONE\(cq, \(oqTSQL\(cq, \(oqSBKIN\(cq, \(oqFBKIN\(cq, \(oqANF\(cq, -\(oqNR\(cq, \(oqAIP\(cq, \(oqAPF\(cq, \(oqMON\(cq, \(oqMN\(cq, \(oqRF\(cq, -\(oqARO\(cq, \(oqLOCK\(cq, \(oqMUTE\(cq, \(oqVSC\(cq, \(oqREV\(cq, -\(oqSQL\(cq, \(oqABM\(cq, \(oqBC\(cq, \(oqMBC\(cq, \(oqRIT\(cq, \(oqAFC\(cq, -\(oqSATMODE\(cq, \(oqSCOPE\(cq, \(oqRESUME\(cq, \(oqTBURST\(cq, \(oqTUNER\(cq, -\(oqXIT\(cq, \(oqNB2\(cq, \(oqDSQL\(cq, \(oqAFLT\(cq, \(oqANL\(cq, \(oqBC2\(cq, -\(oqDUAL_WATCH\(cq, \(oqDIVERSITY\(cq, \(oqCSQL\(cq, \(oqSCEN\(cq, -\(oqTRANSCEIVE\(cq, \(oqSPECTRUM\(cq, \(oqSPECTRUM_HOLD\(cq, \(oqSEND_MORSE\(cq, -\(oqSEND_VOICE_MEM\(cq, \(oqOVF_STATUS\(cq. +Func is a token: +\(oqABM\(cq, +\(oqAFC\(cq, +\(oqAFLT\(cq, +\(oqAIP\(cq, +\(oqANF\(cq, +\(oqANL\(cq, +\(oqAPF\(cq, +\(oqARO\(cq, +\(oqBC2\(cq, +\(oqBC\(cq, +\(oqCOMP\(cq, +\(oqCSQL\(cq, +\(oqDIVERSITY\(cq, +\(oqDSQL\(cq, +\(oqDUAL_WATCH\(cq, +\(oqFAGC\(cq, +\(oqFBKIN\(cq, +\(oqLOCK\(cq, +\(oqMBC\(cq, +\(oqMN\(cq, +\(oqMON\(cq, +\(oqMUTE\(cq, +\(oqNB2\(cq, +\(oqNB\(cq, +\(oqNR\(cq, +\(oqOVF_STATUS\(cq, +\(oqRESUME\(cq, +\(oqREV\(cq, +\(oqRF\(cq, +\(oqRIT\(cq, +\(oqSATMODE\(cq, +\(oqSBKIN\(cq, +\(oqSCEN\(cq, +\(oqSCOPE\(cq, +\(oqSEND_MORSE\(cq, +\(oqSEND_VOICE_MEM\(cq, +\(oqSPECTRUM\(cq, +\(oqSPECTRUM_HOLD\(cq, +\(oqSQL\(cq, +\(oqSYNC\(cq, +\(oqTBURST\(cq, +\(oqTONE\(cq, +\(oqTRANSCEIVE\(cq, +\(oqTSQL\(cq, +\(oqTUNER\(cq, +\(oqVOX\(cq, +\(oqVSC\(cq, +\(oqXIT\(cq. - FAGC -- Fast AGC - NB -- Noise Blanker - COMP -- Speech Compression - VOX -- Voice Operated Relay - TONE -- CTCSS Tone TX - TSQL -- CTCSS Activate/De-activate RX - SBKIN -- Semi Break-in (CW mode) - FBKIN -- Full Break-in (CW mode) - ANF -- Automatic Notch Filter (DSP) - NR -- Noise Reduction (DSP) + ABM -- Auto Band Mode + AFC -- Auto Frequency Control ON/OFF + AFLT -- AF Filter setting AIP -- RF pre-amp (AIP on Kenwood, IPO on Yaesu, etc.) + ANF -- Automatic Notch Filter (DSP) + ANL -- Noise limiter setting APF -- Audio Peak Filter - MON -- Monitor transmitted signal - MN -- Manual Notch - RF -- RTTY Filter ARO -- Auto Repeater Offset + BC -- Beat Canceller + BC2 -- 2nd Beat Cancel + COMP -- Speech Compression + CSQL -- DCS Squelch setting + DIVERSITY -- Diversity receive + DSQL -- Digital modes squelch + DUAL_WATCH -- Dual Watch / Sub Receiver + FAGC -- Fast AGC + FBKIN -- Full Break-in (CW mode) LOCK -- Lock + MBC -- Manual Beat Canceller + MN -- Manual Notch + MON -- Monitor transmitted signal MUTE -- Mute - VSC -- Voice Scan Control + NB -- Noise Blanker + NB2 -- 2nd Noise Blanker + NR -- Noise Reduction (DSP) + OVF_STATUS -- Read overflow status 0=Off, 1=On + RESUME -- Scan auto-resume REV -- Reverse transmit and receive frequencies - SQL -- Turn Squelch Monitor on/off - ABM -- Auto Band Mode - BC -- Beat Canceller - MBC -- Manual Beat Canceller + RF -- RTTY Filter RIT -- Receiver Incremental Tuning - AFC -- Auto Frequency Control ON/OFF SATMODE -- Satellite mode ON/OFF + SBKIN -- Semi Break-in (CW mode) + SCEN -- scrambler/encryption SCOPE -- Simple bandscope ON/OFF - RESUME -- Scan auto-resume + SEND_MORSE -- Send specified characters using CW + SEND_VOICE_MEM -- Transmit in SSB message stored in memory + SPECTRUM -- Spectrum scope data output ON/OFF + SPECTRUM_HOLD -- Pause spectrum scope updates ON/OFF + SQL -- Turn Squelch Monitor on/off + SYNC -- Synchronize VFOs TBURST -- 1750 Hz tone burst + TONE -- CTCSS Tone TX + TRANSCEIVE -- Send radio state changes automatically ON/OFF + TSQL -- CTCSS Activate/De-activate RX TUNER -- Enable automatic tuner + VOX -- Voice Operated Relay + VSC -- Voice Scan Control XIT -- Transmitter Incremental Tuning - NB2 -- 2nd Noise Blanker - CSQL -- DCS Squelch setting - AFLT -- AF Filter setting - ANL -- Noise limiter setting - BC2 -- 2nd Beat Cancel - DUAL_WATCH -- Dual Watch / Sub Receiver - DIVERSITY -- Diversity receive - DSQL -- Digital modes squelch - SCEN -- scrambler/encryption - SLICE -- Rig slice selection -- Flex - TRANSCEIVE -- Send radio state changes automatically ON/OFF - SPECTRUM -- Spectrum scope data output ON/OFF - SPECTRUM_HOLD -- Pause spectrum scope updates ON/OFF - SEND_MORSE -- Send specified characters using CW - SEND_VOICE_MEM -- Transmit in SSB message stored in memory - OVF -- Read overflow status 0=Off, 1=On .IP Func Status is a non null value for \(lqactivate\(rq or \(lqde-activate\(rq diff --git a/doc/man1/rigctld.1 b/doc/man1/rigctld.1 index 6f834a8c1..93916d9cd 100644 --- a/doc/man1/rigctld.1 +++ b/doc/man1/rigctld.1 @@ -867,7 +867,10 @@ Func is a token: \(oqFAGC\(cq, \(oqNB\(cq, \(oqCOMP\(cq, \(oqVOX\(cq, \(oqARO\(cq, \(oqLOCK\(cq, \(oqMUTE\(cq, \(oqVSC\(cq, \(oqREV\(cq, \(oqSQL\(cq, \(oqABM\(cq, \(oqBC\(cq, \(oqMBC\(cq, \(oqRIT\(cq, \(oqAFC\(cq, \(oqSATMODE\(cq, \(oqSCOPE\(cq, \(oqRESUME\(cq, \(oqTBURST\(cq, \(oqTUNER\(cq, -\(oqXIT\(cq. +\(oqXIT\(cq, \(oqNB2\(cq, \(oqDSQL\(cq, \(oqAFLT\(cq, \(oqANL\(cq, \(oqBC2\(cq, +\(oqDUAL_WATCH\(cq, \(oqDIVERSITY\(cq, \(oqCSQL\(cq, \(oqSCEN\(cq, +\(oqTRANSCEIVE\(cq, \(oqSPECTRUM\(cq, \(oqSPECTRUM_HOLD\(cq, \(oqSEND_MORSE\(cq, +\(oqSEND_VOICE_MEM\(cq, \(oqOVF_STATUS\(cq, \(oqSYNC\(cq. .IP Func Status is a non null value for \(lqactivate\(rq or \(lqde-activate\(rq otherwise, much as TRUE/FALSE definitions in the C language (true is non-zero diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index ea6bd8db0..b0c790011 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -1296,7 +1296,7 @@ typedef uint64_t setting_t; #define RIG_FUNC_SPECTRUM_HOLD CONSTANT_64BIT_FLAG (44) /*!< \c SPECTRUM_HOLD -- Pause spectrum scope updates ON/OFF */ #define RIG_FUNC_SEND_MORSE CONSTANT_64BIT_FLAG (45) /*!< \c SEND_MORSE -- Send specified characters using CW */ #define RIG_FUNC_SEND_VOICE_MEM CONSTANT_64BIT_FLAG (46) /*!< \c SEND_VOICE_MEM -- Transmit in SSB message stored in memory */ -#define RIG_FUNC_OVF_STATUS CONSTANT_64BIT_FLAG (47) /*!< \c OVF -- Read overflow status 0=Off, 1=On */ +#define RIG_FUNC_OVF_STATUS CONSTANT_64BIT_FLAG (47) /*!< \c OVF_STATUS -- Read overflow status 0=Off, 1=On */ #define RIG_FUNC_SYNC CONSTANT_64BIT_FLAG (48) /*!< \c Synchronize VFOS -- FTDX101D/MP for now SY command */ #define RIG_FUNC_BIT49 CONSTANT_64BIT_FLAG (49) /*!< \c available for future RIG_FUNC items */ #define RIG_FUNC_BIT50 CONSTANT_64BIT_FLAG (50) /*!< \c available for future RIG_FUNC items */ commit f890fcf6482c8197b3c29f716cad7370a9806d6b Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Sun Apr 20 17:48:52 2025 +0200 Fix groff syntax A leading space prevents joining two lines. diff --git a/doc/man1/rigctl.1 b/doc/man1/rigctl.1 index 56ae33044..3e28d2785 100644 --- a/doc/man1/rigctl.1 +++ b/doc/man1/rigctl.1 @@ -726,8 +726,6 @@ Get A value of 0 for Antenna will return the current TX antenna .IP > 0 is 1-based antenna# (\(oq1\(cq, \(oq2\(cq, \(oq3\(cq, ...). - - .IP Option returned depends on rig. For Icom it is likely the RX only flag. . @@ -736,9 +734,14 @@ Option returned depends on rig. For Icom it is likely the RX only flag. Send .RI \(aq Morse \(aq symbols. For Yaesu rigs use memory#1-5 or up to 50 char msg + +Example from command line: .EX -Example from command line: rigctl -m 3073 -r /dev/ttyUSB0 b "CQ CQ DE ME" -Yaesu example to send message#1: rigctl -m 1035 -r /dev/ttyUSB0 b 1 +rigctl -m 3073 -r /dev/ttyUSB0 b "CQ CQ DE ME" +.EE +Yaesu example to send message#1: +.EX +rigctl -m 1035 -r /dev/ttyUSB0 b 1 .EE . .TP @@ -1319,8 +1322,8 @@ Set Sets rig clock -- note that some rigs do not handle seconds or milliseconds. If you try to set sec/msec and rig does not support it you will get a debug warning message. Format is ISO8601, -.EX Formats accepted allow for 2-digit or 4-digit time zone +.EX YYYY-MM-DDTHH:MM:SS.SSS+ZZ (where +ZZ is either -/+ UTC offset HH) YYYY-MM-DDTHH:MM:SS.SSS+ZZZZ (where +ZZZZ is either -/+ UTC offset HHMM) YYYY-MM-DDTHH:MM:SS+ZZ @@ -1330,6 +1333,7 @@ YYYY-MM-DDTHH:MM+ZZZZ YYYY-MM-DD (sets date only) local (sets both clocks to local time) utc (sets both clocks to utc time) +.EE Note: Icom rigs expect you to set local time and the hours off to UTC. So...4PM EST example would be 2021-12-01T16:00:00-0500 But...if you want to display GMT you must set the clock for GMT with zero UTC offset. @@ -1337,11 +1341,8 @@ Hopefully Icom will allow displaying either clock in the future Note: Kenwood rigs only allow setting local clock, and then only if not autoset by NTP. Trying to set clock when NTP is in use will set the offset, but not the time - - and no error status will be returned. +and no error status will be returned. Time displayed on the auxiliary clock is solely determined by UTC and the aux offset. - -.EE -. .TP .BR get_clock Get @@ -1435,7 +1436,7 @@ For Unix/Linux . .TP .BR client_version " \(aq" \fIString\fP "\(aq - Client can send its version to rigctld and get feedback on compatibility, deprecation, and alternatives +Client can send its version to rigctld and get feedback on compatibility, deprecation, and alternatives. .TP .BR hamlib_version Returns hamlib version with ISO8601 date/time diff --git a/doc/man1/rigctld.1 b/doc/man1/rigctld.1 index 1c77bf3e2..6f834a8c1 100644 --- a/doc/man1/rigctld.1 +++ b/doc/man1/rigctld.1 @@ -136,7 +136,6 @@ etc. on Linux, etc. on MS Windows. The BSD flavors and Mac OS/X have their own designations. See your system's documentation. .IP -.IP Can be a network address:port, e.g. .IR 127.0.0.1:12345 .IP @@ -741,9 +740,14 @@ number (\(oq0\(cq, \(oq1\(cq, \(oq2\(cq, ...). Send .RI \(aq Morse \(aq symbols. For Yaesu rigs use memory# (1-5 for most rigs) or up to 50 char message (which will use memory#1) + +Example from rigctld socket: +.EX +b CQ CQ DE ME +.EE +Yaesu example to send message#1 from rigctld socket: .EX -Example from rigctld socket: b CQ CQ DE ME -Yaesu example to send message#1 frm rigctld socket: b 1 +b 1 .EE . .TP @@ -1380,7 +1384,7 @@ the value terminated by the response separator. e.g. \(lqFrequency: .PP 4. All commands received will be acknowledged by .B rigctld - with records from rules 1 and 2. Records from rule 3 are only returned when +with records from rules 1 and 2. Records from rule 3 are only returned when data values must be returned to the client. . .PP commit d724f04163d0bfe29717b11efb8f044025204807 Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Sun Apr 20 17:48:17 2025 +0200 Remove duplicated text diff --git a/doc/man1/ampctld.1 b/doc/man1/ampctld.1 index 31d97844f..b9bb10c9d 100644 --- a/doc/man1/ampctld.1 +++ b/doc/man1/ampctld.1 @@ -492,12 +492,6 @@ the value terminated by the response separator. e.g. \(lqFrequency: . .PP 4. All commands received will be acknowledged by -.B ampctld - with records from rules 1 and 2. Records from rule 3 are only returned when -data values must be returned to the client. -. -.PP -4. All commands received will be acknowledged by .B ampctld with records from rules 1 and 2. Records from rule 3 are only returned when data values must be returned to the client. ----------------------------------------------------------------------- Summary of changes: doc/man1/ampctld.1 | 6 -- doc/man1/rigctl.1 | 253 +++++++++++++++++++++++++++++++++++--------------- doc/man1/rigctld.1 | 215 +++++++++++++++++++++++++++++++++--------- doc/man1/rigctlsync.1 | 2 + include/hamlib/rig.h | 2 +- tests/rigctld.c | 9 +- 6 files changed, 358 insertions(+), 129 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: n0nb <n0...@us...> - 2025-04-20 23:18:20
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via 49af447f27ffd1c481e72293d04e9fa1dd56de53 (commit) via a3da9bbe4260d6dcd52ccb342cec056b9ca7e584 (commit) via 21bf64b7ba3296f8b00512f0f6604ee1f0c45736 (commit) via 5b85a716fc3e1c38aeeb496ee0b27b6a2ed97cfd (commit) via 864c60b86d2e032470af0b16feec90e91962e00d (commit) from 071416d0d40c42f294064ccd7a3682bdd5a82cbc (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 49af447f27ffd1c481e72293d04e9fa1dd56de53 Merge: 071416d0d a3da9bbe4 Author: Nate Bargmann <n0...@n0...> Date: Sun Apr 20 18:14:58 2025 -0500 Merge pull request #1703 from CallumMcEwen/master Updates to codan_set_ptt command and README.md commit a3da9bbe4260d6dcd52ccb342cec056b9ca7e584 Author: Callum McEwen (VK5MCA) <Cal...@us...> Date: Mon Apr 21 04:25:40 2025 +0930 Update comments on codan_set_ptt diff --git a/rigs/codan/codan.c b/rigs/codan/codan.c index aad561ac6..2c275cfdc 100644 --- a/rigs/codan/codan.c +++ b/rigs/codan/codan.c @@ -473,7 +473,6 @@ int codan_get_ptt_2110(RIG *rig, vfo_t vfo, ptt_t *ptt) * VK5MCA * Changing PTT activation from 'connect tcvr rf ptt %s' to CICS command 'ptt %s voice'. * This sets fast ALC and allows audio to pass to the transmitter via the GPIO port. - * Using the 'rf ptt' command does allow audio to pass through the GPIO port of the Envoy RF Unit or Console. */ int codan_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt) { commit 21bf64b7ba3296f8b00512f0f6604ee1f0c45736 Author: Callum McEwen (VK5MCA) <Cal...@us...> Date: Mon Apr 21 04:19:49 2025 +0930 Add V3.51 firmware comment diff --git a/rigs/codan/README.codan b/rigs/codan/README.codan index 3f6ecaaa1..d98dec0ab 100644 --- a/rigs/codan/README.codan +++ b/rigs/codan/README.codan @@ -13,4 +13,4 @@ the device which is addressed via the GP port. As of SDR firmware V3.51 for Envoy and Sentry radios, the Amatuer option allows for Freetune Tx on ham bands only. Freetune Tx is no longer required for this rig file to work. -$${\color{lightblue}VK5MCA}$$ +VK5MCA commit 5b85a716fc3e1c38aeeb496ee0b27b6a2ed97cfd Author: Callum McEwen (VK5MCA) <Cal...@us...> Date: Mon Apr 21 04:18:58 2025 +0930 Update README.codan diff --git a/rigs/codan/README.codan b/rigs/codan/README.codan index 0e57bd27c..3f6ecaaa1 100644 --- a/rigs/codan/README.codan +++ b/rigs/codan/README.codan @@ -9,3 +9,8 @@ programming. This is most often the GP (general purpose) port which is a 15-pin D-Sub connector on a flying lead on the back of the radio. (NGT and Envoy models). Programming must be set to select "CICS" as the device which is addressed via the GP port. + +As of SDR firmware V3.51 for Envoy and Sentry radios, the Amatuer option +allows for Freetune Tx on ham bands only. Freetune Tx is no longer required +for this rig file to work. +$${\color{lightblue}VK5MCA}$$ commit 864c60b86d2e032470af0b16feec90e91962e00d Author: Callum McEwen (VK5MCA) <Cal...@us...> Date: Tue Apr 1 20:30:55 2025 +1030 Update codan.c Updated ptt command to CICS diff --git a/rigs/codan/codan.c b/rigs/codan/codan.c index 996d2c595..aad561ac6 100644 --- a/rigs/codan/codan.c +++ b/rigs/codan/codan.c @@ -469,6 +469,11 @@ int codan_get_ptt_2110(RIG *rig, vfo_t vfo, ptt_t *ptt) /* * codan_set_ptt * Assumes rig!=NULL + * + * VK5MCA + * Changing PTT activation from 'connect tcvr rf ptt %s' to CICS command 'ptt %s voice'. + * This sets fast ALC and allows audio to pass to the transmitter via the GPIO port. + * Using the 'rf ptt' command does allow audio to pass through the GPIO port of the Envoy RF Unit or Console. */ int codan_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt) { @@ -478,7 +483,7 @@ int codan_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt) rig_debug(RIG_DEBUG_VERBOSE, "%s: ptt=%d\n", __func__, ptt); - SNPRINTF(cmd_buf, sizeof(cmd_buf), "connect tcvr rf ptt %s\rptt", + SNPRINTF(cmd_buf, sizeof(cmd_buf), "ptt %s voice\rptt", ptt == 0 ? "off" : "on"); response = NULL; retval = codan_transaction(rig, cmd_buf, 0, &response); ----------------------------------------------------------------------- Summary of changes: rigs/codan/README.codan | 5 +++++ rigs/codan/codan.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: n0nb <n0...@us...> - 2025-04-20 02:36:05
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via 071416d0d40c42f294064ccd7a3682bdd5a82cbc (commit) via b141c142709c327f58b29fb136119657237c912f (commit) from 1ee8fc9bd18aee629539bb911e7beabe5569756c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 071416d0d40c42f294064ccd7a3682bdd5a82cbc Merge: 1ee8fc9bd b141c1427 Author: Nate Bargmann <n0...@n0...> Date: Sat Apr 19 21:35:06 2025 -0500 Merge pull request #1699 from dforsi/fix/help-strings Make help strings more similar commit b141c142709c327f58b29fb136119657237c912f Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Sat Apr 19 23:57:26 2025 +0200 Make help strings more similar Fixes text indent and verbs. diff --git a/tests/rigctl.c b/tests/rigctl.c index 9affbab35..35d1241b3 100644 --- a/tests/rigctl.c +++ b/tests/rigctl.c @@ -957,7 +957,7 @@ void usage(void) " -h, --help display this help and exit\n" " -V, --version output version information and exit\n" " -!, --cookie use cookie control\n" - " -#, --skip-init skips rig initialization\n\n" + " -#, --skip-init skip rig initialization\n\n" ); usage_rig(stdout); diff --git a/tests/rigctlcom.c b/tests/rigctlcom.c index f81de0ce5..e7b8fbf07 100644 --- a/tests/rigctlcom.c +++ b/tests/rigctlcom.c @@ -1781,7 +1781,7 @@ void usage() " -S, --serial-speed2=BAUD set serial speed of the virtual com port [default=115200]\n" " -c, --civaddr=ID set CI-V address, decimal (for Icom rigs only)\n" " -C, --set-conf=PARM=VAL set config parameters\n" - " -B, --mapa2b maps set_freq on VFOA to VFOB -- useful for CW Skimmer\n" + " -B, --mapa2b map set_freq on VFOA to VFOB -- useful for CW Skimmer\n" " -L, --show-conf list all config parameters\n" " -l, --list list all model numbers and exit\n" " -u, --dump-caps dump capabilities and exit\n" ----------------------------------------------------------------------- Summary of changes: tests/rigctl.c | 2 +- tests/rigctlcom.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: n0nb <n0...@us...> - 2025-04-17 02:10:55
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via 1ee8fc9bd18aee629539bb911e7beabe5569756c (commit) via f9d3a2e6676304e73e1247bce28b31dc303ee51c (commit) via cb113b5c8401e893dfa71dde31b3f616924cba9d (commit) via cfc5c821a0b344badef0b4dae441476cff92c21e (commit) via 428e3075eb693c3e7387e48cb29ecaefa4b3ffde (commit) via fa5b4cf6eaf3193212c9f71fc2ad69e689bebcec (commit) from 34698df17acf6cc2ee72d3944b4149f0f621515a (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 1ee8fc9bd18aee629539bb911e7beabe5569756c Merge: f9d3a2e66 cb113b5c8 Author: Nate Bargmann <n0...@n0...> Date: Wed Apr 16 21:09:19 2025 -0500 Merge pull request #1696 from dforsi/fix/tests Ignore files related to tests and delete generated files commit f9d3a2e6676304e73e1247bce28b31dc303ee51c Merge: 34698df17 428e3075e Author: Nate Bargmann <n0...@n0...> Date: Wed Apr 16 21:07:51 2025 -0500 Merge pull request #1695 from arekm/master flrig: Additional PKTUSB and PKTLSB mapping for USB-D1/LSB-D1 commit cb113b5c8401e893dfa71dde31b3f616924cba9d Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Wed Apr 16 20:34:15 2025 +0200 Delete a generated directory when doing make clean diff --git a/bindings/Makefile.am b/bindings/Makefile.am index 34272b70c..17df597df 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -126,6 +126,7 @@ hamlibpy_wrap.c: hamlib.swg $(SWGDEP) install-py: clean-py: + $(AM_V_at)rm -rf $(builddir)/__pycache__ distclean-py: uninstall-py: commit cfc5c821a0b344badef0b4dae441476cff92c21e Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Wed Apr 16 19:48:20 2025 +0200 Delete a generated file when doing make clean diff --git a/tests/Makefile.am b/tests/Makefile.am index 4f45b4b94..706d59bc5 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -147,4 +147,4 @@ test2038.sh: echo 'LD_LIBRARY_PATH=$(top_builddir)/src/.libs:$(top_builddir)/dummy/.libs ./test2038 1' > test2038.sh chmod +x ./test2038.sh -CLEANFILES = testrig.sh testfreq.sh testbcd.sh testloc.sh testrigcaps.sh testcache.sh testcookie.sh rigtestlibusb build-w32.sh build-w64.sh build-w64-jtsdk.sh testgrid.sh testrigcaps.sh test2038.sh +CLEANFILES = testrig.sh testfreq.sh testbcd.sh testloc.sh testrigcaps.sh testcache.sh testcookie.sh rigtestlibusb build-w32.sh build-w64.sh build-w64-jtsdk.sh testgrid.sh testrigcaps.sh test2038.sh tuner_control.log commit 428e3075eb693c3e7387e48cb29ecaefa4b3ffde Author: Arkadiusz Miśkiewicz <ar...@ma...> Date: Mon Apr 14 23:54:36 2025 +0200 Additional PKTUSB and PKTLSB mapping for USB-D1/LSB-D1 Some radios (icom 7760 for example) expose USB/LSB-Dn modes (e.g., USB-D1). By default, USB-D1 acts as PKTUSB and LSB-D1 as PKTLSB. Adding this mapping improves compatibility with software expecting standard PKTUSB/PKTLSB modes. A real-life scenario: this makes WSJT-X usage much nicer, as WSJT-X requests PKTUSB, which is then mapped to USB-D1 — the default mode for FT4/FT8 operations on Icom radios. diff --git a/rigs/dummy/flrig.c b/rigs/dummy/flrig.c index f6a3620d8..f46b429f5 100644 --- a/rigs/dummy/flrig.c +++ b/rigs/dummy/flrig.c @@ -254,6 +254,20 @@ static struct s_modeMap modeMap[] = {0, NULL} }; +// Fallback mappings between modes +struct s_fmodeMap { + rmode_t mode_flrig; + char *old_mode_hamlib; + char *new_mode_hamlib; +}; + +// Some radios (icom) provide PKT data on LSB/USB-D1 by default. Add these modes. +static struct s_fmodeMap fmodeMap[] = { + { RIG_MODE_PKTLSB, "PKTLSB", "LSB-D1" }, + { RIG_MODE_PKTUSB, "PKTUSB", "USB-D1" }, + {0, NULL, NULL} +}; + /* * check_vfo * No assumptions @@ -740,7 +754,7 @@ static rmode_t modeMapGetHamlib(const char *modeFLRig) * modeMapAdd * Assumes modes!=NULL */ -static void modeMapAdd(rmode_t *modes, rmode_t mode_hamlib, char *mode_flrig) +static void modeMapAdd(rmode_t *modes, rmode_t mode_hamlib, char *mode_flrig, int force) { int i; int len1; @@ -748,8 +762,11 @@ static void modeMapAdd(rmode_t *modes, rmode_t mode_hamlib, char *mode_flrig) rig_debug(RIG_DEBUG_TRACE, "%s:mode_flrig=%s\n", __func__, mode_flrig); // if we already have it just return + // unless forced where we want to add additional hamlib->flrig mapping + // for flrig mode that already exists in map + // // We get ERROR if the mode is not known so non-ERROR is OK - if (modeMapGetHamlib(mode_flrig) != RIG_MODE_NONE) { return; } + if (!force && modeMapGetHamlib(mode_flrig) != RIG_MODE_NONE) { return; } len1 = strlen(mode_flrig) + 3; /* bytes needed for allocating */ @@ -1031,81 +1048,81 @@ static int flrig_open(RIG *rig) for (p = strtok_r(value, "|", &pr); p != NULL; p = strtok_r(NULL, "|", &pr)) { - if (streq(p, "AM-D")) { modeMapAdd(&modes, RIG_MODE_PKTAM, p); } - else if (streq(p, "AM")) { modeMapAdd(&modes, RIG_MODE_AM, p); } - else if (streq(p, "AM-N")) { modeMapAdd(&modes, RIG_MODE_AMN, p); } - else if (streq(p, "AMN")) { modeMapAdd(&modes, RIG_MODE_AMN, p); } - else if (streq(p, "CW")) { modeMapAdd(&modes, RIG_MODE_CW, p); } - else if (streq(p, "CW-L")) { modeMapAdd(&modes, RIG_MODE_CWR, p); } - else if (streq(p, "CW-LSB")) { modeMapAdd(&modes, RIG_MODE_CWR, p); } - else if (streq(p, "CW-R")) { modeMapAdd(&modes, RIG_MODE_CWR, p); } - else if (streq(p, "CW-U")) { modeMapAdd(&modes, RIG_MODE_CW, p); } - else if (streq(p, "CW-USB")) { modeMapAdd(&modes, RIG_MODE_CW, p); } - else if (streq(p, "CWL")) { modeMapAdd(&modes, RIG_MODE_CWR, p); } - else if (streq(p, "CWU")) { modeMapAdd(&modes, RIG_MODE_CW, p); } - else if (streq(p, "D-LSB")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p); } - else if (streq(p, "D-USB")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } - else if (streq(p, "DATA")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } - else if (streq(p, "DATA-FM")) { modeMapAdd(&modes, RIG_MODE_PKTFM, p); } - else if (streq(p, "DATA-FMN")) { modeMapAdd(&modes, RIG_MODE_PKTFMN, p); } - else if (streq(p, "DATA-L")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p); } - else if (streq(p, "DATA-R")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p); } - else if (streq(p, "DATA-LSB")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p); } - else if (streq(p, "DATA-USB")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } - else if (streq(p, "DATA-U")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } - else if (streq(p, "DIG")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } - else if (streq(p, "DIGI")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } - else if (streq(p, "DIGL")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p); } - else if (streq(p, "DIGI-L")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p); } - else if (streq(p, "DIGU")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } - else if (streq(p, "DIGI-U")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } - else if (streq(p, "DSB")) { modeMapAdd(&modes, RIG_MODE_DSB, p); } - else if (streq(p, "FM")) { modeMapAdd(&modes, RIG_MODE_FM, p); } - else if (streq(p, "FM-D")) { modeMapAdd(&modes, RIG_MODE_PKTFM, p); } - else if (streq(p, "FMN")) { modeMapAdd(&modes, RIG_MODE_FMN, p); } - else if (streq(p, "FM-N")) { modeMapAdd(&modes, RIG_MODE_FMN, p); } - else if (streq(p, "FMW")) { modeMapAdd(&modes, RIG_MODE_WFM, p); } - else if (streq(p, "FSK")) { modeMapAdd(&modes, RIG_MODE_RTTY, p); } - else if (streq(p, "FSK-R")) { modeMapAdd(&modes, RIG_MODE_RTTYR, p); } - else if (streq(p, "LCW")) { modeMapAdd(&modes, RIG_MODE_CWR, p); } - else if (streq(p, "LSB")) { modeMapAdd(&modes, RIG_MODE_LSB, p); } - else if (streq(p, "LSB-D")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p); } - else if (streq(p, "LSB-D1")) { modeMapAdd(&modes, RIG_MODE_LSBD1, p); } - else if (streq(p, "LSB-D2")) { modeMapAdd(&modes, RIG_MODE_LSBD2, p); } - else if (streq(p, "LSB-D3")) { modeMapAdd(&modes, RIG_MODE_LSBD3, p); } - else if (streq(p, "NFM")) { modeMapAdd(&modes, RIG_MODE_FMN, p); } - else if (streq(p, "PKT")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } - else if (streq(p, "PKT-FM")) { modeMapAdd(&modes, RIG_MODE_PKTFM, p); } - else if (streq(p, "PKT-L")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p); } - else if (streq(p, "PKT-U")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } - else if (streq(p, "PKT(L)")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p); } - else if (streq(p, "PKT(U)")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } - else if (streq(p, "PSK")) { modeMapAdd(&modes, RIG_MODE_RTTY, p); } - else if (streq(p, "PSK-L")) { modeMapAdd(&modes, RIG_MODE_RTTYR, p); } - else if (streq(p, "PSK-R")) { modeMapAdd(&modes, RIG_MODE_RTTYR, p); } - else if (streq(p, "PSK-U")) { modeMapAdd(&modes, RIG_MODE_RTTY, p); } - else if (streq(p, "RTTY")) { modeMapAdd(&modes, RIG_MODE_RTTY, p); } - else if (streq(p, "RTTY-L")) { modeMapAdd(&modes, RIG_MODE_RTTYR, p); } - else if (streq(p, "RTTY-R")) { modeMapAdd(&modes, RIG_MODE_RTTYR, p); } - else if (streq(p, "RTTY-U")) { modeMapAdd(&modes, RIG_MODE_RTTY, p); } - else if (streq(p, "RTTY(U)")) { modeMapAdd(&modes, RIG_MODE_RTTY, p); } - else if (streq(p, "RTTY(R")) { modeMapAdd(&modes, RIG_MODE_RTTYR, p); } - else if (streq(p, "SAH")) { modeMapAdd(&modes, RIG_MODE_SAH, p); } - else if (streq(p, "SAL")) { modeMapAdd(&modes, RIG_MODE_SAL, p); } - else if (streq(p, "SAM")) { modeMapAdd(&modes, RIG_MODE_SAM, p); } - else if (streq(p, "USB")) { modeMapAdd(&modes, RIG_MODE_USB, p); } - else if (streq(p, "USB-D")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } - else if (streq(p, "USB-D1")) { modeMapAdd(&modes, RIG_MODE_USBD1, p); } - else if (streq(p, "USB-D2")) { modeMapAdd(&modes, RIG_MODE_USBD2, p); } - else if (streq(p, "USB-D3")) { modeMapAdd(&modes, RIG_MODE_USBD3, p); } - else if (streq(p, "USER-U")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } - else if (streq(p, "USER-L")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p); } - else if (streq(p, "W-FM")) { modeMapAdd(&modes, RIG_MODE_WFM, p); } - else if (streq(p, "WFM")) { modeMapAdd(&modes, RIG_MODE_WFM, p); } - else if (streq(p, "UCW")) { modeMapAdd(&modes, RIG_MODE_CW, p); } - else if (streq(p, "C4FM")) { modeMapAdd(&modes, RIG_MODE_C4FM, p); } - else if (streq(p, "SPEC")) { modeMapAdd(&modes, RIG_MODE_SPEC, p); } - else if (streq(p, "DV")) { modeMapAdd(&modes, RIG_MODE_DSTAR, p); } + if (streq(p, "AM-D")) { modeMapAdd(&modes, RIG_MODE_PKTAM, p, 0); } + else if (streq(p, "AM")) { modeMapAdd(&modes, RIG_MODE_AM, p, 0); } + else if (streq(p, "AM-N")) { modeMapAdd(&modes, RIG_MODE_AMN, p, 0); } + else if (streq(p, "AMN")) { modeMapAdd(&modes, RIG_MODE_AMN, p, 0); } + else if (streq(p, "CW")) { modeMapAdd(&modes, RIG_MODE_CW, p, 0); } + else if (streq(p, "CW-L")) { modeMapAdd(&modes, RIG_MODE_CWR, p, 0); } + else if (streq(p, "CW-LSB")) { modeMapAdd(&modes, RIG_MODE_CWR, p, 0); } + else if (streq(p, "CW-R")) { modeMapAdd(&modes, RIG_MODE_CWR, p, 0); } + else if (streq(p, "CW-U")) { modeMapAdd(&modes, RIG_MODE_CW, p, 0); } + else if (streq(p, "CW-USB")) { modeMapAdd(&modes, RIG_MODE_CW, p, 0); } + else if (streq(p, "CWL")) { modeMapAdd(&modes, RIG_MODE_CWR, p, 0); } + else if (streq(p, "CWU")) { modeMapAdd(&modes, RIG_MODE_CW, p, 0); } + else if (streq(p, "D-LSB")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p, 0); } + else if (streq(p, "D-USB")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p, 0); } + else if (streq(p, "DATA")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p, 0); } + else if (streq(p, "DATA-FM")) { modeMapAdd(&modes, RIG_MODE_PKTFM, p, 0); } + else if (streq(p, "DATA-FMN")) { modeMapAdd(&modes, RIG_MODE_PKTFMN, p, 0); } + else if (streq(p, "DATA-L")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p, 0); } + else if (streq(p, "DATA-R")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p, 0); } + else if (streq(p, "DATA-LSB")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p, 0); } + else if (streq(p, "DATA-USB")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p, 0); } + else if (streq(p, "DATA-U")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p, 0); } + else if (streq(p, "DIG")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p, 0); } + else if (streq(p, "DIGI")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p, 0); } + else if (streq(p, "DIGL")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p, 0); } + else if (streq(p, "DIGI-L")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p, 0); } + else if (streq(p, "DIGU")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p, 0); } + else if (streq(p, "DIGI-U")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p, 0); } + else if (streq(p, "DSB")) { modeMapAdd(&modes, RIG_MODE_DSB, p, 0); } + else if (streq(p, "FM")) { modeMapAdd(&modes, RIG_MODE_FM, p, 0); } + else if (streq(p, "FM-D")) { modeMapAdd(&modes, RIG_MODE_PKTFM, p, 0); } + else if (streq(p, "FMN")) { modeMapAdd(&modes, RIG_MODE_FMN, p, 0); } + else if (streq(p, "FM-N")) { modeMapAdd(&modes, RIG_MODE_FMN, p, 0); } + else if (streq(p, "FMW")) { modeMapAdd(&modes, RIG_MODE_WFM, p, 0); } + else if (streq(p, "FSK")) { modeMapAdd(&modes, RIG_MODE_RTTY, p, 0); } + else if (streq(p, "FSK-R")) { modeMapAdd(&modes, RIG_MODE_RTTYR, p, 0); } + else if (streq(p, "LCW")) { modeMapAdd(&modes, RIG_MODE_CWR, p, 0); } + else if (streq(p, "LSB")) { modeMapAdd(&modes, RIG_MODE_LSB, p, 0); } + else if (streq(p, "LSB-D")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p, 0); } + else if (streq(p, "LSB-D1")) { modeMapAdd(&modes, RIG_MODE_LSBD1, p, 0); } + else if (streq(p, "LSB-D2")) { modeMapAdd(&modes, RIG_MODE_LSBD2, p, 0); } + else if (streq(p, "LSB-D3")) { modeMapAdd(&modes, RIG_MODE_LSBD3, p, 0); } + else if (streq(p, "NFM")) { modeMapAdd(&modes, RIG_MODE_FMN, p, 0); } + else if (streq(p, "PKT")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p, 0); } + else if (streq(p, "PKT-FM")) { modeMapAdd(&modes, RIG_MODE_PKTFM, p, 0); } + else if (streq(p, "PKT-L")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p, 0); } + else if (streq(p, "PKT-U")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p, 0); } + else if (streq(p, "PKT(L)")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p, 0); } + else if (streq(p, "PKT(U)")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p, 0); } + else if (streq(p, "PSK")) { modeMapAdd(&modes, RIG_MODE_RTTY, p, 0); } + else if (streq(p, "PSK-L")) { modeMapAdd(&modes, RIG_MODE_RTTYR, p, 0); } + else if (streq(p, "PSK-R")) { modeMapAdd(&modes, RIG_MODE_RTTYR, p, 0); } + else if (streq(p, "PSK-U")) { modeMapAdd(&modes, RIG_MODE_RTTY, p, 0); } + else if (streq(p, "RTTY")) { modeMapAdd(&modes, RIG_MODE_RTTY, p, 0); } + else if (streq(p, "RTTY-L")) { modeMapAdd(&modes, RIG_MODE_RTTYR, p, 0); } + else if (streq(p, "RTTY-R")) { modeMapAdd(&modes, RIG_MODE_RTTYR, p, 0); } + else if (streq(p, "RTTY-U")) { modeMapAdd(&modes, RIG_MODE_RTTY, p, 0); } + else if (streq(p, "RTTY(U)")) { modeMapAdd(&modes, RIG_MODE_RTTY, p, 0); } + else if (streq(p, "RTTY(R")) { modeMapAdd(&modes, RIG_MODE_RTTYR, p, 0); } + else if (streq(p, "SAH")) { modeMapAdd(&modes, RIG_MODE_SAH, p, 0); } + else if (streq(p, "SAL")) { modeMapAdd(&modes, RIG_MODE_SAL, p, 0); } + else if (streq(p, "SAM")) { modeMapAdd(&modes, RIG_MODE_SAM, p, 0); } + else if (streq(p, "USB")) { modeMapAdd(&modes, RIG_MODE_USB, p, 0); } + else if (streq(p, "USB-D")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p, 0); } + else if (streq(p, "USB-D1")) { modeMapAdd(&modes, RIG_MODE_USBD1, p, 0); } + else if (streq(p, "USB-D2")) { modeMapAdd(&modes, RIG_MODE_USBD2, p, 0); } + else if (streq(p, "USB-D3")) { modeMapAdd(&modes, RIG_MODE_USBD3, p, 0); } + else if (streq(p, "USER-U")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p, 0); } + else if (streq(p, "USER-L")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p, 0); } + else if (streq(p, "W-FM")) { modeMapAdd(&modes, RIG_MODE_WFM, p, 0); } + else if (streq(p, "WFM")) { modeMapAdd(&modes, RIG_MODE_WFM, p, 0); } + else if (streq(p, "UCW")) { modeMapAdd(&modes, RIG_MODE_CW, p, 0); } + else if (streq(p, "C4FM")) { modeMapAdd(&modes, RIG_MODE_C4FM, p, 0); } + else if (streq(p, "SPEC")) { modeMapAdd(&modes, RIG_MODE_SPEC, p, 0); } + else if (streq(p, "DV")) { modeMapAdd(&modes, RIG_MODE_DSTAR, p, 0); } else if (streq(p, "DRM")) // we don't support DRM yet (or maybe ever) { rig_debug(RIG_DEBUG_VERBOSE, "%s: no mapping for mode %s\n", __func__, p); @@ -1113,6 +1130,14 @@ static int flrig_open(RIG *rig) else { rig_debug(RIG_DEBUG_ERR, "%s: Unknown mode (new?) for this rig='%s'\n", __func__, p); } } + // fallback between modes + for (struct s_fmodeMap *mode = fmodeMap; mode->old_mode_hamlib != NULL; mode++) { + if (modeMapGetHamlib(mode->old_mode_hamlib) == RIG_MODE_NONE && + modeMapGetHamlib(mode->new_mode_hamlib) != RIG_MODE_NONE) { + modeMapAdd(&modes, mode->mode_flrig, mode->new_mode_hamlib, 1); + } + } + rs->mode_list = modes; retval = rig_strrmodes(modes, value, sizeof(value)); commit fa5b4cf6eaf3193212c9f71fc2ad69e689bebcec Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Sun Apr 13 10:57:42 2025 +0200 Ignore files related to tests diff --git a/.gitignore b/.gitignore index a02baabb8..caa28b297 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ libtool ltmain.sh missing py-compile +tuner_control.log autom4te.cache/ bindings/Hamlib.py bindings/hamlibvb.bas @@ -57,6 +58,7 @@ tests/rigctlcom tests/rigctld tests/rigctlsync tests/rigctltcp +tests/rigfreqwalk tests/rigmem tests/rigsmtr tests/rigswr @@ -75,3 +77,4 @@ obj/ .cproject .DS_Store ._.DS_Store +__pycache__ ----------------------------------------------------------------------- Summary of changes: .gitignore | 3 + bindings/Makefile.am | 1 + rigs/dummy/flrig.c | 179 +++++++++++++++++++++++++++++---------------------- tests/Makefile.am | 2 +- 4 files changed, 107 insertions(+), 78 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: n0nb <n0...@us...> - 2025-04-09 19:09:05
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via 34698df17acf6cc2ee72d3944b4149f0f621515a (commit) via 285a865d9ff9a0dff484b5c880f3d17097692175 (commit) from d8a3aac62587e7e73cc27d165115a5ee3833baa8 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 34698df17acf6cc2ee72d3944b4149f0f621515a Merge: d8a3aac62 285a865d9 Author: Nate Bargmann <n0...@n0...> Date: Wed Apr 9 14:05:33 2025 -0500 Merge pull request #1694 from N0NB/static_lib Restore libtool default of building shared and static libs commit 285a865d9ff9a0dff484b5c880f3d17097692175 Author: Nate Bargmann <n0...@n0...> Date: Wed Apr 9 13:40:53 2025 -0500 Restore libtool default of building shared and static libs Commit 43159e5 prevented the libtool default of building both shared and static libraries during a compilation run. This addresses GitHub issue 1500 that seeks to enable both shared and static libs. At this point, I have not found the motivation for commit 43159e5 despite searching all forums and the mailing list. While the reason might not now be ever known, restoring the default behavior alligns the project with other software package. diff --git a/configure.ac b/configure.ac index 9bf5390d2..a2b22ed0b 100644 --- a/configure.ac +++ b/configure.ac @@ -43,23 +43,23 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) ## ------------------------------ ## ## Hamlib specific configuration. ## ## ------------------------------ ## -AC_ARG_ENABLE([shared], - [AS_HELP_STRING([--enable-shared], - [Enable shared libraries @<:@default=yes@:>@])], - [enable_shared=$enableval], - [enable_shared=yes]) -AC_ARG_ENABLE([static], - [AS_HELP_STRING([--enable-static], - [Enable static libraries @<:@default=check@:>@])], - [enable_static=$enableval], - [enable_static=check]) - -AS_IF([test "x$enable_static" = "xyes"], [ - enable_shared=no -]) -AS_IF([test "x$enable_static" = "xyes" && test "x$enable_shared" = "xyes"], [ - AC_MSG_ERROR([Both --enable-static and --enable-shared cannot be enabled at the same time.]) -]) +dnl AC_ARG_ENABLE([shared], +dnl [AS_HELP_STRING([--enable-shared], +dnl [Enable shared libraries @<:@default=yes@:>@])], +dnl [enable_shared=$enableval], +dnl [enable_shared=yes]) +dnl AC_ARG_ENABLE([static], +dnl [AS_HELP_STRING([--enable-static], +dnl [Enable static libraries @<:@default=check@:>@])], +dnl [enable_static=$enableval], +dnl [enable_static=check]) +dnl +dnl AS_IF([test "x$enable_static" = "xyes"], [ +dnl enable_shared=no +dnl ]) +dnl AS_IF([test "x$enable_static" = "xyes" && test "x$enable_shared" = "xyes"], [ +dnl AC_MSG_ERROR([Both --enable-static and --enable-shared cannot be enabled at the same time.]) +dnl ]) dnl New backends must be listed here! Also the new Makefile path must be dnl added to AC_CONFIG_FILES near the end of this file. See README.developer ----------------------------------------------------------------------- Summary of changes: configure.ac | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: n0nb <n0...@us...> - 2025-04-01 20:41:24
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via d8a3aac62587e7e73cc27d165115a5ee3833baa8 (commit) via a9ce0b07dd8730bc901f11ca3008230b1606633d (commit) via 44014b914ea69c7418569a1f7b6b55711aeaa81a (commit) via ad20668c752e61e8866891adc29c339dbca6a33d (commit) via 9fe15f396312dca878435ed4ed1121a3928bd025 (commit) via e00f3575697d8258fb88745d428b77fff75f1095 (commit) via c6a30081cbc3752ef1c904512ff4bbf8b2fe9e03 (commit) via d9545845b01b830f4aa5470e842e754ca023484a (commit) via 0e1e794cfa569c8994ab98a75d133a1fb6b3fbb3 (commit) via cd72187a7cc99c0168f6150de7cb21dbed7801d5 (commit) via 2da07e484c5162a8ed8e3be2395452c2b21a0bcb (commit) via cb0196875b1580cdef6cd8748eed8f84b305a173 (commit) via e109fe355d0fb4f1da9fc0dcb3dc5a304f08a771 (commit) via 0f519185acd7861412cb320e423145984ba05ab9 (commit) via 1049dc2457f2c90d47012da376836803b7c19dea (commit) via f8740ddd2899388f86bc3098afc0ae9d05f297a7 (commit) via ed52875c3d6988917b84cae6f96f2440063453e3 (commit) via c2d3202ffb0f4c51431b982ca023a586fcdbafc0 (commit) via a3e23e79cd97b4c48ea56cc2776b68d86db61a08 (commit) via 9b2904c0b676dc4ed57bd09e300b6a1e81b930c8 (commit) via 5caa22b79a5532b2848a8e6689e0be2b36a94fde (commit) via 43f8afa6a4f13fbfb96c2ec75f25ddfb5da9a8e2 (commit) via 7269ba62647a613ba7b63fc6ddbd2070ba7f9db5 (commit) via 701d6bf477f784192684c8035cd874d10966a5e6 (commit) via 3dbb7011d1a2c14cc0f2351c321b66787d51e9f3 (commit) via 6b11c7e970ba9f7a348ba4836d94bfcf177f2ece (commit) via f2f947c51d45f5596afd0b8b3c8df7c3d88d93dd (commit) via 0147da5a3ca8dc0f874d2a43ff5a2e702bbc4f41 (commit) via 439bd96b5d01ddbaf811a1e1df98c08a1caff406 (commit) via 3d46647808dc9dde14106d259aebefa85042cd43 (commit) via 9de6fe2400cff5489cd487e71af299758a4ee567 (commit) via 2a9634d7053c2fa9d125473f9d285c32bcca24fb (commit) via fb145e873b63adf3c640292efb336783a97117bd (commit) via beea87c2aece53f04a6ac8ae10a43f456136e31d (commit) from 98a0184680a70aa4943ea2ba7dbcf8ca03bebf1f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit d8a3aac62587e7e73cc27d165115a5ee3833baa8 Merge: 44014b914 a9ce0b07d Author: Nate Bargmann <n0...@n0...> Date: Tue Apr 1 15:37:16 2025 -0500 Merge pull request #1688 from brianjester/patch-1 Update README.developer commit a9ce0b07dd8730bc901f11ca3008230b1606633d Author: brianjester <bri...@pr...> Date: Sun Mar 30 18:34:43 2025 -0700 Update README.developer fix typo diff --git a/README.developer b/README.developer index 2b5f64695..4ded18b26 100644 --- a/README.developer +++ b/README.developer @@ -331,7 +331,7 @@ Additionally, you may want to add the '--with-perl-binding' or '--with-python-binding' or '--with-tcl-binding' or '--with-lua-binding' if you are interested in SWIG binding support for those scripting languages. -For LUA bindinds if you run "lua luatest.lua" and see this error message: +For LUA bindings if you run "lua luatest.lua" and see this error message: luatest.lua:44: Error in Rig::set_mode (arg 2), expected 'rmode_t' got 'string' This means you need to upgrade both swig and lua for 64-bit lua support This is known to work on swig 4.0.1 and lua 5.3.5 commit 44014b914ea69c7418569a1f7b6b55711aeaa81a Merge: ad20668c7 9fe15f396 Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Mar 22 14:47:18 2025 -0500 Merge branch 'master' of github.com:Hamlib/Hamlib commit ad20668c752e61e8866891adc29c339dbca6a33d Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Mar 22 14:45:32 2025 -0500 Fix headers for compability with swig 4.3.0 https://github.com/Hamlib/Hamlib/issues/1669 diff --git a/include/hamlib/riglist.h b/include/hamlib/riglist.h index b7a441c0a..2dda81d2a 100644 --- a/include/hamlib/riglist.h +++ b/include/hamlib/riglist.h @@ -32,7 +32,7 @@ // With a max of 1000 models per backend we get total a model number range of 1001-33001 // This MAX was 100 prior to 2020-02-18 and Icom was close to running out of the 100 range #define MAX_MODELS_PER_BACKEND 1000 -#define RIG_MAKE_MODEL(a,b) ((a)*MAX_MODELS_PER_BACKEND+(b)) +#define RIG_MAKE_MODEL(a,b) (MAX_MODELS_PER_BACKEND*(a)+(b)) #define RIG_BACKEND_NUM(a) ((a)/MAX_MODELS_PER_BACKEND) //! @endcond diff --git a/include/hamlib/rotlist.h b/include/hamlib/rotlist.h index 37d410846..0fff30f3a 100644 --- a/include/hamlib/rotlist.h +++ b/include/hamlib/rotlist.h @@ -24,7 +24,7 @@ #define _ROTLIST_H 1 //! @cond Doxygen_Suppress -#define ROT_MAKE_MODEL(a,b) ((a)*100+(b)) +#define ROT_MAKE_MODEL(a,b) (100*(a)+(b)) #define ROT_BACKEND_NUM(a) ((a)/100) //! @endcond commit 9fe15f396312dca878435ed4ed1121a3928bd025 Merge: c6a30081c e00f35756 Author: Michael Black <mdb...@ya...> Date: Mon Mar 17 15:59:31 2025 -0500 Merge pull request #1683 from dforsi/fix/typos Fix my previous commit ("Add bold" d9545845) commit e00f3575697d8258fb88745d428b77fff75f1095 Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Mon Mar 17 21:49:57 2025 +0100 Fix my previous commit ("Add bold" d9545845) diff --git a/doc/man1/rigctld.1 b/doc/man1/rigctld.1 index 39d4f29c7..1c77bf3e2 100644 --- a/doc/man1/rigctld.1 +++ b/doc/man1/rigctld.1 @@ -119,7 +119,7 @@ See model list (use \(lqrigctld -l\(rq). (or third party software using the C API) will use radio model 2 for .B NET rigctl (this model number is not used for -.B rigctl +.B rigctld even though it shows in the model list). . @@ -399,19 +399,19 @@ option as it generates no output on its own. .TP .BR \-A ", " \-\-password Sets password on -.B rigctl +.B rigctld which requires hamlib to use rig_set_password and rigctl to use \\password to access rigctld. A 32-char shared secret will be displayed to be used on the client side. . .TP .BR \-R ", " \-\-rigctld\-idle Will make -.B rigctl +.B rigctld close the rig when no clients are connected. Normally remains connected to speed up connects. . .TP .BR \-b ", " \-\-bind\-all Will make -.B rigctl +.B rigctld try to bind to first network device available. . .TP @@ -421,7 +421,7 @@ Show a summary of these options and exit. .TP .BR \-V ", " \-\-version Show version of -.B rigctl +.B rigctld and exit. . .PP @@ -1233,7 +1233,7 @@ Examples: .TP .BR client_version " \(aq" \fIString\fP "\(aq Client can send its version to -.B rigctl +.B rigctld and get feedback on compatibility, deprecation, and alternatives .TP .BR hamlib_version commit c6a30081cbc3752ef1c904512ff4bbf8b2fe9e03 Merge: 0f519185a d9545845b Author: Michael Black <mdb...@ya...> Date: Sun Mar 16 17:10:43 2025 -0500 Merge pull request #1682 from dforsi/fix/manpages Fix manpages commit d9545845b01b830f4aa5470e842e754ca023484a Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Sun Mar 16 18:21:06 2025 +0100 Add bold diff --git a/doc/man1/rigctld.1 b/doc/man1/rigctld.1 index ea3d35329..39d4f29c7 100644 --- a/doc/man1/rigctld.1 +++ b/doc/man1/rigctld.1 @@ -118,7 +118,9 @@ See model list (use \(lqrigctld -l\(rq). .B rigctl (or third party software using the C API) will use radio model 2 for .B NET rigctl -(this model number is not used for rigctld even though it shows in the model +(this model number is not used for +.B rigctl +even though it shows in the model list). . .TP @@ -396,15 +398,21 @@ option as it generates no output on its own. . .TP .BR \-A ", " \-\-password -Sets password on rigctld which requires hamlib to use rig_set_password and rigctl to use \\password to access rigctld. A 32-char shared secret will be displayed to be used on the client side. +Sets password on +.B rigctl +which requires hamlib to use rig_set_password and rigctl to use \\password to access rigctld. A 32-char shared secret will be displayed to be used on the client side. . .TP .BR \-R ", " \-\-rigctld\-idle -Will make rigctld close the rig when no clients are connected. Normally remains connected to speed up connects. +Will make +.B rigctl +close the rig when no clients are connected. Normally remains connected to speed up connects. . .TP .BR \-b ", " \-\-bind\-all -Will make rigctld try to bind to first network device available. +Will make +.B rigctl +try to bind to first network device available. . .TP .BR \-h ", " \-\-help @@ -1224,7 +1232,9 @@ Examples: . .TP .BR client_version " \(aq" \fIString\fP "\(aq -Client can send its version to rigctld and get feedback on compatibility, deprecation, and alternatives +Client can send its version to +.B rigctl +and get feedback on compatibility, deprecation, and alternatives .TP .BR hamlib_version Returns Hamlib version with ISO8601 date/time commit 0e1e794cfa569c8994ab98a75d133a1fb6b3fbb3 Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Sat Mar 8 16:12:38 2025 +0100 Set parameter keywords bold, not their descriptions diff --git a/doc/man1/rigctl.1 b/doc/man1/rigctl.1 index d7176bd1f..56ae33044 100644 --- a/doc/man1/rigctl.1 +++ b/doc/man1/rigctl.1 @@ -191,27 +191,27 @@ above. Will exit if no -r is given. Note the dummy device has no serial paramete Set configuration parameter(s). Some common ones are: .in +4n .EX -.RB async: "True enables asynchronous data transfer for backends that support it. This allows use of transceive and spectrum data." -.RB auto_power_on: "True enables compatible rigs to be powered up on open" -.RB auto_power_off: "True enables compatible rigs to be powered down on close" -.RB auto_disable_screensaver: "True enables compatible rigs to have their screen saver disabled on open" -.RB dcd_type: "Data Carrier Detect (or squelch) interface type override" -.RB dcd_pathname: "Path name to the device file of the Data Carrier Detect (or squelch)" -.RB disable_yaesu_bandselect: "True disables the automatic band select on band change for Yaesu rigs" -.RB dtr_state: "ON turns on DTR, OFF turns it off, Unset disables it" -.RB lo_freq: "Frequency to add to the VFO frequency for use with a transverter" -.RB post_write_delay: "Delay in ms between each command sent out" -.RB ptt_share: "True enables ptt port to be shared with other apps" -.RB ptt_type: "Push-To-Talk interface type override" -.RB ptt_pathname: "Path name to the device file of the Push-To-Talk" -.RB ptt_bitnum: "Push-To-Talk GPIO bit number" -.RB retry: "Max number of retry" -.RB rts_state: "ON turns on DTR, OFF turns it off, Unset disables it" -.RB twiddle_timeout: "For satellite ops when VFOB is twiddled will pause VFOB commands until timeout" -.RB twiddle_rit: "Suppress get_freq on VFOB for RIT tuning satellites" -.RB timeout: "Timeout in ms" -.RB write_delay: "Delay in ms between each byte sent out" -.RB tuner_control_pathname: "Path name to a script/program to control a tuner with 1 argument of 0/1 for Tuner Off/On" +.BR async: "True enables asynchronous data transfer for backends that support it. This allows use of transceive and spectrum data." +.BR auto_power_on: "True enables compatible rigs to be powered up on open" +.BR auto_power_off: "True enables compatible rigs to be powered down on close" +.BR auto_disable_screensaver: "True enables compatible rigs to have their screen saver disabled on open" +.BR dcd_type: "Data Carrier Detect (or squelch) interface type override" +.BR dcd_pathname: "Path name to the device file of the Data Carrier Detect (or squelch)" +.BR disable_yaesu_bandselect: "True disables the automatic band select on band change for Yaesu rigs" +.BR dtr_state: "ON turns on DTR, OFF turns it off, Unset disables it" +.BR lo_freq: "Frequency to add to the VFO frequency for use with a transverter" +.BR post_write_delay: "Delay in ms between each command sent out" +.BR ptt_share: "True enables ptt port to be shared with other apps" +.BR ptt_type: "Push-To-Talk interface type override" +.BR ptt_pathname: "Path name to the device file of the Push-To-Talk" +.BR ptt_bitnum: "Push-To-Talk GPIO bit number" +.BR retry: "Max number of retry" +.BR rts_state: "ON turns on DTR, OFF turns it off, Unset disables it" +.BR twiddle_timeout: "For satellite ops when VFOB is twiddled will pause VFOB commands until timeout" +.BR twiddle_rit: "Suppress get_freq on VFOB for RIT tuning satellites" +.BR timeout: "Timeout in ms" +.BR write_delay: "Delay in ms between each byte sent out" +.BR tuner_control_pathname: "Path name to a script/program to control a tuner with 1 argument of 0/1 for Tuner Off/On" .EE .in .IP diff --git a/doc/man1/rigctld.1 b/doc/man1/rigctld.1 index 439c3a742..ea3d35329 100644 --- a/doc/man1/rigctld.1 +++ b/doc/man1/rigctld.1 @@ -299,27 +299,27 @@ above. Set configuration parameter(s). Some common ones are: .in +4 .EX -.RB async: "True enables asynchronous data transfer for backends that support it. This allows use of transceive and spectrum data." -.RB auto_power_on: "True enables compatible rigs to be powered up on open" -.RB auto_power_off: "True enables compatible rigs to be powered down on close" -.RB auto_disable_screensaver: "True enables compatible rigs to have their screen saver disabled on open" -.RB dcd_type: "Data Carrier Detect (or squelch) interface type override" -.RB dcd_pathname: "Path name to the device file of the Data Carrier Detect (or squelch)" -.RB disable_yaesu_bandselect: "True disables the automatic band select on band change for Yaesu rigs" -.RB dtr_state: "ON turns on DTR, OFF turns it off, Unset disables it" -.RB lo_freq: "Frequency to add to the VFO frequency for use with a transverter" -.RB post_write_delay: "Delay in ms between each command sent out" -.RB ptt_share: "True enables ptt port to be shared with other apps" -.RB ptt_type: "Push-To-Talk interface type override" -.RB ptt_pathname: "Path name to the device file of the Push-To-Talk" -.RB ptt_bitnum: "Push-To-Talk GPIO bit number" -.RB retry: "Max number of retry" -.RB rts_state: "ON turns on DTR, OFF turns it off, Unset disables it" -.RB twiddle_timeout: "For satellite ops when VFOB is twiddled will pause VFOB commands until timeout" -.RB twiddle_rit: "Suppress get_freq on VFOB for RIT tuning satellites" -.RB timeout: "Timeout in ms" -.RB write_delay: "Delay in ms between each byte sent out" -.RB tuner_control_pathname: "Path name to a script/program to control a tuner with 1 argument of 0/1 for Tuner Off/On" +.BR async: "True enables asynchronous data transfer for backends that support it. This allows use of transceive and spectrum data." +.BR auto_power_on: "True enables compatible rigs to be powered up on open" +.BR auto_power_off: "True enables compatible rigs to be powered down on close" +.BR auto_disable_screensaver: "True enables compatible rigs to have their screen saver disabled on open" +.BR dcd_type: "Data Carrier Detect (or squelch) interface type override" +.BR dcd_pathname: "Path name to the device file of the Data Carrier Detect (or squelch)" +.BR disable_yaesu_bandselect: "True disables the automatic band select on band change for Yaesu rigs" +.BR dtr_state: "ON turns on DTR, OFF turns it off, Unset disables it" +.BR lo_freq: "Frequency to add to the VFO frequency for use with a transverter" +.BR post_write_delay: "Delay in ms between each command sent out" +.BR ptt_share: "True enables ptt port to be shared with other apps" +.BR ptt_type: "Push-To-Talk interface type override" +.BR ptt_pathname: "Path name to the device file of the Push-To-Talk" +.BR ptt_bitnum: "Push-To-Talk GPIO bit number" +.BR retry: "Max number of retry" +.BR rts_state: "ON turns on DTR, OFF turns it off, Unset disables it" +.BR twiddle_timeout: "For satellite ops when VFOB is twiddled will pause VFOB commands until timeout" +.BR twiddle_rit: "Suppress get_freq on VFOB for RIT tuning satellites" +.BR timeout: "Timeout in ms" +.BR write_delay: "Delay in ms between each byte sent out" +.BR tuner_control_pathname: "Path name to a script/program to control a tuner with 1 argument of 0/1 for Tuner Off/On" .EE .in .IP commit cd72187a7cc99c0168f6150de7cb21dbed7801d5 Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Sat Mar 8 16:08:03 2025 +0100 Fix usage of .EX Add missing .EE and remove some .EE that were out of place. diff --git a/doc/man1/rigctl.1 b/doc/man1/rigctl.1 index a0d6e8e32..d7176bd1f 100644 --- a/doc/man1/rigctl.1 +++ b/doc/man1/rigctl.1 @@ -739,6 +739,7 @@ symbols. For Yaesu rigs use memory#1-5 or up to 50 char msg .EX Example from command line: rigctl -m 3073 -r /dev/ttyUSB0 b "CQ CQ DE ME" Yaesu example to send message#1: rigctl -m 1035 -r /dev/ttyUSB0 b 1 +.EE . .TP .BR 0xbb ", " stop_morse " @@ -1406,62 +1407,59 @@ Returns current lock mode status 1=On, 2=Off (only useful when using rigctld) . .TP .BR send_raw " \(aq" \fITerminator\fP "\(aq \(aq" \fIString\fP \(aq -.EX Can send ASCII string or 0xnn values or xnn values -- there can be no spaces in the command string. Possible terminator values are CR, LF, ;, ICOM, 0-100 (bytes to read), or -1 meaning unknown (will timeout on read) Examples (note that a ; must be escaped in Unix/Linux): +.IP For Windows & Unix/Linux we have a new colon-separated format for hex digits +.EX send_raw icom 0xFE:0xFE:0x94:0x03:0xFD Note: colon-separated does not have to be escaped on Unix/Linux send_raw -1 0xFE:0xFE:0x94:0x03:0xFD send_raw 14 0xFE:0xFE:0x94:0x03:0xFD Note that ASCII commands still require escaping the semicolon on Unix/Linux send_raw \; FA\;MD\; - +.EE For Windows: +.EX send_raw icom 0xFE;0xFE;0x94;0x03;0xFD send_raw -1 0xFE;0xFE;0x94;0x03;0xFD send_raw 14 0xFE;0xFE;0x94;0x03;0xFD - - For Unix/Linux +.EE +For Unix/Linux +.EX send_raw icom 0xFE\;0xFE\;0x94\;0x03\;0xFD send_raw \; FA\;MD\; send_raw -1 0xFE\;0xFE\;0x94\;0x03\;0xFD send_raw 14 0xFE\;0xFE\;0x94\;0x03\;0xFD +.EE . .TP .BR client_version " \(aq" \fIString\fP "\(aq -.EX Client can send its version to rigctld and get feedback on compatibility, deprecation, and alternatives .TP .BR hamlib_version -.EX Returns hamlib version with ISO8601 date/time . .TP .BR test -.EX Performs test routines. Under development. . .TP .BR set_gpio " \(aq" \fIGPIO#\fP "\(aq -.EX Sets GPIO1, GPIO2, GPIO3, GPIO4 on the GPIO ptt port Can also use 1,2,3,4 . .TP .BR get_gpio " \(aq" \fIGPIO#\fP "\(aq -.EX Reads GPIO1, GPIO2, GPIO3, GPIO4 on the GPIO ptt port Can also use 1,2,3,4 . .TP .BR skip_init -.EX Skips rig initialization -- useful when executing commands with rigctl to speed up things . .TP .BR freq_skip " " 'skip' -.EX When skip!=0 skips setting freq on TX_VFO when in RX and on RX_VFO when in TX -- for use with gpredict and rigs that do not have TARGETABLE_VFO . .SH READLINE diff --git a/doc/man1/rigctld.1 b/doc/man1/rigctld.1 index 5d2f18055..439c3a742 100644 --- a/doc/man1/rigctld.1 +++ b/doc/man1/rigctld.1 @@ -736,6 +736,7 @@ symbols. For Yaesu rigs use memory# (1-5 for most rigs) or up to 50 char messag .EX Example from rigctld socket: b CQ CQ DE ME Yaesu example to send message#1 frm rigctld socket: b 1 +.EE . .TP .BR 0xbb ", " stop_morse " @@ -1211,38 +1212,34 @@ Returns current lock mode status 1=On, 2=Off (only useful with rigctld) . .TP .BR send_raw " \(aq" \fITerminator\fP "\(aq \(aq" \fIString\fP \(aq -.EX Can send ASCII string or 0xnn values -- there can be no spaces in the command string. Possible terminator values are CR, LF, ;, ICOM, 0-100 (bytes to read), or -1 meaning unknown (will timeout on read) Examples: +.EX send_raw ; FA;MD; send_raw icom 0xFE;0xFE;0x94;0x03;0xFD send_raw -1 0xFE;0xFE;0x94;0x03;0xFD send_raw 14 0xFE;0xFE;0x94;0x03;0xFD +.EE . .TP .BR client_version " \(aq" \fIString\fP "\(aq -.EX Client can send its version to rigctld and get feedback on compatibility, deprecation, and alternatives .TP .BR hamlib_version -.EX Returns Hamlib version with ISO8601 date/time . .TP .BR test -.EX Performs test routines. Under development. . .TP .BR set_gpio " \(aq" \fIGPIO#\fP "\(aq -.EX Sets GPIO1, GPIO2, GPIO3, GPIO4 on the GPIO ptt port Can also use 1,2,3,4 . .TP .BR get_gpio " \(aq" \fIGPIO#\fP "\(aq -.EX Reads GPIO1, GPIO2, GPIO3, GPIO4 on the GPIO ptt port Can also use 1,2,3,4 . commit 2da07e484c5162a8ed8e3be2395452c2b21a0bcb Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Thu Mar 6 23:39:45 2025 +0100 Escape literal \n Otherwise it isn't rendered correctly. diff --git a/doc/man1/rigctld.1 b/doc/man1/rigctld.1 index e1fbb6ca9..5d2f18055 100644 --- a/doc/man1/rigctld.1 +++ b/doc/man1/rigctld.1 @@ -211,7 +211,7 @@ Use .I char as separator instead of line feed. .IP -The default is \n. Recommend using $ or @ as they work on both Unix and Windows +The default is \(oq\\n\(cq. Recommend using $ or @ as they work on both Unix and Windows. .IP . .TP commit cb0196875b1580cdef6cd8748eed8f84b305a173 Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Wed Mar 5 22:35:09 2025 +0100 Fix underline and italics diff --git a/doc/man1/rigctl.1 b/doc/man1/rigctl.1 index 95c7bbddd..a0d6e8e32 100644 --- a/doc/man1/rigctl.1 +++ b/doc/man1/rigctl.1 @@ -81,13 +81,15 @@ Use .I device as the file name of the port connected to the radio. .IP -Typically /dev/ttyS0 ", " /dev/ttyS1 ", " /dev/ttyUSB0 , +Typically +.IR /dev/ttyS0 ", " /dev/ttyS1 ", " /dev/ttyUSB0 , etc. on Linux, .IR COM1 ", " COM2 , etc. on MS Windows. The BSD flavors and Mac OS/X have their own designations. See your system's documentation. .IP -Can be a network address:port, e.g. 127.0.0.1:12345 +Can be a network address:port, e.g. +.IR 127.0.0.1:12345 .IP The special string \(lquh\-rig\(rq may be given to enable micro-ham device support. diff --git a/doc/man1/rigctld.1 b/doc/man1/rigctld.1 index 9c22bd619..e1fbb6ca9 100644 --- a/doc/man1/rigctld.1 +++ b/doc/man1/rigctld.1 @@ -127,14 +127,16 @@ Use .I device as the file name of the port connected to the radio. .IP -Typically /dev/ttyS0 ", " /dev/ttyS1 ", " /dev/ttyUSB0 , +Typically +.IR /dev/ttyS0 ", " /dev/ttyS1 ", " /dev/ttyUSB0 , etc. on Linux, .IR COM1 ", " COM2 , etc. on MS Windows. The BSD flavors and Mac OS/X have their own designations. See your system's documentation. .IP .IP -Can be a network address:port, e.g. 127.0.0.1:12345 +Can be a network address:port, e.g. +.IR 127.0.0.1:12345 .IP The special string \(lquh\-rig\(rq may be given to enable micro-ham device support. @@ -205,7 +207,9 @@ in which case it is hexadecimal. . .TP .BR \-S ", " \-\-separator = \fIchar\fP -Use char as separator instead of line feed +Use +.I char +as separator instead of line feed. .IP The default is \n. Recommend using $ or @ as they work on both Unix and Windows .IP commit e109fe355d0fb4f1da9fc0dcb3dc5a304f08a771 Author: Daniele Forsi IU5HKX <iu...@gm...> Date: Wed Mar 5 22:28:14 2025 +0100 Fix typos diff --git a/doc/man1/rigctl.1 b/doc/man1/rigctl.1 index e8ce4e31a..95c7bbddd 100644 --- a/doc/man1/rigctl.1 +++ b/doc/man1/rigctl.1 @@ -335,7 +335,7 @@ Sets the cookie to be used for remote access security . .TP .BR \-# ", " \-\-skip_init -Skips most startup intialization. +Skips most startup initialization. . .TP .B \- @@ -701,7 +701,7 @@ and .IP Number is 1-based antenna# (\(oq1\(cq, \(oq2\(cq, \(oq3\(cq, ...). .IP -Option depends on rig..for Icom it probably sets the Tx & Rx antennas as in the IC-7851. See your manual for rig specific option values. Most rigs don't care about the option. +Option depends on rig. For Icom it probably sets the Tx & Rx antennas as in the IC-7851. See your manual for rig specific option values. Most rigs don't care about the option. .IP For the IC-7851, FTDX3000 (and perhaps others) it means this: .IP @@ -727,7 +727,7 @@ A value of 0 for Antenna will return the current TX antenna .IP -Option returned depends on rig..for Icom is likely the RX only flag. +Option returned depends on rig. For Icom it is likely the RX only flag. . .TP .BR b ", " send_morse " \(aq" \fIMorse\fP \(aq @@ -828,7 +828,7 @@ code. .BR 0x93 ", " get_dcs_sql Get .RI \(aq "DCS Sql" \(aq - code. +code. . .TP .BR N ", " set_ts " \(aq" "\fITuning Step\fP" \(aq @@ -1138,7 +1138,6 @@ Sets memory channel information Get channel memory. .IP If readonly!=0 then only channel data is returned and rig remains on the current channel. If readonly=0 then rig will be set to the channel requested. -data. . .TP .BR A ", " set_trn " \(aq" \fITransceive\fP \(aq @@ -1465,8 +1464,6 @@ When skip!=0 skips setting freq on TX_VFO when in RX and on RX_VFO when in TX -- . .SH READLINE . -.SH READLINE -. If .B Readline library development files are found at configure time, diff --git a/doc/man1/rigctld.1 b/doc/man1/rigctld.1 index b42b83066..9c22bd619 100644 --- a/doc/man1/rigctld.1 +++ b/doc/man1/rigctld.1 @@ -112,7 +112,7 @@ Here is a summary of the supported options: .BR \-m ", " \-\-model = \fIid\fP Select radio model number. Defaults to dummy device. .IP -See model list (use \(lqrigctl -l\(rq). +See model list (use \(lqrigctld -l\(rq). .IP .BR Note : .B rigctl @@ -256,7 +256,7 @@ rigctl -m 2 ip6-localhost Exceptions: .EX rigctl -m 2 -r 127.0.0.1 (only works if localhost is IPV4 address) -rigctl -m 2 -r ::1 (only works localhost is IPV6 address) +rigctl -m 2 -r ::1 (only works if localhost is IPV6 address) .EE .in . @@ -345,7 +345,7 @@ Windows. The output can be piped to .BR more (1) or .BR less (1), -e.g. \(lqrigctl -l | more\(rq. +e.g. \(lqrigctld -l | more\(rq. . .TP .BR \-o ", " \-\-vfo @@ -375,12 +375,12 @@ Should only be needed when controlling software should be "paused" so you can move the VFO. Continuous movement extends the timeout. . .TP -.BR \-x ", " \-\-uplink=option +.BR \-x ", " \-\-uplink = \fIoption\fP 1=Sub, 2=Main .IP For GPredict use to ignore get_freq for Sub or Main uplink VFO. .IP -Should allow downlink VFO movement without confusing GPredict or the uplink +Should allow downlink VFO movement without confusing GPredict or the uplink. . .TP .BR \-Z ", " \-\-debug\-time\-stamps @@ -703,7 +703,7 @@ Set number (\(oq0\(cq, \(oq1\(cq, \(oq2\(cq, ...). .IP .IP -Option depends on rig..for Icom it probably sets the Tx & Rx antennas as in the IC-7851. See your manual for rig specific option values. Most rigs don't care about the option. +Option depends on rig. For Icom it probably sets the Tx & Rx antennas as in the IC-7851. See your manual for rig specific option values. Most rigs don't care about the option. .IP For the IC-7851 (and perhaps others) it means this: .IP @@ -739,7 +739,7 @@ Stop sending the current morse code. . .TP .BR 0xbc ", " wait_morse " -Wait for morse to finish -- only works on full break-in +Wait for morse to finish -- only works on full break-in. . .TP .BR 0x94 ", " send_voice_mem " \(aq" \fIMsgnum\fP \(aq @@ -823,7 +823,7 @@ code. .BR 0x93 ", " get_dcs_sql Get .RI \(aq "DCS Sql" \(aq - code. +code. . .TP .BR N ", " set_ts " \(aq" "\fITuning Step\fP" \(aq @@ -882,7 +882,7 @@ Set and .RI \(aq "Level Value" \(aq. .IP -evel is a token: \(oqPREAMP\(cq, \(oqATT\(cq, \(oqVOXDELAY\(cq, \(oqAF\(cq, +Level is a token: \(oqPREAMP\(cq, \(oqATT\(cq, \(oqVOXDELAY\(cq, \(oqAF\(cq, \(oqRF\(cq, \(oqSQL\(cq, \(oqIF\(cq, \(oqAPF\(cq, \(oqNR\(cq, \(oqPBT_IN\(cq, \(oqPBT_OUT\(cq, \(oqCWPITCH\(cq, \(oqRFPOWER\(cq, \(oqMICGAIN\(cq, \(oqKEYSPD\(cq, \(oqNOTCHF\(cq, \(oqCOMP\(cq, \(oqAGC\(cq, \(oqBKINDL\(cq, @@ -1013,7 +1013,6 @@ Not implemented yet. Get channel memory. .IP If readonly!=0 then only channel data is returned and rig remains on the current channel. If readonly=0 then rig will be set to the channel requested. -data. . .TP .BR A ", " set_trn " \(aq" \fITransceive\fP \(aq @@ -1021,7 +1020,7 @@ Set .RI \(aq Transceive \(aq mode. .IP -Transcieve is a token: \(oqOFF\(cq, \(oqRIG\(cq, \(oqPOLL\(cq. +Transceive is a token: \(oqOFF\(cq, \(oqRIG\(cq, \(oqPOLL\(cq. .IP Transceive is a mechanism for radios to report events without a specific call for information. @@ -1220,16 +1219,11 @@ Examples: .TP .BR client_version " \(aq" \fIString\fP "\(aq .EX - Client can send its version to rigctld and get feedback on compatibility, deprecation, and alternatives -.TP -.BR hamlib_version -.EX -Returns hamlib version with ISO8601 date/time -. +Client can send its version to rigctld and get feedback on compatibility, deprecation, and alternatives .TP .BR hamlib_version .EX -Returns hamlib version with ISO8601 date/time +Returns Hamlib version with ISO8601 date/time . .TP .BR test commit 0f519185acd7861412cb320e423145984ba05ab9 Merge: 1049dc245 a3e23e79c Author: Michael Black <mdb...@ya...> Date: Wed Mar 12 23:10:20 2025 -0500 Merge pull request #1676 from GeoBaltz/fix26a More fixes for send_morse sync commit 1049dc2457f2c90d47012da376836803b7c19dea Merge: f8740ddd2 ed52875c3 Author: Michael Black W9MDB <mdb...@ya...> Date: Wed Mar 12 12:49:40 2025 -0500 Merge branch 'master' of github.com:Hamlib/Hamlib commit f8740ddd2899388f86bc3098afc0ae9d05f297a7 Author: Michael Black W9MDB <mdb...@ya...> Date: Wed Mar 12 12:49:17 2025 -0500 Fix FTDX101D/MP ALC scale diff --git a/rigs/yaesu/ftdx101.c b/rigs/yaesu/ftdx101.c index 82e5d5eea..1ae7918c6 100644 --- a/rigs/yaesu/ftdx101.c +++ b/rigs/yaesu/ftdx101.c @@ -173,7 +173,7 @@ struct rig_caps ftdx101d_caps = RIG_MODEL(RIG_MODEL_FTDX101D), .model_name = "FTDX-101D", .mfg_name = "Yaesu", - .version = NEWCAT_VER ".21", + .version = NEWCAT_VER ".22", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -238,6 +238,7 @@ struct rig_caps ftdx101d_caps = .bank_qty = 0, .chan_desc_sz = 0, .rfpower_meter_cal = FTDX101D_RFPOWER_METER_WATTS_CAL, + .alc_cal = FTDX101D_ALC_METER_CAL, .str_cal = FTDX101D_STR_CAL, .swr_cal = FTDX101D_SWR_CAL, .chan_list = { diff --git a/rigs/yaesu/ftdx101.h b/rigs/yaesu/ftdx101.h index 64a433a3c..f0e3c3972 100644 --- a/rigs/yaesu/ftdx101.h +++ b/rigs/yaesu/ftdx101.h @@ -73,6 +73,15 @@ RIG_OP_UP|RIG_OP_DOWN|RIG_OP_BAND_UP|RIG_OP_BAND_DOWN|\ RIG_OP_TO_VFO|RIG_OP_FROM_VFO|RIG_OP_TOGGLE) +#define FTDX101D_ALC_METER_CAL \ +{ \ + 2, \ + { \ + {0, 0.0f}, \ + {121, 1.0f} \ + } \ +} + #define FTDX101D_RFPOWER_METER_CAL \ { \ 6, \ commit ed52875c3d6988917b84cae6f96f2440063453e3 Merge: 43f8afa6a c2d3202ff Author: Michael Black <mdb...@ya...> Date: Mon Mar 10 09:24:53 2025 -0500 Merge pull request #1679 from gereta/patch-3 Update skywatcher.h - Added coordinates for parking position commit c2d3202ffb0f4c51431b982ca023a586fcdbafc0 Author: gereta <355...@us...> Date: Mon Mar 10 08:18:46 2025 +0100 Update skywatcher.h - Added coordinates for parking position Added coordinates for parking position diff --git a/rotators/skywatcher/skywatcher.h b/rotators/skywatcher/skywatcher.h index 2164098ff..70c6c5dfc 100644 --- a/rotators/skywatcher/skywatcher.h +++ b/rotators/skywatcher/skywatcher.h @@ -20,6 +20,9 @@ #ifndef HAMLIB_SKYWATCHER_H #define HAMLIB_SKYWATCHER_H 1 +#define SKYWATCHER_PARK_AZ 0 +#define SKYWATCHER_PARK_EL 0 + #include "rotator.h" extern const struct rot_caps skywatcher_rot_caps; commit a3e23e79cd97b4c48ea56cc2776b68d86db61a08 Author: George Baltz N3GB <Geo...@gm...> Date: Tue Mar 4 21:32:34 2025 -0500 Minor cleanups/fixes Return status from rig_send_morse Remove duplicate include and some dead code Avoid future NULL dereference in error cases diff --git a/src/rig.c b/src/rig.c index dffbcbcbc..0e5aa74e7 100644 --- a/src/rig.c +++ b/src/rig.c @@ -61,9 +61,8 @@ #include <sys/types.h> #include <sys/stat.h> #include <errno.h> -#include "mutex.h" -#include <hamlib/rig.h> +#include "mutex.h" #include "serial.h" #include "parallel.h" #include "network.h" @@ -957,9 +956,7 @@ int HAMLIB_API rig_open(RIG *rig) { struct rig_caps *caps; struct rig_state *rs; - hamlib_port_t *rp = RIGPORT(rig); - hamlib_port_t *pttp = PTTPORT(rig); - hamlib_port_t *dcdp = DCDPORT(rig); + hamlib_port_t *rp, *pttp, *dcdp; int status = RIG_OK; value_t parm_value; //unsigned int net1, net2, net3, net4, net5, net6, net7, net8, port; @@ -975,6 +972,9 @@ int HAMLIB_API rig_open(RIG *rig) caps = rig->caps; rs = STATE(rig); + rp = RIGPORT(rig); + pttp = PTTPORT(rig); + dcdp = DCDPORT(rig); rp->rig = rig; rs->rigport_deprecated.rig = rig; @@ -1685,9 +1685,7 @@ int HAMLIB_API rig_open(RIG *rig) int HAMLIB_API rig_close(RIG *rig) { const struct rig_caps *caps; - hamlib_port_t *rp = RIGPORT(rig); - hamlib_port_t *pttp = PTTPORT(rig); - hamlib_port_t *dcdp = DCDPORT(rig); + hamlib_port_t *rp, *pttp, *dcdp; struct rig_state *rs; if (!rig || !rig->caps) @@ -1701,6 +1699,9 @@ int HAMLIB_API rig_close(RIG *rig) caps = rig->caps; rs = STATE(rig); + rp = RIGPORT(rig); + pttp = PTTPORT(rig); + dcdp = DCDPORT(rig); if (!rs->comm_state) { @@ -7476,9 +7477,10 @@ int HAMLIB_API rig_send_morse(RIG *rig, vfo_t vfo, const char *msg) LOCK(1); retcode = caps->send_morse(rig, vfo, msg); LOCK(0); +#else + retcode = push(rs->fifo_morse, msg); #endif - push(rs->fifo_morse, msg); - RETURNFUNC(RIG_OK); + RETURNFUNC(retcode); } if (!caps->set_vfo) @@ -8404,20 +8406,6 @@ void rig_lock(RIG *rig, int lock) struct rig_state *rs = STATE(rig); -#if 0 - if (rs->multicast == NULL) - { - rig_debug(RIG_DEBUG_BUG, "%s: locking skipped, lock = %d\n", __func__, lock); - return; - } // not initialized yet - - if (!rs->multicast->mutex_initialized) - { - rs->multicast->mutex = initializer; - rs->multicast->mutex_initialized = 1; - } -#endif - if (lock) { pthread_mutex_lock(&rs->api_mutex); @@ -9058,7 +9046,7 @@ int morse_data_handler_set_keyspd(RIG *rig, int keyspd) * Get the address of a structure without relying on changeable * internal data organization. * - * \retval The address of the enumed structure + * \retval The address of the enumed structure, NULL if error * * Note: This is meant for use by the HAMLIB_???PORT macros mostly. Only * compatibility with them is supported. @@ -9067,6 +9055,13 @@ int morse_data_handler_set_keyspd(RIG *rig, int keyspd) */ HAMLIB_EXPORT(void *) rig_data_pointer(RIG *rig, rig_ptrx_t idx) { + + if (!rig) + { + rig_debug(RIG_DEBUG_ERR, "%s: missing rig\n", __func__); + return NULL; + } + switch (idx) { case RIG_PTRX_RIGPORT: commit 9b2904c0b676dc4ed57bd09e300b6a1e81b930c8 Author: George Baltz N3GB <Geo...@gm...> Date: Tue Mar 4 16:58:43 2025 -0500 Fix timeout in kenwood_stop_morse Add "KY0" to exceptions. diff --git a/rigs/kenwood/kenwood.c b/rigs/kenwood/kenwood.c index d2e444a45..83a93270c 100644 --- a/rigs/kenwood/kenwood.c +++ b/rigs/kenwood/kenwood.c @@ -392,6 +392,7 @@ transaction_write: skip |= strncmp(cmdstr, "RD", 2) == 0; skip |= strncmp(cmdstr, "KYW", 3) == 0; skip |= strncmp(cmdstr, "KY ", 3) == 0; + skip |= strncmp(cmdstr, "KY0", 3) == 0; skip |= strncmp(cmdstr, "KY2", 3) == 0; skip |= strncmp(cmdstr, "PS1", 3) == 0; skip |= strncmp(cmdstr, "PS0", 3) == 0; @@ -400,7 +401,8 @@ transaction_write: if (skip) { // most command we give them a little time -- but not KY - if (strncmp(cmdstr, "KY ", 3) != 0 && strncmp(cmdstr, "KY2", 3) != 0) + if (strncmp(cmdstr, "KY", 2) != 0 || (cmdstr[2] != ' ' && cmdstr[2] != '0' + && cmdstr[2] != '2')) { hl_usleep(200 * 1000); // give little settle time for these commands } commit 5caa22b79a5532b2848a8e6689e0be2b36a94fde Author: George Baltz N3GB <Geo...@gm...> Date: Mon Mar 3 15:49:12 2025 -0500 Add locking to rig_stop_morse and rig_wait_morse diff --git a/src/rig.c b/src/rig.c index bddb74d07..dffbcbcbc 100644 --- a/src/rig.c +++ b/src/rig.c @@ -7545,14 +7545,18 @@ int HAMLIB_API rig_stop_morse(RIG *rig, vfo_t vfo) resetFIFO(rs->fifo_morse); // clear out the CW queue + LOCK(1); if (vfo == RIG_VFO_CURR || vfo == rs->current_vfo) { - RETURNFUNC(caps->stop_morse(rig, vfo)); + retcode = caps->stop_morse(rig, vfo); + LOCK(0); + RETURNFUNC(retcode); } if (!caps->set_vfo) { + LOCK(0); RETURNFUNC(-RIG_ENAVAIL); } @@ -7562,6 +7566,7 @@ int HAMLIB_API rig_stop_morse(RIG *rig, vfo_t vfo) if (retcode != RIG_OK) { + LOCK(0); RETURNFUNC(retcode); } @@ -7576,6 +7581,7 @@ int HAMLIB_API rig_stop_morse(RIG *rig, vfo_t vfo) retcode = rc2; } + LOCK(0); RETURNFUNC(retcode); } @@ -7645,14 +7651,18 @@ int HAMLIB_API rig_wait_morse(RIG *rig, vfo_t vfo) caps = rig->caps; + LOCK(1); if (vfo == RIG_VFO_CURR || vfo == STATE(rig)->current_vfo) { - RETURNFUNC(wait_morse_ptt(rig, vfo)); + retcode = wait_morse_ptt(rig, vfo); + LOCK(0); + RETURNFUNC(retcode); } if (!caps->set_vfo) { + LOCK(0); RETURNFUNC(-RIG_ENAVAIL); } @@ -7662,6 +7672,7 @@ int HAMLIB_API rig_wait_morse(RIG *rig, vfo_t vfo) if (retcode != RIG_OK) { + LOCK(0); RETURNFUNC(retcode); } @@ -7676,6 +7687,7 @@ int HAMLIB_API rig_wait_morse(RIG *rig, vfo_t vfo) retcode = rc2; } + LOCK(0); RETURNFUNC(retcode); } commit 43f8afa6a4f13fbfb96c2ec75f25ddfb5da9a8e2 Author: Michael Black W9MDB <mdb...@ya...> Date: Tue Mar 4 14:43:40 2025 -0600 Add simicr8600 diff --git a/simulators/Makefile.am b/simulators/Makefile.am index 489484799..a58e79147 100644 --- a/simulators/Makefile.am +++ b/simulators/Makefile.am @@ -8,7 +8,7 @@ DISTCLEANFILES = bin_PROGRAMS = -check_PROGRAMS = simelecraft simicgeneric simkenwood simyaesu simic9100 simic9700 simft991 simftdx1200 simftdx3000 simjupiter simpowersdr simid5100 simft736 simftdx5000 simtmd700 simrotorez simspid simft817 simts590 simft847 simic7300 simic7000 simic7100 simic7200 simatd578 simic905 simts450 simic7600 simic7610 simic705 simts950 simts990 simic7851 simftdx101 simxiegug90 simqrplabs simft818 simic275 simtrusdx simft1000 simtmd710 simts890 simxiegux108g simxiegux6100 simic910 simft450 simelecraftk4 simmicom simflex simft710 simic2730 simorion simpmr171 simic7700 simft990 simpstrotator simeasycomm +check_PROGRAMS = simelecraft simicgeneric simkenwood simyaesu simic9100 simic9700 simft991 simftdx1200 simftdx3000 simjupiter simpowersdr simid5100 simft736 simftdx5000 simtmd700 simrotorez simspid simft817 simts590 simft847 simic7300 simic7000 simic7100 simic7200 simatd578 simic905 simts450 simic7600 simic7610 simic705 simts950 simts990 simic7851 simftdx101 simxiegug90 simqrplabs simft818 simic275 simtrusdx simft1000 simtmd710 simts890 simxiegux108g simxiegux6100 simic910 simft450 simelecraftk4 simmicom simflex simft710 simic2730 simorion simpmr171 simic7700 simft990 simpstrotator simeasycomm simicr8600 simelecraft_SOURCES = simelecraft.c simkenwood_SOURCES = simkenwood.c diff --git a/simulators/simicr8600.c b/simulators/simicr8600.c new file mode 100644 index 000000000..8a29e2ffd --- /dev/null +++ b/simulators/simicr8600.c @@ -0,0 +1,485 @@ +// simicom will show the pts port to use for rigctl on Unix +// using virtual serial ports on Windows is to be developed yet +// Needs a lot of improvement to work on all Icoms +// gcc -g -Wall -o simicom simicom.c -lhamlib +// On mingw in the hamlib src directory +// gcc -static -I../include -g -Wall -o simicom simicom.c -L../../build/src/.libs -lhamlib -lwsock32 -lws2_32 +#define _XOPEN_SOURCE 700 +// since we are POSIX here we need this +#if 0 +struct ip_mreq +{ + int dummy; +}; +#endif + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <fcntl.h> +#include <sys/time.h> +#include <hamlib/rig.h> +#include "../src/misc.h" +#include "sim.h" + +#define BUFSIZE 256 +//#define X25 + +int civ_731_mode = 0; +vfo_t current_vfo = RIG_VFO_A; +int split = 0; + +// we make B different from A to ensure we see a difference at startup +float freqA = 14074000; +float freqB = 14074500; +mode_t modeA = RIG_MODE_CW; +mode_t modeB = RIG_MODE_USB; +int datamodeA = 0; +int datamodeB = 0; +pbwidth_t widthA = 0; +pbwidth_t widthB = 1; +ant_t ant_curr = 0; +int ant_option = 0; +int ptt = 0; + +void dumphex(const unsigned char *buf, int n) +{ + for (int i = 0; i < n; ++i) { printf("%02x ", buf[i]); } + + printf("\n"); +} + +int +frameGet(int fd, unsigned char *buf) +{ + int i = 0; + memset(buf, 0, BUFSIZE); + unsigned char c; + + while (read(fd, &c, 1) > 0) + { + buf[i++] = c; + //printf("i=%d, c=0x%02x\n",i,c); + + if (c == 0xfd) + { + dumphex(buf, i); + return i; + } + } + + printf("Error %s\n", strerror(errno)); + + return 0; +} + +void frameParse(int fd, unsigned char *frame, int len) +{ + double freq; + + if (len == 0) + { + printf("%s: len==0\n", __func__); + return; + } + + dumphex(frame, len); + + if (frame[0] != 0xfe && frame[1] != 0xfe) + { + printf("expected fe fe, got "); + dumphex(frame, len); + return; + } + + switch (frame[4]) + { + case 0x03: + + //from_bcd(frameackbuf[2], (civ_731_mode ? 4 : 5) * 2); + if (current_vfo == RIG_VFO_A || current_vfo == RIG_VFO_MAIN) + { + printf("get_freqA\n"); + to_bcd(&frame[5], (long long)freqA, (civ_731_mode ? 4 : 5) * 2); + } + else + { + printf("get_freqB\n"); + to_bcd(&frame[5], (long long)freqB, (civ_731_mode ? 4 : 5) * 2); + } + + frame[10] = 0xfd; + WRITE(fd, frame, 11); + + break; + + case 0x04: + if (current_vfo == RIG_VFO_A || current_vfo == RIG_VFO_MAIN) + { + printf("get_modeA\n"); + frame[5] = modeA; + frame[6] = widthA; + } + else + { + printf("get_modeB\n"); + frame[5] = modeB; + frame[6] = widthB; + } + + frame[7] = 0xfd; + WRITE(fd, frame, 8); + break; + + case 0x05: + freq = from_bcd(&frame[5], (civ_731_mode ? 4 : 5) * 2); + printf("set_freq to %.0f\n", freq); + + if (current_vfo == RIG_VFO_A || current_vfo == RIG_VFO_MAIN) { freqA = freq; } + else { freqB = freq; } + + frame[4] = 0xfb; + frame[5] = 0xfd; + WRITE(fd, frame, 6); + break; + + case 0x06: + if (current_vfo == RIG_VFO_A || current_vfo == RIG_VFO_MAIN) { modeA = frame[6]; } + else { modeB = frame[6]; } + + frame[4] = 0xfb; + frame[5] = 0xfd; + WRITE(fd, frame, 6); + break; + + case 0x07: + switch (frame[5]) + { + case 0x00: current_vfo = RIG_VFO_VFO; break; + + case 0x01: current_vfo = RIG_VFO_MEM; break; + + printf("set_vfo to %s\n", rig_strvfo(current_vfo)); + + frame[4] = 0xfb; + frame[5] = 0xfd; + WRITE(fd, frame, 6); + break; + + case 0x0f: + if (frame[5] == 0) { split = 0; } + else { split = 1; } + + printf("set split %d\n", 1); + frame[4] = 0xfb; + frame[5] = 0xfd; + WRITE(fd, frame, 6); + break; + + case 0x12: // we're simulating the 3-byte version -- not the 2-byte + if (frame[5] != 0xfd) + { + printf("Set ant %d\n", -1); + ant_curr = frame[5]; + ant_option = frame[6]; + dump_hex(frame, 8); + } + else + { + printf("Get ant\n"); + } + + frame[5] = ant_curr; + frame[6] = ant_option; + frame[7] = 0xfd; + printf("n=WRITE 8 bytes\n"); + dump_hex(frame, 8); + WRITE(fd, frame, 8); + break; + + case 0x14: + switch (frame[5]) + { + static int power_level = 0; + static int level = 0; + + case 0x01: + level = 255; + printf("Using AF level %d\n", level); + to_bcd(&frame[6], (long long) level, 2); + frame[8] = 0xfd; + WRITE(fd, frame, 9); + break; + + case 0x0a: + printf("Using power level %d\n", power_level); + power_level += 10; + + if (power_level > 250) { power_level = 0; } + + to_bcd(&frame[6], (long long)power_level, 2); + frame[8] = 0xfd; + WRITE(fd, frame, 9); + break; + } + + break; + + case 0x15: + switch (frame[5]) + { + static int meter_level = 0; + + case 0x11: + printf("Using meter level %d\n", meter_level); + meter_level += 10; + + if (meter_level > 250) { meter_level = 0; } + + to_bcd(&frame[6], (long long)meter_level, 2); + frame[8] = 0xfd; + WRITE(fd, frame, 9); + break; + } + + break; + + case 0x18: // miscellaneous things + frame[5] = 1; + frame[6] = 0xfd; + WRITE(fd, frame, 7); + break; + + case 0x1a: // miscellaneous things + switch (frame[5]) + { + case 0x03: // width + if (current_vfo == RIG_VFO_A || current_vfo == RIG_VFO_MAIN) { frame[6] = widthA; } + else { frame[6] = widthB; } + + frame[7] = 0xfd; + WRITE(fd, frame, 8); + break; + + case 0x04: // IC7200 data mode + frame[6] = 0; + frame[7] = 0; + frame[8] = 0xfd; + WRITE(fd, frame, 9); + break; + + case 0x07: // satmode + frame[6] = 0; + frame[7] = 0xfd; + WRITE(fd, frame, 8); + break; + + } + + break; + + case 0x1c: + switch (frame[5]) + { + case 0: + if (frame[6] == 0xfd) + { + frame[6] = ptt; + frame[7] = 0xfd; + WRITE(fd, frame, 8); + } + else + { + ptt = frame[6]; + frame[7] = 0xfb; + frame[8] = 0xfd; + WRITE(fd, frame, 9); + } + + break; + + } + + break; + + +#ifdef X25 + + case 0x25: + if (frame[6] == 0xfd) + { + if (frame[5] == 0x00) + { + to_bcd(&frame[6], (long long)freqA, (civ_731_mode ? 4 : 5) * 2); + printf("get_freqA=%.0f\n", freqA); + } + else + { + to_bcd(&frame[6], (long long)freqB, (civ_731_mode ? 4 : 5) * 2); + printf("get_freqB=%.0f\n", freqB); + } + + frame[11] = 0xfd; + WRITE(fd, frame, 12); + } + else + { + freq = from_bcd(&frame[6], (civ_731_mode ? 4 : 5) * 2); + printf("set_freq to %.0f\n", freq); + + if (frame[5] == 0x00) { freqA = freq; } + else { freqB = freq; } + + frame[4] = 0xfb; + frame[5] = 0xfd; + WRITE(fd, frame, 6); + } + + break; + + case 0x26: + for (int i = 0; i < 6; ++i) { printf("%02x:", frame[i]); } + + if (frame[6] == 0xfd) // then a query + { + for (int i = 0; i < 6; ++i) { printf("%02x:", frame[i]); } + + frame[6] = frame[5] == 0 ? modeA : modeB; + frame[7] = frame[5] == 0 ? datamodeA : datamodeB; + frame[8] = 0xfb; + frame[9] = 0xfd; + WRITE(fd, frame, 10); + } + else + { + for (int i = 0; i < 12; ++i) { printf("%02x:", frame[i]); } + + if (frame[5] == 0) + { + modeA = frame[6]; + datamodeA = frame[7]; + } + else + { + modeB = frame[6]; + datamodeB = frame[7]; + } + + frame[4] = 0xfb; + frame[5] = 0xfd; + WRITE(fd, frame, 6); + } + + printf("\n"); + break; +#else + + case 0x25: + frame[4] = 0xfa; + frame[5] = 0xfd; + break; + + case 0x26: + frame[4] = 0xfa; + frame[5] = 0xfd; + break; +#endif + + default: printf("cmd 0x%02x unknown\n", frame[4]); + } + + // don't care about the rig type yet + +} + +#if defined(WIN32) || defined(_WIN32) +int openPort(char *comport) // doesn't matter for using pts devices +{ + int fd; + fd = open(comport, O_RDWR); + + if (fd < 0) + { + perror(comport); + } + + return fd; +} + +#else +int openPort(char *comport) // doesn't matter for using pts devices +{ + int fd = posix_openpt(O_RDWR); + char *name = ptsname(fd); + + if (name == NULL) + { + perror("pstname"); + return -1; + } + + printf("name=%s\n", name); + + if (fd == -1 || grantpt(fd) == -1 || unlockpt(fd) == -1) + { + perror("posix_openpt"); + return -1; + } + + return fd; +} +#endif + +void rigStatus() +{ + char vfoa = current_vfo == RIG_VFO_A ? '*' : ' '; + char vfob = current_vfo == RIG_VFO_B ? '*' : ' '; + printf("%cVFOA: mode=%d datamode=%d width=%ld freq=%.0f\n", vfoa, modeA, + datamodeA, + widthA, + freqA); + printf("%cVFOB: mode=%d datamode=%d width=%ld freq=%.0f\n", vfob, modeB, + datamodeB, + widthB, + freqB); +} + +int main(int argc, char **argv) +{ + unsigned char buf[256]; + int fd = openPort(argv[1]); + + printf("%s: %s\n", argv[0], rig_version()); +#ifdef X25 + printf("x25/x26 command recognized\n"); +#else + printf("x25/x26 command rejected\n"); +#endif +#if defined(WIN32) || defined(_WIN32) + + if (argc != 2) + { + printf("Missing comport argument\n"); + printf("%s [comport]\n", argv[0]); + exit(1); + } + +#endif + + while (1) + { + int len = frameGet(fd, buf); + + if (len <= 0) + { + close(fd); + fd = openPort(argv[1]); + } + + frameParse(fd, buf, len); + rigStatus(); + } + + return 0; +} commit 7269ba62647a613ba7b63fc6ddbd2070ba7f9db5 Merge: 701d6bf47 f2f947c51 Author: Michael Black W9MDB <mdb...@ya...> Date: Tue Mar 4 14:42:32 2025 -0600 Merge branch 'master' of github.com:Hamlib/Hamlib commit 701d6bf477f784192684c8035cd874d10966a5e6 Author: Michael Black W9MDB <mdb...@ya...> Date: Tue Mar 4 14:41:31 2025 -0600 Hopefully fix CODAN NGS set_freq/get_freq diff --git a/rigs/codan/codan.c b/rigs/codan/codan.c index a311105d9..996d2c595 100644 --- a/rigs/codan/codan.c +++ b/rigs/codan/codan.c @@ -55,7 +55,7 @@ int codan_transaction(RIG *rig, char *cmd, int expected, char **result) // Seems the 2110 wants CR instead of LF if (rig->caps->rig_model == RIG_MODEL_CODAN_2110 || rig->caps->rig_model == RIG_MODEL_CODAN_NGT) { - SNPRINTF(cmd_buf, sizeof(cmd_buf), "%s%c", cmd, 0x0d); + SNPRINTF(cmd_buf, sizeof(cmd_buf), "%s%c%c", cmd, 0x0d, 0x0a); } else { @@ -170,7 +170,7 @@ int codan_init(RIG *rig) RETURNFUNC2(RIG_OK); } -int codan_set_freq_2110(RIG *rig, vfo_t vfo, freq_t freq) +int codan_set_freq_ngt(RIG *rig, vfo_t vfo, freq_t freq) { char cmd_buf[MAXCMDLEN]; int retval; @@ -179,7 +179,7 @@ int codan_set_freq_2110(RIG *rig, vfo_t vfo, freq_t freq) rig_strvfo(vfo), freq); // Purportedly can't do split so we just set VFOB=VFOA - SNPRINTF(cmd_buf, sizeof(cmd_buf), "\rfreq %.0f", freq / 1000); + SNPRINTF(cmd_buf, sizeof(cmd_buf), "\rfreq %.3f", freq / 1000); char *response = NULL; retval = codan_transaction(rig, cmd_buf, 0, &response); @@ -207,9 +207,9 @@ int codan_open(RIG *rig) codan_transaction(rig, "login", 1, &results); - if (rig->caps->rig_model == RIG_MODEL_CODAN_2110) + if (rig->caps->rig_model == RIG_MODEL_CODAN_NGT) { - codan_set_freq_2110(rig, RIG_VFO_A, 14074000.0); + codan_set_freq_ngt(rig, RIG_VFO_A, 14074000.0); } else { @@ -385,6 +385,9 @@ int codan_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) retval = sscanf(response, "FREQ: %lg", freq); + if (retval == 0) + retval = sscanf(response, "CHAN: %lg", freq); + *freq *= 1000; // returned freq is in kHz if (retval != 1) @@ -491,7 +494,7 @@ int codan_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt) return RIG_OK; } -int codan_set_ptt_2110(RIG *rig, vfo_t vfo, ptt_t ptt) +int codan_set_ptt_ngs(RIG *rig, vfo_t vfo, ptt_t ptt) { int retval; char cmd_buf[MAXCMDLEN]; @@ -585,7 +588,7 @@ struct rig_caps codan_ngt_caps = RIG_MODEL(RIG_MODEL_CODAN_NGT), .model_name = "NGT", .mfg_name = "CODAN", - .version = BACKEND_VER ".2", + .version = BACKEND_VER ".3", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -635,7 +638,7 @@ struct rig_caps codan_ngt_caps = .rig_open = codan_open, - .set_freq = codan_set_freq, + .set_freq = codan_set_freq_ngt, .get_freq = codan_get_freq, .set_mode = codan_set_mode, .get_mode = codan_get_mode, @@ -650,7 +653,7 @@ struct rig_caps codan_2110_caps = RIG_MODEL(RIG_MODEL_CODAN_2110), .model_name = "2110", .mfg_name = "CODAN", - .version = BACKEND_VER ".1", + .version = BACKEND_VER ".0", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -699,13 +702,13 @@ struct rig_caps codan_2110_caps = .rig_open = codan_open, .rig_cleanup = codan_cleanup, - .set_freq = codan_set_freq_2110, + .set_freq = codan_set_freq, .get_freq = codan_get_freq, .set_mode = codan_set_mode, .get_mode = codan_get_mode, - .set_ptt = codan_set_ptt_2110, - .get_ptt = codan_get_ptt_2110, + .set_ptt = codan_set_ptt, + .get_ptt = codan_get_ptt, .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS }; @@ -714,7 +717,7 @@ DECLARE_INITRIG_BACKEND(codan) rig_debug(RIG_DEBUG_VERBOSE, "%s: _init called\n", __func__); rig_register(&codan_envoy_caps); - rig_register(&codan_ngs_caps); + rig_register(&codan_ngt_caps); rig_register(&codan_2110_caps); rig_debug(RIG_DEBUG_VERBOSE, "%s: _init back from rig_register\n", __func__); diff --git a/rigs/codan/codan.h b/rigs/codan/codan.h index 96ae9e10d..2338be809 100644 --- a/rigs/codan/codan.h +++ b/rigs/codan/codan.h @@ -35,7 +35,7 @@ #define CODAN_DATA_LEN 64 extern struct rig_caps codan_envoy_caps; -extern struct rig_caps codan_ngs_caps; +extern struct rig_caps codan_ngt_caps; extern struct rig_caps codan_2021_caps; struct codan_priv_data { diff --git a/src/rig.c b/src/rig.c index 6e772fcf0..c016f30f4 100644 --- a/src/rig.c +++ b/src/rig.c @@ -1551,9 +1551,11 @@ int HAMLIB_API rig_open(RIG *rig) if (ICOM_EXCEPTIONS) { myvfo = RIG_VFO_MAIN_A; } + if ((STATE(rig)->vfo_list & RIG_VFO_VFO) == RIG_VFO_VFO) { myvfo = RIG_VFO_VFO; } + retval = rig_get_freq(rig, myvfo, &freq); - if (retval == RIG_OK && rig->caps->rig_model != RIG_MODEL_F6K) + if (retval == RIG_OK && rig->caps->rig_model != RIG_MODEL_F6K && ((STATE(rig)->vfo_list & RIG_VFO_VFO) == RIG_VFO_VFO)) { split_t split = RIG_SPLIT_OFF; vfo_t tx_vfo = RIG_VFO_NONE; commit 3dbb7011d1a2c14cc0f2351c321b66787d51e9f3 Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Mar 1 16:42:15 2025 -0600 Fix NGT caps name diff --git a/rigs/codan/codan.c b/rigs/codan/codan.c index 53fa82f6d..a311105d9 100644 --- a/rigs/codan/codan.c +++ b/rigs/codan/codan.c @@ -580,7 +580,7 @@ struct rig_caps codan_envoy_caps = .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS }; -struct rig_caps codan_ngs_caps = +struct rig_caps codan_ngt_caps = { RIG_MODEL(RIG_MODEL_CODAN_NGT), .model_name = "NGT", commit 6b11c7e970ba9f7a348ba4836d94bfcf177f2ece Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Mar 1 16:40:14 2025 -0600 Remove ptt from CODAN NGS -- does not have it diff --git a/rigs/codan/codan.c b/rigs/codan/codan.c index bf7078eaf..53fa82f6d 100644 --- a/rigs/codan/codan.c +++ b/rigs/codan/codan.c @@ -515,11 +515,6 @@ int codan_set_ptt_2110(RIG *rig, vfo_t vfo, ptt_t ptt) return RIG_OK; } - - - - - struct rig_caps codan_envoy_caps = { RIG_MODEL(RIG_MODEL_CODAN_ENVOY), @@ -590,7 +585,7 @@ struct rig_caps codan_ngs_caps = RIG_MODEL(RIG_MODEL_CODAN_NGT), .model_name = "NGT", .mfg_name = "CODAN", - .version = BACKEND_VER ".1", + .version = BACKEND_VER ".2", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -638,13 +633,15 @@ struct rig_caps codan_ngs_caps = .rig_init = codan_init, .rig_cleanup = codan_cleanup, + .rig_open = codan_open, + .set_freq = codan_set_freq, .get_freq = codan_get_freq, .set_mode = codan_set_mode, .get_mode = codan_get_mode, - .set_ptt = codan_set_ptt, - .get_ptt = codan_get_ptt, + //.set_ptt = codan_set_ptt, // does not have it + //.get_ptt = codan_get_ptt, .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS }; commit f2f947c51d45f5596afd0b8b3c8df7c3d88d93dd Merge: 3d4664780 0147da5a3 Author: Michael Black <mdb...@ya...> Date: Fri Feb 28 06:13:46 2025 -0600 Merge pull request #1675 from GeoBaltz/fix26 DO NOT MERGE! commit 0147da5a3ca8dc0f874d2a43ff5a2e702bbc4f41 Author: George Baltz N3GB <Geo...@gm...> Date: Fri Feb 28 05:29:44 2025 -0500 Replace rs->multicast->mutex with a dedicated mutex for the API. Use PTHREAD_MUTEX_RECURSIVE and change LOCK() to always call rig_lock(). Still needs a reliable way to determine availability. diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index 6db75e359..ea6bd8db0 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -2891,6 +2891,7 @@ struct rig_state { struct timespec freq_event_elapsed; int freq_skip; /*!< allow frequency skip for gpredict RX/TX freq set */ client_t client; + pthread_mutex_t api_mutex; // Lock for any API entry // New rig_state items go before this line ============================================ }; diff --git a/src/rig.c b/src/rig.c index 6232a46b7..5234e3f3c 100644 --- a/src/rig.c +++ b/src/rig.c @@ -171,11 +171,21 @@ const char hamlib_copyright[231] = /* hamlib 1.2 ABI specifies 231 bytes */ #define ICOM_EXCEPTIONS (rig->caps->rig_model == RIG_MODEL_IC9700 || rig->caps->rig_model == RIG_MODEL_IC9100 || rig->caps->rig_model == RIG_MODEL_IC910) +// If the OS/library supports it, use a recursive mutex for the main lock. +// This eliminates depth races, and guards against multiple app threads, too. +// Set define to 0 to use depth-based locking. It should be deduced from the +// environment, but I can't find a fine-grained enough parameter. Should be +// OK on any POSIX-2017 or later system. +#define USE_RECURSIVE_MUTEX 1 +#if USE_RECURSIVE_MUTEX +#define LOCK(n) rig_lock(rig,n) +#else // The LOCK m... [truncated message content] |
From: n0nb <n0...@us...> - 2025-02-22 21:50:09
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via 98a0184680a70aa4943ea2ba7dbcf8ca03bebf1f (commit) via 84c656edd1a04a0b9c6f558274a108496b7d7521 (commit) via e93d368fcbb0c28254de48ff5bad93345c66874c (commit) via f2fe51fac889c2c9606a164a69029d7b4736a143 (commit) via 9a2f72fc328760b6c47cbcfeb81af22bd3b92805 (commit) via e95cc440d73964567a27b3d58bb48c826a46284b (commit) via 2070edab861bfb018fcb613d13565f4512618ad0 (commit) via 2d3f5fe8a153c134f289d676618daf3eb3103fde (commit) via 3fcf3006296ef6f768dcc558e19bed5457819ac8 (commit) from a6e280ca2ea3b49ada7d52bfd0fabf9633a18fb2 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 98a0184680a70aa4943ea2ba7dbcf8ca03bebf1f Author: Michael Black W9MDB <mdb...@ya...> Date: Tue Feb 18 09:10:26 2025 -0600 Remote -w451 flag -- not available in all versions of gcc diff --git a/bindings/Makefile.am b/bindings/Makefile.am index d5bd8aca8..34272b70c 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -4,7 +4,7 @@ # AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/include -I$(top_srcdir)/bindings \ - $(TCL_INCLUDE_SPEC) $(PYTHON_CPPFLAGS) -w451 + $(TCL_INCLUDE_SPEC) $(PYTHON_CPPFLAGS) AM_CFLAGS = @AM_CPPFLAGS@ -fno-strict-aliasing AM_CXXFLAGS = -O2 diff --git a/src/rig.c b/src/rig.c index 739a17fce..6e772fcf0 100644 --- a/src/rig.c +++ b/src/rig.c @@ -8769,7 +8769,7 @@ void *morse_data_handler(void *arg) int nloops = 10; MUTEX_LOCK(morse_mutex); // wait until the write is idle - rig_lock(rig, 1); + rig_lock(rig, 1); do { result = rig->caps->send_morse(rig, RIG_VFO_CURR, c); commit 84c656edd1a04a0b9c6f558274a108496b7d7521 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Feb 16 10:57:11 2025 -0600 Fix CODAN 2110 -- correct model# and all the minor changes to the CICS protocol diff --git a/NEWS b/NEWS index 07d28147a..9ab81f35b 100644 --- a/NEWS +++ b/NEWS @@ -14,7 +14,7 @@ Version 5.x -- future Version 4.6.3 * Fix rigctl showing hamlib_verson when connecting to rigctld - * Add rig CODAN 2021 + * Add rig CODAN 2110 Version 4.6.2 * Add missing levels for IC746/PRO RIG_LEVEL_RFPOWER_METER,RIG_LEVEL_RFPOWER_METER_WATTS,RIG_LEVEL_SWR,RIG_LEVEL_ALC diff --git a/include/hamlib/riglist.h b/include/hamlib/riglist.h index 88d0b28ce..b7a441c0a 100644 --- a/include/hamlib/riglist.h +++ b/include/hamlib/riglist.h @@ -657,7 +657,7 @@ #define RIG_BACKEND_CODAN "codan" #define RIG_MODEL_CODAN_ENVOY RIG_MAKE_MODEL(RIG_CODAN, 1) #define RIG_MODEL_CODAN_NGT RIG_MAKE_MODEL(RIG_CODAN, 2) -#define RIG_MODEL_CODAN_2021 RIG_MAKE_MODEL(RIG_CODAN, 3) +#define RIG_MODEL_CODAN_2110 RIG_MAKE_MODEL(RIG_CODAN, 3) /* * Gomspace diff --git a/rigs/codan/codan.c b/rigs/codan/codan.c index 50dcce4a1..84ae99e86 100644 --- a/rigs/codan/codan.c +++ b/rigs/codan/codan.c @@ -48,21 +48,21 @@ int codan_transaction(RIG *rig, char *cmd, int expected, char **result) int retval; hamlib_port_t *rp = RIGPORT(rig); struct codan_priv_data *priv = STATE(rig)->priv; - //int retry = 3; + int retry = 3; rig_debug(RIG_DEBUG_VERBOSE, "%s: cmd=%s\n", __func__, cmd); - // Seems the 2021 wants LF instead of CR - if (rig->caps->rig_model == RIG_MODEL_CODAN_2021) + // Seems the 2110 wants CR instead of LF + if (rig->caps->rig_model == RIG_MODEL_CODAN_2110) { - SNPRINTF(cmd_buf, sizeof(cmd_buf), "%s%d", cmd, 0x0a); + SNPRINTF(cmd_buf, sizeof(cmd_buf), "%s%c", cmd, 0x0d); } else { - SNPRINTF(cmd_buf, sizeof(cmd_buf), "%s%d", cmd, 0x0d); + SNPRINTF(cmd_buf, sizeof(cmd_buf), "%s%c", cmd, 0x0a); } - rig_flush(rp); +repeat: retval = write_block(rp, (unsigned char *) cmd_buf, strlen(cmd_buf)); hl_usleep(rig->caps->post_write_delay); @@ -83,6 +83,10 @@ again1: if (strncmp(cmd, priv->ret_data, strlen(cmd)) == 0) { goto again1; } + if (strstr(priv->ret_data, "ERROR") && --retry > 0) { goto repeat; } + + if (strstr(priv->ret_data, "CHAN") && --retry > 0) { goto again1; } + if (retval < 0) { return retval; @@ -97,6 +101,10 @@ again2: if (strncmp(cmd, priv->ret_data, strlen(cmd)) == 0) { goto again2; } + if (strstr(priv->ret_data, "ERROR") && --retry > 0) { goto repeat; } + + if (strstr(priv->ret_data, "CHAN")) { goto again2; } + if (retval < 0) { return retval; @@ -162,6 +170,28 @@ int codan_init(RIG *rig) RETURNFUNC2(RIG_OK); } +int codan_set_freq_2110(RIG *rig, vfo_t vfo, freq_t freq) +{ + char cmd_buf[MAXCMDLEN]; + int retval; + + rig_debug(RIG_DEBUG_VERBOSE, "%s: vfo=%s freq=%.0f\n", __func__, + rig_strvfo(vfo), freq); + + // Purportedly can't do split so we just set VFOB=VFOA + SNPRINTF(cmd_buf, sizeof(cmd_buf), "\rfreq %.0f", freq / 1000); + + char *response = NULL; + retval = codan_transaction(rig, cmd_buf, 0, &response); + + if (retval < 0) + { + return retval; + } + + return retval; +} + int codan_open(RIG *rig) { char *results = NULL; @@ -176,7 +206,15 @@ int codan_open(RIG *rig) } codan_transaction(rig, "login", 1, &results); - codan_set_freq(rig, RIG_VFO_A, 14074000.0); + + if (rig->caps->rig_model == RIG_MODEL_CODAN_2110) + { + codan_set_freq_2110(rig, RIG_VFO_A, 14074000.0); + } + else + { + codan_set_freq(rig, RIG_VFO_A, 14074000.0); + } RETURNFUNC2(RIG_OK); } @@ -393,6 +431,38 @@ int codan_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt) return RIG_OK; } +int codan_get_ptt_2110(RIG *rig, vfo_t vfo, ptt_t *ptt) +{ + int retval; + char *response = NULL; + + rig_debug(RIG_DEBUG_VERBOSE, "%s: vfo=%s\n", __func__, rig_strvfo(vfo)); + + retval = codan_transaction(rig, "ptt", 0, &response); + + if (retval != RIG_OK) + { + rig_debug(RIG_DEBUG_ERR, "%s: error response?='%s'\n", __func__, response); + return retval; + } + + const char *p = strstr(response, "PTT"); + + if (p) + { + if (strstr(p, "OFF")) { *ptt = 0; } + else { *ptt = 1; } + } + else + { + rig_debug(RIG_DEBUG_ERR, "%s: unable to find Ptt in %s\n", __func__, response); + return -RIG_EPROTO; + } + + return RIG_OK; +} + + /* * codan_set_ptt * Assumes rig!=NULL @@ -421,6 +491,32 @@ int codan_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt) return RIG_OK; } +int codan_set_ptt_2110(RIG *rig, vfo_t vfo, ptt_t ptt) +{ + int retval; + char cmd_buf[MAXCMDLEN]; + char *response; + + rig_debug(RIG_DEBUG_VERBOSE, "%s: ptt=%d\n", __func__, ptt); + + SNPRINTF(cmd_buf, sizeof(cmd_buf), "ptt %s", + ptt == 0 ? "off" : "on"); + response = NULL; + retval = codan_transaction(rig, cmd_buf, 0, &response); + + if (retval < 0) + { + rig_debug(RIG_DEBUG_ERR, "%s: invalid response=%s\n", __func__, response); + return retval; + } + + rig_debug(RIG_DEBUG_VERBOSE, "%s: cmd result=%s\n", __func__, response); + + return RIG_OK; +} + + + @@ -552,14 +648,14 @@ struct rig_caps codan_ngs_caps = .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS }; -struct rig_caps codan_2021_caps = +struct rig_caps codan_2110_caps = { - RIG_MODEL(RIG_MODEL_CODAN_2021), - .model_name = "2021", + RIG_MODEL(RIG_MODEL_CODAN_2110), + .model_name = "2110", .mfg_name = "CODAN", .version = BACKEND_VER ".0", .copyright = "LGPL", - .status = RIG_STATUS_ALPHA, + .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, .targetable_vfo = RIG_TARGETABLE_FREQ, .ptt_type = RIG_PTT_RIG, @@ -603,15 +699,16 @@ struct rig_caps codan_2021_caps = .priv = NULL, .rig_init = codan_init, + .rig_open = codan_open, .rig_cleanup = codan_cleanup, - .set_freq = codan_set_freq, + .set_freq = codan_set_freq_2110, .get_freq = codan_get_freq, .set_mode = codan_set_mode, .get_mode = codan_get_mode, - .set_ptt = codan_set_ptt, - .get_ptt = codan_get_ptt, + .set_ptt = codan_set_ptt_2110, + .get_ptt = codan_get_ptt_2110, .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS }; @@ -621,7 +718,7 @@ DECLARE_INITRIG_BACKEND(codan) rig_register(&codan_envoy_caps); rig_register(&codan_ngs_caps); - rig_register(&codan_2021_caps); + rig_register(&codan_2110_caps); rig_debug(RIG_DEBUG_VERBOSE, "%s: _init back from rig_register\n", __func__); return RIG_OK; diff --git a/rigs/codan/codan.h b/rigs/codan/codan.h index b7eac8310..96ae9e10d 100644 --- a/rigs/codan/codan.h +++ b/rigs/codan/codan.h @@ -24,7 +24,7 @@ #include "hamlib/rig.h" -#define BACKEND_VER "20240318" +#define BACKEND_VER "20250216" #define EOM "\x0d" #define TRUE 1 commit e93d368fcbb0c28254de48ff5bad93345c66874c Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Feb 15 16:20:56 2025 -0600 Suppress swig 452 warning diff --git a/bindings/Makefile.am b/bindings/Makefile.am index 34272b70c..d5bd8aca8 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -4,7 +4,7 @@ # AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/include -I$(top_srcdir)/bindings \ - $(TCL_INCLUDE_SPEC) $(PYTHON_CPPFLAGS) + $(TCL_INCLUDE_SPEC) $(PYTHON_CPPFLAGS) -w451 AM_CFLAGS = @AM_CPPFLAGS@ -fno-strict-aliasing AM_CXXFLAGS = -O2 commit f2fe51fac889c2c9606a164a69029d7b4736a143 Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Feb 15 16:16:46 2025 -0600 Fix codan.c some more diff --git a/rigs/codan/codan.c b/rigs/codan/codan.c index 99dbffe89..50dcce4a1 100644 --- a/rigs/codan/codan.c +++ b/rigs/codan/codan.c @@ -424,7 +424,7 @@ int codan_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt) -struct rig_caps envoy_caps = +struct rig_caps codan_envoy_caps = { RIG_MODEL(RIG_MODEL_CODAN_ENVOY), .model_name = "Envoy", @@ -489,7 +489,7 @@ struct rig_caps envoy_caps = .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS }; -struct rig_caps ngs_caps = +struct rig_caps codan_ngs_caps = { RIG_MODEL(RIG_MODEL_CODAN_NGT), .model_name = "NGT", commit 9a2f72fc328760b6c47cbcfeb81af22bd3b92805 Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Feb 15 16:09:15 2025 -0600 Fix codan.c diff --git a/rigs/codan/codan.c b/rigs/codan/codan.c index 2b64dd7be..99dbffe89 100644 --- a/rigs/codan/codan.c +++ b/rigs/codan/codan.c @@ -51,12 +51,16 @@ int codan_transaction(RIG *rig, char *cmd, int expected, char **result) //int retry = 3; rig_debug(RIG_DEBUG_VERBOSE, "%s: cmd=%s\n", __func__, cmd); - + // Seems the 2021 wants LF instead of CR if (rig->caps->rig_model == RIG_MODEL_CODAN_2021) + { SNPRINTF(cmd_buf, sizeof(cmd_buf), "%s%d", cmd, 0x0a); + } else + { SNPRINTF(cmd_buf, sizeof(cmd_buf), "%s%d", cmd, 0x0d); + } rig_flush(rp); retval = write_block(rp, (unsigned char *) cmd_buf, strlen(cmd_buf)); @@ -76,7 +80,8 @@ again1: "\x0a", 1, 0, 1); rig_debug(RIG_DEBUG_VERBOSE, "%s: result=%s, resultlen=%d\n", __func__, priv->ret_data, (int)strlen(priv->ret_data)); - if (strncmp(cmd, priv->ret_data, strlen(cmd))==0) goto again1; + + if (strncmp(cmd, priv->ret_data, strlen(cmd)) == 0) { goto again1; } if (retval < 0) { @@ -89,7 +94,8 @@ again2: retval = read_string(rp, (unsigned char *) priv->ret_data, sizeof(priv->ret_data), "\x0a", 1, 0, 1); - if (strncmp(cmd, priv->ret_data, strlen(cmd))==0) goto again2; + + if (strncmp(cmd, priv->ret_data, strlen(cmd)) == 0) { goto again2; } if (retval < 0) { @@ -546,7 +552,7 @@ struct rig_caps ngs_caps = .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS }; -struct rig_caps ngs_caps = +struct rig_caps codan_2021_caps = { RIG_MODEL(RIG_MODEL_CODAN_2021), .model_name = "2021", commit e95cc440d73964567a27b3d58bb48c826a46284b Merge: 2070edab8 2d3f5fe8a Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Feb 15 16:05:38 2025 -0600 Merge branch 'master' of github.com:Hamlib/Hamlib commit 2070edab861bfb018fcb613d13565f4512618ad0 Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Feb 15 16:05:21 2025 -0600 Add CODAN 2021 diff --git a/NEWS b/NEWS index 14d02f805..07d28147a 100644 --- a/NEWS +++ b/NEWS @@ -14,6 +14,7 @@ Version 5.x -- future Version 4.6.3 * Fix rigctl showing hamlib_verson when connecting to rigctld + * Add rig CODAN 2021 Version 4.6.2 * Add missing levels for IC746/PRO RIG_LEVEL_RFPOWER_METER,RIG_LEVEL_RFPOWER_METER_WATTS,RIG_LEVEL_SWR,RIG_LEVEL_ALC diff --git a/include/hamlib/riglist.h b/include/hamlib/riglist.h index 768c40691..88d0b28ce 100644 --- a/include/hamlib/riglist.h +++ b/include/hamlib/riglist.h @@ -657,6 +657,7 @@ #define RIG_BACKEND_CODAN "codan" #define RIG_MODEL_CODAN_ENVOY RIG_MAKE_MODEL(RIG_CODAN, 1) #define RIG_MODEL_CODAN_NGT RIG_MAKE_MODEL(RIG_CODAN, 2) +#define RIG_MODEL_CODAN_2021 RIG_MAKE_MODEL(RIG_CODAN, 3) /* * Gomspace diff --git a/rigs/codan/codan.c b/rigs/codan/codan.c index 92b146709..2b64dd7be 100644 --- a/rigs/codan/codan.c +++ b/rigs/codan/codan.c @@ -51,8 +51,12 @@ int codan_transaction(RIG *rig, char *cmd, int expected, char **result) //int retry = 3; rig_debug(RIG_DEBUG_VERBOSE, "%s: cmd=%s\n", __func__, cmd); - - SNPRINTF(cmd_buf, sizeof(cmd_buf), "%s%s", cmd, EOM); + + // Seems the 2021 wants LF instead of CR + if (rig->caps->rig_model == RIG_MODEL_CODAN_2021) + SNPRINTF(cmd_buf, sizeof(cmd_buf), "%s%d", cmd, 0x0a); + else + SNPRINTF(cmd_buf, sizeof(cmd_buf), "%s%d", cmd, 0x0d); rig_flush(rp); retval = write_block(rp, (unsigned char *) cmd_buf, strlen(cmd_buf)); @@ -65,12 +69,14 @@ int codan_transaction(RIG *rig, char *cmd, int expected, char **result) if (expected == 0) { +again1: // response format is response...0x0d0x0a retval = read_string(rp, (unsigned char *) priv->ret_data, sizeof(priv->ret_data), "\x0a", 1, 0, 1); rig_debug(RIG_DEBUG_VERBOSE, "%s: result=%s, resultlen=%d\n", __func__, priv->ret_data, (int)strlen(priv->ret_data)); + if (strncmp(cmd, priv->ret_data, strlen(cmd))==0) goto again1; if (retval < 0) { @@ -79,9 +85,11 @@ int codan_transaction(RIG *rig, char *cmd, int expected, char **result) } else { +again2: retval = read_string(rp, (unsigned char *) priv->ret_data, sizeof(priv->ret_data), "\x0a", 1, 0, 1); + if (strncmp(cmd, priv->ret_data, strlen(cmd))==0) goto again2; if (retval < 0) { @@ -538,14 +546,76 @@ struct rig_caps ngs_caps = .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS }; +struct rig_caps ngs_caps = +{ + RIG_MODEL(RIG_MODEL_CODAN_2021), + .model_name = "2021", + .mfg_name = "CODAN", + .version = BACKEND_VER ".0", + .copyright = "LGPL", + .status = RIG_STATUS_ALPHA, + .rig_type = RIG_TYPE_TRANSCEIVER, + .targetable_vfo = RIG_TARGETABLE_FREQ, + .ptt_type = RIG_PTT_RIG, + .dcd_type = RIG_DCD_NONE, + .port_type = RIG_PORT_SERIAL, + .serial_rate_min = 9600, + .serial_rate_max = 115200, + .serial_data_bits = 8, + .serial_stop_bits = 1, + .serial_parity = RIG_PARITY_NONE, + .serial_handshake = RIG_HANDSHAKE_NONE, + .write_delay = 0, + .post_write_delay = 50, + .timeout = 1000, + .retry = 3, + + .has_get_func = RIG_FUNC_NONE, + .has_set_func = RIG_FUNC_NONE, + .has_get_level = RIG_LEVEL_NONE, + .has_set_level = RIG_LEVEL_NONE, + .has_get_parm = RIG_PARM_NONE, + .has_set_parm = RIG_PARM_NONE, + .transceive = RIG_TRN_RIG, + .rx_range_list1 = {{ + .startf = kHz(1600), .endf = MHz(30), .modes = CODAN_MODES, + .low_power = -1, .high_power = -1, CODAN_VFOS, RIG_ANT_1 + }, + RIG_FRNG_END, + }, + .rx_range_list2 = {RIG_FRNG_END,}, + .tx_range_list1 = {RIG_FRNG_END,}, + .tx_range_list2 = {RIG_FRNG_END,}, + .tuning_steps = { {CODAN_MODES, 1}, {CODAN_MODES, RIG_TS_ANY}, RIG_TS_END, }, + .filters = { + {RIG_MODE_SSB, kHz(2.4)}, + {RIG_MODE_SSB, kHz(0.5)}, + {RIG_MODE_SSB, kHz(2.7)}, + {RIG_MODE_SSB, kHz(3.0)}, + RIG_FLT_END, + }, + .priv = NULL, + + .rig_init = codan_init, + .rig_cleanup = codan_cleanup, + .set_freq = codan_set_freq, + .get_freq = codan_get_freq, + .set_mode = codan_set_mode, + .get_mode = codan_get_mode, + + .set_ptt = codan_set_ptt, + .get_ptt = codan_get_ptt, + .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS +}; DECLARE_INITRIG_BACKEND(codan) { rig_debug(RIG_DEBUG_VERBOSE, "%s: _init called\n", __func__); - rig_register(&envoy_caps); - rig_register(&ngs_caps); + rig_register(&codan_envoy_caps); + rig_register(&codan_ngs_caps); + rig_register(&codan_2021_caps); rig_debug(RIG_DEBUG_VERBOSE, "%s: _init back from rig_register\n", __func__); return RIG_OK; diff --git a/rigs/codan/codan.h b/rigs/codan/codan.h index ad334276a..b7eac8310 100644 --- a/rigs/codan/codan.h +++ b/rigs/codan/codan.h @@ -26,7 +26,7 @@ #define BACKEND_VER "20240318" -#define EOM "\x0a" +#define EOM "\x0d" #define TRUE 1 #define FALSE 0 // For the current implemented command set 64 is long enough @@ -34,8 +34,9 @@ // But that would 9999*41 or 406KB so didn't do that right now #define CODAN_DATA_LEN 64 -extern struct rig_caps envoy_caps; -extern struct rig_caps ngs_caps; +extern struct rig_caps codan_envoy_caps; +extern struct rig_caps codan_ngs_caps; +extern struct rig_caps codan_2021_caps; struct codan_priv_data { char cmd_str[CODAN_DATA_LEN]; /* command string buffer */ commit 2d3f5fe8a153c134f289d676618daf3eb3103fde Merge: a6e280ca2 3fcf30062 Author: Michael Black <mdb...@ya...> Date: Fri Feb 14 12:45:44 2025 -0600 Merge pull request #1672 from clzls/fix-typo-pmr171 pmr171.c: Fix typo in get_freq commit 3fcf3006296ef6f768dcc558e19bed5457819ac8 Author: Chen (Kina) <164...@us...> Date: Sat Feb 15 02:41:42 2025 +0800 pmr171.c: Fix typo in get_freq Fix typo in get_freq returning freqMainB in any situations. diff --git a/rigs/yaesu/pmr171.c b/rigs/yaesu/pmr171.c index 46d3b3d69..bdff4fd1f 100644 --- a/rigs/yaesu/pmr171.c +++ b/rigs/yaesu/pmr171.c @@ -579,12 +579,12 @@ static int pmr171_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) vfob); // Now grab the ptt status - cachep->ptt = reply[6] == 1; + cachep->ptt = (reply[6] == 1); // And the mode cachep->modeMainA = guohe2rmode(reply[7], pmr171_modes); cachep->modeMainB = guohe2rmode(reply[8], pmr171_modes); - if (vfo == RIG_VFO_B) { *freq = cachep->freqMainA; } + if (vfo == RIG_VFO_A) { *freq = cachep->freqMainA; } else { *freq = cachep->freqMainB; } return RIG_OK; ----------------------------------------------------------------------- Summary of changes: NEWS | 1 + include/hamlib/riglist.h | 1 + rigs/codan/codan.c | 189 +++++++++++++++++++++++++++++++++++++++++++++-- rigs/codan/codan.h | 9 ++- rigs/yaesu/pmr171.c | 4 +- src/rig.c | 2 +- 6 files changed, 191 insertions(+), 15 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: n0nb <n0...@us...> - 2025-02-11 21:16:25
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via a6e280ca2ea3b49ada7d52bfd0fabf9633a18fb2 (commit) via 88fce980df31ddf9f8b772c4584f453843841dcb (commit) via f3a932bf50b5e9edaf0ad26d8658fd2bd056a187 (commit) via eb9bf6fb841aac0575fee73c1bf97ec4b7d5b950 (commit) from c939f1a83ac1b7ad1bb903120da13f19b468e4be (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit a6e280ca2ea3b49ada7d52bfd0fabf9633a18fb2 Author: Michael Black W9MDB <mdb...@ya...> Date: Tue Feb 11 10:53:21 2025 -0600 Update NEWS diff --git a/NEWS b/NEWS index d30dfad21..14d02f805 100644 --- a/NEWS +++ b/NEWS @@ -12,6 +12,9 @@ Version 5.x -- future * rot_get_conf deprecated and replaced by rot_get_conf2 * Change FT1000MP Mark V model names to align with FT1000MP +Version 4.6.3 + * Fix rigctl showing hamlib_verson when connecting to rigctld + Version 4.6.2 * Add missing levels for IC746/PRO RIG_LEVEL_RFPOWER_METER,RIG_LEVEL_RFPOWER_METER_WATTS,RIG_LEVEL_SWR,RIG_LEVEL_ALC * Fix IC905 for gpredict commit 88fce980df31ddf9f8b772c4584f453843841dcb Author: Michael Black W9MDB <mdb...@ya...> Date: Tue Feb 11 10:48:48 2025 -0600 Fix rigctld hamib_version print to suppress it Add simeasycomm.c diff --git a/rigs/dummy/netrigctl.c b/rigs/dummy/netrigctl.c index 69241b448..382f5f039 100644 --- a/rigs/dummy/netrigctl.c +++ b/rigs/dummy/netrigctl.c @@ -892,7 +892,7 @@ static int netrigctl_open(RIG *rig) } else if (strcmp(setting, "hamlib_version") == 0) { - printf("rigctld: %s\n", value); + //printf("rigctld: %s\n", value); } @@ -2823,7 +2823,7 @@ struct rig_caps netrigctl_caps = RIG_MODEL(RIG_MODEL_NETRIGCTL), .model_name = "NET rigctl", .mfg_name = "Hamlib", - .version = "20240418.0", + .version = "20250211.0", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_OTHER, diff --git a/simulators/Makefile.am b/simulators/Makefile.am index 72a556395..489484799 100644 --- a/simulators/Makefile.am +++ b/simulators/Makefile.am @@ -8,7 +8,7 @@ DISTCLEANFILES = bin_PROGRAMS = -check_PROGRAMS = simelecraft simicgeneric simkenwood simyaesu simic9100 simic9700 simft991 simftdx1200 simftdx3000 simjupiter simpowersdr simid5100 simft736 simftdx5000 simtmd700 simrotorez simspid simft817 simts590 simft847 simic7300 simic7000 simic7100 simic7200 simatd578 simic905 simts450 simic7600 simic7610 simic705 simts950 simts990 simic7851 simftdx101 simxiegug90 simqrplabs simft818 simic275 simtrusdx simft1000 simtmd710 simts890 simxiegux108g simxiegux6100 simic910 simft450 simelecraftk4 simmicom simflex simft710 simic2730 simorion simpmr171 simic7700 simft990 simpstrotator +check_PROGRAMS = simelecraft simicgeneric simkenwood simyaesu simic9100 simic9700 simft991 simftdx1200 simftdx3000 simjupiter simpowersdr simid5100 simft736 simftdx5000 simtmd700 simrotorez simspid simft817 simts590 simft847 simic7300 simic7000 simic7100 simic7200 simatd578 simic905 simts450 simic7600 simic7610 simic705 simts950 simts990 simic7851 simftdx101 simxiegug90 simqrplabs simft818 simic275 simtrusdx simft1000 simtmd710 simts890 simxiegux108g simxiegux6100 simic910 simft450 simelecraftk4 simmicom simflex simft710 simic2730 simorion simpmr171 simic7700 simft990 simpstrotator simeasycomm simelecraft_SOURCES = simelecraft.c simkenwood_SOURCES = simkenwood.c diff --git a/simulators/simeasycomm.c b/simulators/simeasycomm.c new file mode 100644 index 000000000..34a1430e9 --- /dev/null +++ b/simulators/simeasycomm.c @@ -0,0 +1,209 @@ +// can run this using rigctl/rigctld and socat pty devices +// gcc -o simspid simspid.c +#define _XOPEN_SOURCE 700 +// since we are POSIX here we need this +#if 0 +struct ip_mreq +{ + int dummy; +}; +#endif + +#include <stdio.h> +#include <stdlib.h> +#include <fcntl.h> +#include <string.h> +#include <unistd.h> +#include "../include/hamlib/rig.h" + +#define BUFSIZE 256 + +static void *rotorez_thread(void *arg); + +int +getmyline(int fd, char *buf) +{ + unsigned char c = 0; + int i = 0; + int n = 0; + memset(buf, 0, BUFSIZE); + + //printf("fd=%d\n", fd); + + while (read(fd, &c, 1) > 0 && c != 0xa) + { + buf[i++] = c; + n++; + + for (int j = 0; j < strlen(buf); ++j) { printf("%02x ", buf[j]); } + + printf("\n"); + } + + if (strlen(buf) == 0) { hl_usleep(10 * 1000); } + + return n; +} + +#if defined(WIN32) || defined(_WIN32) +int openPort(char *comport) // doesn't matter for using pts devices +{ + int fd; + fd = open(comport, O_RDWR); + + if (fd < 0) + { + perror(comport); + } + + return fd; +} + +#else +int openPort(char *comport) // doesn't matter for using pts devices +{ + int fd = posix_openpt(O_RDWR); + char *name = ptsname(fd); + + if (name == NULL) + { + perror("pstname"); + return -1; + } + + printf("name=%s\n", name); + + if (fd == -1 || grantpt(fd) == -1 || unlockpt(fd) == -1) + { + perror("posix_openpt"); + return -1; + } + + return fd; +} +#endif + +int thread_args[2]; + + +int main(int argc, char *argv[]) +{ + int fd = openPort(argv[1]); + //int fd2 = openPort(argv[2]); + pthread_t threads[2]; + thread_args[0] = fd; + //thread_args[1] = fd2; + pthread_create(&threads[0], NULL, rotorez_thread, (void *)&thread_args[0]); + //pthread_create(&threads[1], NULL, rotorez_thread, (void *)&thread_args[1]); + pthread_exit(NULL); + return 0; + /* + again: + int flag = 0; + + while (1) + { + int bytes; + if (!flag) bytes = getmyline(fd, buf); + else bytes = getmyline(fd2, buf); + flag = !flag; + + if (bytes == 0) + { + //close(fd); + printf("again\n"); + goto again; + } + printf("line=%s\n", buf); + + if (strncmp(buf,"BI1",3) == 0) + { + sprintf(buf,"%3.1f;", az); + n = write(flag?fd:fd2, buf, strlen(buf)); + printf("n=%d\n", n); + } + else if (strncmp(buf,"AP1",3) == 0) + { + sscanf(buf,"AP1%f", &az); + } + else + { + printf("Unknown cmd=%s\n", buf); + } + + #if 0 + switch (buf[0]) + { + case '?': printf("Query %c\n", buf[1]); break; + + case '*': printf("Set %c\n", buf[1]); break; + + default: printf("Unknown cmd=%02x\n", buf[4]); + } + #endif + } + + return 0; + */ +} + +static void *rotorez_thread(void *arg) +{ + int n = 0; + char buf[256]; + int fd = *(int *)arg; + float az = 123; + float el = 45; +again: + + while (1) + { + int bytes; + bytes = getmyline(fd, buf); + + if (bytes == 0) + { + //close(fd); + hl_usleep(100 * 1000); + //printf("again\n"); + goto again; + } + + printf("line[%d]=%s\n", fd, buf); + + if (sscanf(buf, "AZ%g EL%g", &az, &el) == 2) + { + //n = write(fd, buf, strlen(buf)); + printf("n=%d fd=%d\n", n, fd); + } + else if (strcmp(buf,"AZ")==0) + { + sprintf(buf,"AZ%.1f\n", az); + n = write(fd, buf, strlen(buf)); + } + else if (strcmp(buf,"EL")==0) + { + sprintf(buf,"EL%.1f\n", el); + n = write(fd, buf, strlen(buf)); + } + else + { + printf("Unknown cmd=%s\n", buf); + } + +#if 0 + + switch (buf[0]) + { + case '?': printf("Query %c\n", buf[1]); break; + + case '*': printf("Set %c\n", buf[1]); break; + + default: printf("Unknown cmd=%02x\n", buf[4]); + } + +#endif + } + + pthread_exit(NULL); +} commit f3a932bf50b5e9edaf0ad26d8658fd2bd056a187 Author: Michael Black W9MDB <mdb...@ya...> Date: Thu Feb 6 22:33:54 2025 -0600 Revert "Remove setting debug in rotctl.c" This reverts commit eb9bf6fb841aac0575fee73c1bf97ec4b7d5b950. diff --git a/tests/rotctl.c b/tests/rotctl.c index 2199cede5..873c9b96e 100644 --- a/tests/rotctl.c +++ b/tests/rotctl.c @@ -310,6 +310,8 @@ int main(int argc, char *argv[]) } } + rig_set_debug(verbose); + rig_debug(RIG_DEBUG_VERBOSE, "rotctl %s\n", hamlib_version2); rig_debug(RIG_DEBUG_VERBOSE, "%s", "Report bugs to <ham...@li...>\n\n"); commit eb9bf6fb841aac0575fee73c1bf97ec4b7d5b950 Author: Michael Black W9MDB <mdb...@ya...> Date: Thu Feb 6 22:27:46 2025 -0600 Remove setting debug in rotctl.c diff --git a/tests/rotctl.c b/tests/rotctl.c index 873c9b96e..2199cede5 100644 --- a/tests/rotctl.c +++ b/tests/rotctl.c @@ -310,8 +310,6 @@ int main(int argc, char *argv[]) } } - rig_set_debug(verbose); - rig_debug(RIG_DEBUG_VERBOSE, "rotctl %s\n", hamlib_version2); rig_debug(RIG_DEBUG_VERBOSE, "%s", "Report bugs to <ham...@li...>\n\n"); ----------------------------------------------------------------------- Summary of changes: NEWS | 3 +++ rigs/dummy/netrigctl.c | 4 +-- simulators/Makefile.am | 2 +- simulators/{simrotorez.c => simeasycomm.c} | 40 +++++++++++------------------- 4 files changed, 20 insertions(+), 29 deletions(-) copy simulators/{simrotorez.c => simeasycomm.c} (82%) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: n0nb <n0...@us...> - 2025-02-09 21:07:40
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The annotated tag, 4.6.2 has been created at 70e54ac426d4d1dd1724bcb97150935c556d2bbb (tag) tagging 8703647c8cb277cad66f5a4eaff103126b7a1b5a (commit) tagged by Nate Bargmann on Sun Feb 9 15:06:35 2025 -0600 - Log ----------------------------------------------------------------- Hamlib 4.6.2 release -----BEGIN PGP SIGNATURE----- iF0EABECAB0WIQSC1k9rDmfNQfaJu6b7LFEw1VqIGQUCZ6kY6AAKCRD7LFEw1VqI GXsgAJ9oxYBh/ZpL95jDzv40iZVDl4L9+gCgrxwgo7FU7gCOrscGS/E1OUDB9ok= =RSNO -----END PGP SIGNATURE----- (no author) (1): New repository initialized by cvs2svn. Addison Schuhardt (1): Refactoring GPIO push-to-talk logic to use libgpiod rather than the deprecated/broken sysfs method. TODO: I'm not familiar with autoconf to set up linking to libgpiod correctly, so I'd like to ask someone else to do that. Fixes #1538 Adrian Chadd (1): Upgrade TS-711 and TS-811 to work. Agis Zisimatos (1): easycomm: Return the correct value of pointer val Alessandro Zummo, IZ1PRB (36): Remove const from priv_caps to allow kenwood_init to initialize default values if they're missing Call kenwood_init in each and every driver Use an appropriate debug level Support get/set_powerstat on pcr100 Add kenwood_simple_cmd Make set_ptt behave as before, fix set_ant for ts570.c ts450: remove RIG_FUNC_TONE from has_xx_func if tone unit is not detected ts450,ts690,ts850: use FL command to get/set filters in get/set_mode. (code from ts850.c) ts450: indentation fixes remove fixed command terminator (;) from generic code ts140,ts2000,ts480,ts570,ts680,ts850,ts870s: remove usage of fixed ; and EOM fix tabs thg71,tmv7,ts450s,ts690: verify rig id at rig_open ts450: implement set_channel remove unused parameter from get_kenwood_func ts570,ts850,ts870s,ts140,ts480,ts680: use kenwood_simple_cmd where possible Replace __FUNCTION__, which is gcc specific and was deprecated a long time ago, with __func__, which is at least defined in C99. generic, ts850: implemented CTCSS TN command (reported not working for ts850, should now be fixed) Add description for the kenwood mode n. 8 implemented set/get_ext_param (voice, fine, xit, rit). enabled on ts450 and ts850 Added my call sign removed comment about switch optimizatons. the compiler will generate the assembly code in a different order which is usually based on the case value. other compiler optimizations might also affect it, so it's useless to optimize the order. check ptt status before set_ptt. enabled on ts850. style fixes band up/down was inverted Try to compensate for leftover characters Try to cope withe the PCR100 and PCR1000 at the same time Bumped out to beta, solved a few bugs. Tested with PCR100/1000/1500. kenwood: send the whole buffer at once, added kenwood_cmd - removed EOM, it's handled by kenwood_transaction - fixed tabs and spaces - added generic routine for vfo errors - set_mem: do not switch vfo if already in mem mode - simplified invocation of some commands - buffer optimizations - added PARM_BEEP and PARM_APO - fixed getting of LEVEL_RFPOWER - fixed get_ant tmv7: removed EOM thg71: removed EOM thf7: - wrong rfpower level granularity - added .reset - call kenwood_open - use generic th_set_vfo th: fixed formatting issue th: fixed stack corruption th: fixed a missing newline Alex V Flinsch, KC2IVL (8): Initial changes for ft100 Initial release initial release fixed various command options new file, list of tones/codes and sequence used by various yaesu rigs added get frequency to ft100 code added getinfo func hdr *** empty log message *** Alexander Sack (1): Get firmware revision level from K3/KX3. Alexander Schultze (3): easycomm: include a new EasyComm3 to support move speed and infostring update EasyComm3 to include setting and getting of config and status easycomm: implement get/set config, easycom include status and error bytes, fix get_info Alexandru Csete OZ9AEC (34): Added new stylesheet to make API docs look better. Modified to use new stylesheet. Added doxygen comments. Added rotator.h and rotlist.h to the input list. Applied Tommi's improvements from the FT-857 backend with the following changes and additions: Full RF power scale corresponds to 10 bars, not 15. Added RIT, XIT and IF shift ranges to dummy backend. Cast constant caps to variable caps in order to avoid compiler warnings. Cast from const to variable in order to avoid compiler warnings. - Cast unsigned char to char in order to avoid compiler warnings. - Ensure that all variables have a value before they are used (ft920). - Disable unused functions and variables (frg100). - Incremented backend version numbers. Use tone_t for pcr1_ctcss_list. Changed arg 4 of pcr_transaction to unsigned. Cast the other mismatches to (char *). Cast unsigned char to char in order to avoid compiler warnings. Incremented backend version number. - Cast unsigned char to char in order to avoid compiler warnings. - Ensure that all variables have a value before they are used (tentec.c). - Cast unsigned char to char in order to avoid compiler warnings. - Incremented backend version number. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version number. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version numbers. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version numbers. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version number. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version numbers. - Cast unsigned char to char in order to avoid compiler warnings. - Handle all enum values in switch statements. Fixed type mismatches that caused compile warnings. Fixed type mismatches that caused compile warnings. Initialise icom_val to avoid compiler warning. Fixed type mismatches between signed and unsigned char. There are a few very suspicious 'if' statements in icom.c and frame.c - Fixed type mismatches and unhandled switch cases. - Incremented backend version numbers. Cast constant caps to variable caps in order to avoid compiler warnings. Updated. Added infor about w (send_cmd). Max serial rate is 9600. Changed backend status to stable. Escape the backslash character. The 765 can do RIG_SCAN_PROG and RIG_SCAN_MEM. Fixed S-meter reading to use calibration table since frontend always uses RAWSTR. Fixed RF power reading and added power2mw and mw2power. Fixed RIG_LEVEL_STRENGTH reading. Andrew Errington (1): Initial support for CM108 GPIO contorl of PTT Andrew Rodland (3): Fix spurious writes when no RT-21 second port Enable "stop" command for RT-21 rotator. Update RT-21 version AuroraRAS (5): Prepare .gitignore file for NDK build Append the missing information to build hamlib v4.3 for Android NDK make the Android.mk files adapt to multi arch add androidsensor rotator AndroidSensor codes improvement Ben Coleman, NJ8J (6): Fixed bug in rpcrig_set_parm (using RIG_LEVEL_IS_FLOAT instead of RIG_PARM_FLOAT) Fixed same bug in rigctl_get_parm. Added checking of return string from rig on set (non-retrieval) commands. Added code for COMP function. Added alinco_set_parm & tweaked dx77 capabilities. Handle setting Keyer speed and CW Pitch Added NJ8J's email address. Change email address for NJ8J Berndt Josef Wulf, VK5ABN (11): Implemented rig_set_channel() Implemented set_parm() for BACKLIGHT operation Commented out RIG_MODE_PKTFM overlooked at the submission of previous code Implemented RIG_MODE_PKTFM and RIG_MODE_PKTLSB modes Changed debug message format for freq_t from long long to double ft990_get_ptt() now uses the FT990_SF_XMIT instead of FT990_SF_PTT. FT990_SF_PTT only returns status of PTT activated by CAT commands, whereas FT990_SF_XMIT reports the actual status of the ptt line. ft990_get_mem(): Fixed bug that prevented the reporting of current channel number when vfo != RIG_VFO_MEM Fixed erroneous return value Fixed mispelled name for VK5ABN Added missing modes to RX/TX caps Fixed bug in ft990_set_mode that caused RTTY interchanged modes USB/LSB Fixed bugs in ft990_get_channel Bill Barker (1): Add test for Flex 6300 ID Bill Somerville (212): Patch submission for IC-756 Patch to allow same serial port for PTT and CAT. Patch to fix broken Yaesu backend with FT-2000(D) Fix rig_open not failing when PTT/DCD port is unavailable. Fix Icom IC-756 filter handling. Fix Yaesu newcat backend set_tx_vfo issue. Add support for Data Modes on Icom "Pro" models. Fix Icom IC-726 mode handling. Fix Kenwood TS-2000 split operation. Fix Kenwood Split Operation for TS50 & TS480. Fix Kenwood TS-870s split and bandwidth set/get. Correct receive buffer length for IS; comamnd. Fix Kenwood CAT transaction busy retry mechanism. Fix Kenwood get split VFO function. Add data sub-mode support for TS590s. Correct order of MD and DA commands for TS590s. Get firmware revision for TS590s in rig_open. Fix TS590s firmware defect. Fix Kenwood get_vfo function returning wrong VFO in split TX. Make Kenwood TS590s firmware defect fixup revision specific. Extend TS590s firmware defect fixup to both VFOs. Fix Icom IC-756 Pro III get data mode. Add spilt mode get and set for Elecraft K3. Fix data sub-modes on Elecraft K3. Fix Elecraft Data Mode Translation. Fix Elecraft K3 Data Sub-Mode Setting. Fix Yaesu FT1000MP and FT1000MP Mk V modes. Fix configure.ac Fix a warning message. Added option to not use VFO XCHG command when setting split parameters. Fix a buffer overflow in the Windows termios emulation. Fix pkg-config generation. Fix Icom IC-756Pro mode get/set. Facility for rigctl to read commands from standard input. Add a pause command to the rigctl command set. Prefix action function names so as not to clash with system names. Prefix action function names so as not to clash with system names. Corrected typos in rigctl.1 manpage. Add read commands from stdin and pause command features to rotctl. Merge branch 'rigctl-stdin' of ssh://git.code.sf.net/u/bsomervi/hamlib into rigctl-stdin Fix manpage errors. Remove redundant RIG_PTT_SERIAL_CAT enum from ptt_t Only check for serial control line conflicts if PTT shares CAT port Fix Ten-Tec Orion get/set split functions Icom IC-7410 has VFO A/B not MAIN/SUB Added IC-7410 data modes Add retry mechanism for Yaesu "newcat" backend Implement retries for Yaesu "newcat" rigs Disable auto information mode on open Add retry mechanism for Yaesu "newcat" backend Implement retries for Yaesu "newcat" rigs Disable auto information mode on open Merge branch 'yaesu-retries' of ssh://git.code.sf.net/u/bsomervi/hamlib into yaesu-retries RIG_OK is zero and need not be negated and this will not change Fix response length expected error in K3 back end Data mode support for the Icom IC-7700 Data mode support for the Icom IC-9100 Data mode support for the Icom IC-7200 Add support for the Kenwood TS-590SG Kenwood TS-590SG Always clear serial control lines when used for PTT Disable AI mode on open for Kenwood/Elecraft rigs Add more diagnostics and error checks to serial line control Move serial line control error checks to lower level routines Merge branch 'master' into kenwood-ai-off-at-start Merge branch 'master' into ptt-control-on-cat-port Fix serial i/o on Windows. Yaesu newcat style command response reading improvements Increase communications timeout for Icom rigs Kenwood AIn; command has no reply Revert read_string() to partial results are a success status Remove gratuitous sleeps before function exits Error checks on simulated direct VFO addressing Elecraft K2 RTTY modes are not FSK Kenwood and Elecraft rigs sometimes ignore commands Removed kenwood_cmd function and replaced uses of it Allow for failed test command on the K2 Elecraft K3 has 1 stop bit Kenwood TS-570 series IF returns current frequency Switch to "ID;" command for verification as no "AI;" on TS-840s Increase Elecraft K2 comms timeout and retries Switch Kenwood TS940 to generic kenwood CAT functions Improve command verification for Kenwood & Elecraft Use local buffer in kenwood transaction funciton Clarify the handling of Kenwood CAT message terminators Further clarification in the implementation of kenwood_transaction() Removed redundant precondition test Remove kenwood_simple_cmd as kenwood_transaction has that functionality Call kenwood_open() for TS-2000 to ensure AI mode is disabled Allow for bad ID from DDUtil in TS-2000 mode Allow one extra byte in read_string() length to accomodate terminator Enable data modes for the Icom IC-7100 Allow for PowerSDR ID in Kenwood TS2000 emulation mode Fix TenTec Argonaut message lengths and timeout Fix TenTec set split command Implement get PTT status for the TenTec Argonaut Fix error with width in set mode for the TT argonaut Yaesu FT540 can only change the frequency of the current VFO Fix defect in Kenwood TS-940 IF command response parsing Fix response lengths for the TT Jupiter 538 Do not attempt CAT PTT commands on the Icom IC-706mkIIG Use correct argument type for serial control line functions Initial back end implementation for the Kenwood TS-990s Mode set is not VFO targetable on the Kenwood TS990s The Kenwood TS990s only does split Tx on SUB VFO The doesn't appear to be a way of getting PTT/SEND on the TS990s Lower both RTS and DTR on alternate PTT serial port Honour any error status from serial port calls Dummy get_ptt function needs to read RTS/DTR/PARALLEL Make autogen.sh agnostic to whitespace in paths Increase the number or retries for most Kenwood rigs Command validation for Yaesu set commands Remove unecessary delays from TS-940S backend Proper IPv6 and dual stack networking Fix compiler warnings Proper IPv6 and dual stack networking for rotator net daemon Attempt to restore AI status on exit Allow for poor emulations of Kenwood rigs that have no ID command Use correct function to execute set type commands with no response Add a new command line option '--no-restore-ai' ('-n') to rigctl Fix FT-817/857/897 issues and add some missing functionality Fix missing PKTUSB mode setting code for FT-817 & FT-897 Fix a logic error in band detection during IC-910 set frequency Add missing configuration getters Detect C-IV NAK returns as rejected commands Elecraft rigs do not switch VFO in IF command responses during split Tx. Redundant split mode directives on Elecraft rigs cause Tx failures Only use IPv6 features on Windows versions that support it (>=XP) Improve IPv6 portability and consistency Add 23cms to IC-910(H) backend Implement combined split VFO frequency and mode setting. Initial implementation of rig_{set,get}_split_freq_mode() for FT-857. Implement rig_{set,get}_split_freq_mode() for IC-756 series. Add {get,set}_splitfrequency_mode for the IC-910(H) Elide unnecessary CAT commands when setting split frequency and mode Do not swap VFO unnecessarily Better set frequency semantics for the IC-910(h) VFO targetable get frequency operation for the Icom IC-910(h) Make sure right band is used when setting frequency on IC-910(H) Use rig state rig port retry option rather than from capabilities Use a sensible port timeout value for the Kenwood TS-850 Further attempts to simplify and improve Icom CAT for split operating Add RIG_PASSBAND_NOCHANGE as possible set_{split_,split_freq_,}mode argument Switch to POSIXLY_CORRECT mode for getopt_long() Fix a regression introduced in 222ad74 Do not crash if expected CTCSS tones not sepcified Do not attempt to query AI state on the TS-450s as it is not supported Some more Kenwood rigs with no AI query Adjust rig_list_foreach to allow use for unregistering Fix an issue presenting on the Yaesu FT-450(D) Release the serial port used for PTT when possible Change the IC7600 & IC7800 set/get mode to versions that support DATA modes Add rig_{open,close} functions to TS-790 backend Revised kenwood rig busy response handling Add get and set split functions for the TS450S Simplify and fix defects in the FT991 back end Fix some endian issues in the si570/AVR SDR back ends Fix a state machine defect with repeated PTT reset calls Do not pass --no-cpp_precomp to compilers on Mac OS X Allow RIG_LEVEL_STRENGTH queries over the network link Stop rigctld and rotctld crashing when service threads cannot write to clients Use snprintf throughout kenwood/kenwood.c for buffer safety Fix off-by-one issue in reading memory mode from IF command response Fix some issues with commands not supported by TS-2000 CAT emulations Add best guess transmit status to rig state structure Take out unecessary delays in K(X)3(S) back end. FT-817 status queries honour retries and timeout Make rig_open() call in rigctld lazy and add graceful termination Simplify SWIG interface definition and hide 64-bit values from Lua binding Remove unnecessary delays from TS-990 and TS-2000 back ends Change frequency setting for the FT-747GX to something more basic Fix an incorrect error return value from win32_serial_select() Fix timeout issues with the Ten-Tec Orion/Eagle Ensure compilation works with a pre C11 compiler Make code C90 compliant again Move unnecessary global and file static variables to the stack Simplify unnecessary persistence of extended response state Fix misunderstanding of netrigctl_transaction() return value Made PTT and DCD options consistent between rigctl and rigctld Report unrecognised PTT and DCD types in rigctl and rigctld Update i/o functions to support GPIO(N) port closure Fixed erroneous messages in rig_close with GPIO(N) PTT or DCD types Remove duplication across GPIO and GPION handling of PTT and DCD Improved get PTT state handling in dummy backend Simplify closing of device files Repair a regression with the dummy get PTT functionality Revert "Add debug to serial.c" Repair a regression with the dummy get PTT functionality Revert "Add debug to serial.c" Fix regression with slow responses from SmartSDR causing errors Deal with remote PTT type at the client end Avoid 'echo -n' as macOS sh doesn't support it Fixing an operator precedence defect Updates to the TH-D7A/E back end Less ambiguous variable name and repair merge issue in prior commit Add missing config parameters for rig power on/off and screen-saver New power on option rather than power on/off Make version recording safe for parallel builds without breaking make dist Make version recording safe for parallel builds Ensure old hamlibdatetime.h headers in the source dir are ignored Merge branch 'safe-scs-versioning' of ssh://git.code.sf.net/u/bsomervi/hamlib into safe-scs-versioning Fix make dist versioning Use BUILT_SOURCES make mechanism as intended Fix rebuild dependency Build hamlibdatetime.h every time Force copy over existing Minimize rebuilding Correct use of sh if Another attempt at a reliable SCS version header generation Remove temporary file Add missing shared library API exports Add missing export definition Blaine Kubesh (8): added Icom803 to icmarine added Icom803 to icmarine added Icom803 to icmarine Update ic-m803 remote-id to 20 Update icm803.c Update AUTHORS undo author changes Update icm803.c Bob Freeman (1): New CNCTRK rotor backend Brandon Durepo (5): Added multi-stage Docker build and hamlib-runtime image Added multi-platform support for linux/arm64 and linux/amd64 Add support for the hamlib-base-image and hamlib-runtime targets - support the arm64 and amd64 platforms on both a base-image and runtime Added git and vim to the hamlib-base-image Added Python support Brian G. Lucas (10): Pretty much a complete re-write of thd72.c, since the old one didn't work at all. Many commands have been tested with real hardware. But more work remains to be done. WIP: thd72 driver. More level, func, and parm stuff works. WIP: thd72 driver. Try to simplify the menu based interface. WIP: thd72 driver. First cut at get_channel(). Other cleanup. WIP: thd72 driver. More interfaces implemented. Other cleanup. Implement some more interfaces. Comment out get_chan_all_cb because the block read routine doesn't work. Fix a format so that it works with Windows. Can't test it because I have no Windows machines. Fix RFPOWER level for FT-450D. It uses 5-100, rather than 0-255 that the FT-450 does. In newcat_open(), initialize rig_id in case any subsequent commands need it. Some calls to thd72_get_menu_item where passing wrong values for range check. C-Elegans (1): Add ability to have rigctld display transverter frequency CJ (1): fix windows makefile Cedric DJ3CE (1): Add SWR get_level to K3 (KX3, KX2) Charles Suprin (7): Add file for TM-D710 support. Merge branch 'master' of ssh://hamlib.git.sourceforge.net/gitroot/hamlib/hamlib Add D710 to riglist. Add D710 code to kenwood library. Register D710 interface. Initial D710 Implementation. Register D710 interface. Charles Suprin, AA1VS (3): extend th_get_vfo_char to support D700 Changed th_set_freq to round and select step size to use. Allows 6.25kHz and 5kHz channelization. Use new th_set_freq for TM-D700 Chris Karpinsky, AA1VL (7): add serial_flush() method to clean rx buffer initial stab at this for the Yaesu FT-817 add ft817.* add ft817 bump the backend status to ALPHA Initial entry of cgirig giving ability to use hamlib from a web browser. increased post write delay to 300 Chris Ruvolo (4): TS-690: deal with optional tone board using TS-450 logic TS-690 does not implement the PC command to get/set output power level TS-690 does not implement the GT command to get/set AGC rate TS-690: bump version Christian Bayer (11): upstream 817 FT-817 power and SWR levels ft-857 power levels for 2m/70cm export correct function for wsjtx fixed cal table conversion added header use correct value divider update disable scaling fixed compile errors fixed merge errors and variable declarations Christoph Berg (2): ic7610: Re-add send_morse Implement netrigctl_stop_morse Christoph Nadig (1): Fix for setting power on Elecraft TRXs Chuck Hemker, N2POR (1): Use RIG_TARGETABLE_MODE in rig_set_mode and rig_get_mode Chuck Ritola (8): Use loop to ensure RS-HFIQ hears first command. Closes #730 Add ability to read TX drive level Implement board temperature reading for TEMP_METER Parse and store RS-HFIQ firmware version. Firmware version check before power meter query. Merge branch 'master' into rshfiq-aug2021 Map FCDPP LNA and Mixer Gain as PREAMP values. Closes #766 Map FCDPP LNA and Mixer Gain as PREAMP values. Closes #766 DJ3CE (1): Patch power reading of IC-705/-905 DL1YCF (6): Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Dale E. Edmons, KD7ENI (19): Added comments to commandline in rigctl (second time) --Dale Started TS-2000 update/overhaul --Dale Copied too much stuff, backed out what I broke. Bring ts2k.c more in line with current CVS. Changed ts2000.c to ts2000.h. Start of rig menuing functions. New file. Renamed ts2000.c.new ts2000.h Bring code more in line with CVS code. Changes often, so added status. Will delete when things stabilize. Corrected status to CVS branch. Renamed new ts2000.c to ts2000.h Wouldn't compile. Removed ts2k.c. Haven't got all new rig.h stuff removed. Temp kludge to make ts2k.c compile (keeps Hamlib from compiling!). Updated status. Added working TS-2000 files. There are some changes left out but this is the minimum I could commit and have a functional rig. The cost is that I've broken kylix and others that duplicate rig.h. I'm in the process of repairing the damage. Please be patient. I hope a day or so, but am asking for up to a week. E-mail me about *anything* you find broken. Kylix (and similar) is (are) known to not work. Changed name back to original. Had to re-run automake kenwood/Makefile. 1) Updated branch_ts2k with respect to HEAD. 2) Working ts2k_menu. (only in RIG_MODEL_TS2K) 3) Split TS-2000 into experimental and standard versions: RIG_MODEL_TS2000 = standard, RIG_MODEL_TS2K = experimental. 4) Basic command parser in tests/rc. Will open/close rig or copy a freq from one rig/vfo to another rig/vfo. Very cool. Very basic. Very experimental. 5) Added test programs. a) testcmd - calls parser (no command prompt yet!) b) testts2k - replacement for testrig (with trivial modification) c) testptt - testts2k/testrig should not transmit. TX stuff in testptt. 6) Used crowbar to merge HEAD into branch_ts2k. Working on clean-up. 7) I'm sure I've forgotten or neglected to mention some other stuff. Daniel Estévez (2): Fix DIG MODE for FT817-ND Fix DIG MODE for FT817-ND Daniele Forsi (5): Set the executable bits on py3test.py Fix spelling errors Fix more spelling errors Fix more spelling errors Fix typos Daniele Forsi IU5HKX (72): Fix a [missingInclude] "information" when running cppcheck --check-config The -M option needs an argument like its long version "multicast-addr" Fix lintian warning: macro 'RG' not defined Fix lintian warning: macro 'IN' not defined Fix spelling errors Remove unused includes related to times and dates Remove unused includes of math.h Remove unused includes Revert unwanted changes Remove unused includes of errno.h Remove unused include of amp_dummy.h Remove unused include of cm108.h Remove unused includes of fcntl.h Remove unused includes of frame.h Remove unused include of getopt.h Remove unused includes of gpio.h Remove unused includes of cal.h Remove unused include of usb_port.h Remove unused includes of ctype.h Remove unused include of stdbool.h Remove unused include of stdarg.h Remove unused include of stdlib.h [icom] Remove unused include of config.h [kenwood] Remove unused include of config.h [yaesu] Remove unused include of config.h [rotators] Remove unused include of config.h [tests] Remove unused include of config.h [rigs/*] Remove unused include of config.h [amplifiers] Remove unused include of config.h [extra] Remove unused include of config.h Add include/hamlib directory to all makefiles [icom] Fix includes [kenwood] Fix includes [yaesu] Fix includes [rigs/*] Fix includes [rotators] Fix includes [tests] Fix includes [amplifiers] Fix includes Update .gitignore Fix unterminated comment Fix include not found by cppcheck.sh Enable --show-conf for ampctl and ampctld Fix typos Fix include not found by cppcheck.sh also in the other branch of the "if" Fix passing one or more paths to ./cppcheck.sh Fix several cppcheck "missingInclude" informational messages Fix cppcheck "unmatchedSuppression" informational messages Add to .gitignore some files created during "make check" Fix cppcheck "missingInclude" informational message Fix Doxygen unmatched directives \cond and \endcond Fix Doxygen documentation for the Apex rotator Fix Doxygen documentation for the GRBLTRK rotators Fix typos Fix Doxygen comments Fix typos Remove duplicated conditions Fix initializer-overrides warnings by clang Fix typos Add/fix Doxygen comments Fix segfaults with malformed input and wrong command line arguments Fix segfaults with malformed input and wrong command line arguments Fix check for RIG_BUSBUSY Fix name of command in the usage and version texts Fix name of command in the version text Fix man page of rigctld Fix warning message for twiddle_rit Fix typos in man pages and other documentation Fix typos in comments Fix typos in messages Remove duplicated sentence Fix typos Remove unused and empty source files Dario Ventura (3): New Prosistel rotor backend from IZ7CRX Add elevation code to Prosistel backend TS2000 Satellite mode and Gpredict Dariusz Bismor, SQ9KEJ (1): rigmem: implement CSV file loading David Brewerton M0EZP (1): FT990UNI patch contribution from M0EZP David Fannin (1): Submission for new backend model (134) for Yaesu FT-DX1200 Davide Gerhard (3): tests/{memcsv.c,memsave.c}: partially revert commit 4072f9f4 ic746.c: correct chanbuf length, fix channel structure and support split ic746.c: add ic746pro_set_channel() to load memory from csv Dawid SQ6EMM (3): Add method to build inside docker Let SEND_MORSE and SEND_VOICE_MEM be announced as capabilities. Allow \send_voice_mem to be used over network and tested in dummy rig Dawid Szymanski (2): ICOM Voice Keyer implemented. typo fix Dhiru Kholia (1): Minor fixes for FT-747GX simulator Diane Bruce, VA3DB (5): - first cut at fixing configure to recognise --without-tcl-binding and --without-python-binding options - gt_HEADER_INTTYPES_H is definitely bogus here, leftover from what? - document debian/FreeBSD needs for AUTOMAKE etc. - add in libtoolize which should be there - These should have been commented out. - Extra comma on RIG_STATUS_BUGGY can cause a compiler error. Dieter Röver (1): Fix bug in vfo_comp calculation in Hamlib Ekki Plicht (DF4OR) (2): New model Icom IC-R8600 Patch for Icom DCS code handling Eli Schwartz (1): tests: fix compilation with modern compilers Elliott Liggett (1): Added functionality for the IC-7300 auto antenna tuner Eriks Dobelis (2): ft817: adding delay before next retry after returning from tx to rx ft817: Moving delay value into #define section of the header Ervin Hegedus (9): RIG_PASSBAND_NORMAL wasn't handled correctly when rig_set_mode() was called - fixed Fixed SWIG `Setting a const char * variable may leak memory' error Fixed Kenwood filter cmd when passband is set to 500Hz Merged from upstream Merge branch 'master' of http://git.code.sf.net/p/hamlib/code Added Lua binding and demo script Added new example to Python demo script (set/get float type level) Change variable length argument handling in affected functions Fix two typos Ervin Hegedüs (1): rig.swg: New properly formatted macro Evgeniy Titorenko (1): Add Radant AZV-1 Rotator controller protocol. Francois Retief (21): Added read_serial function to read strings from a port. Corrected some comments Added code to hexdump to right align ASCII dump column added private caps for rig termination character add private caps and more commands. Changed to a new transaction function and adde quite a few commands. add private caps to store the termination character of Kenwood rigs commands. added a kenwood_init and _cleanup routine for priv caps & priv data. Added a new function: LCD Lamp ON/OFF (for Kenwood TH-7DA) check trn state of rig in rig_open. Initial commit of Kylix binding New backend for rotators New RPC backend for rotators Added rot_move function Fix macro name Added rot_move function Added easycomm and rpcrot backends Fixed circular dependency for rpc.rigd and rpc.rotd regenerated Added IC-910 rig. Added constants for the IC-910 rig. Frank Goenninger (8): Add ADAT ADT-200A backend adat updates from Frank, DG1SBG ADAT fixes on Windows RIG ADAT: Adaption to firmware 1.40fb and transverter board. .gitignore: Ignore some macOS housekeeping files. Major code cleanup. Replace dyn. memory by static memory usage. FIXED: Source code inconsistency after major code change. FIXED: Incorrect usage of snprintf() argument for buffer length. Frank Singleton, VK3FCS (165): Initial revision Initial revision *** empty log message *** *** empty log message *** *** empty log message *** Initial revision Initial revision *** empty log message *** *** empty log message *** added build_all ,cleanall and verify targets *** empty log message *** initial top level makefile add some things initial import initial import initial import fixed some typos use rig_open and rig_close added rig_open and rig_close fixed cmd_sat_on / off added sat-on and sat_off to test changed cmd_get_rx_status, must do tx also updated test() all reads use while (1) and break added ../common as object path added rig_open and rig_close using rig_open and rig_close and serial.h use common dir for serial stuff use ft747 on serial port /dev/ttyS0 read uses while(1) and break use while(1) and break added read_sleep use read_sleep now from serial.h using read_sleep from serial.h had rx and tx status swapped (document error?) removed cmd_get_update using CVS instead of RCS directories use MODE_xx defines cannot use const int in case statements ?? so use #define instead use #defines for MODE_XXX used in case statements working out freq conversion, unfinished playing with test routines long int cmd_get_freq_mode_status_main_vfo(int fd, unsigned char *mode); long int cmd_get_freq_mode_status_main_vfo(int fd, unsigned char *mode) frq = cmd_get_freq_mode_status_main_vfo(fd, &mode); starting with the cmd_set commands now starting on cmd_set commands now starting on cmd_set_freq commands now add scanning todo now set sat rx and tx freq and mode also fix typo dump raw hex data when writing and reading trying some cms_set_freq_xxx commands added routines for dec <-> packed decimal conversion minor added generic hex dump routine, static void dump_hex(unsigned char *ptr, int size, int width); removed unwanted debug printf's removed dump_hex from here.. calc_freq_from_packed4 is about to be replaced calc_packed_from_char and calc_char_from_packed now here cleanup cleanup void dump_hex(unsigned char *ptr, int size, int width); adding dcs tables and repeater offset in Hz describe faulty yaesu documentation added README.license for GPL added GPL license info included full GPL license Updated docs to point to http://sourceforge.net/projects/hamlib/ and added a C code snippet on how to use the API. added -I$(COMMON_DIR) to find rig.h added -I$(COMMON_DIR) to find rig.h adding capabilities initial capabilities stuff starting to add rig_caps stuff starting to add rig_caps stuff starting to add rig_caps stuff. added GPL stuff and comments adding rig_caps stuff adding rig_cap stuff adding rig_caps stuff add capabilities and preferences adding rig_caps functionality adding rig_caps stuff frontend reduction on backend function namespace - phew !! frontend API clarification removed old open_port2() using old rig_caps fixed some typos, added 3 more candidates for API missing ; in some enums converting to frontend/backend structure compiles ok removed open_port() and write_block() removed open_port() and write_block() fixed typos, added &ft747_caps in rig_caps changing to frontend/backend style converting to frontend/backend style added 3 more cmd_* for API examples Example of setting rig Main VFO to 439.700 Mhz FM cleanup comments added extern const struct rig_caps ft747_caps; still thinking about set/get strategy minor updates added extra rig caps added some set/get examples with return code checking added testrig to Makefile, no linking yet added usleep to read_sleep() updated rig_caps structure *** empty log message *** test making a shared lib (at last) for the frontend - more todo test making a shared lib for the frontend - make hamlib describe frontend/backend structure updated code snippet example started ft747_set_ptt and ft747_set_vfo starting to implement set/get pairs added typedef enum ptt_type_e ptt_type_t; added VFO types to enum starting on libhamlib Makefile, added ./lib and ./include under common make, make install, and make clean work ok, using ./lib and ./include directories also. make, make install, and make clean work ok, using ./lib and ./include directories also. removed "make verify". Added reference to common/Makefile added printf("testrig:main() has been called \n"); for testing linking makefile for testing testrig linking alternative rig_base declaration removes references to rig_caps at compile time. should populate it another way -- FS added printf's to confirm rig.c (hamlib) is being called ok better libhamlib.so version :-) added ft847_open and ft847_close to enable CAT ON/OFF added ft747_open and ft747_close updated lib names for backend to libhamlib-xxxxx.so API updates - added set/get_mode merge with TRN stuff and add some set/get_mode and vfo stuff added post_write_delay cvs mails to hamlib-cvs-digest cvs mail update works ok :-) minor fixes updated ptt/mode/vfo added set/get freq to use generic bcd etc more set_freq() examples 1. Added VFO as target for some set/get cmds. 2. ./testrig still runs ok using RIG_VFO_CURR. minor update to active VFO handling in _set_vfo some new defines for FT747_VFO_A/B minor updates to active vfo handling added ptt handling example, stand back ! trying different approach to storing cmd sequence. _set_ptt is being converted. Needs tidying up though. Some sequences are complete, and can be read from static data. Incomplete sequences will eventually be copied form static declaration, and completed in priv data. Removed static stuff from functions. Also, begin to implement table driven command translation from API to rig native. priv now contains a cmd table that is used for backend commands towards rig. Added some new freq/mode combinations. converting ft847 to table driven, similar to ft747. more table driven stuff for ft847. cat/ptt/freq being converted. Added ft847_send_priv_cmd(), converted some part of API to use this. Added _set_mode to work now. TODO: put _send_priv_cmd into yaesu.[ch] so ft747 can use also. Turned on PTT also (stand back).. rig_cleanup and rig_close not calling backend removed unused calc_ functions. removed old API functions, general cleanup tested rig_close and rig_cleanup Initial release, common yaesu declareations etc. add version tag nseq uses YAESU_CMD_LENGTH Initial yaesu Makefile Moved from ft747 and ft847 dirs common yaesu handling common yaesu dir Begin to use common yaesu code general cleanup, added _send_priv_cmd added targetable_vfo value to caps minor cleanup ChangeLog history started Initial import for ChangeLog handling starting to convert rig struct to readable form more of convert rig struct to readable form Changelog update for HAMLIB-1.1.1 GeoBaltz (1): Merge branch 'master' into rp12 George Baltz N3GB (179): Add missing level definitions for TS-590SG Add routine to check input to <brand>_set_level ATTenuator level 0 should always be allowed - to turn it off. First round of level_gran additions. Do the check for min=max=0 the right way. Round 2. Enable first user of check_level_param Round 3 of level_gran updates. Remove hard-coded constants. Enable full level checking for TS-890S. Add default level values for Elecraft rigs. Update RIG_LEVEL_READONLY_LIST. Round 4 of level_gran updates. Fix the comment about float levels. Add Elecraft defaults to makefile. Fix typos (missing '('s ) in man pages. Add missing commands to man pages Avoid NULL dereference in debug statement. Use level_gran[] values in kenwood_get_level. Still more level_gran data. Yet more missing level defs. Enable level_gran[] checking for all calls to kenwood_set_level. Add basis for level_gran use in newcat.c Convert set/get AF, RF to use level_gran info. Convert MICGAIN to level_gran Convert COMP Convert ANTIVOX & VOXGAIN New for old - update level_gran for ft9000Old Fix segfault on rigctl exit Convert SQL to use level_gran data. Convert MONITOR_GAIN Convert RFPOWER to level_gran usage Convert NR to use level_gran Fix inverted VHF/UHF BANDSELECT labels Fix duplicate level definition Add RIG_LEVEL_USB_AF_INPUT to RIG_LEVEL_FLOAT_LIST Implement RIG_LEVEL_USB_AF[_INPUT] for TS-890S Enable set_level checking for all Yaesu/newcat rigs. Replace hard coded constants with table values f conversion already rounds, so no external rounding needed. Move meter reader to kenwood.c, so it can be used by ts990.c Use general meter reader to get SWR value for TS-990. Revert "Fix FTDX101MP RFPOWER to allow 200W" Unnecessary code, breaks other levels. Fix FTDX101MP RFPOWER the right way. Restore shared library ABI compatibility with previous hamlibs Add basic support for transparent access to port structures. More Kenwood rigs ported to new access macros. Convert the remaining files in rigs/kenwood/ Define different (disambiguated) names for external use. Fix copy/paste errors in xiegu.c More typos/copy/paste errors in rigs/icom Add cache to the MACRO/porting list Implement function to get structure address Function to get amplifier port address Convert src/amplifier.c to new MACROs/access method. Add function to get rotator port address(es) Port conf.c to use access macros Convert more files in src/ Pointerize all the ports in src/rig.c Need more parens to work in expressions. Update example.c Avoid using raw rigport, in two different ways. Fix variable name. Implement ctcss tone for TS-890S. Fix off by one error in tones for TS-590/890/990 Fix some rigs I found docs for - more needed Add funcs to set/clear TONE/CTCSS modes for TS-890S Add remaining rigs, matching old behavior. Fix copy/paste foulup. Drat. Fix more copy/paste SNAFUs Update NEWS with pointer conversion macros. Make simulator match the Real World(TM) Add missing P4 Repair RIG_LEVEL_STRENGTH Add calibration table for TS-890S RFPOWER_METER_WATTS Bring simts890.c a little closer to the real thing Still needs more work. Fix icom_set_powerstat() to correctly save&restore rp->retry, rp->timeout_retry Convert some cache references to pointers Convert a few more cache pointers Cache pointers for src/rig.c Issue #1420 again. Convert rot_conf.c and amp_conf.c to pointers Update dcdport usage in tests/*.c Issue #1445 Play catchup with split/VFO revision. Fix typos in rebase fixups. Start converting rigs/* This commit does rigs/adat/, rigs/alinco/ and rigs/aor/. Port rigs/anytone/, rigs/barrett/ and rigs/codan/ Fixup git rebase SMerge error. Convert rigs/dorji, rigs/drake, rigs/elad. Convert rigs/dummy/ Convert rigs/flexradio, rigs/gomspace, rigs/jrc, rigs/kachina Convert rigs/icom/, rigs/kit/ Convert rigs/loew/, rigs/pcr/, rigs/prm80/, rigs/racal/ and rigs/rs/ Convert rigs/mds/, rigs/skanti/, rigs/tapr/ and rigs/tentec/ Do rigs/tuner/, rigs/uniden/, rigs/winradio/ & rigs/wj/ Convert rigs/yaesu Minor cleanup of ts890.c Update simts890.c Make IF return RX/TX status Document IF data, reformat IF & SF commands Convert all port references in amplifiers/ to pointers. Convert first part of rotators/ Finish rotators/ Add STATE to the list of pointers Convert tests/* to pointers Finish tests/* Update some of rigs/* to use pointer to cache Use pointers for all cache references in rigs/* All struct rig_cache referenced converted to pointers. Start converting rigs/* to use pointers to state More pointers to state More pointers to state Pointerize all state references in rigs/kenwood/* Add macros for amplifier and rotator state pointers. Fix incorrect port read for elevation Normalize some debug/trace output. More state pointer changes Convert macros in rig.h to use STATE() More state pointer changes Still more state pointer conversions. More state pointers - mostly sed i Pointerize state references in Tentec rigs. And another batch... Use sed -i on all in rigs/kit/ More sed -i with manual fixups. Convert all of rigs/* except rigs/icom and rigs/yaesu First set of rigs/icom/* state pointer macros. Convert rigs/icom/icom.[ch] First batch of state pointers in rigs/yaesu/ Next batch of state pointers Convert newcat.c FIx the stragglers Revert "Fix rotorez set_conf in both rotctl and rotctld -- since it needs to be done after rot_open" Definitions, storage and infrastructure for queuing config commands Implement the first user of the deferred set_conf entries. Fix other rotators that try to do I/O before open. Finish all port initialization before allowing I/O. Balance ENTERFUNC/RETURNFUNC, ENTERFUNC2/RETURNFUNC2, ELAPSED1/ELAPSED2 usage Balance ENTERFUNC/RETURNFUNC usage More of the balancing act. More balancing Finish balancing Get rid of some false positives for func_chk Fix func_chk to do useful things Fix ENTERFUNC/RETURNFUNC imbalances found by repaired func_chk More pointer conversions for rig->state. More pointerizations in src/* Convert all rig->state. references in src/rig.c to pointers. Play catch-up with recent code. Use pointers for amp->state references Use macros/pointers for rot->state references More amplifier and rotator state changes Yet another batch of state pointers Catch up with latest code Balance new code. Fix wrong error message for SF1 command. Make SNPRINTF do something useful for Hamlib Remove dead code Declare local functions as local Implement rig_get_clock for TS-890S Fix wrong utc_offset Use a reliable source for TZ offset Add just enough to simts890.c to fake kenwood_get_clock. Tweaks to simts890.c Fix negative fractional UTC offsets Implement kenwood_set_clock Fix command lengths for TS-890S set/get_antenna. Still more tweaks to simts890.c Replace raw write() calls with macro More fixes for simts890.c Reduce dependency on include/hamlib/rig.h Convert VFOs into objects(structs). Get rid of ghost commands. More VFOs as objects. Change FA/FB/SF to use band memories Implement step sizes for some freq changes Add DN/UP, FC, and UD commands to simts890.c Correct some split problems and connect VFO ops Clean up Make FR & FT commands aware of new vfo structs. Add traffic tracing to simts890.c Annotate legacy (undocumented) commands in simts890.c Add RIT/XIT commands (FS, RC, RD/RU, RF, RT, XT) to simts890.c Astyle simts890.c Update TS-890S and TS-990S RIT/XIT handling Factor out TS-890S and TS-990S from kenwood_get_split_vfo_if() MACROize new code. Minimal support for KY commands in simts890.c Use short (i.e., variable length) messages in kenwood_send_morse() Fix porting unneeded code Fix unbalanced ENTERFUNC/RETURNFUNC pairs in icom.c Georges Auberger (1): Add product id for CM119B chip. Used in KURI adapter designed by W7NX. Gerardo Richarte (1): gs232b.c: Improve get_position string parsing Gisle Vanem (1): Enable verbose mode in bindings/pytest.py Greg Troxel (1): Warning about dodgy code in drake.c HB9EIK (4): Initial release ELAD FDM DUO Update ELAD files Update build system for ELAD backend Update copyright for fdm_duo.c Hans Van Ingelgom (1): Added Peaberry V1 and V2 models Hegedüs Ervin (4): Merge branch 'master' of http://git.code.sf.net/p/hamlib/code Check SWIG string functions for some languages Leave off multiply 'typedef const char * const_char_string' definition (in rig.swg and rotator.swg) Fixed int[10] type variable error in bindings Jae Stutzman (5): Added HPSDR backend Clears potential garbage data in read buffer prior to command being sent Updated PiHPSDR backend defaults Use Windows ioctlsocket to avoid buffer overrun Added new AGC control for PiHPSDR James Watson, HZ1JW (2): Added ic7200 to icom Corrected modes in ic7200.c Jaroslav Skarvada (2): Fix hardcoded pcconfig libdir Fix serial_port DCD squelch Jeroen Vreeken (9): Add support for GPIO PTT. Add missing breaks and improve error messages Add Dorji DRA818 modules (VHF and UHF variants) Also works with NiceRF SA818 modules Merge branch 'master' of git://git.code.sf.net/p/hamlib/code Small fixes to DRA818 volume handling Add GPIO and GPION options for DCD. Also bump abi version since the config params struct needed resizing. Merge branch 'master' of github.com:Hamlib/Hamlib GPIO working after debugging Merge branch 'master' of github.com:Hamlib/Hamlib Johan Ström (1): Backup serial options on open, restore on close John Paul Adrian Glaubitz (1): dummy/dummy.c: Fix unaligned access in dummy_get_level() Jonathan Bastien-Filiatrault (3): Correct FT; command that does not exist on the FT-891. Allow setting split mode without smashing the VFOB frequency. Scale power values correctly for Yaesu FT-891. Jonny public (1): ether6: New rotor backend from Jonny, DG9OAA Joop Stakenborg, PG4I (116): update (kenwood is not a WIP anymore) first implementation of kenwood_get_ptt enable get_ptt for this rig add get_ptt for this rig additional protocol checks and cleanups fix signal strength add RIG_LEVEL_RFPOWER fix_compilation add rit capabilities bring comands in sync with other kenwood rigs add rit capabilities send_morse added explain set_rit fix get_ctcss_tone by using IF command typo add xit capabilities add set_level and get_level bring rig in sync with other kenwood rigs bump version numbers nothing returned by the rig for these commands fix get_level_agc fix set_level_agc getting in sync with the debian 1.1.2 package remove template files initial checkin make this NMU for now correct the path for copying files in the apropriate package do not install the old changelog versioning not used move .la, .a, .so files to the correct package include rpc.rigd and rpc.rotd include pkgconfig support don't create shlibs file for drake, jrc and easycomm libraries move hamlib1 to the top so the documentations gets installed correctly make building easier, call autogen.sh INSTALL file not used build the documentation package we don't have to call configure twice cleanup remove some build dependencies and don't call autogen.sh ts450s uses IF command for get_vfo, get_freq and get_mode minor bugfix, bump to beta add CWR and RTTYR this rig does not have a command for reading IF bandwidth retrieve passband with FW command passband should be calculated after mode is set use rig_passband_normal here various lintian fixes one last lintian fix use FW command to set bandpass cw filters for normal, narrow and wide more filters get_mode and set_mode for this rig filters some comments correct rit add get_level cleanups more modes set_level for this rig should use kenwood_get_freq minor bug add rpm support need hamlib.spec for 'make rpm' make rpm will fail with a '-' in the version number a working spec file update debian build for rotorez and fodtrack, minor fixes unofficial fix the debian build script, new maintainer update the debian build tree to the latest correct baudrate for the ts-950, use the information field IF for get_vfo by default (supported by most kenwood rigs), ts870s will use the much shorter FR command for get_vfo correct baudrate for some rigs and add ts-950 to the id_list ts-850 returns ID 009 according to martin, OK1RR fix 'make rpm' build for hamlib-1.1.5 not needed sync with latest debian package and add tcl, c++, python and perl bindings correct spelling s-meter calibration by Matt Dawson basic functionality by Matt Dawson, tested with grig and xlog lifetime e-mail address :-) sync with latest debian release more functionality, mode and frequency get by Matt Dawson only switch tx vfo is split is on set attenuator level export convenience function get_kenwood_level, so they can be use by other backends add RIG_LEVEL_SWR, copied from ts850 add RIG_LEVEL_COMP, RIG_LEVEL_AGC, copied from ts850 bump version, no preamp really add ALC read this time, only change meter if needed, cleanups split has_get_level and has_set_level fix coding, python2.4 compatibility fix compilation warnings more compilation warnings nuked, use tone_t for ctcss_list use size_t fix more compilation warnings, int->size_t, unsigned char->char more unsigned char->char and int->size_t transitions set functions should have ack_len zero, also need to check other rigs make sure we use ack_len=0 for functions that return nothing (set functions) more unsigned char->char and int->size_t transitions extend rig capabilities, patch by Tom, DL1JBE add RIG_LEVEL_STRENGTH to caps, set post write delay to 0 and do some cleanups re-establish post-write delay remove rpath backdoor long long really needed here? updates by matt, GW0VNR long long really needed here? - patch by diane Bruce distribute footer.html correct set/get power try better s-meter readings packages renamed obsolete sync with latest debian release no need to link to python sync with latest, python changes another debian update: use 'make distclean' in the rules file Joshua Lynch (4): initial SatEL rotator support factored io functions out. improve reliability...i hope. fixed state bug. reconnecting would disable motion every other connect. merged upstream/master into master Juergen Rinas, DC3BW (4): added antenna switching... added a few get_level/set_level get_function/set_functions. * fixed set_func (concerns most kenwood rigs) * added 115200 to the list of baudrates in probeallrigs_kenwood() * fixed ptt * expanded frequency range (available after firmware update) according to http://www.kenwood.com/i/products/info/amateur/ts_480/firmware/pop_ts480_e.htm * added tuning steps * added filter list * increased version info Julian Cable (3): WinRadio G313: Updates from Julian Campbell wrg313api.c: Fix Win32 (MinGW) build issue Use Automake conditionals for G313 build Juuso Lehtinen (4): Add get & set RIG_LEVEL_NB for Yaesu rigs. Fix set level METER for Yaesu rigs Add ID, VD & Comp meter cals for FT991 Add better defaults for newcat meter cals Kamal Mostafa (3): Fix mingw32 cross-compilation procedure and config Do not let macros/ac_python_devel.m4 trash CPPFLAGS and LIBS Fix spelling errors Kamal Mostafa, KA6MAL (19): Hard-code length of hamlib_version and hamlib_copyright strings to stay compliant with hamlib 1.2 ABI and avoid spurious "consider relinking" warnings from dynamic loader. Removed stale debian/ dir from the hamlib source (it is maintained in the Debian diff and isn't useful in this tree). Update bundled libltdl (libtool) to version 2.2.6b to address CVE-2009-3736. - autogen.sh: never downgrade our bundled libltdl/ (only run libtoolize if system version is newer than our bundled version). - autofixer.sh: script removed as libtool 1.x is no longer allowed. - configure.ac: (not enabled) optional setting to deprecate embedded libltdl/. Added Kamal Mostafa and Jaime Robles as maintainers for Debian packaging. Fix build --with-python-binding breakage introduced by Python 2.6: Do not reference LOCALMODLIBS, else it will add libraries to our link line (e.g -lssl) which are not necessarily installed. Elektor 507 frequency selection resolution improvements, contributed by John Nogatch AC6SL. Move backend libraries into /usr/lib/hamlib directory. Force automake to invoke the C (not C++) linker in kit/ when no C++ is in use. python: fix --with-python-bin... [truncated message content] |
From: n0nb <n0...@us...> - 2025-02-09 21:06:04
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, Hamlib-4.6.2 has been created at 8703647c8cb277cad66f5a4eaff103126b7a1b5a (commit) - Log ----------------------------------------------------------------- commit 8703647c8cb277cad66f5a4eaff103126b7a1b5a Author: Nate Bargmann <n0...@n0...> Date: Sun Feb 9 15:03:50 2025 -0600 Prepare for 4.6.2 release Making this a branch off of the current master as it just has fixes since the 4.6.1 release. diff --git a/configure.ac b/configure.ac index 9bf5390d2..7d59a9c21 100644 --- a/configure.ac +++ b/configure.ac @@ -14,7 +14,7 @@ dnl Please do not use '-' in the version number, as package managers will fail, dnl however, the use of '~' should be fine as apt (others?) will treat dnl it as an earlier version than the actual release. TNX KA6MAL dnl PACKAGE_NAME + " " + PACKAGE_VERSION must not exceed 20 chars! -AC_INIT([Hamlib],[4.7~git],[ham...@li...],[hamlib],[http://www.hamlib.org]) +AC_INIT([Hamlib],[4.6.2],[ham...@li...],[hamlib],[http://www.hamlib.org]) #AC_INIT([PRODUCT_NAME], [Hamlib]) #AC_DEFINE([Hamlib], [PRODUCT_VERSION_RESOURCE]) @@ -76,7 +76,7 @@ dnl See README.release on setting these values # Set them here to keep c++/Makefile and src/Makefile in sync. ABI_VERSION=4 ABI_REVISION=6 -ABI_PATCH=0 +ABI_PATCH=2 ABI_AGE=0 AC_DEFINE_UNQUOTED([ABI_VERSION], [$ABI_VERSION], [Frontend ABI version]) ----------------------------------------------------------------------- hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: n0nb <n0...@us...> - 2025-02-09 20:54:27
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via c939f1a83ac1b7ad1bb903120da13f19b468e4be (commit) via a0df573df760ea8c137a26581d46d46abaf5a6c0 (commit) via 6e704c5bc8a374af5db07e76a7a11c15463540ed (commit) via 5ecc1934fc338608c46267df584c903fb847b751 (commit) via 62e44940cfa8d6ff365cb931f6e387398b26a62b (commit) via 19dce9fd1b515002fb64976d151e9bb05970e614 (commit) via 9ffbf632903d5642d4ceb2bb322baab671fed6be (commit) via 93c5267dfbf0c084f75b65165e2fe5a5167d81f7 (commit) via 79f5a08210d94e26eb7908a16ad53fa10d9936a0 (commit) via 62071273aae744b8dedf739be2ae1575f75a51a2 (commit) via 1813820dd3f2d0547190208979498c9fde449483 (commit) via 0e36ee79fe36750d77d1a021c5baaf892dbf5813 (commit) via 27f009da4c2b3781f467d1d1bea21f8776e2b1a6 (commit) via e44da73e9a0714efab2c67f6f15904f7116b612e (commit) via 2ed2a998e3d0d932afa184831d469f090fce50fe (commit) via 194e18f4e45c1afabeed7f838f32407851474239 (commit) via 8309616e9b6d293d3354444ad9b83a0b9f7b0ffb (commit) via 710dfea56e79bee7ef41d060153d9e22efdf9c61 (commit) from bb4eb78d22c312e708cf21a614019970f023b5a4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit c939f1a83ac1b7ad1bb903120da13f19b468e4be Author: Michael Black W9MDB <mdb...@ya...> Date: Wed Feb 5 08:01:14 2025 -0600 Add missing levels for IC746/Pro RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_RFPOWER_METER_WATTS|RIG_LEVEL_SWR|RIG_LEVEL_ALC diff --git a/NEWS b/NEWS index eb4c0c89a..d30dfad21 100644 --- a/NEWS +++ b/NEWS @@ -13,6 +13,7 @@ Version 5.x -- future * Change FT1000MP Mark V model names to align with FT1000MP Version 4.6.2 + * Add missing levels for IC746/PRO RIG_LEVEL_RFPOWER_METER,RIG_LEVEL_RFPOWER_METER_WATTS,RIG_LEVEL_SWR,RIG_LEVEL_ALC * Fix IC905 for gpredict * Fix potential segfault on QMX * Fix pmr171 diff --git a/rigs/icom/ic746.c b/rigs/icom/ic746.c index f8386e41b..6ace9675b 100644 --- a/rigs/icom/ic746.c +++ b/rigs/icom/ic746.c @@ -54,7 +54,7 @@ #define IC746_FUNC_ALL (RIG_FUNC_NB|RIG_FUNC_COMP|RIG_FUNC_VOX|RIG_FUNC_TONE|RIG_FUNC_TSQL|RIG_FUNC_SBKIN|RIG_FUNC_FBKIN|RIG_FUNC_NR|RIG_FUNC_MON|RIG_FUNC_MN|RIG_FUNC_RF|RIG_FUNC_ANF|RIG_FUNC_APF|RIG_FUNC_RESUME|RIG_FUNC_ARO) -#define IC746_LEVEL_ALL (RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_PREAMP|RIG_LEVEL_ATT|RIG_LEVEL_AGC|RIG_LEVEL_COMP|RIG_LEVEL_BKINDL|RIG_LEVEL_NR|RIG_LEVEL_PBT_IN|RIG_LEVEL_PBT_OUT|RIG_LEVEL_CWPITCH|RIG_LEVEL_RFPOWER|RIG_LEVEL_MICGAIN|RIG_LEVEL_KEYSPD|RIG_LEVEL_NOTCHF_RAW|RIG_LEVEL_SQL|RIG_LEVEL_RAWSTR|RIG_LEVEL_APF|RIG_LEVEL_AGC_TIME) +#define IC746_LEVEL_ALL (RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_PREAMP|RIG_LEVEL_ATT|RIG_LEVEL_AGC|RIG_LEVEL_COMP|RIG_LEVEL_BKINDL|RIG_LEVEL_NR|RIG_LEVEL_PBT_IN|RIG_LEVEL_PBT_OUT|RIG_LEVEL_CWPITCH|RIG_LEVEL_RFPOWER|RIG_LEVEL_MICGAIN|RIG_LEVEL_KEYSPD|RIG_LEVEL_NOTCHF_RAW|RIG_LEVEL_SQL|RIG_LEVEL_RAWSTR|RIG_LEVEL_APF|RIG_LEVEL_AGC_TIME|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_RFPOWER_METER_WATTS|RIG_LEVEL_SWR|RIG_LEVEL_ALC) #define IC746_GET_PARM (RIG_PARM_BACKLIGHT|RIG_PARM_BEEP) #define IC746_SET_PARM (RIG_PARM_BACKLIGHT|RIG_PARM_BEEP|RIG_PARM_ANN) @@ -181,7 +181,7 @@ struct rig_caps ic746_caps = RIG_MODEL(RIG_MODEL_IC746), .model_name = "IC-746", .mfg_name = "Icom", - .version = BACKEND_VER ".4", + .version = BACKEND_VER ".5", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, commit a0df573df760ea8c137a26581d46d46abaf5a6c0 Author: Michael Black W9MDB <mdb...@ya...> Date: Tue Feb 4 11:45:56 2025 -0600 Reduce good news about serial port to verbose diff --git a/src/serial.c b/src/serial.c index 2d6fd5a7c..6fdecc739 100644 --- a/src/serial.c +++ b/src/serial.c @@ -242,7 +242,7 @@ int HAMLIB_API serial_open(hamlib_port_t *rp) return -RIG_EIO; case SER_AVAILABLE: - rig_debug(RIG_DEBUG_ERR, "%s: serial port %s is OK\n", __func__, rp->pathname); + rig_debug(RIG_DEBUG_VERBOSE, "%s: serial port %s is OK\n", __func__, rp->pathname); break; } commit 6e704c5bc8a374af5db07e76a7a11c15463540ed Author: Michael Black W9MDB <mdb...@ya...> Date: Fri Jan 31 07:29:04 2025 -0600 Update NEWS diff --git a/NEWS b/NEWS index 03f5ee844..eb4c0c89a 100644 --- a/NEWS +++ b/NEWS @@ -12,6 +12,11 @@ Version 5.x -- future * rot_get_conf deprecated and replaced by rot_get_conf2 * Change FT1000MP Mark V model names to align with FT1000MP +Version 4.6.2 + * Fix IC905 for gpredict + * Fix potential segfault on QMX + * Fix pmr171 + Version 4.6.1 * Fix C++ builds failing on rig_list_foreach function * Fix IC9100 rigctld startup to end up on VFOA commit 5ecc1934fc338608c46267df584c903fb847b751 Author: Michael Black W9MDB <mdb...@ya...> Date: Thu Jan 30 22:59:01 2025 -0600 Add IC910 to Icom exceptions in rig.c diff --git a/src/rig.c b/src/rig.c index a380cf18a..739a17fce 100644 --- a/src/rig.c +++ b/src/rig.c @@ -169,6 +169,8 @@ const char hamlib_copyright[231] = /* hamlib 1.2 ABI specifies 231 bytes */ #define CHECK_RIG_ARG(r) (!(r) || !(r)->caps || !STATE((r))->comm_state) #define CHECK_RIG_CAPS(r) (!(r) || !(r)->caps) +#define ICOM_EXCEPTIONS (rig->caps->rig_model == RIG_MODEL_IC9700 || rig->caps->rig_model == RIG_MODEL_IC9100 || rig->caps->rig_model == RIG_MODEL_IC910) + // The LOCK macro is for the primary thread calling the rig functions // For a separate thread use rig_lock directly // The purpose here is to avoid deadlock during recursion @@ -1547,7 +1549,7 @@ int HAMLIB_API rig_open(RIG *rig) { vfo_t myvfo = RIG_VFO_A; - if (rig->caps->rig_model == RIG_MODEL_IC9700 || rig->caps->rig_model == RIG_MODEL_IC9100) { myvfo = RIG_VFO_MAIN_A; } + if (ICOM_EXCEPTIONS) { myvfo = RIG_VFO_MAIN_A; } retval = rig_get_freq(rig, myvfo, &freq); @@ -1557,7 +1559,7 @@ int HAMLIB_API rig_open(RIG *rig) vfo_t tx_vfo = RIG_VFO_NONE; myvfo = RIG_VFO_B; - if (rig->caps->rig_model == RIG_MODEL_IC9700 || rig->caps->rig_model == RIG_MODEL_IC9100) { myvfo = RIG_VFO_MAIN_B; } + if (ICOM_EXCEPTIONS) { myvfo = RIG_VFO_MAIN_B; } rig_get_freq(rig, myvfo, &freq); rig_get_split_vfo(rig, RIG_VFO_RX, &split, &tx_vfo); @@ -1570,7 +1572,8 @@ int HAMLIB_API rig_open(RIG *rig) { myvfo = RIG_VFO_A; - if (rig->caps->rig_model == RIG_MODEL_IC9700 || rig->caps->rig_model == RIG_MODEL_IC9100) { myvfo = RIG_VFO_MAIN_A; } + if (ICOM_EXCEPTIONS) { myvfo = RIG_VFO_MAIN_A; } + rig_get_mode(rig, myvfo, &mode, &width); @@ -1578,7 +1581,7 @@ int HAMLIB_API rig_open(RIG *rig) { myvfo = RIG_VFO_B; - if (rig->caps->rig_model == RIG_MODEL_IC9700 || rig->caps->rig_model == RIG_MODEL_IC9100) { myvfo = RIG_VFO_MAIN_A; } + if (ICOM_EXCEPTIONS) { myvfo = RIG_VFO_MAIN_A; } rig_debug(RIG_DEBUG_VERBOSE, "xxxsplit=%d\n", split); HAMLIB_TRACE; commit 62e44940cfa8d6ff365cb931f6e387398b26a62b Author: Michael Black W9MDB <mdb...@ya...> Date: Thu Jan 30 12:09:35 2025 -0600 Add to Segfault user award diff --git a/Segfault-award b/Segfault-award index 4bf3b4be2..e775238db 100644 --- a/Segfault-award +++ b/Segfault-award @@ -37,3 +37,6 @@ Here is the list of the brave fellows: * Josef 'Jeff' Sipek netrigctl power2mW overflow https://github.com/Hamlib/Hamlib/issues/855 + +* David Balharrie M0DGB + Using python caused seg fault on QMX due to missing priv structure commit 19dce9fd1b515002fb64976d151e9bb05970e614 Merge: 9ffbf6329 93c5267df Author: Michael Black W9MDB <mdb...@ya...> Date: Thu Jan 30 11:51:23 2025 -0600 Merge branch 'master' of github.com:Hamlib/Hamlib commit 9ffbf632903d5642d4ceb2bb322baab671fed6be Author: Michael Black W9MDB <mdb...@ya...> Date: Thu Jan 30 11:50:57 2025 -0600 Add priv back to QMX as can cause segfault in some cases diff --git a/rigs/kenwood/ts480.c b/rigs/kenwood/ts480.c index 4cb0eb789..043f25334 100644 --- a/rigs/kenwood/ts480.c +++ b/rigs/kenwood/ts480.c @@ -1943,7 +1943,7 @@ struct rig_caps qrplabs_qmx_caps = RIG_MODEL(RIG_MODEL_QRPLABS_QMX), .model_name = "QMX", .mfg_name = "QRPLabs", - .version = BACKEND_VER ".1", + .version = BACKEND_VER ".2", .copyright = "LGPL", .status = RIG_STATUS_BETA, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -1980,6 +1980,8 @@ struct rig_caps qrplabs_qmx_caps = RIG_FLT_END, }, + .priv = (void *)& ts480_priv_caps, + .rig_init = ts480_init, .rig_open = qrplabs_open, .rig_cleanup = kenwood_cleanup, commit 93c5267dfbf0c084f75b65165e2fe5a5167d81f7 Merge: 62071273a 79f5a0821 Author: Michael Black <mdb...@ya...> Date: Mon Jan 27 12:09:42 2025 -0600 Merge pull request #1667 from ny4i/patch-1 Update README.developer commit 79f5a08210d94e26eb7908a16ad53fa10d9936a0 Author: Tom Schaefer <to...@be...> Date: Mon Jan 27 12:12:16 2025 -0500 Update README.developer Removed s from end of the build-essential package. It is just build-essential. There is no such package as build-essentials. diff --git a/README.developer b/README.developer index 676acbfc7..2b5f64695 100644 --- a/README.developer +++ b/README.developer @@ -239,7 +239,7 @@ That is, if you want to take part in the development of Hamlib, you'll need the following tools. Make sure you have at least the required version or you won't even be able to build from the Git clone. -N.B. The Debian and derivatives (Ubuntu and friends) 'build-essentials' +N.B. The Debian and derivatives (Ubuntu and friends) 'build-essential' package will install a number of tools and minimize the number of packages that need to be installed manually (Debian package names are listed, other distributions may differ). commit 62071273aae744b8dedf739be2ae1575f75a51a2 Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Jan 25 12:05:38 2025 -0600 Prompt PMR-171 to stable diff --git a/rigs/yaesu/pmr171.c b/rigs/yaesu/pmr171.c index 20b9fb51d..46d3b3d69 100644 --- a/rigs/yaesu/pmr171.c +++ b/rigs/yaesu/pmr171.c @@ -179,7 +179,7 @@ struct rig_caps pmr171_caps = .mfg_name = "Guohe", .version = "20240704.0", .copyright = "LGPL", - .status = RIG_STATUS_ALPHA, + .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, .ptt_type = RIG_PTT_RIG, .dcd_type = RIG_DCD_RIG, commit 1813820dd3f2d0547190208979498c9fde449483 Merge: 27f009da4 0e36ee79f Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Jan 25 12:04:44 2025 -0600 Merge branch 'master' of github.com:Hamlib/Hamlib commit 0e36ee79fe36750d77d1a021c5baaf892dbf5813 Merge: 8309616e9 2ed2a998e Author: Michael Black <mdb...@ya...> Date: Sat Jan 25 12:04:30 2025 -0600 Merge pull request #1665 from clzls/master pmr171.c: Fix mode, freq and PTT commit 27f009da4c2b3781f467d1d1bea21f8776e2b1a6 Merge: e44da73e9 8309616e9 Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Jan 25 11:59:46 2025 -0600 Merge branch 'master' of github.com:Hamlib/Hamlib commit e44da73e9a0714efab2c67f6f15904f7116b612e Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Jan 25 11:59:25 2025 -0600 Revert "Fix CRC calculation in pmr171.c" Pull request being done instead This reverts commit 194e18f4e45c1afabeed7f838f32407851474239. diff --git a/rigs/yaesu/pmr171.c b/rigs/yaesu/pmr171.c index 1d7d102c2..0799a290f 100644 --- a/rigs/yaesu/pmr171.c +++ b/rigs/yaesu/pmr171.c @@ -177,9 +177,9 @@ struct rig_caps pmr171_caps = RIG_MODEL(RIG_MODEL_PMR171), .model_name = "PMR-171", .mfg_name = "Guohe", - .version = "20250125.0", + .version = "20240704.0", .copyright = "LGPL", - .status = RIG_STATUS_STABLE, + .status = RIG_STATUS_ALPHA, .rig_type = RIG_TYPE_TRANSCEIVER, .ptt_type = RIG_PTT_RIG, .dcd_type = RIG_DCD_RIG, @@ -456,7 +456,7 @@ static int pmr171_send_cmd1(RIG *rig, unsigned char cmd, unsigned char *reply) unsigned char buf[64] = { 0xa5, 0xa5, 0xa5, 0xa5, 0x03, 0x00, 0x00, 0x00 }; buf[5] = cmd; - unsigned int crc = CRC16Check(&buf[4], 2); + unsigned int crc = CRC16Check(&buf[4], 3); buf[6] = crc >> 8; buf[7] = crc & 0xff; rig_flush(rp); @@ -809,7 +809,7 @@ static int pmr171_set_freq(RIG *rig, vfo_t vfo, freq_t freq) to_bcd_be(&cmd[10], CACHE(rig)->freqMainB, 8); } - unsigned int crc = CRC16Check(&cmd[4], 2); + unsigned int crc = CRC16Check(&cmd[4], 12); cmd[14] = crc >> 8; cmd[15] = crc & 0xff; rig_flush(rp); commit 2ed2a998e3d0d932afa184831d469f090fce50fe Author: clzls <164...@us...> Date: Sun Jan 26 01:35:05 2025 +0800 pmr171.c: Fix mode, freq and PTT diff --git a/rigs/yaesu/pmr171.c b/rigs/yaesu/pmr171.c index 0799a290f..20b9fb51d 100644 --- a/rigs/yaesu/pmr171.c +++ b/rigs/yaesu/pmr171.c @@ -453,19 +453,106 @@ static int pmr171_send_cmd1(RIG *rig, unsigned char cmd, unsigned char *reply) { hamlib_port_t *rp = RIGPORT(rig); rig_debug(RIG_DEBUG_VERBOSE, "%s: called\n", __func__); - unsigned char buf[64] = { 0xa5, 0xa5, 0xa5, 0xa5, 0x03, 0x00, 0x00, 0x00 }; + unsigned char buf[8] = { 0xa5, 0xa5, 0xa5, 0xa5, 0x03, 0x00, 0x00, 0x00 }; buf[5] = cmd; - unsigned int crc = CRC16Check(&buf[4], 3); + unsigned int crc = CRC16Check(&buf[4], 2); buf[6] = crc >> 8; buf[7] = crc & 0xff; rig_flush(rp); - write_block(rp, buf, 9); + write_block(rp, buf, 8); return RIG_OK; } -rmode_t pmr171_modes[] = { RIG_MODE_USB, RIG_MODE_LSB, RIG_MODE_CWR, RIG_MODE_CW, RIG_MODE_FM, RIG_MODE_FMN, RIG_MODE_PKTUSB, RIG_MODE_RTTY }; +#define GUOHE_MODE_TABLE_MAX 9 +rmode_t pmr171_modes[GUOHE_MODE_TABLE_MAX] = +{ + RIG_MODE_USB, + RIG_MODE_LSB, + RIG_MODE_CWR, + RIG_MODE_CW, + RIG_MODE_AM, + RIG_MODE_FM, + RIG_MODE_FMN, + RIG_MODE_PKTUSB, + RIG_MODE_RTTY // not functioning +}; + +rmode_t guohe2rmode(unsigned char mode, const rmode_t mode_table[]) +{ + rig_debug(RIG_DEBUG_VERBOSE, "%s called, mode=0x%02x\n", __func__, + mode); + + if (mode >= GUOHE_MODE_TABLE_MAX) + { + return (RIG_MODE_NONE); + } + + rig_debug(RIG_DEBUG_VERBOSE, "%s: returning %s\n", __func__, + rig_strrmode(mode_table[mode])); + return (mode_table[mode]); +} + +unsigned char rmode2guohe(rmode_t mode, const rmode_t mode_table[]) +{ + rig_debug(RIG_DEBUG_VERBOSE, "%s called, mode=%s\n", __func__, + rig_strrmode(mode)); + + if (mode != RIG_MODE_NONE) + { + unsigned char i; + + for (i = 0; i < GUOHE_MODE_TABLE_MAX; i++) + { + if (mode_table[i] == mode) + { + rig_debug(RIG_DEBUG_VERBOSE, "%s: returning 0x%02x\n", __func__, i); + return (i); + } + } + } + + return (-1); +} + +/** + * Converting to Big-endian bytes + */ +unsigned char *to_be(unsigned char data[], + unsigned long long freq, + unsigned int byte_len) +{ + int i; + + rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); + + for (i = byte_len - 1; i >= 0; i--) + { + unsigned char a = freq & 0xFF; + freq >>= 8; + data[i] = a; + } + + return data; +} + + +unsigned long long from_be(const unsigned char data[], + unsigned int byte_len) +{ + int i; + unsigned long long f = 0; + + rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); + + for (i = 0; i < byte_len; i++) + { + f = (f << 8) + data[i]; + } + + return f; +} static int pmr171_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) { @@ -484,8 +571,8 @@ static int pmr171_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) pmr171_send_cmd1(rig, 0x0b, 0); read_block(rp, reply, 5); read_block(rp, &reply[5], reply[4]); - vfoa = from_bcd_be(&reply[9], 8); - vfob = from_bcd_be(&reply[13], 8); + vfoa = from_be(&reply[9], 4); + vfob = from_be(&reply[13], 4); cachep->freqMainA = vfoa; cachep->freqMainB = vfob; rig_debug(RIG_DEBUG_VERBOSE, "%s: vfoa=%.0f, vfob=%.0f\n", __func__, vfoa, @@ -494,8 +581,8 @@ static int pmr171_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) // Now grab the ptt status cachep->ptt = reply[6] == 1; // And the mode - cachep->modeMainA = pmr171_modes[reply[7]]; - cachep->modeMainB = pmr171_modes[reply[8]]; + cachep->modeMainA = guohe2rmode(reply[7], pmr171_modes); + cachep->modeMainB = guohe2rmode(reply[8], pmr171_modes); if (vfo == RIG_VFO_B) { *freq = cachep->freqMainA; } else { *freq = cachep->freqMainB; } @@ -790,7 +877,7 @@ static int pmr171_send_icmd(RIG *rig, int index, const unsigned char *data) static int pmr171_set_freq(RIG *rig, vfo_t vfo, freq_t freq) { - unsigned char cmd[16] = { 0xa5, 0xa5, 0xa5, 0xa5, 12, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + unsigned char cmd[16] = { 0xa5, 0xa5, 0xa5, 0xa5, 11, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; unsigned char reply[16]; //int retval; hamlib_port_t *rp = RIGPORT(rig); @@ -800,16 +887,16 @@ static int pmr171_set_freq(RIG *rig, vfo_t vfo, freq_t freq) /* fill in the frequency */ if (vfo == RIG_VFO_B) { - to_bcd_be(&cmd[6], CACHE(rig)->freqMainA, 8); - to_bcd_be(&cmd[10], freq, 8); + to_be(&cmd[6], CACHE(rig)->freqMainA, 4); + to_be(&cmd[10], freq, 4); } else { - to_bcd_be(&cmd[6], freq, 8); - to_bcd_be(&cmd[10], CACHE(rig)->freqMainB, 8); + to_be(&cmd[6], freq, 4); + to_be(&cmd[10], CACHE(rig)->freqMainB, 4); } - unsigned int crc = CRC16Check(&cmd[4], 12); + unsigned int crc = CRC16Check(&cmd[4], 10); cmd[14] = crc >> 8; cmd[15] = crc & 0xff; rig_flush(rp); @@ -823,34 +910,38 @@ static int pmr171_set_freq(RIG *rig, vfo_t vfo, freq_t freq) static int pmr171_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) { hamlib_port_t *rp = RIGPORT(rig); - unsigned char cmd[10] = { 0xa5, 0xa5, 0xa5, 0xa5, 3, 0x0a, 0x00, 0x00, 0x00, 0x00 }; + unsigned char cmd[10] = { 0xa5, 0xa5, 0xa5, 0xa5, 5, 0x0a, 0x00, 0x00, 0x00, 0x00 }; unsigned char reply[10]; - int i, crc; + int crc; + unsigned char i = rmode2guohe(mode, pmr171_modes); - for (i = 0; i < sizeof(pmr171_modes) / sizeof(rmode_t); ++i) + if (i != (-1)) { - if (pmr171_modes[i] == mode) + if (vfo == RIG_VFO_B) { - if (vfo == RIG_VFO_B) - { - cmd[6] = CACHE(rig)->modeMainA; - cmd[7] = i; - } - else - { - cmd[6] = i; - cmd[7] = CACHE(rig)->modeMainB; - } - - crc = CRC16Check(&cmd[4], 4); - cmd[8] = crc >> 8; - cmd[9] = crc & 0xff; - rig_flush(rp); - write_block(rp, cmd, 16); - read_block(rp, reply, 16); - dump_hex(reply, 16); - return RIG_OK; + cmd[6] = rmode2guohe(CACHE(rig)->modeMainA, pmr171_modes); + cmd[7] = i; + } + else + { + cmd[6] = i; + cmd[7] = rmode2guohe(CACHE(rig)->modeMainB, pmr171_modes); } + + crc = CRC16Check(&cmd[4], 4); + cmd[8] = crc >> 8; + cmd[9] = crc & 0xff; + rig_flush(rp); + write_block(rp, cmd, 10); + read_block(rp, reply, 5); + read_block(rp, &reply[5], reply[4]); + dump_hex(reply, reply[4] + 5); + /* + // Grab the modes + CACHE(rig)->modeMainA = guohe2rmode(reply[6], pmr171_modes); + CACHE(rig)->modeMainB = guohe2rmode(reply[7], pmr171_modes); + */ + return RIG_OK; } rig_debug(RIG_DEBUG_ERR, "%s: invalid mode=%s\n", __func__, rig_strrmode(mode)); @@ -863,13 +954,15 @@ static int pmr171_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt) hamlib_port_t *rp = RIGPORT(rig); rig_debug(RIG_DEBUG_VERBOSE, "%s: called\n", __func__); + // According to the manual, sending 0 means PTT ON. + // TODO: How to process ack messages? switch (ptt) { case RIG_PTT_ON: - return pmr171_send_cmd2(rig, 0x07, 0x01, 1); + return pmr171_send_cmd2(rig, 0x07, 0x00, 1); case RIG_PTT_OFF: - return pmr171_send_cmd2(rig, 0x07, 0x00, 0); + return pmr171_send_cmd2(rig, 0x07, 0x01, 1); default: return -RIG_EINVAL; commit 194e18f4e45c1afabeed7f838f32407851474239 Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Jan 25 11:02:19 2025 -0600 Fix CRC calculation in pmr171.c https://github.com/Hamlib/Hamlib/issues/1483#issuecomment-2614000861 diff --git a/rigs/yaesu/pmr171.c b/rigs/yaesu/pmr171.c index 0799a290f..1d7d102c2 100644 --- a/rigs/yaesu/pmr171.c +++ b/rigs/yaesu/pmr171.c @@ -177,9 +177,9 @@ struct rig_caps pmr171_caps = RIG_MODEL(RIG_MODEL_PMR171), .model_name = "PMR-171", .mfg_name = "Guohe", - .version = "20240704.0", + .version = "20250125.0", .copyright = "LGPL", - .status = RIG_STATUS_ALPHA, + .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, .ptt_type = RIG_PTT_RIG, .dcd_type = RIG_DCD_RIG, @@ -456,7 +456,7 @@ static int pmr171_send_cmd1(RIG *rig, unsigned char cmd, unsigned char *reply) unsigned char buf[64] = { 0xa5, 0xa5, 0xa5, 0xa5, 0x03, 0x00, 0x00, 0x00 }; buf[5] = cmd; - unsigned int crc = CRC16Check(&buf[4], 3); + unsigned int crc = CRC16Check(&buf[4], 2); buf[6] = crc >> 8; buf[7] = crc & 0xff; rig_flush(rp); @@ -809,7 +809,7 @@ static int pmr171_set_freq(RIG *rig, vfo_t vfo, freq_t freq) to_bcd_be(&cmd[10], CACHE(rig)->freqMainB, 8); } - unsigned int crc = CRC16Check(&cmd[4], 12); + unsigned int crc = CRC16Check(&cmd[4], 2); cmd[14] = crc >> 8; cmd[15] = crc & 0xff; rig_flush(rp); commit 8309616e9b6d293d3354444ad9b83a0b9f7b0ffb Merge: bb4eb78d2 710dfea56 Author: Michael Black <mdb...@ya...> Date: Fri Jan 24 22:11:18 2025 -0600 Merge pull request #1664 from classabbyamp/kenwood-mode kenwood.h: fix typo commit 710dfea56e79bee7ef41d060153d9e22efdf9c61 Author: classabbyamp <536...@us...> Date: Fri Jan 24 22:40:29 2025 -0500 kenwood.h: fix typo looks like `last_mode_pc` was missing a character on the type. This was caught by compiling on musl libc, where `mode_t` wasn't available from any of the other includes. diff --git a/rigs/kenwood/kenwood.h b/rigs/kenwood/kenwood.h index f1b2d0e07..f553cadc4 100644 --- a/rigs/kenwood/kenwood.h +++ b/rigs/kenwood/kenwood.h @@ -183,7 +183,7 @@ struct kenwood_priv_data int save_k2_ext_lvl; // so we can restore to original int save_k3_ext_lvl; // so we can restore to original -- for future use if needed int voice_bank; /* last voice bank send for use by stop_voice_mem */ - mode_t last_mode_pc; // last mode memory for PC command + rmode_t last_mode_pc; // last mode memory for PC command int power_now,power_min,power_max; }; ----------------------------------------------------------------------- Summary of changes: NEWS | 6 ++ README.developer | 2 +- Segfault-award | 3 + rigs/icom/ic746.c | 4 +- rigs/kenwood/kenwood.h | 2 +- rigs/kenwood/ts480.c | 4 +- rigs/yaesu/pmr171.c | 173 +++++++++++++++++++++++++++++++++++++------------ src/rig.c | 11 ++-- src/serial.c | 2 +- 9 files changed, 157 insertions(+), 50 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: n0nb <n0...@us...> - 2025-01-22 01:46:20
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The annotated tag, 4.6.1 has been created at 3829e3d25c27dc6842d31d76ef0780b4ed5d5075 (tag) tagging cb77f344bf52a36b5a2f24f1aaffc7ab5cc1cbe9 (commit) tagged by Nate Bargmann on Tue Jan 21 19:45:18 2025 -0600 - Log ----------------------------------------------------------------- Hamlib 4.6.1 release -----BEGIN PGP SIGNATURE----- iF0EABECAB0WIQSC1k9rDmfNQfaJu6b7LFEw1VqIGQUCZ5BNwgAKCRD7LFEw1VqI GccIAJ9sRE7nYPLnsX1QywU/KPzVbVvDxACgpwDrNhLEgGQfffLgX7yCKsPqP00= =DdN3 -----END PGP SIGNATURE----- (no author) (1): New repository initialized by cvs2svn. Addison Schuhardt (1): Refactoring GPIO push-to-talk logic to use libgpiod rather than the deprecated/broken sysfs method. TODO: I'm not familiar with autoconf to set up linking to libgpiod correctly, so I'd like to ask someone else to do that. Fixes #1538 Adrian Chadd (1): Upgrade TS-711 and TS-811 to work. Agis Zisimatos (1): easycomm: Return the correct value of pointer val Alessandro Zummo, IZ1PRB (36): Remove const from priv_caps to allow kenwood_init to initialize default values if they're missing Call kenwood_init in each and every driver Use an appropriate debug level Support get/set_powerstat on pcr100 Add kenwood_simple_cmd Make set_ptt behave as before, fix set_ant for ts570.c ts450: remove RIG_FUNC_TONE from has_xx_func if tone unit is not detected ts450,ts690,ts850: use FL command to get/set filters in get/set_mode. (code from ts850.c) ts450: indentation fixes remove fixed command terminator (;) from generic code ts140,ts2000,ts480,ts570,ts680,ts850,ts870s: remove usage of fixed ; and EOM fix tabs thg71,tmv7,ts450s,ts690: verify rig id at rig_open ts450: implement set_channel remove unused parameter from get_kenwood_func ts570,ts850,ts870s,ts140,ts480,ts680: use kenwood_simple_cmd where possible Replace __FUNCTION__, which is gcc specific and was deprecated a long time ago, with __func__, which is at least defined in C99. generic, ts850: implemented CTCSS TN command (reported not working for ts850, should now be fixed) Add description for the kenwood mode n. 8 implemented set/get_ext_param (voice, fine, xit, rit). enabled on ts450 and ts850 Added my call sign removed comment about switch optimizatons. the compiler will generate the assembly code in a different order which is usually based on the case value. other compiler optimizations might also affect it, so it's useless to optimize the order. check ptt status before set_ptt. enabled on ts850. style fixes band up/down was inverted Try to compensate for leftover characters Try to cope withe the PCR100 and PCR1000 at the same time Bumped out to beta, solved a few bugs. Tested with PCR100/1000/1500. kenwood: send the whole buffer at once, added kenwood_cmd - removed EOM, it's handled by kenwood_transaction - fixed tabs and spaces - added generic routine for vfo errors - set_mem: do not switch vfo if already in mem mode - simplified invocation of some commands - buffer optimizations - added PARM_BEEP and PARM_APO - fixed getting of LEVEL_RFPOWER - fixed get_ant tmv7: removed EOM thg71: removed EOM thf7: - wrong rfpower level granularity - added .reset - call kenwood_open - use generic th_set_vfo th: fixed formatting issue th: fixed stack corruption th: fixed a missing newline Alex V Flinsch, KC2IVL (8): Initial changes for ft100 Initial release initial release fixed various command options new file, list of tones/codes and sequence used by various yaesu rigs added get frequency to ft100 code added getinfo func hdr *** empty log message *** Alexander Sack (1): Get firmware revision level from K3/KX3. Alexander Schultze (3): easycomm: include a new EasyComm3 to support move speed and infostring update EasyComm3 to include setting and getting of config and status easycomm: implement get/set config, easycom include status and error bytes, fix get_info Alexandru Csete OZ9AEC (34): Added new stylesheet to make API docs look better. Modified to use new stylesheet. Added doxygen comments. Added rotator.h and rotlist.h to the input list. Applied Tommi's improvements from the FT-857 backend with the following changes and additions: Full RF power scale corresponds to 10 bars, not 15. Added RIT, XIT and IF shift ranges to dummy backend. Cast constant caps to variable caps in order to avoid compiler warnings. Cast from const to variable in order to avoid compiler warnings. - Cast unsigned char to char in order to avoid compiler warnings. - Ensure that all variables have a value before they are used (ft920). - Disable unused functions and variables (frg100). - Incremented backend version numbers. Use tone_t for pcr1_ctcss_list. Changed arg 4 of pcr_transaction to unsigned. Cast the other mismatches to (char *). Cast unsigned char to char in order to avoid compiler warnings. Incremented backend version number. - Cast unsigned char to char in order to avoid compiler warnings. - Ensure that all variables have a value before they are used (tentec.c). - Cast unsigned char to char in order to avoid compiler warnings. - Incremented backend version number. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version number. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version numbers. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version numbers. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version number. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version numbers. - Cast unsigned char to char in order to avoid compiler warnings. - Handle all enum values in switch statements. Fixed type mismatches that caused compile warnings. Fixed type mismatches that caused compile warnings. Initialise icom_val to avoid compiler warning. Fixed type mismatches between signed and unsigned char. There are a few very suspicious 'if' statements in icom.c and frame.c - Fixed type mismatches and unhandled switch cases. - Incremented backend version numbers. Cast constant caps to variable caps in order to avoid compiler warnings. Updated. Added infor about w (send_cmd). Max serial rate is 9600. Changed backend status to stable. Escape the backslash character. The 765 can do RIG_SCAN_PROG and RIG_SCAN_MEM. Fixed S-meter reading to use calibration table since frontend always uses RAWSTR. Fixed RF power reading and added power2mw and mw2power. Fixed RIG_LEVEL_STRENGTH reading. Andrew Errington (1): Initial support for CM108 GPIO contorl of PTT Andrew Rodland (3): Fix spurious writes when no RT-21 second port Enable "stop" command for RT-21 rotator. Update RT-21 version AuroraRAS (5): Prepare .gitignore file for NDK build Append the missing information to build hamlib v4.3 for Android NDK make the Android.mk files adapt to multi arch add androidsensor rotator AndroidSensor codes improvement Ben Coleman, NJ8J (6): Fixed bug in rpcrig_set_parm (using RIG_LEVEL_IS_FLOAT instead of RIG_PARM_FLOAT) Fixed same bug in rigctl_get_parm. Added checking of return string from rig on set (non-retrieval) commands. Added code for COMP function. Added alinco_set_parm & tweaked dx77 capabilities. Handle setting Keyer speed and CW Pitch Added NJ8J's email address. Change email address for NJ8J Berndt Josef Wulf, VK5ABN (11): Implemented rig_set_channel() Implemented set_parm() for BACKLIGHT operation Commented out RIG_MODE_PKTFM overlooked at the submission of previous code Implemented RIG_MODE_PKTFM and RIG_MODE_PKTLSB modes Changed debug message format for freq_t from long long to double ft990_get_ptt() now uses the FT990_SF_XMIT instead of FT990_SF_PTT. FT990_SF_PTT only returns status of PTT activated by CAT commands, whereas FT990_SF_XMIT reports the actual status of the ptt line. ft990_get_mem(): Fixed bug that prevented the reporting of current channel number when vfo != RIG_VFO_MEM Fixed erroneous return value Fixed mispelled name for VK5ABN Added missing modes to RX/TX caps Fixed bug in ft990_set_mode that caused RTTY interchanged modes USB/LSB Fixed bugs in ft990_get_channel Bill Barker (1): Add test for Flex 6300 ID Bill Somerville (212): Patch submission for IC-756 Patch to allow same serial port for PTT and CAT. Patch to fix broken Yaesu backend with FT-2000(D) Fix rig_open not failing when PTT/DCD port is unavailable. Fix Icom IC-756 filter handling. Fix Yaesu newcat backend set_tx_vfo issue. Add support for Data Modes on Icom "Pro" models. Fix Icom IC-726 mode handling. Fix Kenwood TS-2000 split operation. Fix Kenwood Split Operation for TS50 & TS480. Fix Kenwood TS-870s split and bandwidth set/get. Correct receive buffer length for IS; comamnd. Fix Kenwood CAT transaction busy retry mechanism. Fix Kenwood get split VFO function. Add data sub-mode support for TS590s. Correct order of MD and DA commands for TS590s. Get firmware revision for TS590s in rig_open. Fix TS590s firmware defect. Fix Kenwood get_vfo function returning wrong VFO in split TX. Make Kenwood TS590s firmware defect fixup revision specific. Extend TS590s firmware defect fixup to both VFOs. Fix Icom IC-756 Pro III get data mode. Add spilt mode get and set for Elecraft K3. Fix data sub-modes on Elecraft K3. Fix Elecraft Data Mode Translation. Fix Elecraft K3 Data Sub-Mode Setting. Fix Yaesu FT1000MP and FT1000MP Mk V modes. Fix configure.ac Fix a warning message. Added option to not use VFO XCHG command when setting split parameters. Fix a buffer overflow in the Windows termios emulation. Fix pkg-config generation. Fix Icom IC-756Pro mode get/set. Facility for rigctl to read commands from standard input. Add a pause command to the rigctl command set. Prefix action function names so as not to clash with system names. Prefix action function names so as not to clash with system names. Corrected typos in rigctl.1 manpage. Add read commands from stdin and pause command features to rotctl. Merge branch 'rigctl-stdin' of ssh://git.code.sf.net/u/bsomervi/hamlib into rigctl-stdin Fix manpage errors. Remove redundant RIG_PTT_SERIAL_CAT enum from ptt_t Only check for serial control line conflicts if PTT shares CAT port Fix Ten-Tec Orion get/set split functions Icom IC-7410 has VFO A/B not MAIN/SUB Added IC-7410 data modes Add retry mechanism for Yaesu "newcat" backend Implement retries for Yaesu "newcat" rigs Disable auto information mode on open Add retry mechanism for Yaesu "newcat" backend Implement retries for Yaesu "newcat" rigs Disable auto information mode on open Merge branch 'yaesu-retries' of ssh://git.code.sf.net/u/bsomervi/hamlib into yaesu-retries RIG_OK is zero and need not be negated and this will not change Fix response length expected error in K3 back end Data mode support for the Icom IC-7700 Data mode support for the Icom IC-9100 Data mode support for the Icom IC-7200 Add support for the Kenwood TS-590SG Kenwood TS-590SG Always clear serial control lines when used for PTT Disable AI mode on open for Kenwood/Elecraft rigs Add more diagnostics and error checks to serial line control Move serial line control error checks to lower level routines Merge branch 'master' into kenwood-ai-off-at-start Merge branch 'master' into ptt-control-on-cat-port Fix serial i/o on Windows. Yaesu newcat style command response reading improvements Increase communications timeout for Icom rigs Kenwood AIn; command has no reply Revert read_string() to partial results are a success status Remove gratuitous sleeps before function exits Error checks on simulated direct VFO addressing Elecraft K2 RTTY modes are not FSK Kenwood and Elecraft rigs sometimes ignore commands Removed kenwood_cmd function and replaced uses of it Allow for failed test command on the K2 Elecraft K3 has 1 stop bit Kenwood TS-570 series IF returns current frequency Switch to "ID;" command for verification as no "AI;" on TS-840s Increase Elecraft K2 comms timeout and retries Switch Kenwood TS940 to generic kenwood CAT functions Improve command verification for Kenwood & Elecraft Use local buffer in kenwood transaction funciton Clarify the handling of Kenwood CAT message terminators Further clarification in the implementation of kenwood_transaction() Removed redundant precondition test Remove kenwood_simple_cmd as kenwood_transaction has that functionality Call kenwood_open() for TS-2000 to ensure AI mode is disabled Allow for bad ID from DDUtil in TS-2000 mode Allow one extra byte in read_string() length to accomodate terminator Enable data modes for the Icom IC-7100 Allow for PowerSDR ID in Kenwood TS2000 emulation mode Fix TenTec Argonaut message lengths and timeout Fix TenTec set split command Implement get PTT status for the TenTec Argonaut Fix error with width in set mode for the TT argonaut Yaesu FT540 can only change the frequency of the current VFO Fix defect in Kenwood TS-940 IF command response parsing Fix response lengths for the TT Jupiter 538 Do not attempt CAT PTT commands on the Icom IC-706mkIIG Use correct argument type for serial control line functions Initial back end implementation for the Kenwood TS-990s Mode set is not VFO targetable on the Kenwood TS990s The Kenwood TS990s only does split Tx on SUB VFO The doesn't appear to be a way of getting PTT/SEND on the TS990s Lower both RTS and DTR on alternate PTT serial port Honour any error status from serial port calls Dummy get_ptt function needs to read RTS/DTR/PARALLEL Make autogen.sh agnostic to whitespace in paths Increase the number or retries for most Kenwood rigs Command validation for Yaesu set commands Remove unecessary delays from TS-940S backend Proper IPv6 and dual stack networking Fix compiler warnings Proper IPv6 and dual stack networking for rotator net daemon Attempt to restore AI status on exit Allow for poor emulations of Kenwood rigs that have no ID command Use correct function to execute set type commands with no response Add a new command line option '--no-restore-ai' ('-n') to rigctl Fix FT-817/857/897 issues and add some missing functionality Fix missing PKTUSB mode setting code for FT-817 & FT-897 Fix a logic error in band detection during IC-910 set frequency Add missing configuration getters Detect C-IV NAK returns as rejected commands Elecraft rigs do not switch VFO in IF command responses during split Tx. Redundant split mode directives on Elecraft rigs cause Tx failures Only use IPv6 features on Windows versions that support it (>=XP) Improve IPv6 portability and consistency Add 23cms to IC-910(H) backend Implement combined split VFO frequency and mode setting. Initial implementation of rig_{set,get}_split_freq_mode() for FT-857. Implement rig_{set,get}_split_freq_mode() for IC-756 series. Add {get,set}_splitfrequency_mode for the IC-910(H) Elide unnecessary CAT commands when setting split frequency and mode Do not swap VFO unnecessarily Better set frequency semantics for the IC-910(h) VFO targetable get frequency operation for the Icom IC-910(h) Make sure right band is used when setting frequency on IC-910(H) Use rig state rig port retry option rather than from capabilities Use a sensible port timeout value for the Kenwood TS-850 Further attempts to simplify and improve Icom CAT for split operating Add RIG_PASSBAND_NOCHANGE as possible set_{split_,split_freq_,}mode argument Switch to POSIXLY_CORRECT mode for getopt_long() Fix a regression introduced in 222ad74 Do not crash if expected CTCSS tones not sepcified Do not attempt to query AI state on the TS-450s as it is not supported Some more Kenwood rigs with no AI query Adjust rig_list_foreach to allow use for unregistering Fix an issue presenting on the Yaesu FT-450(D) Release the serial port used for PTT when possible Change the IC7600 & IC7800 set/get mode to versions that support DATA modes Add rig_{open,close} functions to TS-790 backend Revised kenwood rig busy response handling Add get and set split functions for the TS450S Simplify and fix defects in the FT991 back end Fix some endian issues in the si570/AVR SDR back ends Fix a state machine defect with repeated PTT reset calls Do not pass --no-cpp_precomp to compilers on Mac OS X Allow RIG_LEVEL_STRENGTH queries over the network link Stop rigctld and rotctld crashing when service threads cannot write to clients Use snprintf throughout kenwood/kenwood.c for buffer safety Fix off-by-one issue in reading memory mode from IF command response Fix some issues with commands not supported by TS-2000 CAT emulations Add best guess transmit status to rig state structure Take out unecessary delays in K(X)3(S) back end. FT-817 status queries honour retries and timeout Make rig_open() call in rigctld lazy and add graceful termination Simplify SWIG interface definition and hide 64-bit values from Lua binding Remove unnecessary delays from TS-990 and TS-2000 back ends Change frequency setting for the FT-747GX to something more basic Fix an incorrect error return value from win32_serial_select() Fix timeout issues with the Ten-Tec Orion/Eagle Ensure compilation works with a pre C11 compiler Make code C90 compliant again Move unnecessary global and file static variables to the stack Simplify unnecessary persistence of extended response state Fix misunderstanding of netrigctl_transaction() return value Made PTT and DCD options consistent between rigctl and rigctld Report unrecognised PTT and DCD types in rigctl and rigctld Update i/o functions to support GPIO(N) port closure Fixed erroneous messages in rig_close with GPIO(N) PTT or DCD types Remove duplication across GPIO and GPION handling of PTT and DCD Improved get PTT state handling in dummy backend Simplify closing of device files Repair a regression with the dummy get PTT functionality Revert "Add debug to serial.c" Repair a regression with the dummy get PTT functionality Revert "Add debug to serial.c" Fix regression with slow responses from SmartSDR causing errors Deal with remote PTT type at the client end Avoid 'echo -n' as macOS sh doesn't support it Fixing an operator precedence defect Updates to the TH-D7A/E back end Less ambiguous variable name and repair merge issue in prior commit Add missing config parameters for rig power on/off and screen-saver New power on option rather than power on/off Make version recording safe for parallel builds without breaking make dist Make version recording safe for parallel builds Ensure old hamlibdatetime.h headers in the source dir are ignored Merge branch 'safe-scs-versioning' of ssh://git.code.sf.net/u/bsomervi/hamlib into safe-scs-versioning Fix make dist versioning Use BUILT_SOURCES make mechanism as intended Fix rebuild dependency Build hamlibdatetime.h every time Force copy over existing Minimize rebuilding Correct use of sh if Another attempt at a reliable SCS version header generation Remove temporary file Add missing shared library API exports Add missing export definition Blaine Kubesh (8): added Icom803 to icmarine added Icom803 to icmarine added Icom803 to icmarine Update ic-m803 remote-id to 20 Update icm803.c Update AUTHORS undo author changes Update icm803.c Bob Freeman (1): New CNCTRK rotor backend Brandon Durepo (5): Added multi-stage Docker build and hamlib-runtime image Added multi-platform support for linux/arm64 and linux/amd64 Add support for the hamlib-base-image and hamlib-runtime targets - support the arm64 and amd64 platforms on both a base-image and runtime Added git and vim to the hamlib-base-image Added Python support Brian G. Lucas (10): Pretty much a complete re-write of thd72.c, since the old one didn't work at all. Many commands have been tested with real hardware. But more work remains to be done. WIP: thd72 driver. More level, func, and parm stuff works. WIP: thd72 driver. Try to simplify the menu based interface. WIP: thd72 driver. First cut at get_channel(). Other cleanup. WIP: thd72 driver. More interfaces implemented. Other cleanup. Implement some more interfaces. Comment out get_chan_all_cb because the block read routine doesn't work. Fix a format so that it works with Windows. Can't test it because I have no Windows machines. Fix RFPOWER level for FT-450D. It uses 5-100, rather than 0-255 that the FT-450 does. In newcat_open(), initialize rig_id in case any subsequent commands need it. Some calls to thd72_get_menu_item where passing wrong values for range check. C-Elegans (1): Add ability to have rigctld display transverter frequency CJ (1): fix windows makefile Cedric DJ3CE (1): Add SWR get_level to K3 (KX3, KX2) Charles Suprin (7): Add file for TM-D710 support. Merge branch 'master' of ssh://hamlib.git.sourceforge.net/gitroot/hamlib/hamlib Add D710 to riglist. Add D710 code to kenwood library. Register D710 interface. Initial D710 Implementation. Register D710 interface. Charles Suprin, AA1VS (3): extend th_get_vfo_char to support D700 Changed th_set_freq to round and select step size to use. Allows 6.25kHz and 5kHz channelization. Use new th_set_freq for TM-D700 Chris Karpinsky, AA1VL (7): add serial_flush() method to clean rx buffer initial stab at this for the Yaesu FT-817 add ft817.* add ft817 bump the backend status to ALPHA Initial entry of cgirig giving ability to use hamlib from a web browser. increased post write delay to 300 Chris Ruvolo (4): TS-690: deal with optional tone board using TS-450 logic TS-690 does not implement the PC command to get/set output power level TS-690 does not implement the GT command to get/set AGC rate TS-690: bump version Christian Bayer (11): upstream 817 FT-817 power and SWR levels ft-857 power levels for 2m/70cm export correct function for wsjtx fixed cal table conversion added header use correct value divider update disable scaling fixed compile errors fixed merge errors and variable declarations Christoph Berg (2): ic7610: Re-add send_morse Implement netrigctl_stop_morse Christoph Nadig (1): Fix for setting power on Elecraft TRXs Chuck Hemker, N2POR (1): Use RIG_TARGETABLE_MODE in rig_set_mode and rig_get_mode Chuck Ritola (8): Use loop to ensure RS-HFIQ hears first command. Closes #730 Add ability to read TX drive level Implement board temperature reading for TEMP_METER Parse and store RS-HFIQ firmware version. Firmware version check before power meter query. Merge branch 'master' into rshfiq-aug2021 Map FCDPP LNA and Mixer Gain as PREAMP values. Closes #766 Map FCDPP LNA and Mixer Gain as PREAMP values. Closes #766 DJ3CE (1): Patch power reading of IC-705/-905 DL1YCF (6): Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Dale E. Edmons, KD7ENI (19): Added comments to commandline in rigctl (second time) --Dale Started TS-2000 update/overhaul --Dale Copied too much stuff, backed out what I broke. Bring ts2k.c more in line with current CVS. Changed ts2000.c to ts2000.h. Start of rig menuing functions. New file. Renamed ts2000.c.new ts2000.h Bring code more in line with CVS code. Changes often, so added status. Will delete when things stabilize. Corrected status to CVS branch. Renamed new ts2000.c to ts2000.h Wouldn't compile. Removed ts2k.c. Haven't got all new rig.h stuff removed. Temp kludge to make ts2k.c compile (keeps Hamlib from compiling!). Updated status. Added working TS-2000 files. There are some changes left out but this is the minimum I could commit and have a functional rig. The cost is that I've broken kylix and others that duplicate rig.h. I'm in the process of repairing the damage. Please be patient. I hope a day or so, but am asking for up to a week. E-mail me about *anything* you find broken. Kylix (and similar) is (are) known to not work. Changed name back to original. Had to re-run automake kenwood/Makefile. 1) Updated branch_ts2k with respect to HEAD. 2) Working ts2k_menu. (only in RIG_MODEL_TS2K) 3) Split TS-2000 into experimental and standard versions: RIG_MODEL_TS2000 = standard, RIG_MODEL_TS2K = experimental. 4) Basic command parser in tests/rc. Will open/close rig or copy a freq from one rig/vfo to another rig/vfo. Very cool. Very basic. Very experimental. 5) Added test programs. a) testcmd - calls parser (no command prompt yet!) b) testts2k - replacement for testrig (with trivial modification) c) testptt - testts2k/testrig should not transmit. TX stuff in testptt. 6) Used crowbar to merge HEAD into branch_ts2k. Working on clean-up. 7) I'm sure I've forgotten or neglected to mention some other stuff. Daniel Estévez (2): Fix DIG MODE for FT817-ND Fix DIG MODE for FT817-ND Daniele Forsi (5): Set the executable bits on py3test.py Fix spelling errors Fix more spelling errors Fix more spelling errors Fix typos Daniele Forsi IU5HKX (72): Fix a [missingInclude] "information" when running cppcheck --check-config The -M option needs an argument like its long version "multicast-addr" Fix lintian warning: macro 'RG' not defined Fix lintian warning: macro 'IN' not defined Fix spelling errors Remove unused includes related to times and dates Remove unused includes of math.h Remove unused includes Revert unwanted changes Remove unused includes of errno.h Remove unused include of amp_dummy.h Remove unused include of cm108.h Remove unused includes of fcntl.h Remove unused includes of frame.h Remove unused include of getopt.h Remove unused includes of gpio.h Remove unused includes of cal.h Remove unused include of usb_port.h Remove unused includes of ctype.h Remove unused include of stdbool.h Remove unused include of stdarg.h Remove unused include of stdlib.h [icom] Remove unused include of config.h [kenwood] Remove unused include of config.h [yaesu] Remove unused include of config.h [rotators] Remove unused include of config.h [tests] Remove unused include of config.h [rigs/*] Remove unused include of config.h [amplifiers] Remove unused include of config.h [extra] Remove unused include of config.h Add include/hamlib directory to all makefiles [icom] Fix includes [kenwood] Fix includes [yaesu] Fix includes [rigs/*] Fix includes [rotators] Fix includes [tests] Fix includes [amplifiers] Fix includes Update .gitignore Fix unterminated comment Fix include not found by cppcheck.sh Enable --show-conf for ampctl and ampctld Fix typos Fix include not found by cppcheck.sh also in the other branch of the "if" Fix passing one or more paths to ./cppcheck.sh Fix several cppcheck "missingInclude" informational messages Fix cppcheck "unmatchedSuppression" informational messages Add to .gitignore some files created during "make check" Fix cppcheck "missingInclude" informational message Fix Doxygen unmatched directives \cond and \endcond Fix Doxygen documentation for the Apex rotator Fix Doxygen documentation for the GRBLTRK rotators Fix typos Fix Doxygen comments Fix typos Remove duplicated conditions Fix initializer-overrides warnings by clang Fix typos Add/fix Doxygen comments Fix segfaults with malformed input and wrong command line arguments Fix segfaults with malformed input and wrong command line arguments Fix check for RIG_BUSBUSY Fix name of command in the usage and version texts Fix name of command in the version text Fix man page of rigctld Fix warning message for twiddle_rit Fix typos in man pages and other documentation Fix typos in comments Fix typos in messages Remove duplicated sentence Fix typos Remove unused and empty source files Dario Ventura (3): New Prosistel rotor backend from IZ7CRX Add elevation code to Prosistel backend TS2000 Satellite mode and Gpredict Dariusz Bismor, SQ9KEJ (1): rigmem: implement CSV file loading David Brewerton M0EZP (1): FT990UNI patch contribution from M0EZP David Fannin (1): Submission for new backend model (134) for Yaesu FT-DX1200 Davide Gerhard (3): tests/{memcsv.c,memsave.c}: partially revert commit 4072f9f4 ic746.c: correct chanbuf length, fix channel structure and support split ic746.c: add ic746pro_set_channel() to load memory from csv Dawid SQ6EMM (3): Add method to build inside docker Let SEND_MORSE and SEND_VOICE_MEM be announced as capabilities. Allow \send_voice_mem to be used over network and tested in dummy rig Dawid Szymanski (2): ICOM Voice Keyer implemented. typo fix Dhiru Kholia (1): Minor fixes for FT-747GX simulator Diane Bruce, VA3DB (5): - first cut at fixing configure to recognise --without-tcl-binding and --without-python-binding options - gt_HEADER_INTTYPES_H is definitely bogus here, leftover from what? - document debian/FreeBSD needs for AUTOMAKE etc. - add in libtoolize which should be there - These should have been commented out. - Extra comma on RIG_STATUS_BUGGY can cause a compiler error. Dieter Röver (1): Fix bug in vfo_comp calculation in Hamlib Ekki Plicht (DF4OR) (2): New model Icom IC-R8600 Patch for Icom DCS code handling Eli Schwartz (1): tests: fix compilation with modern compilers Elliott Liggett (1): Added functionality for the IC-7300 auto antenna tuner Eriks Dobelis (2): ft817: adding delay before next retry after returning from tx to rx ft817: Moving delay value into #define section of the header Ervin Hegedus (9): RIG_PASSBAND_NORMAL wasn't handled correctly when rig_set_mode() was called - fixed Fixed SWIG `Setting a const char * variable may leak memory' error Fixed Kenwood filter cmd when passband is set to 500Hz Merged from upstream Merge branch 'master' of http://git.code.sf.net/p/hamlib/code Added Lua binding and demo script Added new example to Python demo script (set/get float type level) Change variable length argument handling in affected functions Fix two typos Ervin Hegedüs (1): rig.swg: New properly formatted macro Evgeniy Titorenko (1): Add Radant AZV-1 Rotator controller protocol. Francois Retief (21): Added read_serial function to read strings from a port. Corrected some comments Added code to hexdump to right align ASCII dump column added private caps for rig termination character add private caps and more commands. Changed to a new transaction function and adde quite a few commands. add private caps to store the termination character of Kenwood rigs commands. added a kenwood_init and _cleanup routine for priv caps & priv data. Added a new function: LCD Lamp ON/OFF (for Kenwood TH-7DA) check trn state of rig in rig_open. Initial commit of Kylix binding New backend for rotators New RPC backend for rotators Added rot_move function Fix macro name Added rot_move function Added easycomm and rpcrot backends Fixed circular dependency for rpc.rigd and rpc.rotd regenerated Added IC-910 rig. Added constants for the IC-910 rig. Frank Goenninger (8): Add ADAT ADT-200A backend adat updates from Frank, DG1SBG ADAT fixes on Windows RIG ADAT: Adaption to firmware 1.40fb and transverter board. .gitignore: Ignore some macOS housekeeping files. Major code cleanup. Replace dyn. memory by static memory usage. FIXED: Source code inconsistency after major code change. FIXED: Incorrect usage of snprintf() argument for buffer length. Frank Singleton, VK3FCS (165): Initial revision Initial revision *** empty log message *** *** empty log message *** *** empty log message *** Initial revision Initial revision *** empty log message *** *** empty log message *** added build_all ,cleanall and verify targets *** empty log message *** initial top level makefile add some things initial import initial import initial import fixed some typos use rig_open and rig_close added rig_open and rig_close fixed cmd_sat_on / off added sat-on and sat_off to test changed cmd_get_rx_status, must do tx also updated test() all reads use while (1) and break added ../common as object path added rig_open and rig_close using rig_open and rig_close and serial.h use common dir for serial stuff use ft747 on serial port /dev/ttyS0 read uses while(1) and break use while(1) and break added read_sleep use read_sleep now from serial.h using read_sleep from serial.h had rx and tx status swapped (document error?) removed cmd_get_update using CVS instead of RCS directories use MODE_xx defines cannot use const int in case statements ?? so use #define instead use #defines for MODE_XXX used in case statements working out freq conversion, unfinished playing with test routines long int cmd_get_freq_mode_status_main_vfo(int fd, unsigned char *mode); long int cmd_get_freq_mode_status_main_vfo(int fd, unsigned char *mode) frq = cmd_get_freq_mode_status_main_vfo(fd, &mode); starting with the cmd_set commands now starting on cmd_set commands now starting on cmd_set_freq commands now add scanning todo now set sat rx and tx freq and mode also fix typo dump raw hex data when writing and reading trying some cms_set_freq_xxx commands added routines for dec <-> packed decimal conversion minor added generic hex dump routine, static void dump_hex(unsigned char *ptr, int size, int width); removed unwanted debug printf's removed dump_hex from here.. calc_freq_from_packed4 is about to be replaced calc_packed_from_char and calc_char_from_packed now here cleanup cleanup void dump_hex(unsigned char *ptr, int size, int width); adding dcs tables and repeater offset in Hz describe faulty yaesu documentation added README.license for GPL added GPL license info included full GPL license Updated docs to point to http://sourceforge.net/projects/hamlib/ and added a C code snippet on how to use the API. added -I$(COMMON_DIR) to find rig.h added -I$(COMMON_DIR) to find rig.h adding capabilities initial capabilities stuff starting to add rig_caps stuff starting to add rig_caps stuff starting to add rig_caps stuff. added GPL stuff and comments adding rig_caps stuff adding rig_cap stuff adding rig_caps stuff add capabilities and preferences adding rig_caps functionality adding rig_caps stuff frontend reduction on backend function namespace - phew !! frontend API clarification removed old open_port2() using old rig_caps fixed some typos, added 3 more candidates for API missing ; in some enums converting to frontend/backend structure compiles ok removed open_port() and write_block() removed open_port() and write_block() fixed typos, added &ft747_caps in rig_caps changing to frontend/backend style converting to frontend/backend style added 3 more cmd_* for API examples Example of setting rig Main VFO to 439.700 Mhz FM cleanup comments added extern const struct rig_caps ft747_caps; still thinking about set/get strategy minor updates added extra rig caps added some set/get examples with return code checking added testrig to Makefile, no linking yet added usleep to read_sleep() updated rig_caps structure *** empty log message *** test making a shared lib (at last) for the frontend - more todo test making a shared lib for the frontend - make hamlib describe frontend/backend structure updated code snippet example started ft747_set_ptt and ft747_set_vfo starting to implement set/get pairs added typedef enum ptt_type_e ptt_type_t; added VFO types to enum starting on libhamlib Makefile, added ./lib and ./include under common make, make install, and make clean work ok, using ./lib and ./include directories also. make, make install, and make clean work ok, using ./lib and ./include directories also. removed "make verify". Added reference to common/Makefile added printf("testrig:main() has been called \n"); for testing linking makefile for testing testrig linking alternative rig_base declaration removes references to rig_caps at compile time. should populate it another way -- FS added printf's to confirm rig.c (hamlib) is being called ok better libhamlib.so version :-) added ft847_open and ft847_close to enable CAT ON/OFF added ft747_open and ft747_close updated lib names for backend to libhamlib-xxxxx.so API updates - added set/get_mode merge with TRN stuff and add some set/get_mode and vfo stuff added post_write_delay cvs mails to hamlib-cvs-digest cvs mail update works ok :-) minor fixes updated ptt/mode/vfo added set/get freq to use generic bcd etc more set_freq() examples 1. Added VFO as target for some set/get cmds. 2. ./testrig still runs ok using RIG_VFO_CURR. minor update to active VFO handling in _set_vfo some new defines for FT747_VFO_A/B minor updates to active vfo handling added ptt handling example, stand back ! trying different approach to storing cmd sequence. _set_ptt is being converted. Needs tidying up though. Some sequences are complete, and can be read from static data. Incomplete sequences will eventually be copied form static declaration, and completed in priv data. Removed static stuff from functions. Also, begin to implement table driven command translation from API to rig native. priv now contains a cmd table that is used for backend commands towards rig. Added some new freq/mode combinations. converting ft847 to table driven, similar to ft747. more table driven stuff for ft847. cat/ptt/freq being converted. Added ft847_send_priv_cmd(), converted some part of API to use this. Added _set_mode to work now. TODO: put _send_priv_cmd into yaesu.[ch] so ft747 can use also. Turned on PTT also (stand back).. rig_cleanup and rig_close not calling backend removed unused calc_ functions. removed old API functions, general cleanup tested rig_close and rig_cleanup Initial release, common yaesu declareations etc. add version tag nseq uses YAESU_CMD_LENGTH Initial yaesu Makefile Moved from ft747 and ft847 dirs common yaesu handling common yaesu dir Begin to use common yaesu code general cleanup, added _send_priv_cmd added targetable_vfo value to caps minor cleanup ChangeLog history started Initial import for ChangeLog handling starting to convert rig struct to readable form more of convert rig struct to readable form Changelog update for HAMLIB-1.1.1 GeoBaltz (1): Merge branch 'master' into rp12 George Baltz N3GB (179): Add missing level definitions for TS-590SG Add routine to check input to <brand>_set_level ATTenuator level 0 should always be allowed - to turn it off. First round of level_gran additions. Do the check for min=max=0 the right way. Round 2. Enable first user of check_level_param Round 3 of level_gran updates. Remove hard-coded constants. Enable full level checking for TS-890S. Add default level values for Elecraft rigs. Update RIG_LEVEL_READONLY_LIST. Round 4 of level_gran updates. Fix the comment about float levels. Add Elecraft defaults to makefile. Fix typos (missing '('s ) in man pages. Add missing commands to man pages Avoid NULL dereference in debug statement. Use level_gran[] values in kenwood_get_level. Still more level_gran data. Yet more missing level defs. Enable level_gran[] checking for all calls to kenwood_set_level. Add basis for level_gran use in newcat.c Convert set/get AF, RF to use level_gran info. Convert MICGAIN to level_gran Convert COMP Convert ANTIVOX & VOXGAIN New for old - update level_gran for ft9000Old Fix segfault on rigctl exit Convert SQL to use level_gran data. Convert MONITOR_GAIN Convert RFPOWER to level_gran usage Convert NR to use level_gran Fix inverted VHF/UHF BANDSELECT labels Fix duplicate level definition Add RIG_LEVEL_USB_AF_INPUT to RIG_LEVEL_FLOAT_LIST Implement RIG_LEVEL_USB_AF[_INPUT] for TS-890S Enable set_level checking for all Yaesu/newcat rigs. Replace hard coded constants with table values f conversion already rounds, so no external rounding needed. Move meter reader to kenwood.c, so it can be used by ts990.c Use general meter reader to get SWR value for TS-990. Revert "Fix FTDX101MP RFPOWER to allow 200W" Unnecessary code, breaks other levels. Fix FTDX101MP RFPOWER the right way. Restore shared library ABI compatibility with previous hamlibs Add basic support for transparent access to port structures. More Kenwood rigs ported to new access macros. Convert the remaining files in rigs/kenwood/ Define different (disambiguated) names for external use. Fix copy/paste errors in xiegu.c More typos/copy/paste errors in rigs/icom Add cache to the MACRO/porting list Implement function to get structure address Function to get amplifier port address Convert src/amplifier.c to new MACROs/access method. Add function to get rotator port address(es) Port conf.c to use access macros Convert more files in src/ Pointerize all the ports in src/rig.c Need more parens to work in expressions. Update example.c Avoid using raw rigport, in two different ways. Fix variable name. Implement ctcss tone for TS-890S. Fix off by one error in tones for TS-590/890/990 Fix some rigs I found docs for - more needed Add funcs to set/clear TONE/CTCSS modes for TS-890S Add remaining rigs, matching old behavior. Fix copy/paste foulup. Drat. Fix more copy/paste SNAFUs Update NEWS with pointer conversion macros. Make simulator match the Real World(TM) Add missing P4 Repair RIG_LEVEL_STRENGTH Add calibration table for TS-890S RFPOWER_METER_WATTS Bring simts890.c a little closer to the real thing Still needs more work. Fix icom_set_powerstat() to correctly save&restore rp->retry, rp->timeout_retry Convert some cache references to pointers Convert a few more cache pointers Cache pointers for src/rig.c Issue #1420 again. Convert rot_conf.c and amp_conf.c to pointers Update dcdport usage in tests/*.c Issue #1445 Play catchup with split/VFO revision. Fix typos in rebase fixups. Start converting rigs/* This commit does rigs/adat/, rigs/alinco/ and rigs/aor/. Port rigs/anytone/, rigs/barrett/ and rigs/codan/ Fixup git rebase SMerge error. Convert rigs/dorji, rigs/drake, rigs/elad. Convert rigs/dummy/ Convert rigs/flexradio, rigs/gomspace, rigs/jrc, rigs/kachina Convert rigs/icom/, rigs/kit/ Convert rigs/loew/, rigs/pcr/, rigs/prm80/, rigs/racal/ and rigs/rs/ Convert rigs/mds/, rigs/skanti/, rigs/tapr/ and rigs/tentec/ Do rigs/tuner/, rigs/uniden/, rigs/winradio/ & rigs/wj/ Convert rigs/yaesu Minor cleanup of ts890.c Update simts890.c Make IF return RX/TX status Document IF data, reformat IF & SF commands Convert all port references in amplifiers/ to pointers. Convert first part of rotators/ Finish rotators/ Add STATE to the list of pointers Convert tests/* to pointers Finish tests/* Update some of rigs/* to use pointer to cache Use pointers for all cache references in rigs/* All struct rig_cache referenced converted to pointers. Start converting rigs/* to use pointers to state More pointers to state More pointers to state Pointerize all state references in rigs/kenwood/* Add macros for amplifier and rotator state pointers. Fix incorrect port read for elevation Normalize some debug/trace output. More state pointer changes Convert macros in rig.h to use STATE() More state pointer changes Still more state pointer conversions. More state pointers - mostly sed i Pointerize state references in Tentec rigs. And another batch... Use sed -i on all in rigs/kit/ More sed -i with manual fixups. Convert all of rigs/* except rigs/icom and rigs/yaesu First set of rigs/icom/* state pointer macros. Convert rigs/icom/icom.[ch] First batch of state pointers in rigs/yaesu/ Next batch of state pointers Convert newcat.c FIx the stragglers Revert "Fix rotorez set_conf in both rotctl and rotctld -- since it needs to be done after rot_open" Definitions, storage and infrastructure for queuing config commands Implement the first user of the deferred set_conf entries. Fix other rotators that try to do I/O before open. Finish all port initialization before allowing I/O. Balance ENTERFUNC/RETURNFUNC, ENTERFUNC2/RETURNFUNC2, ELAPSED1/ELAPSED2 usage Balance ENTERFUNC/RETURNFUNC usage More of the balancing act. More balancing Finish balancing Get rid of some false positives for func_chk Fix func_chk to do useful things Fix ENTERFUNC/RETURNFUNC imbalances found by repaired func_chk More pointer conversions for rig->state. More pointerizations in src/* Convert all rig->state. references in src/rig.c to pointers. Play catch-up with recent code. Use pointers for amp->state references Use macros/pointers for rot->state references More amplifier and rotator state changes Yet another batch of state pointers Catch up with latest code Balance new code. Fix wrong error message for SF1 command. Make SNPRINTF do something useful for Hamlib Remove dead code Declare local functions as local Implement rig_get_clock for TS-890S Fix wrong utc_offset Use a reliable source for TZ offset Add just enough to simts890.c to fake kenwood_get_clock. Tweaks to simts890.c Fix negative fractional UTC offsets Implement kenwood_set_clock Fix command lengths for TS-890S set/get_antenna. Still more tweaks to simts890.c Replace raw write() calls with macro More fixes for simts890.c Reduce dependency on include/hamlib/rig.h Convert VFOs into objects(structs). Get rid of ghost commands. More VFOs as objects. Change FA/FB/SF to use band memories Implement step sizes for some freq changes Add DN/UP, FC, and UD commands to simts890.c Correct some split problems and connect VFO ops Clean up Make FR & FT commands aware of new vfo structs. Add traffic tracing to simts890.c Annotate legacy (undocumented) commands in simts890.c Add RIT/XIT commands (FS, RC, RD/RU, RF, RT, XT) to simts890.c Astyle simts890.c Update TS-890S and TS-990S RIT/XIT handling Factor out TS-890S and TS-990S from kenwood_get_split_vfo_if() MACROize new code. Minimal support for KY commands in simts890.c Use short (i.e., variable length) messages in kenwood_send_morse() Fix porting unneeded code Fix unbalanced ENTERFUNC/RETURNFUNC pairs in icom.c Georges Auberger (1): Add product id for CM119B chip. Used in KURI adapter designed by W7NX. Gerardo Richarte (1): gs232b.c: Improve get_position string parsing Gisle Vanem (1): Enable verbose mode in bindings/pytest.py Greg Troxel (1): Warning about dodgy code in drake.c HB9EIK (4): Initial release ELAD FDM DUO Update ELAD files Update build system for ELAD backend Update copyright for fdm_duo.c Hans Van Ingelgom (1): Added Peaberry V1 and V2 models Hegedüs Ervin (4): Merge branch 'master' of http://git.code.sf.net/p/hamlib/code Check SWIG string functions for some languages Leave off multiply 'typedef const char * const_char_string' definition (in rig.swg and rotator.swg) Fixed int[10] type variable error in bindings Jae Stutzman (5): Added HPSDR backend Clears potential garbage data in read buffer prior to command being sent Updated PiHPSDR backend defaults Use Windows ioctlsocket to avoid buffer overrun Added new AGC control for PiHPSDR James Watson, HZ1JW (2): Added ic7200 to icom Corrected modes in ic7200.c Jaroslav Skarvada (2): Fix hardcoded pcconfig libdir Fix serial_port DCD squelch Jeroen Vreeken (9): Add support for GPIO PTT. Add missing breaks and improve error messages Add Dorji DRA818 modules (VHF and UHF variants) Also works with NiceRF SA818 modules Merge branch 'master' of git://git.code.sf.net/p/hamlib/code Small fixes to DRA818 volume handling Add GPIO and GPION options for DCD. Also bump abi version since the config params struct needed resizing. Merge branch 'master' of github.com:Hamlib/Hamlib GPIO working after debugging Merge branch 'master' of github.com:Hamlib/Hamlib Johan Ström (1): Backup serial options on open, restore on close John Paul Adrian Glaubitz (1): dummy/dummy.c: Fix unaligned access in dummy_get_level() Jonathan Bastien-Filiatrault (3): Correct FT; command that does not exist on the FT-891. Allow setting split mode without smashing the VFOB frequency. Scale power values correctly for Yaesu FT-891. Jonny public (1): ether6: New rotor backend from Jonny, DG9OAA Joop Stakenborg, PG4I (116): update (kenwood is not a WIP anymore) first implementation of kenwood_get_ptt enable get_ptt for this rig add get_ptt for this rig additional protocol checks and cleanups fix signal strength add RIG_LEVEL_RFPOWER fix_compilation add rit capabilities bring comands in sync with other kenwood rigs add rit capabilities send_morse added explain set_rit fix get_ctcss_tone by using IF command typo add xit capabilities add set_level and get_level bring rig in sync with other kenwood rigs bump version numbers nothing returned by the rig for these commands fix get_level_agc fix set_level_agc getting in sync with the debian 1.1.2 package remove template files initial checkin make this NMU for now correct the path for copying files in the apropriate package do not install the old changelog versioning not used move .la, .a, .so files to the correct package include rpc.rigd and rpc.rotd include pkgconfig support don't create shlibs file for drake, jrc and easycomm libraries move hamlib1 to the top so the documentations gets installed correctly make building easier, call autogen.sh INSTALL file not used build the documentation package we don't have to call configure twice cleanup remove some build dependencies and don't call autogen.sh ts450s uses IF command for get_vfo, get_freq and get_mode minor bugfix, bump to beta add CWR and RTTYR this rig does not have a command for reading IF bandwidth retrieve passband with FW command passband should be calculated after mode is set use rig_passband_normal here various lintian fixes one last lintian fix use FW command to set bandpass cw filters for normal, narrow and wide more filters get_mode and set_mode for this rig filters some comments correct rit add get_level cleanups more modes set_level for this rig should use kenwood_get_freq minor bug add rpm support need hamlib.spec for 'make rpm' make rpm will fail with a '-' in the version number a working spec file update debian build for rotorez and fodtrack, minor fixes unofficial fix the debian build script, new maintainer update the debian build tree to the latest correct baudrate for the ts-950, use the information field IF for get_vfo by default (supported by most kenwood rigs), ts870s will use the much shorter FR command for get_vfo correct baudrate for some rigs and add ts-950 to the id_list ts-850 returns ID 009 according to martin, OK1RR fix 'make rpm' build for hamlib-1.1.5 not needed sync with latest debian package and add tcl, c++, python and perl bindings correct spelling s-meter calibration by Matt Dawson basic functionality by Matt Dawson, tested with grig and xlog lifetime e-mail address :-) sync with latest debian release more functionality, mode and frequency get by Matt Dawson only switch tx vfo is split is on set attenuator level export convenience function get_kenwood_level, so they can be use by other backends add RIG_LEVEL_SWR, copied from ts850 add RIG_LEVEL_COMP, RIG_LEVEL_AGC, copied from ts850 bump version, no preamp really add ALC read this time, only change meter if needed, cleanups split has_get_level and has_set_level fix coding, python2.4 compatibility fix compilation warnings more compilation warnings nuked, use tone_t for ctcss_list use size_t fix more compilation warnings, int->size_t, unsigned char->char more unsigned char->char and int->size_t transitions set functions should have ack_len zero, also need to check other rigs make sure we use ack_len=0 for functions that return nothing (set functions) more unsigned char->char and int->size_t transitions extend rig capabilities, patch by Tom, DL1JBE add RIG_LEVEL_STRENGTH to caps, set post write delay to 0 and do some cleanups re-establish post-write delay remove rpath backdoor long long really needed here? updates by matt, GW0VNR long long really needed here? - patch by diane Bruce distribute footer.html correct set/get power try better s-meter readings packages renamed obsolete sync with latest debian release no need to link to python sync with latest, python changes another debian update: use 'make distclean' in the rules file Joshua Lynch (4): initial SatEL rotator support factored io functions out. improve reliability...i hope. fixed state bug. reconnecting would disable motion every other connect. merged upstream/master into master Juergen Rinas, DC3BW (4): added antenna switching... added a few get_level/set_level get_function/set_functions. * fixed set_func (concerns most kenwood rigs) * added 115200 to the list of baudrates in probeallrigs_kenwood() * fixed ptt * expanded frequency range (available after firmware update) according to http://www.kenwood.com/i/products/info/amateur/ts_480/firmware/pop_ts480_e.htm * added tuning steps * added filter list * increased version info Julian Cable (3): WinRadio G313: Updates from Julian Campbell wrg313api.c: Fix Win32 (MinGW) build issue Use Automake conditionals for G313 build Juuso Lehtinen (4): Add get & set RIG_LEVEL_NB for Yaesu rigs. Fix set level METER for Yaesu rigs Add ID, VD & Comp meter cals for FT991 Add better defaults for newcat meter cals Kamal Mostafa (3): Fix mingw32 cross-compilation procedure and config Do not let macros/ac_python_devel.m4 trash CPPFLAGS and LIBS Fix spelling errors Kamal Mostafa, KA6MAL (19): Hard-code length of hamlib_version and hamlib_copyright strings to stay compliant with hamlib 1.2 ABI and avoid spurious "consider relinking" warnings from dynamic loader. Removed stale debian/ dir from the hamlib source (it is maintained in the Debian diff and isn't useful in this tree). Update bundled libltdl (libtool) to version 2.2.6b to address CVE-2009-3736. - autogen.sh: never downgrade our bundled libltdl/ (only run libtoolize if system version is newer than our bundled version). - autofixer.sh: script removed as libtool 1.x is no longer allowed. - configure.ac: (not enabled) optional setting to deprecate embedded libltdl/. Added Kamal Mostafa and Jaime Robles as maintainers for Debian packaging. Fix build --with-python-binding breakage introduced by Python 2.6: Do not reference LOCALMODLIBS, else it will add libraries to our link line (e.g -lssl) which are not necessarily installed. Elektor 507 frequency selection resolution improvements, contributed by John Nogatch AC6SL. Move backend libraries into /usr/lib/hamlib directory. Force automake to invoke the C (not C++) linker in kit/ when no C++ is in use. python: fix --with-python-bi... [truncated message content] |
From: n0nb <n0...@us...> - 2025-01-21 09:46:39
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via bb4eb78d22c312e708cf21a614019970f023b5a4 (commit) via 5f43d77a813b9251da1f833d260a8e0d7ef8d7f9 (commit) via 3ccdabd9b9a3c16be5ecd2e6f40e450700b69ffc (commit) via abd6b16ff248e80585c520bd32eaf5ca8c424f15 (commit) via 130cc330a2e04d6eabff7d4dfa4de7bfe2bd95e3 (commit) via ccaec5c4dd0d693d97e056bd4d42b2b93de65ee1 (commit) via 3160921db61c9b7fe21a27c2e103e976d635beab (commit) from 198c14818a5c0f23a1dc8bd9bd577a4b4c5f2957 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit bb4eb78d22c312e708cf21a614019970f023b5a4 Author: Michael Black W9MDB <mdb...@ya...> Date: Mon Jan 20 23:05:50 2025 -0600 Update NEWS diff --git a/NEWS b/NEWS index df5ce61f5..03f5ee844 100644 --- a/NEWS +++ b/NEWS @@ -21,6 +21,7 @@ Version 4.6.1 * FLRig to add DATA-U DATA-L modes * Fix TS570 RIG_LEVEL_STRENGTH with cal table * Remove get_powerstat from IC785X -- not supported + * Fix SDRConsole by removing lots of things it does not have Version 4.6 * send_raw can now take hex digits as colon-separated -- e.g. send_raw icom xfe:xfe:x94:xe0:03:xfd commit 5f43d77a813b9251da1f833d260a8e0d7ef8d7f9 Merge: 3ccdabd9b abd6b16ff Author: Michael Black W9MDB <mdb...@ya...> Date: Mon Jan 20 23:04:58 2025 -0600 Merge branch 'master' of github.com:Hamlib/Hamlib commit 3ccdabd9b9a3c16be5ecd2e6f40e450700b69ffc Author: Michael Black W9MDB <mdb...@ya...> Date: Mon Jan 20 23:04:24 2025 -0600 Fix SDRConsole by removing a lot of things that it does not have diff --git a/NEWS b/NEWS index 37ec46881..df5ce61f5 100644 --- a/NEWS +++ b/NEWS @@ -12,6 +12,16 @@ Version 5.x -- future * rot_get_conf deprecated and replaced by rot_get_conf2 * Change FT1000MP Mark V model names to align with FT1000MP +Version 4.6.1 + * Fix C++ builds failing on rig_list_foreach function + * Fix IC9100 rigctld startup to end up on VFOA + * Fix grig build by removing sys/socket.h -- apparently not needed + * Add new QMX entry to fix incompability with QDX + * Fix IC746/PROT to not use data byte + * FLRig to add DATA-U DATA-L modes + * Fix TS570 RIG_LEVEL_STRENGTH with cal table + * Remove get_powerstat from IC785X -- not supported + Version 4.6 * send_raw can now take hex digits as colon-separated -- e.g. send_raw icom xfe:xfe:x94:xe0:03:xfd * Add IC7760 diff --git a/rigs/kenwood/ts2000.c b/rigs/kenwood/ts2000.c index 44d3e9b04..7e24a20ef 100644 --- a/rigs/kenwood/ts2000.c +++ b/rigs/kenwood/ts2000.c @@ -39,10 +39,15 @@ RIG_LEVEL_MONITOR_GAIN|RIG_LEVEL_NB|RIG_LEVEL_NR|RIG_LEVEL_PREAMP|RIG_LEVEL_COMP|RIG_LEVEL_ATT|RIG_LEVEL_VOXDELAY|RIG_LEVEL_VOXGAIN|RIG_LEVEL_BKIN_DLYMS| \ RIG_LEVEL_METER|RIG_LEVEL_SWR|RIG_LEVEL_COMP_METER|RIG_LEVEL_ALC|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_SLOPE_HIGH|RIG_LEVEL_SLOPE_LOW) + #define TS2000_LEVEL_SET (RIG_LEVEL_RFPOWER|RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_SQL|RIG_LEVEL_AGC|RIG_LEVEL_MICGAIN|RIG_LEVEL_KEYSPD|RIG_LEVEL_CWPITCH| \ RIG_LEVEL_MONITOR_GAIN|RIG_LEVEL_NB|RIG_LEVEL_NR|RIG_LEVEL_PREAMP|RIG_LEVEL_COMP|RIG_LEVEL_ATT|RIG_LEVEL_VOXDELAY|RIG_LEVEL_VOXGAIN|RIG_LEVEL_BKIN_DLYMS| \ RIG_LEVEL_METER|RIG_LEVEL_SLOPE_HIGH|RIG_LEVEL_SLOPE_LOW) +#define SDRCONSOLE_LEVEL_GET (|RIG_LEVEL_AGC|RIG_LEVEL_STRENGTH|RIG_LEVEL_METER|RIG_LEVEL_SLOPE_HIGH|RIG_LEVEL_SLOPE_LOW) +#define SDRCONSOLE_LEVEL_SET (RIG_LEVEL_NONE) + + #define TS2000_FUNC_ALL (RIG_FUNC_NB|RIG_FUNC_COMP|RIG_FUNC_VOX|RIG_FUNC_NR|RIG_FUNC_NR|RIG_FUNC_BC|RIG_FUNC_BC2|RIG_FUNC_RIT|RIG_FUNC_XIT| \ RIG_FUNC_TUNER|RIG_FUNC_MON|RIG_FUNC_FBKIN|RIG_FUNC_LOCK|RIG_FUNC_TONE|RIG_FUNC_TSQL|RIG_FUNC_ANF) @@ -1939,7 +1944,7 @@ struct rig_caps sdrconsole_caps = RIG_MODEL(RIG_MODEL_SDRCONSOLE), .model_name = "SDRConsole", .mfg_name = "SDR Radio", - .version = BACKEND_VER ".2", + .version = BACKEND_VER ".3", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -2142,46 +2147,46 @@ struct rig_caps sdrconsole_caps = .rig_cleanup = kenwood_cleanup, .set_freq = kenwood_set_freq, .get_freq = kenwood_get_freq, - .set_rit = ts2000_set_rit, - .get_rit = ts2000_get_rit, - .set_xit = ts2000_set_rit, - .get_xit = ts2000_get_rit, + //.set_rit = ts2000_set_rit, + //.get_rit = ts2000_get_rit, + //.set_xit = ts2000_set_rit, + //.get_xit = ts2000_get_rit, .set_mode = kenwood_set_mode, .get_mode = kenwood_get_mode, .set_vfo = kenwood_set_vfo, .get_vfo = kenwood_get_vfo_if, .set_split_vfo = kenwood_set_split_vfo, .get_split_vfo = kenwood_get_split_vfo_if, - .set_ctcss_tone = kenwood_set_ctcss_tone_tn, - .get_ctcss_tone = kenwood_get_ctcss_tone, - .set_ctcss_sql = kenwood_set_ctcss_sql, - .get_ctcss_sql = kenwood_get_ctcss_sql, + //.set_ctcss_tone = kenwood_set_ctcss_tone_tn, + //.get_ctcss_tone = kenwood_get_ctcss_tone, + //.set_ctcss_sql = kenwood_set_ctcss_sql, + //.get_ctcss_sql = kenwood_get_ctcss_sql, .get_ptt = kenwood_get_ptt, .set_ptt = kenwood_set_ptt, - .get_dcd = kenwood_get_dcd, - .set_func = ts2000_set_func, - .get_func = ts2000_get_func, + //.get_dcd = kenwood_get_dcd, + //.set_func = ts2000_set_func, + //.get_func = ts2000_get_func, .set_level = ts2000_set_level, .get_level = ts2000_get_level, - .set_ext_func = ts2000_set_ext_func, - .get_ext_func = ts2000_get_ext_func, - .set_ext_level = ts2000_set_ext_level, - .get_ext_level = ts2000_get_ext_level, - .set_ant = kenwood_set_ant, - .get_ant = kenwood_get_ant, - .send_morse = kenwood_send_morse, - .wait_morse = rig_wait_morse, - .send_voice_mem = kenwood_send_voice_mem, - .stop_voice_mem = kenwood_stop_voice_mem, - .vfo_op = kenwood_vfo_op, - .scan = kenwood_scan, - .set_mem = kenwood_set_mem, - .get_mem = kenwood_get_mem, - .get_channel = ts2000_get_channel, - .set_channel = ts2000_set_channel, - .set_trn = kenwood_set_trn, - .get_trn = kenwood_get_trn, - .set_powerstat = kenwood_set_powerstat, + //.set_ext_func = ts2000_set_ext_func, + //.get_ext_func = ts2000_get_ext_func, + //.set_ext_level = ts2000_set_ext_level, + //.get_ext_level = ts2000_get_ext_level, + //.set_ant = kenwood_set_ant, + //.get_ant = kenwood_get_ant, + //.send_morse = kenwood_send_morse, + //.wait_morse = rig_wait_morse, + //.send_voice_mem = kenwood_send_voice_mem, + //.stop_voice_mem = kenwood_stop_voice_mem, + //.vfo_op = kenwood_vfo_op, + //.scan = kenwood_scan, + //.set_mem = kenwood_set_mem, + //.get_mem = kenwood_get_mem, + //.get_channel = ts2000_get_channel, + //.set_channel = ts2000_set_channel, + //.set_trn = kenwood_set_trn, + //.get_trn = kenwood_get_trn, + //.set_powerstat = kenwood_set_powerstat, .get_powerstat = kenwood_get_powerstat, .get_info = kenwood_get_info, .reset = kenwood_reset, commit abd6b16ff248e80585c520bd32eaf5ca8c424f15 Merge: ccaec5c4d 130cc330a Author: Nate Bargmann <n0...@n0...> Date: Mon Jan 20 20:06:26 2025 -0600 Merge pull request #1663 from Hamlib/revert-1662-Hamlib-4.6.1 Revert "Prepare for 4.6.1 release" commit 130cc330a2e04d6eabff7d4dfa4de7bfe2bd95e3 Author: Nate Bargmann <n0...@n0...> Date: Mon Jan 20 20:06:11 2025 -0600 Revert "Prepare for 4.6.1 release" diff --git a/configure.ac b/configure.ac index 609db450d..9bf5390d2 100644 --- a/configure.ac +++ b/configure.ac @@ -14,7 +14,7 @@ dnl Please do not use '-' in the version number, as package managers will fail, dnl however, the use of '~' should be fine as apt (others?) will treat dnl it as an earlier version than the actual release. TNX KA6MAL dnl PACKAGE_NAME + " " + PACKAGE_VERSION must not exceed 20 chars! -AC_INIT([Hamlib],[4.6.1],[ham...@li...],[hamlib],[http://www.hamlib.org]) +AC_INIT([Hamlib],[4.7~git],[ham...@li...],[hamlib],[http://www.hamlib.org]) #AC_INIT([PRODUCT_NAME], [Hamlib]) #AC_DEFINE([Hamlib], [PRODUCT_VERSION_RESOURCE]) @@ -76,7 +76,7 @@ dnl See README.release on setting these values # Set them here to keep c++/Makefile and src/Makefile in sync. ABI_VERSION=4 ABI_REVISION=6 -ABI_PATCH=1 +ABI_PATCH=0 ABI_AGE=0 AC_DEFINE_UNQUOTED([ABI_VERSION], [$ABI_VERSION], [Frontend ABI version]) commit ccaec5c4dd0d693d97e056bd4d42b2b93de65ee1 Merge: 198c14818 3160921db Author: Nate Bargmann <n0...@n0...> Date: Mon Jan 20 20:05:51 2025 -0600 Merge pull request #1662 from N0NB/Hamlib-4.6.1 Prepare for 4.6.1 release ----------------------------------------------------------------------- Summary of changes: NEWS | 11 +++++++++ rigs/kenwood/ts2000.c | 67 +++++++++++++++++++++++++++------------------------ 2 files changed, 47 insertions(+), 31 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: n0nb <n0...@us...> - 2025-01-21 09:45:11
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, Hamlib-4.6.1 has been updated via cb77f344bf52a36b5a2f24f1aaffc7ab5cc1cbe9 (commit) via 9292167e5a311920a6e24d06bab27a3c6e2c0b14 (commit) from 3160921db61c9b7fe21a27c2e103e976d635beab (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit cb77f344bf52a36b5a2f24f1aaffc7ab5cc1cbe9 Author: Michael Black W9MDB <mdb...@ya...> Date: Mon Jan 20 23:05:50 2025 -0600 Update NEWS (cherry picked from commit bb4eb78d22c312e708cf21a614019970f023b5a4) diff --git a/NEWS b/NEWS index df5ce61f5..03f5ee844 100644 --- a/NEWS +++ b/NEWS @@ -21,6 +21,7 @@ Version 4.6.1 * FLRig to add DATA-U DATA-L modes * Fix TS570 RIG_LEVEL_STRENGTH with cal table * Remove get_powerstat from IC785X -- not supported + * Fix SDRConsole by removing lots of things it does not have Version 4.6 * send_raw can now take hex digits as colon-separated -- e.g. send_raw icom xfe:xfe:x94:xe0:03:xfd commit 9292167e5a311920a6e24d06bab27a3c6e2c0b14 Author: Michael Black W9MDB <mdb...@ya...> Date: Mon Jan 20 23:04:24 2025 -0600 Fix SDRConsole by removing a lot of things that it does not have (cherry picked from commit 3ccdabd9b9a3c16be5ecd2e6f40e450700b69ffc) diff --git a/NEWS b/NEWS index 37ec46881..df5ce61f5 100644 --- a/NEWS +++ b/NEWS @@ -12,6 +12,16 @@ Version 5.x -- future * rot_get_conf deprecated and replaced by rot_get_conf2 * Change FT1000MP Mark V model names to align with FT1000MP +Version 4.6.1 + * Fix C++ builds failing on rig_list_foreach function + * Fix IC9100 rigctld startup to end up on VFOA + * Fix grig build by removing sys/socket.h -- apparently not needed + * Add new QMX entry to fix incompability with QDX + * Fix IC746/PROT to not use data byte + * FLRig to add DATA-U DATA-L modes + * Fix TS570 RIG_LEVEL_STRENGTH with cal table + * Remove get_powerstat from IC785X -- not supported + Version 4.6 * send_raw can now take hex digits as colon-separated -- e.g. send_raw icom xfe:xfe:x94:xe0:03:xfd * Add IC7760 diff --git a/rigs/kenwood/ts2000.c b/rigs/kenwood/ts2000.c index 44d3e9b04..7e24a20ef 100644 --- a/rigs/kenwood/ts2000.c +++ b/rigs/kenwood/ts2000.c @@ -39,10 +39,15 @@ RIG_LEVEL_MONITOR_GAIN|RIG_LEVEL_NB|RIG_LEVEL_NR|RIG_LEVEL_PREAMP|RIG_LEVEL_COMP|RIG_LEVEL_ATT|RIG_LEVEL_VOXDELAY|RIG_LEVEL_VOXGAIN|RIG_LEVEL_BKIN_DLYMS| \ RIG_LEVEL_METER|RIG_LEVEL_SWR|RIG_LEVEL_COMP_METER|RIG_LEVEL_ALC|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_SLOPE_HIGH|RIG_LEVEL_SLOPE_LOW) + #define TS2000_LEVEL_SET (RIG_LEVEL_RFPOWER|RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_SQL|RIG_LEVEL_AGC|RIG_LEVEL_MICGAIN|RIG_LEVEL_KEYSPD|RIG_LEVEL_CWPITCH| \ RIG_LEVEL_MONITOR_GAIN|RIG_LEVEL_NB|RIG_LEVEL_NR|RIG_LEVEL_PREAMP|RIG_LEVEL_COMP|RIG_LEVEL_ATT|RIG_LEVEL_VOXDELAY|RIG_LEVEL_VOXGAIN|RIG_LEVEL_BKIN_DLYMS| \ RIG_LEVEL_METER|RIG_LEVEL_SLOPE_HIGH|RIG_LEVEL_SLOPE_LOW) +#define SDRCONSOLE_LEVEL_GET (|RIG_LEVEL_AGC|RIG_LEVEL_STRENGTH|RIG_LEVEL_METER|RIG_LEVEL_SLOPE_HIGH|RIG_LEVEL_SLOPE_LOW) +#define SDRCONSOLE_LEVEL_SET (RIG_LEVEL_NONE) + + #define TS2000_FUNC_ALL (RIG_FUNC_NB|RIG_FUNC_COMP|RIG_FUNC_VOX|RIG_FUNC_NR|RIG_FUNC_NR|RIG_FUNC_BC|RIG_FUNC_BC2|RIG_FUNC_RIT|RIG_FUNC_XIT| \ RIG_FUNC_TUNER|RIG_FUNC_MON|RIG_FUNC_FBKIN|RIG_FUNC_LOCK|RIG_FUNC_TONE|RIG_FUNC_TSQL|RIG_FUNC_ANF) @@ -1939,7 +1944,7 @@ struct rig_caps sdrconsole_caps = RIG_MODEL(RIG_MODEL_SDRCONSOLE), .model_name = "SDRConsole", .mfg_name = "SDR Radio", - .version = BACKEND_VER ".2", + .version = BACKEND_VER ".3", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -2142,46 +2147,46 @@ struct rig_caps sdrconsole_caps = .rig_cleanup = kenwood_cleanup, .set_freq = kenwood_set_freq, .get_freq = kenwood_get_freq, - .set_rit = ts2000_set_rit, - .get_rit = ts2000_get_rit, - .set_xit = ts2000_set_rit, - .get_xit = ts2000_get_rit, + //.set_rit = ts2000_set_rit, + //.get_rit = ts2000_get_rit, + //.set_xit = ts2000_set_rit, + //.get_xit = ts2000_get_rit, .set_mode = kenwood_set_mode, .get_mode = kenwood_get_mode, .set_vfo = kenwood_set_vfo, .get_vfo = kenwood_get_vfo_if, .set_split_vfo = kenwood_set_split_vfo, .get_split_vfo = kenwood_get_split_vfo_if, - .set_ctcss_tone = kenwood_set_ctcss_tone_tn, - .get_ctcss_tone = kenwood_get_ctcss_tone, - .set_ctcss_sql = kenwood_set_ctcss_sql, - .get_ctcss_sql = kenwood_get_ctcss_sql, + //.set_ctcss_tone = kenwood_set_ctcss_tone_tn, + //.get_ctcss_tone = kenwood_get_ctcss_tone, + //.set_ctcss_sql = kenwood_set_ctcss_sql, + //.get_ctcss_sql = kenwood_get_ctcss_sql, .get_ptt = kenwood_get_ptt, .set_ptt = kenwood_set_ptt, - .get_dcd = kenwood_get_dcd, - .set_func = ts2000_set_func, - .get_func = ts2000_get_func, + //.get_dcd = kenwood_get_dcd, + //.set_func = ts2000_set_func, + //.get_func = ts2000_get_func, .set_level = ts2000_set_level, .get_level = ts2000_get_level, - .set_ext_func = ts2000_set_ext_func, - .get_ext_func = ts2000_get_ext_func, - .set_ext_level = ts2000_set_ext_level, - .get_ext_level = ts2000_get_ext_level, - .set_ant = kenwood_set_ant, - .get_ant = kenwood_get_ant, - .send_morse = kenwood_send_morse, - .wait_morse = rig_wait_morse, - .send_voice_mem = kenwood_send_voice_mem, - .stop_voice_mem = kenwood_stop_voice_mem, - .vfo_op = kenwood_vfo_op, - .scan = kenwood_scan, - .set_mem = kenwood_set_mem, - .get_mem = kenwood_get_mem, - .get_channel = ts2000_get_channel, - .set_channel = ts2000_set_channel, - .set_trn = kenwood_set_trn, - .get_trn = kenwood_get_trn, - .set_powerstat = kenwood_set_powerstat, + //.set_ext_func = ts2000_set_ext_func, + //.get_ext_func = ts2000_get_ext_func, + //.set_ext_level = ts2000_set_ext_level, + //.get_ext_level = ts2000_get_ext_level, + //.set_ant = kenwood_set_ant, + //.get_ant = kenwood_get_ant, + //.send_morse = kenwood_send_morse, + //.wait_morse = rig_wait_morse, + //.send_voice_mem = kenwood_send_voice_mem, + //.stop_voice_mem = kenwood_stop_voice_mem, + //.vfo_op = kenwood_vfo_op, + //.scan = kenwood_scan, + //.set_mem = kenwood_set_mem, + //.get_mem = kenwood_get_mem, + //.get_channel = ts2000_get_channel, + //.set_channel = ts2000_set_channel, + //.set_trn = kenwood_set_trn, + //.get_trn = kenwood_get_trn, + //.set_powerstat = kenwood_set_powerstat, .get_powerstat = kenwood_get_powerstat, .get_info = kenwood_get_info, .reset = kenwood_reset, ----------------------------------------------------------------------- Summary of changes: NEWS | 11 +++++++++ rigs/kenwood/ts2000.c | 67 +++++++++++++++++++++++++++------------------------ 2 files changed, 47 insertions(+), 31 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: n0nb <n0...@us...> - 2025-01-21 02:07:29
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, Hamlib-4.6.1 has been created at 3160921db61c9b7fe21a27c2e103e976d635beab (commit) - Log ----------------------------------------------------------------- commit 3160921db61c9b7fe21a27c2e103e976d635beab Author: Nate Bargmann <n0...@n0...> Date: Mon Jan 20 19:58:27 2025 -0600 Prepare for 4.6.1 release Making this a branch off of the current master as it just has fixes since the 4.6 release. diff --git a/configure.ac b/configure.ac index 9bf5390d2..609db450d 100644 --- a/configure.ac +++ b/configure.ac @@ -14,7 +14,7 @@ dnl Please do not use '-' in the version number, as package managers will fail, dnl however, the use of '~' should be fine as apt (others?) will treat dnl it as an earlier version than the actual release. TNX KA6MAL dnl PACKAGE_NAME + " " + PACKAGE_VERSION must not exceed 20 chars! -AC_INIT([Hamlib],[4.7~git],[ham...@li...],[hamlib],[http://www.hamlib.org]) +AC_INIT([Hamlib],[4.6.1],[ham...@li...],[hamlib],[http://www.hamlib.org]) #AC_INIT([PRODUCT_NAME], [Hamlib]) #AC_DEFINE([Hamlib], [PRODUCT_VERSION_RESOURCE]) @@ -76,7 +76,7 @@ dnl See README.release on setting these values # Set them here to keep c++/Makefile and src/Makefile in sync. ABI_VERSION=4 ABI_REVISION=6 -ABI_PATCH=0 +ABI_PATCH=1 ABI_AGE=0 AC_DEFINE_UNQUOTED([ABI_VERSION], [$ABI_VERSION], [Frontend ABI version]) ----------------------------------------------------------------------- hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: n0nb <n0...@us...> - 2025-01-21 01:53:38
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via 198c14818a5c0f23a1dc8bd9bd577a4b4c5f2957 (commit) via 4281a5ef7d32fe9adfb48de6fe52ace7b63e7d6d (commit) via 704238da2f172fdfeca1b094d9978fccf4ef9f7e (commit) via af1cab0619c2cead0fb2dbbb1ef380492a1d712d (commit) via e3c67131cff0ec24d7142449a98287b33926af2f (commit) via 5401dfeca89f3e735b12742a6f7ee9221bf9b8bc (commit) via c0d0e6ff24e43b97885dc8a4e01c6638a03f3bbc (commit) via 09b58274b320f7c36316508510674fa371bd9076 (commit) via 8041563c2e628a8fda9452f5e571ddfe184caaab (commit) via cfc199dac2a4df3995e8214fad48d7eb99935567 (commit) via f76864a3c46d1ce9a4ec47538131e09f382fea62 (commit) via ad50b0c7837aa4f8759082fdde279178c0d81c3f (commit) via 0c5c34f8a5515b0064635f9b2e6f210c01280eca (commit) via 8c3f13764d9af4c6ecf112657864b4262c097575 (commit) via 6a4da2cbc5111f708efc7dd8735c41979c27a5c4 (commit) via e4019531601331ea79be61dfbdd705a4ed78385a (commit) via 4980beb9a9f28a2e6945d19cffd17820c9408911 (commit) via 7a5bb89690837c53ce4f9c7f7507c75de2fd2092 (commit) via 8aa487afb8a335b0550b0713a25e2c61d34058e4 (commit) via 35f86232fada1cfd0af61a1efd97fb175025f1b4 (commit) via 517a8918ab88fbd80ba45d87c0884e3d1ca67856 (commit) via bedbfff8c4c574dad9bd14cc620d4c2683afe9ed (commit) via a985b50eea15f8f8c8f376888e639dbb7c05daaa (commit) via 24d67437b78aeb9d0c7925450bda9839ebd7c31a (commit) via 46143578ae3853db6054e73be5867bd69cadff29 (commit) via 8636901bf3a74a6a5af5c89df12393adcc0ae3f6 (commit) via 33adef942e4e3227be56d0b9a2f5a3b5b7b43010 (commit) via d2065fe781b1213c1458565eb4fe40227bb657f3 (commit) via d1e0e3f204d3b0f5b3a17e83a50d360184136e0d (commit) via b2b8586c93c3ce501cd6a46da5d7352668c87f15 (commit) via 3eefab46a9ab631577f1bba9ca42752afe3f8b64 (commit) via 1ad817dea9991c5ccc86553fc8e8c5f9914707e8 (commit) via 181831bbd81c61b3d3aced3a08c8a74213d88235 (commit) via 61f3a817d339d7010b192f6a588bfe13620c803c (commit) via 083fed77f298d4a006b52dfbd9ebad549e54ec15 (commit) via 820c28e63f01142c1a607b7bc86e458af1f1a14d (commit) via 3222289ef501ff0bf63810b909c80bbc7c244294 (commit) via b3118906311b0d5dd68883ee6aefb12f0c81e469 (commit) via b3ef41354d9c7f97959e65d09aadb53bbb1d3232 (commit) via a8f5ad0b6ff5453325fc5ca304818727ad9ad0de (commit) via ab63103f6b553b72eb24c01f9fc4028a05e8e149 (commit) via a8a5229147d689cd01294538d82399597b22b5b0 (commit) via 7d535564bd5b283f2c4722b632aefb3d0ab764e3 (commit) from 028d750249ab00c8c362598c838b15e8aa6a2951 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 198c14818a5c0f23a1dc8bd9bd577a4b4c5f2957 Author: Michael Black W9MDB <mdb...@ya...> Date: Mon Jan 20 16:54:16 2025 -0600 Reduce error message level in rig_set_freq...left over from debugging diff --git a/src/rig.c b/src/rig.c index fce0b168a..a380cf18a 100644 --- a/src/rig.c +++ b/src/rig.c @@ -2373,7 +2373,7 @@ int rig_set_freq(RIG *rig, vfo_t vfo, freq_t freq) rig_set_cache_freq(rig, vfo, freq_new); - rig_debug(RIG_DEBUG_ERR, "%s: vfo=%s, save=%s\n", __func__, rig_strvfo(vfo), rig_strvfo(vfo_save)); + rig_debug(RIG_DEBUG_VERBOSE, "%s: vfo=%s, save=%s\n", __func__, rig_strvfo(vfo), rig_strvfo(vfo_save)); if (vfo != vfo_save && vfo != RIG_VFO_CURR) { HAMLIB_TRACE; commit 4281a5ef7d32fe9adfb48de6fe52ace7b63e7d6d Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 19 16:51:24 2025 -0600 Revert "Reapply "Update python binding to place some files in site-packages/Hamlib"" This reverts commit 704238da2f172fdfeca1b094d9978fccf4ef9f7e. diff --git a/bindings/Makefile.am b/bindings/Makefile.am index ee20d3810..34272b70c 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -83,47 +83,55 @@ uninstall-perl: ## Hamlib-pl.mk endif # Perl + if ENABLE_PYTHON +########################################## +# Python binding + +pyexec_ltlib = _Hamlib.la + +MOSTLYCLEANFILES += hamlibpy_wrap.c Hamlib.py *.pyc +BUILT_SOURCES += hamlibpy_wrap.c Hamlib.py -############################################################################## -# 1. We declare a Python extension using 'pyexec_LTLIBRARIES'. -# - Tells Automake: “Install this .so into $(pyexecdir).” -# - We override 'pyexec_ltlibdir' to place it in a subdirectory: Hamlib -############################################################################## -pyexec_LTLIBRARIES = _Hamlib.la -pyexec_ltlibdir = $(pyexecdir)/Hamlib +# Set by AM_CONDITIONAL in configure.ac +if PYVER_3 +pytest = py3test.py +else !PYVER_3 +pytest = pytest.py +endif +# PYVER_3 + +example_DATA += $(pytest) + +nodist_pyexec_PYTHON = Hamlib.py +nodist__Hamlib_la_SOURCES = hamlibpy_wrap.c -_Hamlib_la_SOURCES = hamlibpy_wrap.c _Hamlib_la_LDFLAGS = -no-undefined -module -avoid-version -_Hamlib_la_LIBADD = $(top_builddir)/src/libhamlib.la $(PYTHON_LIBS) - -############################################################################## -# 2. We declare a set of Python (.py) files using a custom primary, e.g. -# 'myhamlib_PYTHON'. Automake installs them into 'myhamlibdir' by default. -############################################################################## -myhamlib_PYTHON = \ - __init__.py \ - Hamlib.py - -# Place them in the exact same directory as the extension: $(pyexecdir)/Hamlib -myhamlibdir = $(pyexecdir)/Hamlib - -############################################################################## -# 3. Distribute these files (so they're included in 'make dist' tarballs). -############################################################################## -EXTRA_DIST += \ - __init__.py \ - Hamlib.py - -all-py: +_Hamlib_la_LIBADD = $(top_builddir)/src/libhamlib.la $(PYTHON_LIBS) +_Hamlib_ladir = $(pyexecdir) +_Hamlib_la_LTLIBRARIES = $(pyexec_ltlib) + +all-py: $(pyexec_ltlib) + +check-py: all-py + $(AM_V_at)PYTHONPATH=$(builddir):$(builddir)/.libs \ + $(PYTHON) $(srcdir)/$(pytest) \ + || echo "Python test failed" 1>&2 + +Hamlib.py: hamlibpy_wrap.c + +hamlibpy_wrap.c: hamlib.swg $(SWGDEP) + $(AM_V_GEN)$(SWIG) -python $(AM_CPPFLAGS) $(PYTHON_CPPFLAGS) -I$(top_srcdir)/bindings \ + -o $@ $$(test -f hamlib.swg || echo '$(srcdir)/')hamlib.swg + install-py: - @true -############################################################################## -# 4. Remove any custom 'install-py:' or 'install-exec-local: install-py' -# You do NOT need them. Automake already knows how to install these files. -############################################################################## +clean-py: +distclean-py: +uninstall-py: + +endif +# Python -endif # ENABLE_PYTHON if ENABLE_TCL ########################################## diff --git a/bindings/py3test.py b/bindings/py3test.py index 9c156234e..52f85e1e7 100755 --- a/bindings/py3test.py +++ b/bindings/py3test.py @@ -1,9 +1,8 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- import sys -import site # Change this path to match your "make install" path -sys.path.append('/usr/local/lib/python3.12/site-packages') +sys.path.append('/usr/local/lib/python3.10/site-packages') ## Uncomment to run this script from an in-tree build (or adjust to the ## build directory) without installing the bindings. @@ -18,9 +17,7 @@ def StartUp(): print("%s: Python %s; %s\n" \ % (sys.argv[0], sys.version.split()[0], Hamlib.cvar.hamlib_version)) - print(site.getsitepackages()) - - Hamlib.rig_set_debug(0) + Hamlib.rig_set_debug(Hamlib.RIG_DEBUG_NONE) # Init RIG_MODEL_DUMMY my_rig = Hamlib.Rig(Hamlib.RIG_MODEL_DUMMY) commit 704238da2f172fdfeca1b094d9978fccf4ef9f7e Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 19 16:50:59 2025 -0600 Reapply "Update python binding to place some files in site-packages/Hamlib" This reverts commit af1cab0619c2cead0fb2dbbb1ef380492a1d712d. diff --git a/bindings/Makefile.am b/bindings/Makefile.am index 34272b70c..ee20d3810 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -83,55 +83,47 @@ uninstall-perl: ## Hamlib-pl.mk endif # Perl - if ENABLE_PYTHON -########################################## -# Python binding - -pyexec_ltlib = _Hamlib.la - -MOSTLYCLEANFILES += hamlibpy_wrap.c Hamlib.py *.pyc -BUILT_SOURCES += hamlibpy_wrap.c Hamlib.py -# Set by AM_CONDITIONAL in configure.ac -if PYVER_3 -pytest = py3test.py -else !PYVER_3 -pytest = pytest.py -endif -# PYVER_3 - -example_DATA += $(pytest) - -nodist_pyexec_PYTHON = Hamlib.py -nodist__Hamlib_la_SOURCES = hamlibpy_wrap.c +############################################################################## +# 1. We declare a Python extension using 'pyexec_LTLIBRARIES'. +# - Tells Automake: “Install this .so into $(pyexecdir).” +# - We override 'pyexec_ltlibdir' to place it in a subdirectory: Hamlib +############################################################################## +pyexec_LTLIBRARIES = _Hamlib.la +pyexec_ltlibdir = $(pyexecdir)/Hamlib +_Hamlib_la_SOURCES = hamlibpy_wrap.c _Hamlib_la_LDFLAGS = -no-undefined -module -avoid-version -_Hamlib_la_LIBADD = $(top_builddir)/src/libhamlib.la $(PYTHON_LIBS) -_Hamlib_ladir = $(pyexecdir) -_Hamlib_la_LTLIBRARIES = $(pyexec_ltlib) - -all-py: $(pyexec_ltlib) - -check-py: all-py - $(AM_V_at)PYTHONPATH=$(builddir):$(builddir)/.libs \ - $(PYTHON) $(srcdir)/$(pytest) \ - || echo "Python test failed" 1>&2 - -Hamlib.py: hamlibpy_wrap.c - -hamlibpy_wrap.c: hamlib.swg $(SWGDEP) - $(AM_V_GEN)$(SWIG) -python $(AM_CPPFLAGS) $(PYTHON_CPPFLAGS) -I$(top_srcdir)/bindings \ - -o $@ $$(test -f hamlib.swg || echo '$(srcdir)/')hamlib.swg - +_Hamlib_la_LIBADD = $(top_builddir)/src/libhamlib.la $(PYTHON_LIBS) + +############################################################################## +# 2. We declare a set of Python (.py) files using a custom primary, e.g. +# 'myhamlib_PYTHON'. Automake installs them into 'myhamlibdir' by default. +############################################################################## +myhamlib_PYTHON = \ + __init__.py \ + Hamlib.py + +# Place them in the exact same directory as the extension: $(pyexecdir)/Hamlib +myhamlibdir = $(pyexecdir)/Hamlib + +############################################################################## +# 3. Distribute these files (so they're included in 'make dist' tarballs). +############################################################################## +EXTRA_DIST += \ + __init__.py \ + Hamlib.py + +all-py: install-py: -clean-py: -distclean-py: -uninstall-py: - -endif -# Python + @true +############################################################################## +# 4. Remove any custom 'install-py:' or 'install-exec-local: install-py' +# You do NOT need them. Automake already knows how to install these files. +############################################################################## +endif # ENABLE_PYTHON if ENABLE_TCL ########################################## diff --git a/bindings/py3test.py b/bindings/py3test.py index 52f85e1e7..9c156234e 100755 --- a/bindings/py3test.py +++ b/bindings/py3test.py @@ -1,8 +1,9 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- import sys +import site # Change this path to match your "make install" path -sys.path.append('/usr/local/lib/python3.10/site-packages') +sys.path.append('/usr/local/lib/python3.12/site-packages') ## Uncomment to run this script from an in-tree build (or adjust to the ## build directory) without installing the bindings. @@ -17,7 +18,9 @@ def StartUp(): print("%s: Python %s; %s\n" \ % (sys.argv[0], sys.version.split()[0], Hamlib.cvar.hamlib_version)) - Hamlib.rig_set_debug(Hamlib.RIG_DEBUG_NONE) + print(site.getsitepackages()) + + Hamlib.rig_set_debug(0) # Init RIG_MODEL_DUMMY my_rig = Hamlib.Rig(Hamlib.RIG_MODEL_DUMMY) commit af1cab0619c2cead0fb2dbbb1ef380492a1d712d Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 19 16:50:30 2025 -0600 Revert "Update python binding to place some files in site-packages/Hamlib" This reverts commit 8aa487afb8a335b0550b0713a25e2c61d34058e4. diff --git a/bindings/Makefile.am b/bindings/Makefile.am index ee20d3810..34272b70c 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -83,47 +83,55 @@ uninstall-perl: ## Hamlib-pl.mk endif # Perl + if ENABLE_PYTHON +########################################## +# Python binding + +pyexec_ltlib = _Hamlib.la + +MOSTLYCLEANFILES += hamlibpy_wrap.c Hamlib.py *.pyc +BUILT_SOURCES += hamlibpy_wrap.c Hamlib.py -############################################################################## -# 1. We declare a Python extension using 'pyexec_LTLIBRARIES'. -# - Tells Automake: “Install this .so into $(pyexecdir).” -# - We override 'pyexec_ltlibdir' to place it in a subdirectory: Hamlib -############################################################################## -pyexec_LTLIBRARIES = _Hamlib.la -pyexec_ltlibdir = $(pyexecdir)/Hamlib +# Set by AM_CONDITIONAL in configure.ac +if PYVER_3 +pytest = py3test.py +else !PYVER_3 +pytest = pytest.py +endif +# PYVER_3 + +example_DATA += $(pytest) + +nodist_pyexec_PYTHON = Hamlib.py +nodist__Hamlib_la_SOURCES = hamlibpy_wrap.c -_Hamlib_la_SOURCES = hamlibpy_wrap.c _Hamlib_la_LDFLAGS = -no-undefined -module -avoid-version -_Hamlib_la_LIBADD = $(top_builddir)/src/libhamlib.la $(PYTHON_LIBS) - -############################################################################## -# 2. We declare a set of Python (.py) files using a custom primary, e.g. -# 'myhamlib_PYTHON'. Automake installs them into 'myhamlibdir' by default. -############################################################################## -myhamlib_PYTHON = \ - __init__.py \ - Hamlib.py - -# Place them in the exact same directory as the extension: $(pyexecdir)/Hamlib -myhamlibdir = $(pyexecdir)/Hamlib - -############################################################################## -# 3. Distribute these files (so they're included in 'make dist' tarballs). -############################################################################## -EXTRA_DIST += \ - __init__.py \ - Hamlib.py - -all-py: +_Hamlib_la_LIBADD = $(top_builddir)/src/libhamlib.la $(PYTHON_LIBS) +_Hamlib_ladir = $(pyexecdir) +_Hamlib_la_LTLIBRARIES = $(pyexec_ltlib) + +all-py: $(pyexec_ltlib) + +check-py: all-py + $(AM_V_at)PYTHONPATH=$(builddir):$(builddir)/.libs \ + $(PYTHON) $(srcdir)/$(pytest) \ + || echo "Python test failed" 1>&2 + +Hamlib.py: hamlibpy_wrap.c + +hamlibpy_wrap.c: hamlib.swg $(SWGDEP) + $(AM_V_GEN)$(SWIG) -python $(AM_CPPFLAGS) $(PYTHON_CPPFLAGS) -I$(top_srcdir)/bindings \ + -o $@ $$(test -f hamlib.swg || echo '$(srcdir)/')hamlib.swg + install-py: - @true -############################################################################## -# 4. Remove any custom 'install-py:' or 'install-exec-local: install-py' -# You do NOT need them. Automake already knows how to install these files. -############################################################################## +clean-py: +distclean-py: +uninstall-py: + +endif +# Python -endif # ENABLE_PYTHON if ENABLE_TCL ########################################## diff --git a/bindings/py3test.py b/bindings/py3test.py index 9c156234e..52f85e1e7 100755 --- a/bindings/py3test.py +++ b/bindings/py3test.py @@ -1,9 +1,8 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- import sys -import site # Change this path to match your "make install" path -sys.path.append('/usr/local/lib/python3.12/site-packages') +sys.path.append('/usr/local/lib/python3.10/site-packages') ## Uncomment to run this script from an in-tree build (or adjust to the ## build directory) without installing the bindings. @@ -18,9 +17,7 @@ def StartUp(): print("%s: Python %s; %s\n" \ % (sys.argv[0], sys.version.split()[0], Hamlib.cvar.hamlib_version)) - print(site.getsitepackages()) - - Hamlib.rig_set_debug(0) + Hamlib.rig_set_debug(Hamlib.RIG_DEBUG_NONE) # Init RIG_MODEL_DUMMY my_rig = Hamlib.Rig(Hamlib.RIG_MODEL_DUMMY) commit e3c67131cff0ec24d7142449a98287b33926af2f Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 19 16:50:04 2025 -0600 Revert "Add __init__.py" This reverts commit 7a5bb89690837c53ce4f9c7f7507c75de2fd2092. diff --git a/bindings/__init__.py b/bindings/__init__.py deleted file mode 100644 index f07e10cff..000000000 --- a/bindings/__init__.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- Mode:Python; indent-tabs-mode:nil; tab-width:4; encoding:utf-8 -*- -# -# Copyright 2002 Ben Escoto <be...@em...> -# Copyright 2007 Kenneth Loafman <ke...@lo...> -# -# This file is part of duplicity. -# -# Duplicity is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 2 of the License, or (at your -# option) any later version. -# -# Duplicity is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with duplicity; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -import Hamlib - -__version__ = "4.6.1" - commit 5401dfeca89f3e735b12742a6f7ee9221bf9b8bc Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 19 16:49:49 2025 -0600 \Revert "Try to fix breakage of make distcheck on github" This reverts commit 4980beb9a9f28a2e6945d19cffd17820c9408911. diff --git a/bindings/Makefile.am b/bindings/Makefile.am index c959e4b2e..ee20d3810 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -117,7 +117,6 @@ EXTRA_DIST += \ all-py: install-py: -Hamlib.py: @true ############################################################################## # 4. Remove any custom 'install-py:' or 'install-exec-local: install-py' commit c0d0e6ff24e43b97885dc8a4e01c6638a03f3bbc Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 19 16:49:39 2025 -0600 Revert "Another attempt to fix github build" This reverts commit e4019531601331ea79be61dfbdd705a4ed78385a. diff --git a/bindings/Makefile.am b/bindings/Makefile.am index b33992c56..c959e4b2e 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -115,9 +115,6 @@ EXTRA_DIST += \ __init__.py \ Hamlib.py -nodist_myhamlib_PYTHON = Hamlib.py -myhamlibdir = $(pyexecdir)/Hamlib - all-py: install-py: Hamlib.py: commit 09b58274b320f7c36316508510674fa371bd9076 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 19 16:49:02 2025 -0600 Revert "Another attempt to fix github build" This reverts commit 6a4da2cbc5111f708efc7dd8735c41979c27a5c4. diff --git a/bindings/Makefile.am b/bindings/Makefile.am index 377668e9f..b33992c56 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -105,8 +105,6 @@ myhamlib_PYTHON = \ __init__.py \ Hamlib.py -nodist_myhamlib_PYTHON = Hamlib.py - # Place them in the exact same directory as the extension: $(pyexecdir)/Hamlib myhamlibdir = $(pyexecdir)/Hamlib @@ -117,6 +115,8 @@ EXTRA_DIST += \ __init__.py \ Hamlib.py +nodist_myhamlib_PYTHON = Hamlib.py +myhamlibdir = $(pyexecdir)/Hamlib all-py: install-py: commit 8041563c2e628a8fda9452f5e571ddfe184caaab Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 19 16:48:51 2025 -0600 Revert "Another attempt to fix github build" This reverts commit 8c3f13764d9af4c6ecf112657864b4262c097575. diff --git a/bindings/Makefile.am b/bindings/Makefile.am index 6bc959b8f..377668e9f 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -107,8 +107,6 @@ myhamlib_PYTHON = \ nodist_myhamlib_PYTHON = Hamlib.py -Hamlib.py: hamlib_wrap.c - # Place them in the exact same directory as the extension: $(pyexecdir)/Hamlib myhamlibdir = $(pyexecdir)/Hamlib commit cfc199dac2a4df3995e8214fad48d7eb99935567 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 19 16:48:38 2025 -0600 Revert "Another attempt to fix github build" This reverts commit 0c5c34f8a5515b0064635f9b2e6f210c01280eca. diff --git a/bindings/Makefile.am b/bindings/Makefile.am index 2904f3a55..6bc959b8f 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -107,8 +107,7 @@ myhamlib_PYTHON = \ nodist_myhamlib_PYTHON = Hamlib.py -Hamlib.py: hamlibpy_wrap.c - @true +Hamlib.py: hamlib_wrap.c # Place them in the exact same directory as the extension: $(pyexecdir)/Hamlib myhamlibdir = $(pyexecdir)/Hamlib @@ -123,6 +122,7 @@ EXTRA_DIST += \ all-py: install-py: +Hamlib.py: @true ############################################################################## # 4. Remove any custom 'install-py:' or 'install-exec-local: install-py' commit f76864a3c46d1ce9a4ec47538131e09f382fea62 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 19 16:48:28 2025 -0600 Revert "One more time before I revert all of this" This reverts commit ad50b0c7837aa4f8759082fdde279178c0d81c3f. diff --git a/bindings/Makefile.am b/bindings/Makefile.am index b27be164f..2904f3a55 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -105,6 +105,8 @@ myhamlib_PYTHON = \ __init__.py \ Hamlib.py +nodist_myhamlib_PYTHON = Hamlib.py + Hamlib.py: hamlibpy_wrap.c @true @@ -119,7 +121,6 @@ EXTRA_DIST += \ Hamlib.py -clean-py: all-py: install-py: @true commit ad50b0c7837aa4f8759082fdde279178c0d81c3f Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 19 16:43:43 2025 -0600 One more time before I revert all of this diff --git a/bindings/Makefile.am b/bindings/Makefile.am index 2904f3a55..b27be164f 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -105,8 +105,6 @@ myhamlib_PYTHON = \ __init__.py \ Hamlib.py -nodist_myhamlib_PYTHON = Hamlib.py - Hamlib.py: hamlibpy_wrap.c @true @@ -121,6 +119,7 @@ EXTRA_DIST += \ Hamlib.py +clean-py: all-py: install-py: @true commit 0c5c34f8a5515b0064635f9b2e6f210c01280eca Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 19 16:15:19 2025 -0600 Another attempt to fix github build diff --git a/bindings/Makefile.am b/bindings/Makefile.am index 6bc959b8f..2904f3a55 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -107,7 +107,8 @@ myhamlib_PYTHON = \ nodist_myhamlib_PYTHON = Hamlib.py -Hamlib.py: hamlib_wrap.c +Hamlib.py: hamlibpy_wrap.c + @true # Place them in the exact same directory as the extension: $(pyexecdir)/Hamlib myhamlibdir = $(pyexecdir)/Hamlib @@ -122,7 +123,6 @@ EXTRA_DIST += \ all-py: install-py: -Hamlib.py: @true ############################################################################## # 4. Remove any custom 'install-py:' or 'install-exec-local: install-py' commit 8c3f13764d9af4c6ecf112657864b4262c097575 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 19 16:04:01 2025 -0600 Another attempt to fix github build diff --git a/bindings/Makefile.am b/bindings/Makefile.am index 377668e9f..6bc959b8f 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -107,6 +107,8 @@ myhamlib_PYTHON = \ nodist_myhamlib_PYTHON = Hamlib.py +Hamlib.py: hamlib_wrap.c + # Place them in the exact same directory as the extension: $(pyexecdir)/Hamlib myhamlibdir = $(pyexecdir)/Hamlib commit 6a4da2cbc5111f708efc7dd8735c41979c27a5c4 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 19 15:59:30 2025 -0600 Another attempt to fix github build diff --git a/bindings/Makefile.am b/bindings/Makefile.am index b33992c56..377668e9f 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -105,6 +105,8 @@ myhamlib_PYTHON = \ __init__.py \ Hamlib.py +nodist_myhamlib_PYTHON = Hamlib.py + # Place them in the exact same directory as the extension: $(pyexecdir)/Hamlib myhamlibdir = $(pyexecdir)/Hamlib @@ -115,8 +117,6 @@ EXTRA_DIST += \ __init__.py \ Hamlib.py -nodist_myhamlib_PYTHON = Hamlib.py -myhamlibdir = $(pyexecdir)/Hamlib all-py: install-py: commit e4019531601331ea79be61dfbdd705a4ed78385a Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 19 15:58:44 2025 -0600 Another attempt to fix github build diff --git a/bindings/Makefile.am b/bindings/Makefile.am index c959e4b2e..b33992c56 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -115,6 +115,9 @@ EXTRA_DIST += \ __init__.py \ Hamlib.py +nodist_myhamlib_PYTHON = Hamlib.py +myhamlibdir = $(pyexecdir)/Hamlib + all-py: install-py: Hamlib.py: commit 4980beb9a9f28a2e6945d19cffd17820c9408911 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 19 15:52:35 2025 -0600 Try to fix breakage of make distcheck on github diff --git a/bindings/Makefile.am b/bindings/Makefile.am index ee20d3810..c959e4b2e 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -117,6 +117,7 @@ EXTRA_DIST += \ all-py: install-py: +Hamlib.py: @true ############################################################################## # 4. Remove any custom 'install-py:' or 'install-exec-local: install-py' commit 7a5bb89690837c53ce4f9c7f7507c75de2fd2092 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 19 15:38:38 2025 -0600 Add __init__.py diff --git a/bindings/__init__.py b/bindings/__init__.py new file mode 100644 index 000000000..f07e10cff --- /dev/null +++ b/bindings/__init__.py @@ -0,0 +1,25 @@ +# -*- Mode:Python; indent-tabs-mode:nil; tab-width:4; encoding:utf-8 -*- +# +# Copyright 2002 Ben Escoto <be...@em...> +# Copyright 2007 Kenneth Loafman <ke...@lo...> +# +# This file is part of duplicity. +# +# Duplicity is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation; either version 2 of the License, or (at your +# option) any later version. +# +# Duplicity is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with duplicity; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +import Hamlib + +__version__ = "4.6.1" + commit 8aa487afb8a335b0550b0713a25e2c61d34058e4 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 19 15:28:05 2025 -0600 Update python binding to place some files in site-packages/Hamlib https://github.com/Hamlib/Hamlib/issues/1645 diff --git a/bindings/Makefile.am b/bindings/Makefile.am index 34272b70c..ee20d3810 100644 --- a/bindings/Makefile.am +++ b/bindings/Makefile.am @@ -83,55 +83,47 @@ uninstall-perl: ## Hamlib-pl.mk endif # Perl - if ENABLE_PYTHON -########################################## -# Python binding - -pyexec_ltlib = _Hamlib.la - -MOSTLYCLEANFILES += hamlibpy_wrap.c Hamlib.py *.pyc -BUILT_SOURCES += hamlibpy_wrap.c Hamlib.py -# Set by AM_CONDITIONAL in configure.ac -if PYVER_3 -pytest = py3test.py -else !PYVER_3 -pytest = pytest.py -endif -# PYVER_3 - -example_DATA += $(pytest) - -nodist_pyexec_PYTHON = Hamlib.py -nodist__Hamlib_la_SOURCES = hamlibpy_wrap.c +############################################################################## +# 1. We declare a Python extension using 'pyexec_LTLIBRARIES'. +# - Tells Automake: “Install this .so into $(pyexecdir).” +# - We override 'pyexec_ltlibdir' to place it in a subdirectory: Hamlib +############################################################################## +pyexec_LTLIBRARIES = _Hamlib.la +pyexec_ltlibdir = $(pyexecdir)/Hamlib +_Hamlib_la_SOURCES = hamlibpy_wrap.c _Hamlib_la_LDFLAGS = -no-undefined -module -avoid-version -_Hamlib_la_LIBADD = $(top_builddir)/src/libhamlib.la $(PYTHON_LIBS) -_Hamlib_ladir = $(pyexecdir) -_Hamlib_la_LTLIBRARIES = $(pyexec_ltlib) - -all-py: $(pyexec_ltlib) - -check-py: all-py - $(AM_V_at)PYTHONPATH=$(builddir):$(builddir)/.libs \ - $(PYTHON) $(srcdir)/$(pytest) \ - || echo "Python test failed" 1>&2 - -Hamlib.py: hamlibpy_wrap.c - -hamlibpy_wrap.c: hamlib.swg $(SWGDEP) - $(AM_V_GEN)$(SWIG) -python $(AM_CPPFLAGS) $(PYTHON_CPPFLAGS) -I$(top_srcdir)/bindings \ - -o $@ $$(test -f hamlib.swg || echo '$(srcdir)/')hamlib.swg - +_Hamlib_la_LIBADD = $(top_builddir)/src/libhamlib.la $(PYTHON_LIBS) + +############################################################################## +# 2. We declare a set of Python (.py) files using a custom primary, e.g. +# 'myhamlib_PYTHON'. Automake installs them into 'myhamlibdir' by default. +############################################################################## +myhamlib_PYTHON = \ + __init__.py \ + Hamlib.py + +# Place them in the exact same directory as the extension: $(pyexecdir)/Hamlib +myhamlibdir = $(pyexecdir)/Hamlib + +############################################################################## +# 3. Distribute these files (so they're included in 'make dist' tarballs). +############################################################################## +EXTRA_DIST += \ + __init__.py \ + Hamlib.py + +all-py: install-py: -clean-py: -distclean-py: -uninstall-py: - -endif -# Python + @true +############################################################################## +# 4. Remove any custom 'install-py:' or 'install-exec-local: install-py' +# You do NOT need them. Automake already knows how to install these files. +############################################################################## +endif # ENABLE_PYTHON if ENABLE_TCL ########################################## diff --git a/bindings/py3test.py b/bindings/py3test.py index 52f85e1e7..9c156234e 100755 --- a/bindings/py3test.py +++ b/bindings/py3test.py @@ -1,8 +1,9 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- import sys +import site # Change this path to match your "make install" path -sys.path.append('/usr/local/lib/python3.10/site-packages') +sys.path.append('/usr/local/lib/python3.12/site-packages') ## Uncomment to run this script from an in-tree build (or adjust to the ## build directory) without installing the bindings. @@ -17,7 +18,9 @@ def StartUp(): print("%s: Python %s; %s\n" \ % (sys.argv[0], sys.version.split()[0], Hamlib.cvar.hamlib_version)) - Hamlib.rig_set_debug(Hamlib.RIG_DEBUG_NONE) + print(site.getsitepackages()) + + Hamlib.rig_set_debug(0) # Init RIG_MODEL_DUMMY my_rig = Hamlib.Rig(Hamlib.RIG_MODEL_DUMMY) commit 35f86232fada1cfd0af61a1efd97fb175025f1b4 Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Jan 18 15:56:59 2025 -0600 Fix simulators diff --git a/simulators/simft450.c b/simulators/simft450.c index 43fb68920..859db06f9 100644 --- a/simulators/simft450.c +++ b/simulators/simft450.c @@ -418,7 +418,7 @@ int main(int argc, char *argv[]) else if (strcmp(buf, "TX;") == 0) { hl_usleep(50 * 1000); - SNPRINTF(buf, sizeof(buf), "TX+%04d;", tx); + SNPRINTF(buf, sizeof(buf), "TX%d;", tx); n = write(fd, buf, strlen(buf)); if (n < 0) { perror("TX"); } diff --git a/simulators/simic7610.c b/simulators/simic7610.c index 60ac213c1..e76c4a09c 100644 --- a/simulators/simic7610.c +++ b/simulators/simic7610.c @@ -53,6 +53,7 @@ int keyspd = 130; // 130=20WPM int ipp = 0; int tx_inhibit = 0; int dpp = 0; +int dualwatch = 0; void dumphex(const unsigned char *buf, int n) { @@ -122,6 +123,10 @@ void frameParse(int fd, unsigned char *frame, int len) return; } + int tmp = frame[2]; + frame[2] = frame[3]; + frame[3] = tmp; + switch (frame[4]) { case 0x03: @@ -201,13 +206,24 @@ void frameParse(int fd, unsigned char *frame, int len) switch (frame[5]) { - case 0x00: current_vfo = RIG_VFO_A; break; - - case 0x01: current_vfo = RIG_VFO_B; break; + case 0xd0: current_vfo = RIG_VFO_A; break; - case 0xd0: current_vfo = RIG_VFO_MAIN; break; + case 0xd1: current_vfo = RIG_VFO_B; break; - case 0xd1: current_vfo = RIG_VFO_SUB; break; + case 0xc2: + if (frame[6] == 0xfd) + { + frame[6] = dualwatch; + frame[7] = 0xfd; + n = write(fd,frame,8); + } + else + { + dualwatch = frame[6]; + frame[4]=0xfb; + frame[5]=0xfd; + n = write(fd,frame,6); + } } printf("set_vfo to %s\n", rig_strvfo(current_vfo)); @@ -796,7 +812,7 @@ int main(int argc, char **argv) while (1) { int len = frameGet(fd, buf); - printf("#1 ========================================"); + printf("#1 ========================================\n"); if (len <= 0) { diff --git a/simulators/simic9100.c b/simulators/simic9100.c index 9e6a66950..ba490d999 100644 --- a/simulators/simic9100.c +++ b/simulators/simic9100.c @@ -202,6 +202,8 @@ void frameParse(int fd, unsigned char *frame, int len) frame[4] = 0xfb; frame[5] = 0xfd; +printf("+++++++++++++++ SETTING VFO +++++++++++++++++\n"); + dump_hex(frame, 6); WRITE(fd, frame, 6); break; diff --git a/simulators/simic9700.c b/simulators/simic9700.c index cd85836d2..bfaea8baf 100644 --- a/simulators/simic9700.c +++ b/simulators/simic9700.c @@ -120,6 +120,10 @@ void frameParse(int fd, unsigned char *frame, int len) return; } + int tmp = frame[2]; + frame[2] = frame[3]; + frame[3] = tmp; + switch (frame[4]) { case 0x03: diff --git a/simulators/simxiegux6100.c b/simulators/simxiegux6100.c index 9720047e0..fc804fad8 100644 --- a/simulators/simxiegux6100.c +++ b/simulators/simxiegux6100.c @@ -77,6 +77,7 @@ frameGet(int fd, unsigned char *buf) void frameParse(int fd, unsigned char *frame, int len) { double freq; + int n=0; dumphex(frame, len); @@ -87,6 +88,10 @@ void frameParse(int fd, unsigned char *frame, int len) return; } + int tmp = frame[2]; + frame[2] = frame[3]; + frame[3] = tmp; + switch (frame[4]) { case 0x03: @@ -104,7 +109,7 @@ void frameParse(int fd, unsigned char *frame, int len) } frame[10] = 0xfd; - write(fd, frame, 11); + n = write(fd, frame, 11); break; @@ -123,7 +128,7 @@ void frameParse(int fd, unsigned char *frame, int len) } frame[7] = 0xfd; - write(fd, frame, 8); + n = write(fd, frame, 8); break; case 0x05: @@ -135,7 +140,7 @@ void frameParse(int fd, unsigned char *frame, int len) frame[4] = 0xfb; frame[5] = 0xfd; - write(fd, frame, 6); + n = write(fd, frame, 6); break; case 0x06: @@ -144,7 +149,7 @@ void frameParse(int fd, unsigned char *frame, int len) frame[4] = 0xfb; frame[5] = 0xfd; - write(fd, frame, 6); + n = write(fd, frame, 6); break; case 0x07: @@ -163,7 +168,7 @@ void frameParse(int fd, unsigned char *frame, int len) frame[4] = 0xfb; frame[5] = 0xfd; - write(fd, frame, 6); + n = write(fd, frame, 6); break; case 0x0f: @@ -173,7 +178,7 @@ void frameParse(int fd, unsigned char *frame, int len) printf("set split %d\n", 1); frame[4] = 0xfb; frame[5] = 0xfd; - write(fd, frame, 6); + n = write(fd, frame, 6); break; #if 0 @@ -194,9 +199,9 @@ void frameParse(int fd, unsigned char *frame, int len) frame[5] = ant_curr; frame[6] = ant_option; frame[7] = 0xfd; - printf("n=write 8 bytes\n"); + printf("n=n = write 8 bytes\n"); dump_hex(frame, 8); - write(fd, frame, 8); + n = write(fd, frame, 8); break; #endif @@ -211,7 +216,7 @@ void frameParse(int fd, unsigned char *frame, int len) printf("Using AF level %d\n", level); to_bcd(&frame[6], (long long) level, 2); frame[8] = 0xfd; - write(fd, frame, 9); + n = write(fd, frame, 9); break; case 0x0a: @@ -222,7 +227,7 @@ void frameParse(int fd, unsigned char *frame, int len) to_bcd(&frame[6], (long long)power_level, 2); frame[8] = 0xfd; - write(fd, frame, 9); + n = write(fd, frame, 9); break; case 0x0c: @@ -234,14 +239,14 @@ void frameParse(int fd, unsigned char *frame, int len) printf("subcmd=0x0c #1\n"); keyspd = from_bcd(&frame[6], 2); frame[6] = 0xfb; - write(fd, frame, 7); + n = write(fd, frame, 7); } else { printf("subcmd=0x0c #1\n"); to_bcd(&frame[6], keyspd, 2); frame[8] = 0xfd; - write(fd, frame, 9); + n = write(fd, frame, 9); } break; @@ -263,7 +268,7 @@ void frameParse(int fd, unsigned char *frame, int len) to_bcd(&frame[6], (long long)meter_level, 2); frame[8] = 0xfd; - write(fd, frame, 9); + n = write(fd, frame, 9); break; } @@ -274,7 +279,7 @@ void frameParse(int fd, unsigned char *frame, int len) case 0x18: // miscellaneous things frame[5] = 1; frame[6] = 0xfd; - write(fd, frame, 7); + n = write(fd, frame, 7); break; #endif @@ -282,7 +287,7 @@ void frameParse(int fd, unsigned char *frame, int len) frame[6] = 0x61; frame[7] = 0x00; frame[8] = 0xfd; - write(fd, frame, 9); + n = write(fd, frame, 9); break; case 0x1a: // miscellaneous things @@ -293,7 +298,7 @@ void frameParse(int fd, unsigned char *frame, int len) else { frame[6] = widthB; } frame[7] = 0xfd; - write(fd, frame, 8); + n = write(fd, frame, 8); break; } @@ -307,14 +312,14 @@ void frameParse(int fd, unsigned char *frame, int len) { frame[6] = ptt; frame[7] = 0xfd; - write(fd, frame, 8); + n = write(fd, frame, 8); } else { ptt = frame[6]; frame[7] = 0xfb; frame[8] = 0xfd; - write(fd, frame, 9); + n = write(fd, frame, 9); } break; @@ -341,7 +346,7 @@ void frameParse(int fd, unsigned char *frame, int len) } frame[11] = 0xfd; - write(fd, frame, 12); + n = write(fd, frame, 12); } else { @@ -353,7 +358,7 @@ void frameParse(int fd, unsigned char *frame, int len) frame[4] = 0xfb; frame[5] = 0xfd; - write(fd, frame, 6); + n = write(fd, frame, 6); } break; @@ -369,7 +374,7 @@ void frameParse(int fd, unsigned char *frame, int len) frame[7] = frame[5] == 0 ? datamodeA : datamodeB; frame[8] = 0xfb; frame[9] = 0xfd; - write(fd, frame, 10); + n = write(fd, frame, 10); } else { @@ -388,7 +393,7 @@ void frameParse(int fd, unsigned char *frame, int len) frame[4] = 0xfb; frame[5] = 0xfd; - write(fd, frame, 6); + n = write(fd, frame, 6); } printf("\n"); @@ -410,6 +415,7 @@ void frameParse(int fd, unsigned char *frame, int len) } // don't care about the rig type yet + if (n == 0) printf("write failed?\n"); } commit 517a8918ab88fbd80ba45d87c0884e3d1ca67856 Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Jan 18 15:56:24 2025 -0600 Update ax_python_devel.m4 to fix installation problems diff --git a/macros/ax_python_devel.m4 b/macros/ax_python_devel.m4 old mode 100644 new mode 100755 index 1df46a9cf..780584eae --- a/macros/ax_python_devel.m4 +++ b/macros/ax_python_devel.m4 @@ -67,7 +67,7 @@ # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. -#serial 23 +#serial 32 AU_ALIAS([AC_PYTHON_DEVEL], [AX_PYTHON_DEVEL]) AC_DEFUN([AX_PYTHON_DEVEL],[ @@ -112,15 +112,39 @@ to something else than an empty string. fi # - # if the macro parameter ``version'' is set, honour it + # If the macro parameter ``version'' is set, honour it. + # A Python shim class, VPy, is used to implement correct version comparisons via + # string expressions, since e.g. a naive textual ">= 2.7.3" won't work for + # Python 2.7.10 (the ".1" being evaluated as less than ".3"). # if test -n "$1"; then AC_MSG_CHECKING([for a version of Python $1]) - ac_supports_python_ver=`$PYTHON -c "import sys; \ - ver = sys.version.split ()[[0]]; \ + cat << EOF > ax_python_devel_vpy.py +class VPy: + def vtup(self, s): + return tuple(map(int, s.strip().replace("rc", ".").split("."))) + def __init__(self): + import sys + self.vpy = tuple(sys.version_info) + def __eq__(self, s): + return self.vpy == self.vtup(s) + def __ne__(self, s): + return self.vpy != self.vtup(s) + def __lt__(self, s): + return self.vpy < self.vtup(s) + def __gt__(self, s): + return self.vpy > self.vtup(s) + def __le__(self, s): + return self.vpy <= self.vtup(s) + def __ge__(self, s): + return self.vpy >= self.vtup(s) +EOF + ac_supports_python_ver=`$PYTHON -c "import ax_python_devel_vpy; \ + ver = ax_python_devel_vpy.VPy(); \ print (ver $1)"` + rm -rf ax_python_devel_vpy*.py* __pycache__/ax_python_devel_vpy*.py* if test "$ac_supports_python_ver" = "True"; then - AC_MSG_RESULT([yes]) + AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) AC_MSG_ERROR([this package requires Python $1. @@ -208,7 +232,7 @@ EOD` ac_python_version=$PYTHON_VERSION else ac_python_version=`$PYTHON -c "import sys; \ - print (sys.version[[:3]])"` + print ("%d.%d" % sys.version_info[[:2]])"` fi fi @@ -251,7 +275,7 @@ EOD` ac_python_libdir=`$PYTHON -c \ "from sysconfig import get_python_lib as f; \ import os; \ - print ('Using old way' + os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"` + print (os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"` PYTHON_LIBS="-L$ac_python_libdir -lpython$ac_python_version" fi @@ -268,14 +292,24 @@ EOD` # # Check for site packages # - AC_MSG_CHECKING([for Python site-packages pathXX $PYTHON_SITE_PKG]) + AC_MSG_CHECKING([for Python site-packages path]) if test -z "$PYTHON_SITE_PKG"; then - AC_MSG_CHECKING([Using PYTHON_SITE_PKG]) if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then - PYTHON_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \ - print (sysconfig.get_path('purelib'));"` + PYTHON_SITE_PKG=`$PYTHON -c " +$IMPORT_SYSCONFIG; +if hasattr(sysconfig, 'get_default_scheme'): + scheme = sysconfig.get_default_scheme() +else: + scheme = sysconfig._get_default_scheme() +if scheme == 'posix_local': + # Debian's default scheme installs to /usr/local/ but we want to find headers in /usr/ + scheme = 'posix_prefix' +prefix = '$prefix' +if prefix == 'NONE': + prefix = '$ac_default_prefix' +sitedir = sysconfig.get_path('purelib', scheme, vars={'base': prefix}) +print(sitedir)"` else - AC_MSG_CHECKING([Using old way]) # distutils.sysconfig way PYTHON_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \ print (sysconfig.get_python_lib(0,0));"` @@ -288,10 +322,22 @@ EOD` # Check for platform-specific site packages # AC_MSG_CHECKING([for Python platform specific site-packages path]) - if test -z "$PYTHON_SITE_PKG"; then + if test -z "$PYTHON_PLATFORM_SITE_PKG"; then if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then - PYTHON_PLATFORM_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \ - print (sysconfig.get_path('platlib'));"` + PYTHON_PLATFORM_SITE_PKG=`$PYTHON -c " +$IMPORT_SYSCONFIG; +if hasattr(sysconfig, 'get_default_scheme'): + scheme = sysconfig.get_default_scheme() +else: + scheme = sysconfig._get_default_scheme() +if scheme == 'posix_local': + # Debian's default scheme installs to /usr/local/ but we want to find headers in /usr/ + scheme = 'posix_prefix' +prefix = '$prefix' +if prefix == 'NONE': + prefix = '$ac_default_prefix' +sitedir = sysconfig.get_path('platlib', scheme, vars={'platbase': prefix}) +print(sitedir)"` else # distutils.sysconfig way PYTHON_PLATFORM_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \ @@ -333,7 +379,7 @@ EOD` ac_save_LIBS="$LIBS" ac_save_LDFLAGS="$LDFLAGS" ac_save_CPPFLAGS="$CPPFLAGS" - LIBS="$ac_save_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS $PYTHON_EXTRA_LIBS" + LIBS="$ac_save_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS" LDFLAGS="$ac_save_LDFLAGS $PYTHON_EXTRA_LDFLAGS" CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS" AC_LANG_PUSH([C]) @@ -349,7 +395,7 @@ EOD` AC_MSG_RESULT([$pythonexists]) - if test ! "x$pythonexists" = "xyes"; then + if test ! "x$pythonexists" = "xyes"; then AC_MSG_FAILURE([ Could not link test program to Python. Maybe the main Python library has been installed in some non-standard library path. If so, pass it to configure, commit bedbfff8c4c574dad9bd14cc620d4c2683afe9ed Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Jan 18 15:55:54 2025 -0600 Remove unnecessary include diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index 06f0fd428..6db75e359 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -52,7 +52,7 @@ #else //#include <sys/socket.h> // doesn't seem we need this #include <netinet/in.h> -#include <arpa/inet.h> +//#include <arpa/inet.h> #endif // mingw64 still shows __TIMESIZE != 64 commit a985b50eea15f8f8c8f376888e639dbb7c05daaa Author: Michael Black W9MDB <mdb...@ya...> Date: Wed Jan 15 08:11:02 2025 -0600 Fix IC9100 rigctld startup where it was starting on VFOA and ending up on VFOB https://github.com/Hamlib/Hamlib/issues/1656 diff --git a/rigs/icom/ic9100.c b/rigs/icom/ic9100.c index eab9239e4..65c2a3dcd 100644 --- a/rigs/icom/ic9100.c +++ b/rigs/icom/ic9100.c @@ -111,12 +111,15 @@ static const struct icom_priv_caps ic9100_priv_caps = .data_mode_supported = 1 }; +// borrow this as they behave the same +extern int ic9700_set_vfo(RIG *rig, vfo_t vfo); + struct rig_caps ic9100_caps = { RIG_MODEL(RIG_MODEL_IC9100), .model_name = "IC-9100", .mfg_name = "Icom", - .version = BACKEND_VER ".5", + .version = BACKEND_VER ".6", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -250,8 +253,7 @@ struct rig_caps ic9100_caps = .get_mode = icom_get_mode, .set_mode = icom_set_mode, - - .set_vfo = icom_set_vfo, + .set_vfo = ic9700_set_vfo, // .get_vfo = icom_get_vfo, .set_ant = icom_set_ant, .get_ant = icom_get_ant, diff --git a/src/rig.c b/src/rig.c index 813513293..fce0b168a 100644 --- a/src/rig.c +++ b/src/rig.c @@ -1547,7 +1547,7 @@ int HAMLIB_API rig_open(RIG *rig) { vfo_t myvfo = RIG_VFO_A; - if (rig->caps->rig_model == RIG_MODEL_IC9700) { myvfo = RIG_VFO_MAIN_A; } + if (rig->caps->rig_model == RIG_MODEL_IC9700 || rig->caps->rig_model == RIG_MODEL_IC9100) { myvfo = RIG_VFO_MAIN_A; } retval = rig_get_freq(rig, myvfo, &freq); @@ -1557,7 +1557,7 @@ int HAMLIB_API rig_open(RIG *rig) vfo_t tx_vfo = RIG_VFO_NONE; myvfo = RIG_VFO_B; - if (rig->caps->rig_model == RIG_MODEL_IC9700) { myvfo = RIG_VFO_MAIN_B; } + if (rig->caps->rig_model == RIG_MODEL_IC9700 || rig->caps->rig_model == RIG_MODEL_IC9100) { myvfo = RIG_VFO_MAIN_B; } rig_get_freq(rig, myvfo, &freq); rig_get_split_vfo(rig, RIG_VFO_RX, &split, &tx_vfo); @@ -1570,7 +1570,7 @@ int HAMLIB_API rig_open(RIG *rig) { myvfo = RIG_VFO_A; - if (rig->caps->rig_model == RIG_MODEL_IC9700) { myvfo = RIG_VFO_MAIN_A; } + if (rig->caps->rig_model == RIG_MODEL_IC9700 || rig->caps->rig_model == RIG_MODEL_IC9100) { myvfo = RIG_VFO_MAIN_A; } rig_get_mode(rig, myvfo, &mode, &width); @@ -1578,7 +1578,7 @@ int HAMLIB_API rig_open(RIG *rig) { myvfo = RIG_VFO_B; - if (rig->caps->rig_model == RIG_MODEL_IC9700) { myvfo = RIG_VFO_MAIN_A; } + if (rig->caps->rig_model == RIG_MODEL_IC9700 || rig->caps->rig_model == RIG_MODEL_IC9100) { myvfo = RIG_VFO_MAIN_A; } rig_debug(RIG_DEBUG_VERBOSE, "xxxsplit=%d\n", split); HAMLIB_TRACE; @@ -2373,6 +2373,7 @@ int rig_set_freq(RIG *rig, vfo_t vfo, freq_t freq) rig_set_cache_freq(rig, vfo, freq_new); + rig_debug(RIG_DEBUG_ERR, "%s: vfo=%s, save=%s\n", __func__, rig_strvfo(vfo), rig_strvfo(vfo_save)); if (vfo != vfo_save && vfo != RIG_VFO_CURR) { HAMLIB_TRACE; @@ -2539,8 +2540,9 @@ int HAMLIB_API rig_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) // WSJT-X senses rig precision with 55 and 56 Hz values // We do not want to allow cache response with these values int wsjtx_special = ((long) * freq % 100) == 55 || ((long) * freq % 100) == 56; + int rig_special = rig->caps->rig_model == RIG_MODEL_IC9100; - if (!wsjtx_special && *freq != 0 && (cache_ms_freq < cachep->timeout_ms + if (!rig_special && !wsjtx_special && *freq != 0 && (cache_ms_freq < cachep->timeout_ms || (cachep->timeout_ms == HAMLIB_CACHE_ALWAYS || rs->use_cached_freq))) { commit 24d67437b78aeb9d0c7925450bda9839ebd7c31a Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Jan 12 12:43:39 2025 -0600 Remove include of sys/socket.h from rig.h -- doesn't seem we need it and breaks grig build https://github.com/Hamlib/Hamlib/issues/1655 diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index 879c31c3d..06f0fd428 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -50,7 +50,7 @@ #include <windows.h> #include <ws2tcpip.h> #else -#include <sys/socket.h> +//#include <sys/socket.h> // doesn't seem we need this #include <netinet/in.h> #include <arpa/inet.h> #endif commit 46143578ae3853db6054e73be5867bd69cadff29 Author: Michael Black W9MDB <mdb...@ya...> Date: Wed Jan 8 06:33:42 2025 -0600 Remove QMX from QDX entry diff --git a/rigs/kenwood/ts480.c b/rigs/kenwood/ts480.c index 5a466a36a..4cb0eb789 100644 --- a/rigs/kenwood/ts480.c +++ b/rigs/kenwood/ts480.c @@ -1740,9 +1740,9 @@ struct rig_caps trudx_caps = struct rig_caps qrplabs_caps = { RIG_MODEL(RIG_MODEL_QRPLABS), - .model_name = "QCX/QDX/QMX", + .model_name = "QCX/QDX", .mfg_name = "QRPLabs", - .version = BACKEND_VER ".3", + .version = BACKEND_VER ".4", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, commit 8636901bf3a74a6a5af5c89df12393adcc0ae3f6 Author: Michael Black W9MDB <mdb...@ya...> Date: Tue Jan 7 16:56:52 2025 -0600 Fix IC746 and IC746PRO set mode to not use data byte diff --git a/rigs/icom/icom.c b/rigs/icom/icom.c index 5fd927b17..cd05edcdb 100644 --- a/rigs/icom/icom.c +++ b/rigs/icom/icom.c @@ -2289,6 +2289,8 @@ static int icom_set_mode_without_data(RIG *rig, vfo_t vfo, rmode_t mode, || RIG_IS_IC375 || RIG_IS_IC726 || RIG_IS_IC475 + || RIG_IS_IC746 + || RIG_IS_IC746PRO || RIG_IS_IC756 || RIG_IS_IC756PROII || RIG_IS_IC756PROIII diff --git a/rigs/icom/icom.h b/rigs/icom/icom.h index c78c64e55..47d99d91d 100644 --- a/rigs/icom/icom.h +++ b/rigs/icom/icom.h @@ -35,7 +35,7 @@ #include <sys/time.h> #endif -#define BACKEND_VER "20241203" +#define BACKEND_VER "20250107" #define ICOM_IS_ID31 rig_is_model(rig, RIG_MODEL_ID31) #define ICOM_IS_ID51 rig_is_model(rig, RIG_MODEL_ID51) commit 33adef942e4e3227be56d0b9a2f5a3b5b7b43010 Author: Michael Black W9MDB <mdb...@ya...> Date: Tue Jan 7 09:03:34 2025 -0600 Seperate QMX from QDX due to incompatible modes in FLRig https://github.com/Hamlib/Hamlib/issues/1653 diff --git a/include/hamlib/riglist.h b/include/hamlib/riglist.h index 7b1579e23..768c40691 100644 --- a/include/hamlib/riglist.h +++ b/include/hamlib/riglist.h @@ -208,6 +208,7 @@ #define RIG_MODEL_THETIS RIG_MAKE_MODEL(RIG_KENWOOD, 54) #define RIG_MODEL_TRUSDX RIG_MAKE_MODEL(RIG_KENWOOD, 55) #define RIG_MODEL_SDRCONSOLE RIG_MAKE_MODEL(RIG_KENWOOD, 56) +#define RIG_MODEL_QRPLABS_QMX RIG_MAKE_MODEL(RIG_KENWOOD,57) /* * Icom diff --git a/rigs/kenwood/kenwood.c b/rigs/kenwood/kenwood.c index fc6d2f2d8..d2e444a45 100644 --- a/rigs/kenwood/kenwood.c +++ b/rigs/kenwood/kenwood.c @@ -6532,6 +6532,7 @@ DECLARE_INITRIG_BACKEND(kenwood) rig_register(&tx500_caps); rig_register(&sdruno_caps); rig_register(&qrplabs_caps); + rig_register(&qrplabs_qmx_caps); rig_register(&fx4_caps); rig_register(&thetis_caps); rig_register(&trudx_caps); diff --git a/rigs/kenwood/kenwood.h b/rigs/kenwood/kenwood.h index 4fbd214bb..f1b2d0e07 100644 --- a/rigs/kenwood/kenwood.h +++ b/rigs/kenwood/kenwood.h @@ -334,6 +334,7 @@ extern struct rig_caps malachite_caps; extern struct rig_caps tx500_caps; extern struct rig_caps sdruno_caps; extern struct rig_caps qrplabs_caps; +extern struct rig_caps qrplabs_qmx_caps; extern struct rig_caps fx4_caps; extern struct rig_caps thetis_caps; extern struct rig_caps trudx_caps; diff --git a/rigs/kenwood/ts480.c b/rigs/kenwood/ts480.c index 66fe2f130..5a466a36a 100644 --- a/rigs/kenwood/ts480.c +++ b/rigs/kenwood/ts480.c @@ -36,6 +36,7 @@ #define TS480_ALL_MODES (RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_FM|RIG_MODE_RTTY|RIG_MODE_RTTYR) #define SDRUNO_ALL_MODES (RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_FM|RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_PKTUSB) #define PS8000A_ALL_MODES (RIG_MODE_AM|RIG_MODE_AMS|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_FM|RIG_MODE_RTTY|RIG_MODE_RTTYR) +#define QMX_ALL_MODES (RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_PKTUSB|RIG_MODE_PKTLSB) #define TS480_OTHER_TX_MODES (RIG_MODE_CW|RIG_MODE_SSB|RIG_MODE_FM|RIG_MODE_RTTY) #define TS480_AM_TX_MODES RIG_MODE_AM @@ -1937,6 +1938,67 @@ struct rig_caps qrplabs_caps = .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS }; +struct rig_caps qrplabs_qmx_caps = +{ + RIG_MODEL(RIG_MODEL_QRPLABS_QMX), + .model_name = "QMX", + .mfg_name = "QRPLabs", + .version = BACKEND_VER ".1", + .copyright = "LGPL", + .status = RIG_STATUS_BETA, + .rig_type = RIG_TYPE_TRANSCEIVER, + .ptt_type = RIG_PTT_RIG, + .dcd_type = RIG_DCD_RIG, + .port_type = RIG_PORT_SERIAL, + .serial_rate_min = 9600, + .serial_rate_max = 256000, + .serial_data_bits = 8, + .serial_stop_bits = 1, + .serial_parity = RIG_PARITY_NONE, + .serial_handshake = RIG_HANDSHAKE_NONE, + .write_delay = 0, + .post_write_delay = 0, + .timeout = 500, + .retry = 3, + .preamp = {12, RIG_DBLST_END,}, + .attenuator = {12, RIG_DBLST_END,}, + .targetable_vfo = RIG_TARGETABLE_FREQ, + .transceive = RIG_TRN_RIG, + + .rx_range_list1 = { + {MHz(4), MHz(14), QMX_ALL_MODES, -1, -1, TS480_VFO}, + RIG_FRNG_END, + }, /*!< Receive frequency range list for ITU region 1 */ + .tx_range_list1 = { + {MHz(4), MHz(14), QMX_ALL_MODES, 5000, 100000, TS480_VFO}, + RIG_FRNG_END, + }, /*!< Transmit frequency range list for ITU region 1 */ + /* mode/filter list, remember: order matters! */ + .filters = { + {RIG_MODE_SSB | RIG_MODE_PKTUSB | RIG_MODE_PKTLSB, kHz(3.2)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(300)}, + RIG_FLT_END, + }, + + .rig_init = ts480_init, + .rig_open = qrplabs_open, + .rig_cleanup = kenwood_cleanup, + .set_freq = kenwood_set_freq, + .get_freq = kenwood_get_freq, + .set_mode = kenwood_set_mode, + .get_mode = kenwood_get_mode, + .set_vfo = kenwood_set_vfo, + .get_vfo = kenwood_get_vfo_if, + .set_split_vfo = kenwood_set_split_vfo, + .get_split_vfo = kenwood_get_split_vfo_if, + .get_ptt = kenwood_get_ptt, + .set_ptt = kenwood_set_ptt, + .get_info = kenwood_ts480_get_info, + .get_clock = qrplabs_get_clock, + .set_clock = qrplabs_set_clock, + .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS +}; + /* * Hilberling PT8000A TS480 emulation * Notice that some rigs share the same functions. commit d2065fe781b1213c1458565eb4fe40227bb657f3 Author: Michael Black W9MDB <mdb...@ya...> Date: Tue Jan 7 07:54:00 2025 -0600 Add DIGI-U and DIGI-L to possible modes from FLRig https://github.com/Hamlib/Hamlib/issues/1653 diff --git a/rigs/dummy/flrig.c b/rigs/dummy/flrig.c index b56f87453..f6a3620d8 100644 --- a/rigs/dummy/flrig.c +++ b/rigs/dummy/flrig.c @@ -143,7 +143,7 @@ struct rig_caps flrig_caps = RIG_MODEL(RIG_MODEL_FLRIG), .model_name = "", .mfg_name = "FLRig", - .version = "20241204.0", + .version = "20250107.0", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -1056,7 +1056,9 @@ static int flrig_open(RIG *rig) else if (streq(p, "DIG")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } else if (streq(p, "DIGI")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } else if (streq(p, "DIGL")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p); } + else if (streq(p, "DIGI-L")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p); } else if (streq(p, "DIGU")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } + else if (streq(p, "DIGI-U")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } else if (streq(p, "DSB")) { modeMapAdd(&modes, RIG_MODE_DSB, p); } else if (streq(p, "FM")) { modeMapAdd(&modes, RIG_MODE_FM, p); } else if (streq(p, "FM-D")) { modeMapAdd(&modes, RIG_MODE_PKTFM, p); } commit d1e0e3f204d3b0f5b3a17e83a50d360184136e0d Author: Michael Black W9MDB <mdb...@ya...> Date: Tue Jan 7 07:52:08 2025 -0600 Let kenwood serial read remove non-printable chars from responses Should help it be a bit more robust against bad serial data like this https://github.com/Hamlib/Hamlib/issues/1652 diff --git a/rigs/kenwood/kenwood.c b/rigs/kenwood/kenwood.c index 3cca97103..fc6d2f2d8 100644 --- a/rigs/kenwood/kenwood.c +++ b/rigs/kenwood/kenwood.c @@ -231,6 +231,23 @@ struct confparams kenwood_cfg_params[] = { RIG_CONF_END, NULL, } }; +int remove_nonprint(char *s) +{ + int i, j = 0; + if (s == NULL) return 0; + + for (i = 0; s[i] != '\0'; ++i) + { + if (isprint((unsigned char)s[i])) + { + s[j++] = s[i]; // Copy printable character + } + } + s[j] = '\0'; // Null-terminate the string + + return j; // Return the new length of the string +} + /** * kenwood_transaction @@ -424,6 +441,10 @@ transaction_read: rig_debug(RIG_DEBUG_TRACE, "%s: read_string len=%d '%s'\n", __func__, (int)strlen(buffer), buffer); + // this fixes the case when some corrupt... [truncated message content] |
From: n0nb <n0...@us...> - 2024-12-30 12:15:11
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via 028d750249ab00c8c362598c838b15e8aa6a2951 (commit) via ac8a8b2027983f6710f29abc170555607b4796c9 (commit) via 728d0a543290d23c4f19023f15845e1ca0e7fc3f (commit) via 601dd1361cbc897b41c989a10dca2e2bb191a112 (commit) via f2a9f091d08667db9d3fc2e842a427af7cfb990e (commit) via 028e8f38cdcbeb1165688ed75fadac5dec603245 (commit) via 1211da41d05c62797069caa63181687040db66c9 (commit) via bf7d5c322b59683ddb3cc865abf6df31bb2b5061 (commit) via 5d8593dd733253ddea9d15aacebdfb216f3b8f4a (commit) via eb7a828f5e00c42cef4b9989a44e3a8d70c5ff11 (commit) via 0ad5924050247f4a8fc4f79ed9881614c2e72817 (commit) via f173673695fe6fd535beba0d9690c936c95447d5 (commit) via 70708fdf7f388b1c80da10edc17daf53996e9ed2 (commit) via 57c145d5d15e0aab7d62e5bbcba871c9a55d05ec (commit) via f00e4f4708e3fa8f6a6976367a6264b58a1365e9 (commit) via 8edf99fc187b7b462fa297d885cda89b172bb5d3 (commit) via 9ac7f92d1ef1574bfb463d1a79ee90d0f5752312 (commit) via e0a805ebc3283eb7bd878addc4479d7f0c37e722 (commit) via 15d7242d5ad3df90088cc7e1cc49b0484db6a1a0 (commit) via 8589d5c6bc24809cae1c8cfbdab589b92641d9db (commit) via f9185d1d2469fad84aa925396606c6b752b17e49 (commit) via e262fb82c262f1b6e279e337f1642a6689256f94 (commit) via e56f8187614b2702fb584117a006a2e789ceea3f (commit) via d5dd12d50d824d4655f4c3a0e8b3cffdc464df56 (commit) via 45cc53a5265677f572f4526d750ee546bb4390c4 (commit) via 750adb40b53f89889b802bc64100ce095f114dc2 (commit) via b763761d9e307b4023e8a28d1dcbdc0116a5ff12 (commit) via d302b8fabd713cfbebd53679ad5fb685122903cc (commit) via fe45fa2dfc15f2152d6294e7457ae218df972a0f (commit) via 86518546db30c22a42c5ddc12e68434c4ed3f8ee (commit) via 13f7b01d279a14078b485b9af4e999d3d4f8f5c7 (commit) via 62b0a25a3ddab25c65de373dd6a83d812af5a9f1 (commit) via 57c5047c3ec662cd102961346ed1d4957ea88b5b (commit) via 89383a553a5e6b05779479edac2af0134cb10335 (commit) via ec3978e5210f6142f33504523168f55b4a4032ac (commit) via 2b23051c6ddb266c359ce57008d44deeab3f5bc6 (commit) via 032e530def273825892a6bfe8e4b5eef137ec529 (commit) via a7dbebffa9297d3e9afa5c356ab74bfdb2c0243d (commit) via 33293112744fc08f70811af4add9c7dd6f6533fa (commit) via 6bb5c404994308c06bdfd853642b60adb662b78f (commit) via ec7103582297545948602bc833cf1883fd94e8d8 (commit) via 8842ae7c2920799442bfda812fa56c241dfdeebd (commit) via 4b4b1b0d517403f0f460f1a255358b4f1b426e0b (commit) via e6be427c519ae3228787c728a1bdc5cc5dc31d0c (commit) via 72424ac144904dc9c70161fe70c64f8657e89758 (commit) via 12c453ccd3cbf4455d346f7d4f42fa7061bee0cb (commit) via 6cf93934a71a2ed143125a9f3b005ad38a542423 (commit) via 9624f06be96bafaafaf12fe8188d7390cf5821a2 (commit) via 0690fbc0c532f71d02ed74106191686d31cf13ea (commit) via 3d8dbbcc1ada57a8660ccc919c98f40674df4b02 (commit) via db00197e6adcddd18a810f619d38ac04c87fbd69 (commit) via 5f621c9f5327be25432d0d761204faa434afaee2 (commit) via a81c7d90c41ba6911b75d1806343b318141e6e0b (commit) via a72aa0cb4171f0039f51c2112b1f523310b66ca7 (commit) via a2af87068ea6771dc6e298b21e56ec769d6b31b0 (commit) via bef2d13e4a8443ce32bba28116398a3edf156a45 (commit) via 50e10f758223e456e1304e7b8ae8d2092d89a914 (commit) via 5028a0c440e7643c25ae459f6150c8313b223a7d (commit) via 74876c73ae45ed02b4f0ff45f317e59abb6212a1 (commit) via 27c4eb19ee32b46e4740f781d9f2470638e9f459 (commit) from 1364996bd298643a288d79edde45f7fd53cf0816 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 028d750249ab00c8c362598c838b15e8aa6a2951 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 29 10:43:39 2024 -0600 Fix rig_list_foreach in testmW2power.c diff --git a/tests/testmW2power.c b/tests/testmW2power.c index 88c38b6ed..9e910e95c 100644 --- a/tests/testmW2power.c +++ b/tests/testmW2power.c @@ -13,7 +13,7 @@ int nrigs = 0; -int callback(struct rig_caps *caps, rig_ptr_t rigp) +int callback(const struct rig_caps *caps, rig_ptr_t rigp) { RIG *rig = (RIG *) rigp; commit ac8a8b2027983f6710f29abc170555607b4796c9 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 29 10:33:33 2024 -0600 Fix rig_list_foreach in hamlibmodels.c https://github.com/Hamlib/Hamlib/issues/1647 diff --git a/tests/hamlibmodels.c b/tests/hamlibmodels.c index 0a5e21596..a7cfac7f0 100644 --- a/tests/hamlibmodels.c +++ b/tests/hamlibmodels.c @@ -7,7 +7,7 @@ char *list[1000]; // as of 2023-01-17 we have 275 rigs so this should cover us f int nmodels = 0; -static int hash_model_list(struct rig_caps *caps, void *data) +static int hash_model_list(const struct rig_caps *caps, void *data) { char s[256]; sprintf(s, "%s %s", caps->mfg_name, caps->model_name); commit 728d0a543290d23c4f19023f15845e1ca0e7fc3f Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 29 08:56:53 2024 -0600 Fix listrigs.s rig_list_foreach https://github.com/Hamlib/Hamlib/issues/1647 diff --git a/tests/listrigs.c b/tests/listrigs.c index 65300d25f..230b1c413 100644 --- a/tests/listrigs.c +++ b/tests/listrigs.c @@ -27,7 +27,7 @@ #include <hamlib/rig.h> -int print_caps_sum(struct rig_caps *caps, void *data) +int print_caps_sum(const struct rig_caps *caps, void *data) { const char *fmt1 = "%-13s"; printf("%6u \t%-22s \t%-23s\t%-8s \t", commit 601dd1361cbc897b41c989a10dca2e2bb191a112 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 29 08:51:47 2024 -0600 Fix testrigopen.c rig_list_foreach https://github.com/Hamlib/Hamlib/issues/1647 diff --git a/tests/testrigopen.c b/tests/testrigopen.c index b98064a1e..74886e8d7 100644 --- a/tests/testrigopen.c +++ b/tests/testrigopen.c @@ -16,7 +16,7 @@ #define SERIAL_PORT "/dev/ttyUSB0" -int callback(struct rig_caps *caps, rig_ptr_t rigp) +int callback(const struct rig_caps *caps, rig_ptr_t rigp) { RIG *rig = (RIG *) rigp; commit f2a9f091d08667db9d3fc2e842a427af7cfb990e Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 29 08:42:24 2024 -0600 Change rig_list_foreach back to using const argument -- was breaking many C++ application builds https://github.com/Hamlib/Hamlib/issues/1647 diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index c15c706c9..bba2f8133 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -3791,7 +3791,7 @@ extern HAMLIB_EXPORT(int) rig_unregister HAMLIB_PARAMS((rig_model_t rig_model)); extern HAMLIB_EXPORT(int) -rig_list_foreach HAMLIB_PARAMS((int (*cfunc)(struct rig_caps *, rig_ptr_t), +rig_list_foreach HAMLIB_PARAMS((int (*cfunc)(const struct rig_caps *, rig_ptr_t), rig_ptr_t data)); extern HAMLIB_EXPORT(int) diff --git a/src/register.c b/src/register.c index fcf62b03e..ef0c1f9fd 100644 --- a/src/register.c +++ b/src/register.c @@ -393,7 +393,7 @@ int HAMLIB_API rig_unregister(rig_model_t rig_model) * executes cfunc on all the elements stored in the rig hash list */ //! @cond Doxygen_Suppress -int HAMLIB_API rig_list_foreach(int (*cfunc)(struct rig_caps *, +int HAMLIB_API rig_list_foreach(int (*cfunc)(const struct rig_caps *, rig_ptr_t), rig_ptr_t data) { diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index 263a7bad8..bcb10af96 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -2088,7 +2088,7 @@ int print_conf_list2(const struct confparams *cfp, rig_ptr_t data) return 1; /* !=0, we want them all ! */ } -static int hash_model_list(struct rig_caps *caps, void *data) +static int hash_model_list(const struct rig_caps *caps, void *data) { hash_add_model(caps->rig_model, caps->mfg_name, commit 028e8f38cdcbeb1165688ed75fadac5dec603245 Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Dec 28 15:59:43 2024 -0600 Improve error message when windows serial port is already in use diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index c43d15bad..c15c706c9 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -208,6 +208,7 @@ enum rig_errcode_e { RIG_ESECURITY, /*!< 19 Security error */ RIG_EPOWER, /*!< 20 Rig not powered on */ RIG_ELIMIT, /*!< 21 Limit exceeded */ + RIG_EACCESS, /*!< 22 Access denied -- e.g. port already in use */ RIG_EEND // MUST BE LAST ITEM IN LAST }; /** diff --git a/src/iofunc.c b/src/iofunc.c index 28633aec8..956d56c25 100644 --- a/src/iofunc.c +++ b/src/iofunc.c @@ -252,8 +252,13 @@ int HAMLIB_API port_open(hamlib_port_t *p) if (status < 0) { +#if defined(WIN32) +// rig_debug(RIG_DEBUG_ERR, "%s: serial_open(%s) status=%d, err=%s\n", __func__, +// p->pathname, status, rigerror(status)); +#else rig_debug(RIG_DEBUG_ERR, "%s: serial_open(%s) status=%d, err=%s\n", __func__, p->pathname, status, strerror(errno)); +#endif close_sync_data_pipe(p); return (status); } diff --git a/src/rig.c b/src/rig.c index a73a9df7e..813513293 100644 --- a/src/rig.c +++ b/src/rig.c @@ -233,7 +233,8 @@ static const char *const rigerror_table[] = "Function deprecated", "Security error password not provided or crypto failure", "Rig is not powered on", - "Limit exceeded" + "Limit exceeded", + "Access denied" }; @@ -996,7 +997,7 @@ int HAMLIB_API rig_open(RIG *rig) } else { - rig_debug(RIG_DEBUG_VERBOSE, "%s: cwd=%s\n", __func__, cwd); + //rig_debug(RIG_DEBUG_VERBOSE, "%s: cwd=%s\n", __func__, cwd); char *path = calloc(1, 8192); extern char settings_file[4096]; const char *xdgpath = getenv("XDG_CONFIG_HOME"); @@ -1016,7 +1017,7 @@ int HAMLIB_API rig_open(RIG *rig) if (fp == NULL) { - rig_debug(RIG_DEBUG_VERBOSE, "%s: %s %s\n", __func__, path, strerror(errno)); + //rig_debug(RIG_DEBUG_VERBOSE, "%s: %s %s\n", __func__, path, strerror(errno)); } else { @@ -1169,8 +1170,7 @@ int HAMLIB_API rig_open(RIG *rig) if (status < 0) { - rig_debug(RIG_DEBUG_VERBOSE, "%s: rs->comm_state==0?=%d\n", __func__, - rs->comm_state); + //rig_debug(RIG_DEBUG_VERBOSE, "%s: rs->comm_state==0?=%d\n", __func__, rs->comm_state); rs->comm_state = 0; rs->comm_status = RIG_COMM_STATUS_ERROR; RETURNFUNC2(status); diff --git a/src/serial.c b/src/serial.c index b580bacf9..2d6fd5a7c 100644 --- a/src/serial.c +++ b/src/serial.c @@ -126,6 +126,89 @@ int is_uh_radio_fd(int fd) } //! @endcond +#if defined(WIN32) +#include <windows.h> +#include <strsafe.h> + +void WinErrorShow(LPCTSTR lpszFunction, DWORD dw) +{ + // Retrieve the system error message for the last-error code + + LPVOID lpMsgBuf; + LPVOID lpDisplayBuf; +// DWORD dw = GetLastError(); + + FormatMessage( + FORMAT_MESSAGE_ALLOCATE_BUFFER | + FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + NULL, + dw, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPTSTR) &lpMsgBuf, + 0, NULL); + + // Display the error message and exit the process + + lpDisplayBuf = (LPVOID)LocalAlloc(LMEM_ZEROINIT, + (lstrlen((LPCTSTR)lpMsgBuf) + lstrlen((LPCTSTR)lpszFunction) + 40) * sizeof( + TCHAR)); + StringCchPrintf((LPTSTR)lpDisplayBuf, + LocalSize(lpDisplayBuf) / sizeof(TCHAR), + TEXT("%s failed with error %d: %s"), + lpszFunction, dw, lpMsgBuf); + //MessageBox(NULL, (LPCTSTR)lpDisplayBuf, TEXT("Error"), MB_OK); + rig_debug(RIG_DEBUG_ERR, "%s: %s", __func__, (char *)lpDisplayBuf); + + LocalFree(lpMsgBuf); + LocalFree(lpDisplayBuf); +} + +enum serial_status +{ + SER_NO_EXIST, + SER_IN_USE, + SER_UNKNOWN_ERR, + SER_AVAILABLE +}; + +int check_com_port_in_use(const char *port) +{ + char device[1024]; + snprintf(device, sizeof(device), "\\\\.\\%s", port); + HANDLE hCom = CreateFileA( + device, + GENERIC_READ | GENERIC_WRITE, + 0, // No sharing + NULL, // Default security + OPEN_EXISTING, + 0, // Non-overlapped mode + NULL // No template file + ); + + if (hCom == INVALID_HANDLE_VALUE) + { + DWORD error = GetLastError(); + + if (error == ERROR_FILE_NOT_FOUND) + { + return SER_NO_EXIST; + } + else if (error == ERROR_ACCESS_DENIED) + { + return SER_IN_USE; + } + else + { + WinErrorShow("serial error on CreateFileA: ", error); + return SER_IN_USE; + } + } + CloseHandle(hCom); + + return SER_AVAILABLE; +} +#endif /** * \brief Open serial port using STATE(rig) data @@ -143,6 +226,28 @@ int HAMLIB_API serial_open(hamlib_port_t *rp) return (-RIG_EINVAL); } +#if defined(WIN32) + int retcode = check_com_port_in_use(rp->pathname); + + switch (retcode) + { + case SER_IN_USE: + rig_debug(RIG_DEBUG_ERR, "%s: serial port %s is already open\n", __func__, + rp->pathname); + return -RIG_EACCESS; + + case SER_NO_EXIST: + rig_debug(RIG_DEBUG_ERR, "%s: serial port %s does not exist\n", __func__, + rp->pathname); + return -RIG_EIO; + + case SER_AVAILABLE: + rig_debug(RIG_DEBUG_ERR, "%s: serial port %s is OK\n", __func__, rp->pathname); + break; + } + +#endif + rig_debug(RIG_DEBUG_VERBOSE, "%s: %s\n", __func__, rp->pathname); commit 1211da41d05c62797069caa63181687040db66c9 Author: Michael Black W9MDB <mdb...@ya...> Date: Fri Dec 27 16:28:06 2024 -0600 Remove csharp for now diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 9f24dcb65..3cb9dcdd4 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -32,7 +32,7 @@ jobs: strategy: fail-fast: false matrix: - language: [ 'cpp', 'python', 'csharp' ] + language: [ 'cpp', 'python' ] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] # Learn more: # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed commit bf7d5c322b59683ddb3cc865abf6df31bb2b5061 Merge: 5d8593dd7 0ad592405 Author: Michael Black W9MDB <mdb...@ya...> Date: Thu Dec 26 15:34:37 2024 -0600 Merge branch 'master' of github.com:Hamlib/Hamlib commit 5d8593dd733253ddea9d15aacebdfb216f3b8f4a Author: Michael Black W9MDB <mdb...@ya...> Date: Thu Dec 26 15:33:20 2024 -0600 Update simic7300 and simic7000 diff --git a/simulators/simic7000.c b/simulators/simic7000.c index aa44ab0e7..ef14d0298 100644 --- a/simulators/simic7000.c +++ b/simulators/simic7000.c @@ -72,18 +72,17 @@ again: while (read(fd, &c, 1) > 0) { buf[i++] = c; - //printf("i=%d, c=0x%02x\n",i,c); + printf("i=%d, c=0x%02x\n", i, c); if (c == 0xfd) { char mytime[256]; date_strget(mytime, sizeof(mytime), 1); printf("%s:", mytime); dumphex(buf, i); + printf("\n"); // echo - n = write(fd, buf, i); - - if (n != i) { printf("%s: error on write: %s\n", __func__, strerror(errno)); } - + //n = write(fd, buf, i); + //if (n != i) { printf("%s: error on write: %s\n", __func__, strerror(errno)); } return i; } @@ -132,7 +131,7 @@ void frameParse(int fd, unsigned char *frame, int len) { case 0x03: - if (frame[5] != 0xfd) + if (frame[5] == 0xfd) { //from_bcd(frameackbuf[2], (civ_731_mode ? 4 : 5) * 2); if (current_vfo == RIG_VFO_A || current_vfo == RIG_VFO_MAIN) @@ -153,21 +152,21 @@ void frameParse(int fd, unsigned char *frame, int len) n = write(fd, frame, 11); dump_hex(frame, 11); } + } + else + { + if (current_vfo == RIG_VFO_A) + { + freqA = from_bcd(&frame[5], (civ_731_mode ? 4 : 5) * 2); + } else { - if (current_vfo == RIG_VFO_A) - { - freqA = from_bcd(&frame[5], (civ_731_mode ? 4 : 5) * 2); - } - else - { - freqB = from_bcd(&frame[5], (civ_731_mode ? 4 : 5) * 2); - } - - frame[4] = 0xfb; - frame[5] = 0xfd; - n = write(fd, frame, 6); + freqB = from_bcd(&frame[5], (civ_731_mode ? 4 : 5) * 2); } + + frame[4] = 0xfb; + frame[5] = 0xfd; + n = write(fd, frame, 6); } break; @@ -614,6 +613,9 @@ int main(int argc, char **argv) if (powerstat) { + unsigned char tmp = buf[2]; + buf[2] = buf[3]; + buf[3] = tmp; frameParse(fd, buf, len); } else diff --git a/simulators/simic7300.c b/simulators/simic7300.c index 797259dba..551b2108e 100644 --- a/simulators/simic7300.c +++ b/simulators/simic7300.c @@ -76,7 +76,13 @@ again: if (c == 0xfd) { - dumphex(buf, i); + char mytime[256]; + date_strget(mytime, sizeof(mytime), 1); + printf("%s:", mytime); dumphex(buf, i); + printf("\n"); + // echo + //n = write(fd, buf, i); + //if (n != i) { printf("%s: error on write: %s\n", __func__, strerror(errno)); } return i; } @@ -125,28 +131,47 @@ void frameParse(int fd, unsigned char *frame, int len) { case 0x03: - //from_bcd(frameackbuf[2], (civ_731_mode ? 4 : 5) * 2); - if (current_vfo == RIG_VFO_A || current_vfo == RIG_VFO_MAIN) - { - printf("get_freqA\n"); - to_bcd(&frame[5], (long long)freqA, (civ_731_mode ? 4 : 5) * 2); - } - else + if (frame[5] == 0xfd) { - printf("get_freqB\n"); - to_bcd(&frame[5], (long long)freqB, (civ_731_mode ? 4 : 5) * 2); - } + //from_bcd(frameackbuf[2], (civ_731_mode ? 4 : 5) * 2); + if (current_vfo == RIG_VFO_A || current_vfo == RIG_VFO_MAIN) + { + printf("get_freqA\n"); + to_bcd(&frame[5], (long long)freqA, (civ_731_mode ? 4 : 5) * 2); + } + else + { + printf("get_freqB\n"); + to_bcd(&frame[5], (long long)freqB, (civ_731_mode ? 4 : 5) * 2); + } - frame[10] = 0xfd; + frame[10] = 0xfd; + + if (powerstat) + { + dump_hex(frame, 11); + n = write(fd, frame, 11); - if (powerstat) + if (n <= 0) { fprintf(stderr, "%s(%d) write error %s\n", __func__, __LINE__, strerror(errno)); } + } + } + else { - dump_hex(frame, 11); - n = write(fd, frame, 11); + if (current_vfo == RIG_VFO_A) + { + freqA = from_bcd(&frame[5], (civ_731_mode ? 4 : 5) * 2); + } + else + { + freqB = from_bcd(&frame[5], (civ_731_mode ? 4 : 5) * 2); + } - if (n <= 0) { fprintf(stderr, "%s(%d) write error %s\n", __func__, __LINE__, strerror(errno)); } + frame[4] = 0xfb; + frame[5] = 0xfd; + n = write(fd, frame, 6); } + break; case 0x04: commit eb7a828f5e00c42cef4b9989a44e3a8d70c5ff11 Author: Michael Black W9MDB <mdb...@ya...> Date: Thu Dec 26 07:56:06 2024 -0600 Add stdarg.c as va_list requires https://github.com/Hamlib/Hamlib/issues/1644 diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index 82b18e0ff..c43d15bad 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -37,6 +37,7 @@ #define __FILENAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) #include <stdio.h> +#include <stdarg.h> #include <string.h> #include <inttypes.h> #include <time.h> commit 0ad5924050247f4a8fc4f79ed9881614c2e72817 Author: Michael Black W9MDB <mdb...@ya...> Date: Thu Dec 26 07:56:06 2024 -0600 Add stdarg.c as va_list requires diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index 82b18e0ff..c43d15bad 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -37,6 +37,7 @@ #define __FILENAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) #include <stdio.h> +#include <stdarg.h> #include <string.h> #include <inttypes.h> #include <time.h> commit f173673695fe6fd535beba0d9690c936c95447d5 Author: Michael Black W9MDB <mdb...@ya...> Date: Wed Dec 25 22:59:50 2024 -0600 Update rigctl.1 man page diff --git a/doc/man1/rigctl.1 b/doc/man1/rigctl.1 index 7c0dadc8e..e8ce4e31a 100644 --- a/doc/man1/rigctl.1 +++ b/doc/man1/rigctl.1 @@ -335,7 +335,7 @@ Sets the cookie to be used for remote access security . .TP .BR \-# ", " \-\-skip_init -Skips most startup intialization. This is now automatically done when any commands are on the line. +Skips most startup intialization. . .TP .B \- commit 70708fdf7f388b1c80da10edc17daf53996e9ed2 Author: Michael Black W9MDB <mdb...@ya...> Date: Wed Dec 25 22:53:34 2024 -0600 Update multicast.csproj to use .net 8 diff --git a/bindings/csharp/multicast/multicast.csproj b/bindings/csharp/multicast/multicast.csproj index d08b4c72a..21e08b007 100644 --- a/bindings/csharp/multicast/multicast.csproj +++ b/bindings/csharp/multicast/multicast.csproj @@ -2,7 +2,7 @@ <PropertyGroup> <OutputType>Exe</OutputType> - <TargetFramework>net7.0</TargetFramework> + <TargetFramework>net8.0</TargetFramework> </PropertyGroup> <ItemGroup> commit 57c145d5d15e0aab7d62e5bbcba871c9a55d05ec Author: Michael Black W9MDB <mdb...@ya...> Date: Wed Dec 25 22:43:20 2024 -0600 Remove skip_init default Was causing segfault on rigctl -m 2041 -r /dev/pts/4 M CW 250 b 73 diff --git a/tests/rigctl.c b/tests/rigctl.c index 5a40b3e11..9affbab35 100644 --- a/tests/rigctl.c +++ b/tests/rigctl.c @@ -547,7 +547,8 @@ int main(int argc, char *argv[]) if (optind < argc) { interactive = 0; - skip_init = 1; + // skip_init here caused segfault on rigctl -m 2041 -r /dev/pts/4 M CW 250 b 73 + //skip_init = 1; } else { commit f00e4f4708e3fa8f6a6976367a6264b58a1365e9 Author: Michael Black W9MDB <mdb...@ya...> Date: Wed Dec 25 17:12:29 2024 -0600 Add csharp codeql check diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 3cb9dcdd4..9f24dcb65 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -32,7 +32,7 @@ jobs: strategy: fail-fast: false matrix: - language: [ 'cpp', 'python' ] + language: [ 'cpp', 'python', 'csharp' ] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] # Learn more: # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed commit 8edf99fc187b7b462fa297d885cda89b172bb5d3 Author: Michael Black W9MDB <mdb...@ya...> Date: Wed Dec 25 16:36:37 2024 -0600 Change skipinit so skip-init for consistency And now ignores the skip-init on the non-interactive rigctl diff --git a/doc/man1/rigctl.1 b/doc/man1/rigctl.1 index b318f3fc3..7c0dadc8e 100644 --- a/doc/man1/rigctl.1 +++ b/doc/man1/rigctl.1 @@ -334,7 +334,7 @@ and exit. Sets the cookie to be used for remote access security . .TP -.BR \-# ", " \-\-skipinit +.BR \-# ", " \-\-skip_init Skips most startup intialization. This is now automatically done when any commands are on the line. . .TP diff --git a/tests/rigctl.c b/tests/rigctl.c index 75b41a14d..5a40b3e11 100644 --- a/tests/rigctl.c +++ b/tests/rigctl.c @@ -110,7 +110,7 @@ static struct option long_options[] = {"help", 0, 0, 'h'}, {"version", 0, 0, 'V'}, {"cookie", 0, 0, '!'}, - {"skipinit", 0, 0, '#'}, + {"skip-init", 0, 0, '#'}, {0, 0, 0, 0} }; @@ -956,7 +956,7 @@ void usage(void) " -h, --help display this help and exit\n" " -V, --version output version information and exit\n" " -!, --cookie use cookie control\n" - " -#, --skipinit skips rig initialization\n\n" + " -#, --skip-init skips rig initialization\n\n" ); usage_rig(stdout); diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index ebe9df723..263a7bad8 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -915,11 +915,21 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, } } + if (strcmp(command,"skip-init")==0) + { + // no-op now since it's automatic in non-interactive mode + return(RIG_OK); + } + cmd_entry = find_cmd_entry(cmd); if (!cmd_entry) { - if (cmd != ' ') + if (cmd == 0) + { + fprintf(stderr, "Command '%s' not found!\n", command); + } + else if (cmd != ' ') { fprintf(stderr, "Command '%c' not found!\n", cmd); } commit 9ac7f92d1ef1574bfb463d1a79ee90d0f5752312 Author: Michael Black W9MDB <mdb...@ya...> Date: Wed Dec 25 15:59:40 2024 -0600 Update some documentation diff --git a/doc/man1/rigctl.1 b/doc/man1/rigctl.1 index 9a1b6d44e..b318f3fc3 100644 --- a/doc/man1/rigctl.1 +++ b/doc/man1/rigctl.1 @@ -330,6 +330,14 @@ Show version of and exit. . .TP +.BR \-! ", " \-\-cookie +Sets the cookie to be used for remote access security +. +.TP +.BR \-# ", " \-\-skipinit +Skips most startup intialization. This is now automatically done when any commands are on the line. +. +.TP .B \- Stop option processing and read commands from standard input. .IP diff --git a/tests/rigctl.c b/tests/rigctl.c index 9d17fba44..75b41a14d 100644 --- a/tests/rigctl.c +++ b/tests/rigctl.c @@ -955,8 +955,8 @@ void usage(void) " -Z, --debug-time-stamps enable time stamps for debug messages\n" " -h, --help display this help and exit\n" " -V, --version output version information and exit\n" - " -!, --cookie use cookie control\n\n" - " -#, --skipinit skips rig initialization\n" + " -!, --cookie use cookie control\n" + " -#, --skipinit skips rig initialization\n\n" ); usage_rig(stdout); commit e0a805ebc3283eb7bd878addc4479d7f0c37e722 Author: Michael Black W9MDB <mdb...@ya...> Date: Tue Dec 24 23:19:02 2024 -0600 Make skip_init automatic when rigctl has commands on the line diff --git a/tests/rigctl.c b/tests/rigctl.c index 383c7185b..9d17fba44 100644 --- a/tests/rigctl.c +++ b/tests/rigctl.c @@ -547,6 +547,7 @@ int main(int argc, char *argv[]) if (optind < argc) { interactive = 0; + skip_init = 1; } else { ----------------------------------------------------------------------- Summary of changes: amplifiers/gemini/gemini.h | 2 +- bindings/csharp/multicast/multicast.csproj | 2 +- doc/man1/rigctl.1 | 8 + docker-build/Dockerfile | 29 +-- docker-build/README.Docker.md | 71 ++++++++ docker-build/README.docker | 13 -- include/hamlib/rig.h | 4 +- rigs/dummy/aclog.c | 4 +- rigs/dummy/flrig.c | 10 +- rigs/dummy/netrigctl.c | 2 +- rigs/dummy/tci1x.c | 2 +- rigs/dummy/trxmanager.c | 2 +- rigs/flexradio/smartsdr.c | 2 +- rigs/icom/frame.c | 11 +- rigs/icom/icom.c | 4 +- rigs/kenwood/kenwood.c | 11 +- rigs/kenwood/ts590.c | 18 +- rigs/yaesu/ft1000mp.c | 4 +- rigs/yaesu/ft991.c | 2 +- rigs/yaesu/newcat.c | 6 +- rotators/gs232a/gs232b.c | 2 +- simulators/simic7000.c | 38 ++-- simulators/simic7300.c | 57 ++++-- src/iofunc.c | 5 + src/register.c | 2 +- src/rig.c | 24 ++- src/serial.c | 105 +++++++++++ src/sprintflst.c | 278 ++++++++++++++++++++--------- tests/ampctl.c | 2 +- tests/ampctl_parse.c | 3 +- tests/ampctld.c | 2 +- tests/hamlibmodels.c | 2 +- tests/listrigs.c | 2 +- tests/rigctl.c | 10 +- tests/rigctl_parse.c | 34 ++-- tests/rigctlcom.c | 2 +- tests/rigctld.c | 2 +- tests/rigctlsync.c | 2 +- tests/rigctltcp.c | 2 +- tests/rigmem.c | 2 +- tests/rigsmtr.c | 4 +- tests/rigswr.c | 2 +- tests/rotctl.c | 2 +- tests/rotctl_parse.c | 3 +- tests/rotctld.c | 2 +- tests/testmW2power.c | 2 +- tests/testrigopen.c | 2 +- 47 files changed, 564 insertions(+), 236 deletions(-) create mode 100644 docker-build/README.Docker.md delete mode 100644 docker-build/README.docker hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: n0nb <n0...@us...> - 2024-12-24 08:51:25
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The annotated tag, 4.6 has been created at 214380b3509cf5ac7d5985cc630b1530473ab4a7 (tag) tagging c9031ca4d7d1b7817f0e461814a740bfeb383f84 (commit) tagged by Nate Bargmann on Tue Dec 24 02:44:02 2024 -0600 - Log ----------------------------------------------------------------- Hamlib 4.6 release -----BEGIN PGP SIGNATURE----- iF0EABECAB0WIQSC1k9rDmfNQfaJu6b7LFEw1VqIGQUCZ2p0iwAKCRD7LFEw1VqI GZ+7AJ9kyLR9iGlSaIbfSdjmQSeEudABEACeIDG800BMADkMlFUKaZnEHR3YLEM= =5Ds4 -----END PGP SIGNATURE----- (no author) (1): New repository initialized by cvs2svn. Addison Schuhardt (1): Refactoring GPIO push-to-talk logic to use libgpiod rather than the deprecated/broken sysfs method. TODO: I'm not familiar with autoconf to set up linking to libgpiod correctly, so I'd like to ask someone else to do that. Fixes #1538 Adrian Chadd (1): Upgrade TS-711 and TS-811 to work. Agis Zisimatos (1): easycomm: Return the correct value of pointer val Alessandro Zummo, IZ1PRB (36): Remove const from priv_caps to allow kenwood_init to initialize default values if they're missing Call kenwood_init in each and every driver Use an appropriate debug level Support get/set_powerstat on pcr100 Add kenwood_simple_cmd Make set_ptt behave as before, fix set_ant for ts570.c ts450: remove RIG_FUNC_TONE from has_xx_func if tone unit is not detected ts450,ts690,ts850: use FL command to get/set filters in get/set_mode. (code from ts850.c) ts450: indentation fixes remove fixed command terminator (;) from generic code ts140,ts2000,ts480,ts570,ts680,ts850,ts870s: remove usage of fixed ; and EOM fix tabs thg71,tmv7,ts450s,ts690: verify rig id at rig_open ts450: implement set_channel remove unused parameter from get_kenwood_func ts570,ts850,ts870s,ts140,ts480,ts680: use kenwood_simple_cmd where possible Replace __FUNCTION__, which is gcc specific and was deprecated a long time ago, with __func__, which is at least defined in C99. generic, ts850: implemented CTCSS TN command (reported not working for ts850, should now be fixed) Add description for the kenwood mode n. 8 implemented set/get_ext_param (voice, fine, xit, rit). enabled on ts450 and ts850 Added my call sign removed comment about switch optimizatons. the compiler will generate the assembly code in a different order which is usually based on the case value. other compiler optimizations might also affect it, so it's useless to optimize the order. check ptt status before set_ptt. enabled on ts850. style fixes band up/down was inverted Try to compensate for leftover characters Try to cope withe the PCR100 and PCR1000 at the same time Bumped out to beta, solved a few bugs. Tested with PCR100/1000/1500. kenwood: send the whole buffer at once, added kenwood_cmd - removed EOM, it's handled by kenwood_transaction - fixed tabs and spaces - added generic routine for vfo errors - set_mem: do not switch vfo if already in mem mode - simplified invocation of some commands - buffer optimizations - added PARM_BEEP and PARM_APO - fixed getting of LEVEL_RFPOWER - fixed get_ant tmv7: removed EOM thg71: removed EOM thf7: - wrong rfpower level granularity - added .reset - call kenwood_open - use generic th_set_vfo th: fixed formatting issue th: fixed stack corruption th: fixed a missing newline Alex V Flinsch, KC2IVL (8): Initial changes for ft100 Initial release initial release fixed various command options new file, list of tones/codes and sequence used by various yaesu rigs added get frequency to ft100 code added getinfo func hdr *** empty log message *** Alexander Sack (1): Get firmware revision level from K3/KX3. Alexander Schultze (3): easycomm: include a new EasyComm3 to support move speed and infostring update EasyComm3 to include setting and getting of config and status easycomm: implement get/set config, easycom include status and error bytes, fix get_info Alexandru Csete OZ9AEC (34): Added new stylesheet to make API docs look better. Modified to use new stylesheet. Added doxygen comments. Added rotator.h and rotlist.h to the input list. Applied Tommi's improvements from the FT-857 backend with the following changes and additions: Full RF power scale corresponds to 10 bars, not 15. Added RIT, XIT and IF shift ranges to dummy backend. Cast constant caps to variable caps in order to avoid compiler warnings. Cast from const to variable in order to avoid compiler warnings. - Cast unsigned char to char in order to avoid compiler warnings. - Ensure that all variables have a value before they are used (ft920). - Disable unused functions and variables (frg100). - Incremented backend version numbers. Use tone_t for pcr1_ctcss_list. Changed arg 4 of pcr_transaction to unsigned. Cast the other mismatches to (char *). Cast unsigned char to char in order to avoid compiler warnings. Incremented backend version number. - Cast unsigned char to char in order to avoid compiler warnings. - Ensure that all variables have a value before they are used (tentec.c). - Cast unsigned char to char in order to avoid compiler warnings. - Incremented backend version number. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version number. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version numbers. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version numbers. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version number. - Cast/change unsigned char to char in order to fix compile warnings. - Incremented backend version numbers. - Cast unsigned char to char in order to avoid compiler warnings. - Handle all enum values in switch statements. Fixed type mismatches that caused compile warnings. Fixed type mismatches that caused compile warnings. Initialise icom_val to avoid compiler warning. Fixed type mismatches between signed and unsigned char. There are a few very suspicious 'if' statements in icom.c and frame.c - Fixed type mismatches and unhandled switch cases. - Incremented backend version numbers. Cast constant caps to variable caps in order to avoid compiler warnings. Updated. Added infor about w (send_cmd). Max serial rate is 9600. Changed backend status to stable. Escape the backslash character. The 765 can do RIG_SCAN_PROG and RIG_SCAN_MEM. Fixed S-meter reading to use calibration table since frontend always uses RAWSTR. Fixed RF power reading and added power2mw and mw2power. Fixed RIG_LEVEL_STRENGTH reading. Andrew Errington (1): Initial support for CM108 GPIO contorl of PTT Andrew Rodland (3): Fix spurious writes when no RT-21 second port Enable "stop" command for RT-21 rotator. Update RT-21 version AuroraRAS (5): Prepare .gitignore file for NDK build Append the missing information to build hamlib v4.3 for Android NDK make the Android.mk files adapt to multi arch add androidsensor rotator AndroidSensor codes improvement Ben Coleman, NJ8J (6): Fixed bug in rpcrig_set_parm (using RIG_LEVEL_IS_FLOAT instead of RIG_PARM_FLOAT) Fixed same bug in rigctl_get_parm. Added checking of return string from rig on set (non-retrieval) commands. Added code for COMP function. Added alinco_set_parm & tweaked dx77 capabilities. Handle setting Keyer speed and CW Pitch Added NJ8J's email address. Change email address for NJ8J Berndt Josef Wulf, VK5ABN (11): Implemented rig_set_channel() Implemented set_parm() for BACKLIGHT operation Commented out RIG_MODE_PKTFM overlooked at the submission of previous code Implemented RIG_MODE_PKTFM and RIG_MODE_PKTLSB modes Changed debug message format for freq_t from long long to double ft990_get_ptt() now uses the FT990_SF_XMIT instead of FT990_SF_PTT. FT990_SF_PTT only returns status of PTT activated by CAT commands, whereas FT990_SF_XMIT reports the actual status of the ptt line. ft990_get_mem(): Fixed bug that prevented the reporting of current channel number when vfo != RIG_VFO_MEM Fixed erroneous return value Fixed mispelled name for VK5ABN Added missing modes to RX/TX caps Fixed bug in ft990_set_mode that caused RTTY interchanged modes USB/LSB Fixed bugs in ft990_get_channel Bill Barker (1): Add test for Flex 6300 ID Bill Somerville (212): Patch submission for IC-756 Patch to allow same serial port for PTT and CAT. Patch to fix broken Yaesu backend with FT-2000(D) Fix rig_open not failing when PTT/DCD port is unavailable. Fix Icom IC-756 filter handling. Fix Yaesu newcat backend set_tx_vfo issue. Add support for Data Modes on Icom "Pro" models. Fix Icom IC-726 mode handling. Fix Kenwood TS-2000 split operation. Fix Kenwood Split Operation for TS50 & TS480. Fix Kenwood TS-870s split and bandwidth set/get. Correct receive buffer length for IS; comamnd. Fix Kenwood CAT transaction busy retry mechanism. Fix Kenwood get split VFO function. Add data sub-mode support for TS590s. Correct order of MD and DA commands for TS590s. Get firmware revision for TS590s in rig_open. Fix TS590s firmware defect. Fix Kenwood get_vfo function returning wrong VFO in split TX. Make Kenwood TS590s firmware defect fixup revision specific. Extend TS590s firmware defect fixup to both VFOs. Fix Icom IC-756 Pro III get data mode. Add spilt mode get and set for Elecraft K3. Fix data sub-modes on Elecraft K3. Fix Elecraft Data Mode Translation. Fix Elecraft K3 Data Sub-Mode Setting. Fix Yaesu FT1000MP and FT1000MP Mk V modes. Fix configure.ac Fix a warning message. Added option to not use VFO XCHG command when setting split parameters. Fix a buffer overflow in the Windows termios emulation. Fix pkg-config generation. Fix Icom IC-756Pro mode get/set. Facility for rigctl to read commands from standard input. Add a pause command to the rigctl command set. Prefix action function names so as not to clash with system names. Prefix action function names so as not to clash with system names. Corrected typos in rigctl.1 manpage. Add read commands from stdin and pause command features to rotctl. Merge branch 'rigctl-stdin' of ssh://git.code.sf.net/u/bsomervi/hamlib into rigctl-stdin Fix manpage errors. Remove redundant RIG_PTT_SERIAL_CAT enum from ptt_t Only check for serial control line conflicts if PTT shares CAT port Fix Ten-Tec Orion get/set split functions Icom IC-7410 has VFO A/B not MAIN/SUB Added IC-7410 data modes Add retry mechanism for Yaesu "newcat" backend Implement retries for Yaesu "newcat" rigs Disable auto information mode on open Add retry mechanism for Yaesu "newcat" backend Implement retries for Yaesu "newcat" rigs Disable auto information mode on open Merge branch 'yaesu-retries' of ssh://git.code.sf.net/u/bsomervi/hamlib into yaesu-retries RIG_OK is zero and need not be negated and this will not change Fix response length expected error in K3 back end Data mode support for the Icom IC-7700 Data mode support for the Icom IC-9100 Data mode support for the Icom IC-7200 Add support for the Kenwood TS-590SG Kenwood TS-590SG Always clear serial control lines when used for PTT Disable AI mode on open for Kenwood/Elecraft rigs Add more diagnostics and error checks to serial line control Move serial line control error checks to lower level routines Merge branch 'master' into kenwood-ai-off-at-start Merge branch 'master' into ptt-control-on-cat-port Fix serial i/o on Windows. Yaesu newcat style command response reading improvements Increase communications timeout for Icom rigs Kenwood AIn; command has no reply Revert read_string() to partial results are a success status Remove gratuitous sleeps before function exits Error checks on simulated direct VFO addressing Elecraft K2 RTTY modes are not FSK Kenwood and Elecraft rigs sometimes ignore commands Removed kenwood_cmd function and replaced uses of it Allow for failed test command on the K2 Elecraft K3 has 1 stop bit Kenwood TS-570 series IF returns current frequency Switch to "ID;" command for verification as no "AI;" on TS-840s Increase Elecraft K2 comms timeout and retries Switch Kenwood TS940 to generic kenwood CAT functions Improve command verification for Kenwood & Elecraft Use local buffer in kenwood transaction funciton Clarify the handling of Kenwood CAT message terminators Further clarification in the implementation of kenwood_transaction() Removed redundant precondition test Remove kenwood_simple_cmd as kenwood_transaction has that functionality Call kenwood_open() for TS-2000 to ensure AI mode is disabled Allow for bad ID from DDUtil in TS-2000 mode Allow one extra byte in read_string() length to accomodate terminator Enable data modes for the Icom IC-7100 Allow for PowerSDR ID in Kenwood TS2000 emulation mode Fix TenTec Argonaut message lengths and timeout Fix TenTec set split command Implement get PTT status for the TenTec Argonaut Fix error with width in set mode for the TT argonaut Yaesu FT540 can only change the frequency of the current VFO Fix defect in Kenwood TS-940 IF command response parsing Fix response lengths for the TT Jupiter 538 Do not attempt CAT PTT commands on the Icom IC-706mkIIG Use correct argument type for serial control line functions Initial back end implementation for the Kenwood TS-990s Mode set is not VFO targetable on the Kenwood TS990s The Kenwood TS990s only does split Tx on SUB VFO The doesn't appear to be a way of getting PTT/SEND on the TS990s Lower both RTS and DTR on alternate PTT serial port Honour any error status from serial port calls Dummy get_ptt function needs to read RTS/DTR/PARALLEL Make autogen.sh agnostic to whitespace in paths Increase the number or retries for most Kenwood rigs Command validation for Yaesu set commands Remove unecessary delays from TS-940S backend Proper IPv6 and dual stack networking Fix compiler warnings Proper IPv6 and dual stack networking for rotator net daemon Attempt to restore AI status on exit Allow for poor emulations of Kenwood rigs that have no ID command Use correct function to execute set type commands with no response Add a new command line option '--no-restore-ai' ('-n') to rigctl Fix FT-817/857/897 issues and add some missing functionality Fix missing PKTUSB mode setting code for FT-817 & FT-897 Fix a logic error in band detection during IC-910 set frequency Add missing configuration getters Detect C-IV NAK returns as rejected commands Elecraft rigs do not switch VFO in IF command responses during split Tx. Redundant split mode directives on Elecraft rigs cause Tx failures Only use IPv6 features on Windows versions that support it (>=XP) Improve IPv6 portability and consistency Add 23cms to IC-910(H) backend Implement combined split VFO frequency and mode setting. Initial implementation of rig_{set,get}_split_freq_mode() for FT-857. Implement rig_{set,get}_split_freq_mode() for IC-756 series. Add {get,set}_splitfrequency_mode for the IC-910(H) Elide unnecessary CAT commands when setting split frequency and mode Do not swap VFO unnecessarily Better set frequency semantics for the IC-910(h) VFO targetable get frequency operation for the Icom IC-910(h) Make sure right band is used when setting frequency on IC-910(H) Use rig state rig port retry option rather than from capabilities Use a sensible port timeout value for the Kenwood TS-850 Further attempts to simplify and improve Icom CAT for split operating Add RIG_PASSBAND_NOCHANGE as possible set_{split_,split_freq_,}mode argument Switch to POSIXLY_CORRECT mode for getopt_long() Fix a regression introduced in 222ad74 Do not crash if expected CTCSS tones not sepcified Do not attempt to query AI state on the TS-450s as it is not supported Some more Kenwood rigs with no AI query Adjust rig_list_foreach to allow use for unregistering Fix an issue presenting on the Yaesu FT-450(D) Release the serial port used for PTT when possible Change the IC7600 & IC7800 set/get mode to versions that support DATA modes Add rig_{open,close} functions to TS-790 backend Revised kenwood rig busy response handling Add get and set split functions for the TS450S Simplify and fix defects in the FT991 back end Fix some endian issues in the si570/AVR SDR back ends Fix a state machine defect with repeated PTT reset calls Do not pass --no-cpp_precomp to compilers on Mac OS X Allow RIG_LEVEL_STRENGTH queries over the network link Stop rigctld and rotctld crashing when service threads cannot write to clients Use snprintf throughout kenwood/kenwood.c for buffer safety Fix off-by-one issue in reading memory mode from IF command response Fix some issues with commands not supported by TS-2000 CAT emulations Add best guess transmit status to rig state structure Take out unecessary delays in K(X)3(S) back end. FT-817 status queries honour retries and timeout Make rig_open() call in rigctld lazy and add graceful termination Simplify SWIG interface definition and hide 64-bit values from Lua binding Remove unnecessary delays from TS-990 and TS-2000 back ends Change frequency setting for the FT-747GX to something more basic Fix an incorrect error return value from win32_serial_select() Fix timeout issues with the Ten-Tec Orion/Eagle Ensure compilation works with a pre C11 compiler Make code C90 compliant again Move unnecessary global and file static variables to the stack Simplify unnecessary persistence of extended response state Fix misunderstanding of netrigctl_transaction() return value Made PTT and DCD options consistent between rigctl and rigctld Report unrecognised PTT and DCD types in rigctl and rigctld Update i/o functions to support GPIO(N) port closure Fixed erroneous messages in rig_close with GPIO(N) PTT or DCD types Remove duplication across GPIO and GPION handling of PTT and DCD Improved get PTT state handling in dummy backend Simplify closing of device files Repair a regression with the dummy get PTT functionality Revert "Add debug to serial.c" Repair a regression with the dummy get PTT functionality Revert "Add debug to serial.c" Fix regression with slow responses from SmartSDR causing errors Deal with remote PTT type at the client end Avoid 'echo -n' as macOS sh doesn't support it Fixing an operator precedence defect Updates to the TH-D7A/E back end Less ambiguous variable name and repair merge issue in prior commit Add missing config parameters for rig power on/off and screen-saver New power on option rather than power on/off Make version recording safe for parallel builds without breaking make dist Make version recording safe for parallel builds Ensure old hamlibdatetime.h headers in the source dir are ignored Merge branch 'safe-scs-versioning' of ssh://git.code.sf.net/u/bsomervi/hamlib into safe-scs-versioning Fix make dist versioning Use BUILT_SOURCES make mechanism as intended Fix rebuild dependency Build hamlibdatetime.h every time Force copy over existing Minimize rebuilding Correct use of sh if Another attempt at a reliable SCS version header generation Remove temporary file Add missing shared library API exports Add missing export definition Blaine Kubesh (8): added Icom803 to icmarine added Icom803 to icmarine added Icom803 to icmarine Update ic-m803 remote-id to 20 Update icm803.c Update AUTHORS undo author changes Update icm803.c Bob Freeman (1): New CNCTRK rotor backend Brandon Durepo (5): Added multi-stage Docker build and hamlib-runtime image Added multi-platform support for linux/arm64 and linux/amd64 Add support for the hamlib-base-image and hamlib-runtime targets - support the arm64 and amd64 platforms on both a base-image and runtime Added git and vim to the hamlib-base-image Added Python support Brian G. Lucas (10): Pretty much a complete re-write of thd72.c, since the old one didn't work at all. Many commands have been tested with real hardware. But more work remains to be done. WIP: thd72 driver. More level, func, and parm stuff works. WIP: thd72 driver. Try to simplify the menu based interface. WIP: thd72 driver. First cut at get_channel(). Other cleanup. WIP: thd72 driver. More interfaces implemented. Other cleanup. Implement some more interfaces. Comment out get_chan_all_cb because the block read routine doesn't work. Fix a format so that it works with Windows. Can't test it because I have no Windows machines. Fix RFPOWER level for FT-450D. It uses 5-100, rather than 0-255 that the FT-450 does. In newcat_open(), initialize rig_id in case any subsequent commands need it. Some calls to thd72_get_menu_item where passing wrong values for range check. C-Elegans (1): Add ability to have rigctld display transverter frequency CJ (1): fix windows makefile Cedric DJ3CE (1): Add SWR get_level to K3 (KX3, KX2) Charles Suprin (7): Add file for TM-D710 support. Merge branch 'master' of ssh://hamlib.git.sourceforge.net/gitroot/hamlib/hamlib Add D710 to riglist. Add D710 code to kenwood library. Register D710 interface. Initial D710 Implementation. Register D710 interface. Charles Suprin, AA1VS (3): extend th_get_vfo_char to support D700 Changed th_set_freq to round and select step size to use. Allows 6.25kHz and 5kHz channelization. Use new th_set_freq for TM-D700 Chris Karpinsky, AA1VL (7): add serial_flush() method to clean rx buffer initial stab at this for the Yaesu FT-817 add ft817.* add ft817 bump the backend status to ALPHA Initial entry of cgirig giving ability to use hamlib from a web browser. increased post write delay to 300 Chris Ruvolo (4): TS-690: deal with optional tone board using TS-450 logic TS-690 does not implement the PC command to get/set output power level TS-690 does not implement the GT command to get/set AGC rate TS-690: bump version Christian Bayer (11): upstream 817 FT-817 power and SWR levels ft-857 power levels for 2m/70cm export correct function for wsjtx fixed cal table conversion added header use correct value divider update disable scaling fixed compile errors fixed merge errors and variable declarations Christoph Berg (2): ic7610: Re-add send_morse Implement netrigctl_stop_morse Christoph Nadig (1): Fix for setting power on Elecraft TRXs Chuck Hemker, N2POR (1): Use RIG_TARGETABLE_MODE in rig_set_mode and rig_get_mode Chuck Ritola (8): Use loop to ensure RS-HFIQ hears first command. Closes #730 Add ability to read TX drive level Implement board temperature reading for TEMP_METER Parse and store RS-HFIQ firmware version. Firmware version check before power meter query. Merge branch 'master' into rshfiq-aug2021 Map FCDPP LNA and Mixer Gain as PREAMP values. Closes #766 Map FCDPP LNA and Mixer Gain as PREAMP values. Closes #766 DJ3CE (1): Patch power reading of IC-705/-905 DL1YCF (6): Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Merge branch 'master' of https://github.com/Hamlib/Hamlib Dale E. Edmons, KD7ENI (19): Added comments to commandline in rigctl (second time) --Dale Started TS-2000 update/overhaul --Dale Copied too much stuff, backed out what I broke. Bring ts2k.c more in line with current CVS. Changed ts2000.c to ts2000.h. Start of rig menuing functions. New file. Renamed ts2000.c.new ts2000.h Bring code more in line with CVS code. Changes often, so added status. Will delete when things stabilize. Corrected status to CVS branch. Renamed new ts2000.c to ts2000.h Wouldn't compile. Removed ts2k.c. Haven't got all new rig.h stuff removed. Temp kludge to make ts2k.c compile (keeps Hamlib from compiling!). Updated status. Added working TS-2000 files. There are some changes left out but this is the minimum I could commit and have a functional rig. The cost is that I've broken kylix and others that duplicate rig.h. I'm in the process of repairing the damage. Please be patient. I hope a day or so, but am asking for up to a week. E-mail me about *anything* you find broken. Kylix (and similar) is (are) known to not work. Changed name back to original. Had to re-run automake kenwood/Makefile. 1) Updated branch_ts2k with respect to HEAD. 2) Working ts2k_menu. (only in RIG_MODEL_TS2K) 3) Split TS-2000 into experimental and standard versions: RIG_MODEL_TS2000 = standard, RIG_MODEL_TS2K = experimental. 4) Basic command parser in tests/rc. Will open/close rig or copy a freq from one rig/vfo to another rig/vfo. Very cool. Very basic. Very experimental. 5) Added test programs. a) testcmd - calls parser (no command prompt yet!) b) testts2k - replacement for testrig (with trivial modification) c) testptt - testts2k/testrig should not transmit. TX stuff in testptt. 6) Used crowbar to merge HEAD into branch_ts2k. Working on clean-up. 7) I'm sure I've forgotten or neglected to mention some other stuff. Daniel Estévez (2): Fix DIG MODE for FT817-ND Fix DIG MODE for FT817-ND Daniele Forsi (5): Set the executable bits on py3test.py Fix spelling errors Fix more spelling errors Fix more spelling errors Fix typos Daniele Forsi IU5HKX (71): Fix a [missingInclude] "information" when running cppcheck --check-config The -M option needs an argument like its long version "multicast-addr" Fix lintian warning: macro 'RG' not defined Fix lintian warning: macro 'IN' not defined Fix spelling errors Remove unused includes related to times and dates Remove unused includes of math.h Remove unused includes Revert unwanted changes Remove unused includes of errno.h Remove unused include of amp_dummy.h Remove unused include of cm108.h Remove unused includes of fcntl.h Remove unused includes of frame.h Remove unused include of getopt.h Remove unused includes of gpio.h Remove unused includes of cal.h Remove unused include of usb_port.h Remove unused includes of ctype.h Remove unused include of stdbool.h Remove unused include of stdarg.h Remove unused include of stdlib.h [icom] Remove unused include of config.h [kenwood] Remove unused include of config.h [yaesu] Remove unused include of config.h [rotators] Remove unused include of config.h [tests] Remove unused include of config.h [rigs/*] Remove unused include of config.h [amplifiers] Remove unused include of config.h [extra] Remove unused include of config.h Add include/hamlib directory to all makefiles [icom] Fix includes [kenwood] Fix includes [yaesu] Fix includes [rigs/*] Fix includes [rotators] Fix includes [tests] Fix includes [amplifiers] Fix includes Update .gitignore Fix unterminated comment Fix include not found by cppcheck.sh Enable --show-conf for ampctl and ampctld Fix typos Fix include not found by cppcheck.sh also in the other branch of the "if" Fix passing one or more paths to ./cppcheck.sh Fix several cppcheck "missingInclude" informational messages Fix cppcheck "unmatchedSuppression" informational messages Add to .gitignore some files created during "make check" Fix cppcheck "missingInclude" informational message Fix Doxygen unmatched directives \cond and \endcond Fix Doxygen documentation for the Apex rotator Fix Doxygen documentation for the GRBLTRK rotators Fix typos Fix Doxygen comments Fix typos Remove duplicated conditions Fix initializer-overrides warnings by clang Fix typos Add/fix Doxygen comments Fix segfaults with malformed input and wrong command line arguments Fix segfaults with malformed input and wrong command line arguments Fix check for RIG_BUSBUSY Fix name of command in the usage and version texts Fix name of command in the version text Fix man page of rigctld Fix warning message for twiddle_rit Fix typos in man pages and other documentation Fix typos in comments Fix typos in messages Remove duplicated sentence Fix typos Dario Ventura (3): New Prosistel rotor backend from IZ7CRX Add elevation code to Prosistel backend TS2000 Satellite mode and Gpredict Dariusz Bismor, SQ9KEJ (1): rigmem: implement CSV file loading David Brewerton M0EZP (1): FT990UNI patch contribution from M0EZP David Fannin (1): Submission for new backend model (134) for Yaesu FT-DX1200 Davide Gerhard (3): tests/{memcsv.c,memsave.c}: partially revert commit 4072f9f4 ic746.c: correct chanbuf length, fix channel structure and support split ic746.c: add ic746pro_set_channel() to load memory from csv Dawid SQ6EMM (3): Add method to build inside docker Let SEND_MORSE and SEND_VOICE_MEM be announced as capabilities. Allow \send_voice_mem to be used over network and tested in dummy rig Dawid Szymanski (2): ICOM Voice Keyer implemented. typo fix Dhiru Kholia (1): Minor fixes for FT-747GX simulator Diane Bruce, VA3DB (5): - first cut at fixing configure to recognise --without-tcl-binding and --without-python-binding options - gt_HEADER_INTTYPES_H is definitely bogus here, leftover from what? - document debian/FreeBSD needs for AUTOMAKE etc. - add in libtoolize which should be there - These should have been commented out. - Extra comma on RIG_STATUS_BUGGY can cause a compiler error. Dieter Röver (1): Fix bug in vfo_comp calculation in Hamlib Ekki Plicht (DF4OR) (2): New model Icom IC-R8600 Patch for Icom DCS code handling Eli Schwartz (1): tests: fix compilation with modern compilers Elliott Liggett (1): Added functionality for the IC-7300 auto antenna tuner Eriks Dobelis (2): ft817: adding delay before next retry after returning from tx to rx ft817: Moving delay value into #define section of the header Ervin Hegedus (9): RIG_PASSBAND_NORMAL wasn't handled correctly when rig_set_mode() was called - fixed Fixed SWIG `Setting a const char * variable may leak memory' error Fixed Kenwood filter cmd when passband is set to 500Hz Merged from upstream Merge branch 'master' of http://git.code.sf.net/p/hamlib/code Added Lua binding and demo script Added new example to Python demo script (set/get float type level) Change variable length argument handling in affected functions Fix two typos Ervin Hegedüs (1): rig.swg: New properly formatted macro Evgeniy Titorenko (1): Add Radant AZV-1 Rotator controller protocol. Francois Retief (21): Added read_serial function to read strings from a port. Corrected some comments Added code to hexdump to right align ASCII dump column added private caps for rig termination character add private caps and more commands. Changed to a new transaction function and adde quite a few commands. add private caps to store the termination character of Kenwood rigs commands. added a kenwood_init and _cleanup routine for priv caps & priv data. Added a new function: LCD Lamp ON/OFF (for Kenwood TH-7DA) check trn state of rig in rig_open. Initial commit of Kylix binding New backend for rotators New RPC backend for rotators Added rot_move function Fix macro name Added rot_move function Added easycomm and rpcrot backends Fixed circular dependency for rpc.rigd and rpc.rotd regenerated Added IC-910 rig. Added constants for the IC-910 rig. Frank Goenninger (8): Add ADAT ADT-200A backend adat updates from Frank, DG1SBG ADAT fixes on Windows RIG ADAT: Adaption to firmware 1.40fb and transverter board. .gitignore: Ignore some macOS housekeeping files. Major code cleanup. Replace dyn. memory by static memory usage. FIXED: Source code inconsistency after major code change. FIXED: Incorrect usage of snprintf() argument for buffer length. Frank Singleton, VK3FCS (165): Initial revision Initial revision *** empty log message *** *** empty log message *** *** empty log message *** Initial revision Initial revision *** empty log message *** *** empty log message *** added build_all ,cleanall and verify targets *** empty log message *** initial top level makefile add some things initial import initial import initial import fixed some typos use rig_open and rig_close added rig_open and rig_close fixed cmd_sat_on / off added sat-on and sat_off to test changed cmd_get_rx_status, must do tx also updated test() all reads use while (1) and break added ../common as object path added rig_open and rig_close using rig_open and rig_close and serial.h use common dir for serial stuff use ft747 on serial port /dev/ttyS0 read uses while(1) and break use while(1) and break added read_sleep use read_sleep now from serial.h using read_sleep from serial.h had rx and tx status swapped (document error?) removed cmd_get_update using CVS instead of RCS directories use MODE_xx defines cannot use const int in case statements ?? so use #define instead use #defines for MODE_XXX used in case statements working out freq conversion, unfinished playing with test routines long int cmd_get_freq_mode_status_main_vfo(int fd, unsigned char *mode); long int cmd_get_freq_mode_status_main_vfo(int fd, unsigned char *mode) frq = cmd_get_freq_mode_status_main_vfo(fd, &mode); starting with the cmd_set commands now starting on cmd_set commands now starting on cmd_set_freq commands now add scanning todo now set sat rx and tx freq and mode also fix typo dump raw hex data when writing and reading trying some cms_set_freq_xxx commands added routines for dec <-> packed decimal conversion minor added generic hex dump routine, static void dump_hex(unsigned char *ptr, int size, int width); removed unwanted debug printf's removed dump_hex from here.. calc_freq_from_packed4 is about to be replaced calc_packed_from_char and calc_char_from_packed now here cleanup cleanup void dump_hex(unsigned char *ptr, int size, int width); adding dcs tables and repeater offset in Hz describe faulty yaesu documentation added README.license for GPL added GPL license info included full GPL license Updated docs to point to http://sourceforge.net/projects/hamlib/ and added a C code snippet on how to use the API. added -I$(COMMON_DIR) to find rig.h added -I$(COMMON_DIR) to find rig.h adding capabilities initial capabilities stuff starting to add rig_caps stuff starting to add rig_caps stuff starting to add rig_caps stuff. added GPL stuff and comments adding rig_caps stuff adding rig_cap stuff adding rig_caps stuff add capabilities and preferences adding rig_caps functionality adding rig_caps stuff frontend reduction on backend function namespace - phew !! frontend API clarification removed old open_port2() using old rig_caps fixed some typos, added 3 more candidates for API missing ; in some enums converting to frontend/backend structure compiles ok removed open_port() and write_block() removed open_port() and write_block() fixed typos, added &ft747_caps in rig_caps changing to frontend/backend style converting to frontend/backend style added 3 more cmd_* for API examples Example of setting rig Main VFO to 439.700 Mhz FM cleanup comments added extern const struct rig_caps ft747_caps; still thinking about set/get strategy minor updates added extra rig caps added some set/get examples with return code checking added testrig to Makefile, no linking yet added usleep to read_sleep() updated rig_caps structure *** empty log message *** test making a shared lib (at last) for the frontend - more todo test making a shared lib for the frontend - make hamlib describe frontend/backend structure updated code snippet example started ft747_set_ptt and ft747_set_vfo starting to implement set/get pairs added typedef enum ptt_type_e ptt_type_t; added VFO types to enum starting on libhamlib Makefile, added ./lib and ./include under common make, make install, and make clean work ok, using ./lib and ./include directories also. make, make install, and make clean work ok, using ./lib and ./include directories also. removed "make verify". Added reference to common/Makefile added printf("testrig:main() has been called \n"); for testing linking makefile for testing testrig linking alternative rig_base declaration removes references to rig_caps at compile time. should populate it another way -- FS added printf's to confirm rig.c (hamlib) is being called ok better libhamlib.so version :-) added ft847_open and ft847_close to enable CAT ON/OFF added ft747_open and ft747_close updated lib names for backend to libhamlib-xxxxx.so API updates - added set/get_mode merge with TRN stuff and add some set/get_mode and vfo stuff added post_write_delay cvs mails to hamlib-cvs-digest cvs mail update works ok :-) minor fixes updated ptt/mode/vfo added set/get freq to use generic bcd etc more set_freq() examples 1. Added VFO as target for some set/get cmds. 2. ./testrig still runs ok using RIG_VFO_CURR. minor update to active VFO handling in _set_vfo some new defines for FT747_VFO_A/B minor updates to active vfo handling added ptt handling example, stand back ! trying different approach to storing cmd sequence. _set_ptt is being converted. Needs tidying up though. Some sequences are complete, and can be read from static data. Incomplete sequences will eventually be copied form static declaration, and completed in priv data. Removed static stuff from functions. Also, begin to implement table driven command translation from API to rig native. priv now contains a cmd table that is used for backend commands towards rig. Added some new freq/mode combinations. converting ft847 to table driven, similar to ft747. more table driven stuff for ft847. cat/ptt/freq being converted. Added ft847_send_priv_cmd(), converted some part of API to use this. Added _set_mode to work now. TODO: put _send_priv_cmd into yaesu.[ch] so ft747 can use also. Turned on PTT also (stand back).. rig_cleanup and rig_close not calling backend removed unused calc_ functions. removed old API functions, general cleanup tested rig_close and rig_cleanup Initial release, common yaesu declareations etc. add version tag nseq uses YAESU_CMD_LENGTH Initial yaesu Makefile Moved from ft747 and ft847 dirs common yaesu handling common yaesu dir Begin to use common yaesu code general cleanup, added _send_priv_cmd added targetable_vfo value to caps minor cleanup ChangeLog history started Initial import for ChangeLog handling starting to convert rig struct to readable form more of convert rig struct to readable form Changelog update for HAMLIB-1.1.1 GeoBaltz (1): Merge branch 'master' into rp12 George Baltz N3GB (179): Add missing level definitions for TS-590SG Add routine to check input to <brand>_set_level ATTenuator level 0 should always be allowed - to turn it off. First round of level_gran additions. Do the check for min=max=0 the right way. Round 2. Enable first user of check_level_param Round 3 of level_gran updates. Remove hard-coded constants. Enable full level checking for TS-890S. Add default level values for Elecraft rigs. Update RIG_LEVEL_READONLY_LIST. Round 4 of level_gran updates. Fix the comment about float levels. Add Elecraft defaults to makefile. Fix typos (missing '('s ) in man pages. Add missing commands to man pages Avoid NULL dereference in debug statement. Use level_gran[] values in kenwood_get_level. Still more level_gran data. Yet more missing level defs. Enable level_gran[] checking for all calls to kenwood_set_level. Add basis for level_gran use in newcat.c Convert set/get AF, RF to use level_gran info. Convert MICGAIN to level_gran Convert COMP Convert ANTIVOX & VOXGAIN New for old - update level_gran for ft9000Old Fix segfault on rigctl exit Convert SQL to use level_gran data. Convert MONITOR_GAIN Convert RFPOWER to level_gran usage Convert NR to use level_gran Fix inverted VHF/UHF BANDSELECT labels Fix duplicate level definition Add RIG_LEVEL_USB_AF_INPUT to RIG_LEVEL_FLOAT_LIST Implement RIG_LEVEL_USB_AF[_INPUT] for TS-890S Enable set_level checking for all Yaesu/newcat rigs. Replace hard coded constants with table values f conversion already rounds, so no external rounding needed. Move meter reader to kenwood.c, so it can be used by ts990.c Use general meter reader to get SWR value for TS-990. Revert "Fix FTDX101MP RFPOWER to allow 200W" Unnecessary code, breaks other levels. Fix FTDX101MP RFPOWER the right way. Restore shared library ABI compatibility with previous hamlibs Add basic support for transparent access to port structures. More Kenwood rigs ported to new access macros. Convert the remaining files in rigs/kenwood/ Define different (disambiguated) names for external use. Fix copy/paste errors in xiegu.c More typos/copy/paste errors in rigs/icom Add cache to the MACRO/porting list Implement function to get structure address Function to get amplifier port address Convert src/amplifier.c to new MACROs/access method. Add function to get rotator port address(es) Port conf.c to use access macros Convert more files in src/ Pointerize all the ports in src/rig.c Need more parens to work in expressions. Update example.c Avoid using raw rigport, in two different ways. Fix variable name. Implement ctcss tone for TS-890S. Fix off by one error in tones for TS-590/890/990 Fix some rigs I found docs for - more needed Add funcs to set/clear TONE/CTCSS modes for TS-890S Add remaining rigs, matching old behavior. Fix copy/paste foulup. Drat. Fix more copy/paste SNAFUs Update NEWS with pointer conversion macros. Make simulator match the Real World(TM) Add missing P4 Repair RIG_LEVEL_STRENGTH Add calibration table for TS-890S RFPOWER_METER_WATTS Bring simts890.c a little closer to the real thing Still needs more work. Fix icom_set_powerstat() to correctly save&restore rp->retry, rp->timeout_retry Convert some cache references to pointers Convert a few more cache pointers Cache pointers for src/rig.c Issue #1420 again. Convert rot_conf.c and amp_conf.c to pointers Update dcdport usage in tests/*.c Issue #1445 Play catchup with split/VFO revision. Fix typos in rebase fixups. Start converting rigs/* This commit does rigs/adat/, rigs/alinco/ and rigs/aor/. Port rigs/anytone/, rigs/barrett/ and rigs/codan/ Fixup git rebase SMerge error. Convert rigs/dorji, rigs/drake, rigs/elad. Convert rigs/dummy/ Convert rigs/flexradio, rigs/gomspace, rigs/jrc, rigs/kachina Convert rigs/icom/, rigs/kit/ Convert rigs/loew/, rigs/pcr/, rigs/prm80/, rigs/racal/ and rigs/rs/ Convert rigs/mds/, rigs/skanti/, rigs/tapr/ and rigs/tentec/ Do rigs/tuner/, rigs/uniden/, rigs/winradio/ & rigs/wj/ Convert rigs/yaesu Minor cleanup of ts890.c Update simts890.c Make IF return RX/TX status Document IF data, reformat IF & SF commands Convert all port references in amplifiers/ to pointers. Convert first part of rotators/ Finish rotators/ Add STATE to the list of pointers Convert tests/* to pointers Finish tests/* Update some of rigs/* to use pointer to cache Use pointers for all cache references in rigs/* All struct rig_cache referenced converted to pointers. Start converting rigs/* to use pointers to state More pointers to state More pointers to state Pointerize all state references in rigs/kenwood/* Add macros for amplifier and rotator state pointers. Fix incorrect port read for elevation Normalize some debug/trace output. More state pointer changes Convert macros in rig.h to use STATE() More state pointer changes Still more state pointer conversions. More state pointers - mostly sed i Pointerize state references in Tentec rigs. And another batch... Use sed -i on all in rigs/kit/ More sed -i with manual fixups. Convert all of rigs/* except rigs/icom and rigs/yaesu First set of rigs/icom/* state pointer macros. Convert rigs/icom/icom.[ch] First batch of state pointers in rigs/yaesu/ Next batch of state pointers Convert newcat.c FIx the stragglers Revert "Fix rotorez set_conf in both rotctl and rotctld -- since it needs to be done after rot_open" Definitions, storage and infrastructure for queuing config commands Implement the first user of the deferred set_conf entries. Fix other rotators that try to do I/O before open. Finish all port initialization before allowing I/O. Balance ENTERFUNC/RETURNFUNC, ENTERFUNC2/RETURNFUNC2, ELAPSED1/ELAPSED2 usage Balance ENTERFUNC/RETURNFUNC usage More of the balancing act. More balancing Finish balancing Get rid of some false positives for func_chk Fix func_chk to do useful things Fix ENTERFUNC/RETURNFUNC imbalances found by repaired func_chk More pointer conversions for rig->state. More pointerizations in src/* Convert all rig->state. references in src/rig.c to pointers. Play catch-up with recent code. Use pointers for amp->state references Use macros/pointers for rot->state references More amplifier and rotator state changes Yet another batch of state pointers Catch up with latest code Balance new code. Fix wrong error message for SF1 command. Make SNPRINTF do something useful for Hamlib Remove dead code Declare local functions as local Implement rig_get_clock for TS-890S Fix wrong utc_offset Use a reliable source for TZ offset Add just enough to simts890.c to fake kenwood_get_clock. Tweaks to simts890.c Fix negative fractional UTC offsets Implement kenwood_set_clock Fix command lengths for TS-890S set/get_antenna. Still more tweaks to simts890.c Replace raw write() calls with macro More fixes for simts890.c Reduce dependency on include/hamlib/rig.h Convert VFOs into objects(structs). Get rid of ghost commands. More VFOs as objects. Change FA/FB/SF to use band memories Implement step sizes for some freq changes Add DN/UP, FC, and UD commands to simts890.c Correct some split problems and connect VFO ops Clean up Make FR & FT commands aware of new vfo structs. Add traffic tracing to simts890.c Annotate legacy (undocumented) commands in simts890.c Add RIT/XIT commands (FS, RC, RD/RU, RF, RT, XT) to simts890.c Astyle simts890.c Update TS-890S and TS-990S RIT/XIT handling Factor out TS-890S and TS-990S from kenwood_get_split_vfo_if() MACROize new code. Minimal support for KY commands in simts890.c Use short (i.e., variable length) messages in kenwood_send_morse() Fix porting unneeded code Fix unbalanced ENTERFUNC/RETURNFUNC pairs in icom.c Georges Auberger (1): Add product id for CM119B chip. Used in KURI adapter designed by W7NX. Gerardo Richarte (1): gs232b.c: Improve get_position string parsing Gisle Vanem (1): Enable verbose mode in bindings/pytest.py Greg Troxel (1): Warning about dodgy code in drake.c HB9EIK (4): Initial release ELAD FDM DUO Update ELAD files Update build system for ELAD backend Update copyright for fdm_duo.c Hans Van Ingelgom (1): Added Peaberry V1 and V2 models Hegedüs Ervin (4): Merge branch 'master' of http://git.code.sf.net/p/hamlib/code Check SWIG string functions for some languages Leave off multiply 'typedef const char * const_char_string' definition (in rig.swg and rotator.swg) Fixed int[10] type variable error in bindings Jae Stutzman (5): Added HPSDR backend Clears potential garbage data in read buffer prior to command being sent Updated PiHPSDR backend defaults Use Windows ioctlsocket to avoid buffer overrun Added new AGC control for PiHPSDR James Watson, HZ1JW (2): Added ic7200 to icom Corrected modes in ic7200.c Jaroslav Skarvada (2): Fix hardcoded pcconfig libdir Fix serial_port DCD squelch Jeroen Vreeken (9): Add support for GPIO PTT. Add missing breaks and improve error messages Add Dorji DRA818 modules (VHF and UHF variants) Also works with NiceRF SA818 modules Merge branch 'master' of git://git.code.sf.net/p/hamlib/code Small fixes to DRA818 volume handling Add GPIO and GPION options for DCD. Also bump abi version since the config params struct needed resizing. Merge branch 'master' of github.com:Hamlib/Hamlib GPIO working after debugging Merge branch 'master' of github.com:Hamlib/Hamlib Johan Ström (1): Backup serial options on open, restore on close John Paul Adrian Glaubitz (1): dummy/dummy.c: Fix unaligned access in dummy_get_level() Jonathan Bastien-Filiatrault (3): Correct FT; command that does not exist on the FT-891. Allow setting split mode without smashing the VFOB frequency. Scale power values correctly for Yaesu FT-891. Jonny public (1): ether6: New rotor backend from Jonny, DG9OAA Joop Stakenborg, PG4I (116): update (kenwood is not a WIP anymore) first implementation of kenwood_get_ptt enable get_ptt for this rig add get_ptt for this rig additional protocol checks and cleanups fix signal strength add RIG_LEVEL_RFPOWER fix_compilation add rit capabilities bring comands in sync with other kenwood rigs add rit capabilities send_morse added explain set_rit fix get_ctcss_tone by using IF command typo add xit capabilities add set_level and get_level bring rig in sync with other kenwood rigs bump version numbers nothing returned by the rig for these commands fix get_level_agc fix set_level_agc getting in sync with the debian 1.1.2 package remove template files initial checkin make this NMU for now correct the path for copying files in the apropriate package do not install the old changelog versioning not used move .la, .a, .so files to the correct package include rpc.rigd and rpc.rotd include pkgconfig support don't create shlibs file for drake, jrc and easycomm libraries move hamlib1 to the top so the documentations gets installed correctly make building easier, call autogen.sh INSTALL file not used build the documentation package we don't have to call configure twice cleanup remove some build dependencies and don't call autogen.sh ts450s uses IF command for get_vfo, get_freq and get_mode minor bugfix, bump to beta add CWR and RTTYR this rig does not have a command for reading IF bandwidth retrieve passband with FW command passband should be calculated after mode is set use rig_passband_normal here various lintian fixes one last lintian fix use FW command to set bandpass cw filters for normal, narrow and wide more filters get_mode and set_mode for this rig filters some comments correct rit add get_level cleanups more modes set_level for this rig should use kenwood_get_freq minor bug add rpm support need hamlib.spec for 'make rpm' make rpm will fail with a '-' in the version number a working spec file update debian build for rotorez and fodtrack, minor fixes unofficial fix the debian build script, new maintainer update the debian build tree to the latest correct baudrate for the ts-950, use the information field IF for get_vfo by default (supported by most kenwood rigs), ts870s will use the much shorter FR command for get_vfo correct baudrate for some rigs and add ts-950 to the id_list ts-850 returns ID 009 according to martin, OK1RR fix 'make rpm' build for hamlib-1.1.5 not needed sync with latest debian package and add tcl, c++, python and perl bindings correct spelling s-meter calibration by Matt Dawson basic functionality by Matt Dawson, tested with grig and xlog lifetime e-mail address :-) sync with latest debian release more functionality, mode and frequency get by Matt Dawson only switch tx vfo is split is on set attenuator level export convenience function get_kenwood_level, so they can be use by other backends add RIG_LEVEL_SWR, copied from ts850 add RIG_LEVEL_COMP, RIG_LEVEL_AGC, copied from ts850 bump version, no preamp really add ALC read this time, only change meter if needed, cleanups split has_get_level and has_set_level fix coding, python2.4 compatibility fix compilation warnings more compilation warnings nuked, use tone_t for ctcss_list use size_t fix more compilation warnings, int->size_t, unsigned char->char more unsigned char->char and int->size_t transitions set functions should have ack_len zero, also need to check other rigs make sure we use ack_len=0 for functions that return nothing (set functions) more unsigned char->char and int->size_t transitions extend rig capabilities, patch by Tom, DL1JBE add RIG_LEVEL_STRENGTH to caps, set post write delay to 0 and do some cleanups re-establish post-write delay remove rpath backdoor long long really needed here? updates by matt, GW0VNR long long really needed here? - patch by diane Bruce distribute footer.html correct set/get power try better s-meter readings packages renamed obsolete sync with latest debian release no need to link to python sync with latest, python changes another debian update: use 'make distclean' in the rules file Joshua Lynch (4): initial SatEL rotator support factored io functions out. improve reliability...i hope. fixed state bug. reconnecting would disable motion every other connect. merged upstream/master into master Juergen Rinas, DC3BW (4): added antenna switching... added a few get_level/set_level get_function/set_functions. * fixed set_func (concerns most kenwood rigs) * added 115200 to the list of baudrates in probeallrigs_kenwood() * fixed ptt * expanded frequency range (available after firmware update) according to http://www.kenwood.com/i/products/info/amateur/ts_480/firmware/pop_ts480_e.htm * added tuning steps * added filter list * increased version info Julian Cable (3): WinRadio G313: Updates from Julian Campbell wrg313api.c: Fix Win32 (MinGW) build issue Use Automake conditionals for G313 build Juuso Lehtinen (4): Add get & set RIG_LEVEL_NB for Yaesu rigs. Fix set level METER for Yaesu rigs Add ID, VD & Comp meter cals for FT991 Add better defaults for newcat meter cals Kamal Mostafa (3): Fix mingw32 cross-compilation procedure and config Do not let macros/ac_python_devel.m4 trash CPPFLAGS and LIBS Fix spelling errors Kamal Mostafa, KA6MAL (19): Hard-code length of hamlib_version and hamlib_copyright strings to stay compliant with hamlib 1.2 ABI and avoid spurious "consider relinking" warnings from dynamic loader. Removed stale debian/ dir from the hamlib source (it is maintained in the Debian diff and isn't useful in this tree). Update bundled libltdl (libtool) to version 2.2.6b to address CVE-2009-3736. - autogen.sh: never downgrade our bundled libltdl/ (only run libtoolize if system version is newer than our bundled version). - autofixer.sh: script removed as libtool 1.x is no longer allowed. - configure.ac: (not enabled) optional setting to deprecate embedded libltdl/. Added Kamal Mostafa and Jaime Robles as maintainers for Debian packaging. Fix build --with-python-binding breakage introduced by Python 2.6: Do not reference LOCALMODLIBS, else it will add libraries to our link line (e.g -lssl) which are not necessarily installed. Elektor 507 frequency selection resolution improvements, contributed by John Nogatch AC6SL. Move backend libraries into /usr/lib/hamlib directory. Force automake to invoke the C (not C++) linker in kit/ when no C++ is in use. python: fix --with-python-binding configure macro fix configure.ac pa... [truncated message content] |
From: n0nb <n0...@us...> - 2024-12-24 08:43:38
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, Hamlib-4.6 has been updated via c9031ca4d7d1b7817f0e461814a740bfeb383f84 (commit) via d66b176d1b848ddf46753d5f3483688028716b23 (commit) via 15d7242d5ad3df90088cc7e1cc49b0484db6a1a0 (commit) via 8589d5c6bc24809cae1c8cfbdab589b92641d9db (commit) via f9185d1d2469fad84aa925396606c6b752b17e49 (commit) via e262fb82c262f1b6e279e337f1642a6689256f94 (commit) via e56f8187614b2702fb584117a006a2e789ceea3f (commit) via d5dd12d50d824d4655f4c3a0e8b3cffdc464df56 (commit) via 45cc53a5265677f572f4526d750ee546bb4390c4 (commit) via 750adb40b53f89889b802bc64100ce095f114dc2 (commit) via b763761d9e307b4023e8a28d1dcbdc0116a5ff12 (commit) via d302b8fabd713cfbebd53679ad5fb685122903cc (commit) via fe45fa2dfc15f2152d6294e7457ae218df972a0f (commit) via 86518546db30c22a42c5ddc12e68434c4ed3f8ee (commit) via 13f7b01d279a14078b485b9af4e999d3d4f8f5c7 (commit) via 62b0a25a3ddab25c65de373dd6a83d812af5a9f1 (commit) via 57c5047c3ec662cd102961346ed1d4957ea88b5b (commit) via 89383a553a5e6b05779479edac2af0134cb10335 (commit) via ec3978e5210f6142f33504523168f55b4a4032ac (commit) via 2b23051c6ddb266c359ce57008d44deeab3f5bc6 (commit) via 032e530def273825892a6bfe8e4b5eef137ec529 (commit) via a7dbebffa9297d3e9afa5c356ab74bfdb2c0243d (commit) via 33293112744fc08f70811af4add9c7dd6f6533fa (commit) via 6bb5c404994308c06bdfd853642b60adb662b78f (commit) via ec7103582297545948602bc833cf1883fd94e8d8 (commit) via 8842ae7c2920799442bfda812fa56c241dfdeebd (commit) via 4b4b1b0d517403f0f460f1a255358b4f1b426e0b (commit) via e6be427c519ae3228787c728a1bdc5cc5dc31d0c (commit) via 72424ac144904dc9c70161fe70c64f8657e89758 (commit) via 12c453ccd3cbf4455d346f7d4f42fa7061bee0cb (commit) via 6cf93934a71a2ed143125a9f3b005ad38a542423 (commit) via 9624f06be96bafaafaf12fe8188d7390cf5821a2 (commit) via 0690fbc0c532f71d02ed74106191686d31cf13ea (commit) via 3d8dbbcc1ada57a8660ccc919c98f40674df4b02 (commit) via db00197e6adcddd18a810f619d38ac04c87fbd69 (commit) via 5f621c9f5327be25432d0d761204faa434afaee2 (commit) via a81c7d90c41ba6911b75d1806343b318141e6e0b (commit) via a72aa0cb4171f0039f51c2112b1f523310b66ca7 (commit) via a2af87068ea6771dc6e298b21e56ec769d6b31b0 (commit) via bef2d13e4a8443ce32bba28116398a3edf156a45 (commit) via 50e10f758223e456e1304e7b8ae8d2092d89a914 (commit) via 5028a0c440e7643c25ae459f6150c8313b223a7d (commit) via 74876c73ae45ed02b4f0ff45f317e59abb6212a1 (commit) via 1364996bd298643a288d79edde45f7fd53cf0816 (commit) via 27c4eb19ee32b46e4740f781d9f2470638e9f459 (commit) from c0542ae864ce6f9cc4b29b0c30b44e273261d114 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit c9031ca4d7d1b7817f0e461814a740bfeb383f84 Author: Nate Bargmann <n0...@n0...> Date: Tue Dec 24 02:42:29 2024 -0600 Advance to 4.6 release diff --git a/NEWS b/NEWS index 37ec46881..94c00d634 100644 --- a/NEWS +++ b/NEWS @@ -13,6 +13,7 @@ Version 5.x -- future * Change FT1000MP Mark V model names to align with FT1000MP Version 4.6 + * 2024-12-24 * send_raw can now take hex digits as colon-separated -- e.g. send_raw icom xfe:xfe:x94:xe0:03:xfd * Add IC7760 * IC7300 Mode filter can now be set by # (i.e. 1,2,3) @@ -86,8 +87,6 @@ static int add_to_list(const struct rig_caps* rc, void*) * Add MDS 4710/9710 rigs * Add FLIR PTU-D48, E46, D100, D300 rotors * Fix FTDX3000 rig split - -Version 4.5.6 * Fix rigctld/rigctltcp information * Fix FT817 get/set_vfo diff --git a/configure.ac b/configure.ac index 4c1c914d2..6e9b48eeb 100644 --- a/configure.ac +++ b/configure.ac @@ -14,7 +14,7 @@ dnl Please do not use '-' in the version number, as package managers will fail, dnl however, the use of '~' should be fine as apt (others?) will treat dnl it as an earlier version than the actual release. TNX KA6MAL dnl PACKAGE_NAME + " " + PACKAGE_VERSION must not exceed 20 chars! -AC_INIT([Hamlib],[4.6~rc1],[ham...@li...],[hamlib],[http://www.hamlib.org]) +AC_INIT([Hamlib],[4.6],[ham...@li...],[hamlib],[http://www.hamlib.org]) #AC_INIT([PRODUCT_NAME], [Hamlib]) #AC_DEFINE([Hamlib], [PRODUCT_VERSION_RESOURCE]) commit d66b176d1b848ddf46753d5f3483688028716b23 Merge: c0542ae86 15d7242d5 Author: Nate Bargmann <n0...@n0...> Date: Tue Dec 24 02:36:30 2024 -0600 Merge branch 'master' of github.com:Hamlib/Hamlib into Hamlib-4.6 commit 15d7242d5ad3df90088cc7e1cc49b0484db6a1a0 Merge: f9185d1d2 8589d5c6b Author: Michael Black <mdb...@ya...> Date: Sun Dec 22 16:23:09 2024 -0600 Merge pull request #1640 from GeoBaltz/fix25 Fix unbalanced ENTERFUNC/RETURNFUNC pairs in icom.c commit 8589d5c6bc24809cae1c8cfbdab589b92641d9db Author: George Baltz N3GB <Geo...@gm...> Date: Sun Dec 22 15:50:56 2024 -0500 Fix unbalanced ENTERFUNC/RETURNFUNC pairs in icom.c Also tweak comments/formats to eliminate false positives in code base (except for the Catch-22 ones in tests/func_chk.c itself) diff --git a/rigs/dummy/aclog.c b/rigs/dummy/aclog.c index b8b8bedd9..3e0f69803 100644 --- a/rigs/dummy/aclog.c +++ b/rigs/dummy/aclog.c @@ -834,7 +834,7 @@ static int aclog_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) } rig_debug(RIG_DEBUG_TRACE, - "%s: return modeA=%s, widthA=%d\n,modeB=%s, widthB=%d\n", __func__, + "%s: Return modeA=%s, widthA=%d\n,modeB=%s, widthB=%d\n", __func__, rig_strrmode(priv->curr_modeA), (int)priv->curr_widthA, rig_strrmode(priv->curr_modeB), (int)priv->curr_widthB); RETURNFUNC(RIG_OK); diff --git a/rigs/dummy/flrig.c b/rigs/dummy/flrig.c index 811ce04d7..b56f87453 100644 --- a/rigs/dummy/flrig.c +++ b/rigs/dummy/flrig.c @@ -943,7 +943,7 @@ static int flrig_open(RIG *rig) if (priv->has_get_bwA) { - /* see if get_bwB is available FLRig can return empty value too */ + // see if get_bwB is available FLRig can return empty value too retval = flrig_transaction(rig, "rig.get_bwB", NULL, value, sizeof(value)); if (retval == RIG_ENAVAIL || strlen(value) == 0) // must not have it @@ -1667,7 +1667,7 @@ static int flrig_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) } rig_debug(RIG_DEBUG_TRACE, - "%s: return modeA=%s, widthA=%d\n,modeB=%s, widthB=%d\n", __func__, + "%s: Return modeA=%s, widthA=%d\n,modeB=%s, widthB=%d\n", __func__, rig_strrmode(priv->curr_modeA), (int)priv->curr_widthA, rig_strrmode(priv->curr_modeB), (int)priv->curr_widthB); RETURNFUNC(RIG_OK); @@ -1792,7 +1792,7 @@ static int flrig_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width) if (strlen(value) == 0) // sometimes we get a null reply here -- OK...deal with it { - rig_debug(RIG_DEBUG_WARN, "%s: empty value return cached bandwidth\n", + rig_debug(RIG_DEBUG_WARN, "%s: empty value, returning cached bandwidth\n", __func__); *width = CACHE(rig)->widthMainA; RETURNFUNC(RIG_OK); @@ -1819,7 +1819,7 @@ static int flrig_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width) if (strlen(value) == 0) { - rig_debug(RIG_DEBUG_WARN, "%s: empty value return cached bandwidth\n", + rig_debug(RIG_DEBUG_WARN, "%s: empty value, returning cached bandwidth\n", __func__); *width = CACHE(rig)->widthMainA; RETURNFUNC(RIG_OK); diff --git a/rigs/dummy/netrigctl.c b/rigs/dummy/netrigctl.c index e0678653b..69241b448 100644 --- a/rigs/dummy/netrigctl.c +++ b/rigs/dummy/netrigctl.c @@ -280,7 +280,7 @@ static int netrigctl_open(RIG *rig) } else { - rig_debug(RIG_DEBUG_ERR, "%s: unknown return from netrigctl_transaction=%d\n", + rig_debug(RIG_DEBUG_ERR, "%s: unknown value returned from netrigctl_transaction=%d\n", __func__, ret); } diff --git a/rigs/dummy/tci1x.c b/rigs/dummy/tci1x.c index 0cc1cc0b9..779a9a8f3 100644 --- a/rigs/dummy/tci1x.c +++ b/rigs/dummy/tci1x.c @@ -1281,7 +1281,7 @@ static int tci1x_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) } rig_debug(RIG_DEBUG_TRACE, - "%s: return modeA=%s, widthA=%d\n,modeB=%s, widthB=%d\n", __func__, + "%s: Return modeA=%s, widthA=%d\n,modeB=%s, widthB=%d\n", __func__, rig_strrmode(priv->curr_modeA), (int)priv->curr_widthA, rig_strrmode(priv->curr_modeB), (int)priv->curr_widthB); RETURNFUNC(RIG_OK); diff --git a/rigs/icom/frame.c b/rigs/icom/frame.c index 06ef16798..09a2faddd 100644 --- a/rigs/icom/frame.c +++ b/rigs/icom/frame.c @@ -150,9 +150,8 @@ int icom_one_transaction(RIG *rig, unsigned char cmd, int subcmd, ctrl_id = priv_caps->serial_full_duplex == 0 ? CTRLID : 0x80; - /* - * should check return code and that write wrote cmd_len chars! - */ + // Should check return code and that write wrote cmd_len chars! + set_transaction_active(rig); collision_retry: @@ -204,7 +203,7 @@ again1: if (retval < 0) { set_transaction_inactive(rig); - /* Other error, return it */ + // Other error, return it RETURNFUNC(retval); } @@ -390,8 +389,8 @@ again2: __func__, priv_caps->re_civ_addr, priv->re_civ_addr); } - /* RIG_TIMEOUT: timeout getting response, return timeout */ - /* other error: return it */ + // RIG_TIMEOUT: timeout getting response, return timeout + // other error: return it RETURNFUNC(frm_len); } diff --git a/rigs/icom/icom.c b/rigs/icom/icom.c index 0e651af5b..5fd927b17 100644 --- a/rigs/icom/icom.c +++ b/rigs/icom/icom.c @@ -1190,7 +1190,7 @@ retry_open: rig_debug(RIG_DEBUG_ERR, "%s: Unable to determine Icom echo status -- is rig on and connected?\n", __func__); - return retval_echo; + RETURNFUNC(retval_echo); } else { @@ -2687,7 +2687,7 @@ int icom_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) if (width <= 3) { rig_debug(RIG_DEBUG_TRACE, "%s: setting filter=%d\n", __func__, (int)width); - return RIG_OK; + RETURNFUNC(RIG_OK); } if (((width != RIG_PASSBAND_NOCHANGE) && (width != current_width)) diff --git a/rigs/kenwood/kenwood.c b/rigs/kenwood/kenwood.c index 38a87600a..3cca97103 100644 --- a/rigs/kenwood/kenwood.c +++ b/rigs/kenwood/kenwood.c @@ -5518,12 +5518,11 @@ int kenwood_send_morse(RIG *rig, vfo_t vfo, const char *msg) RETURNFUNC(retval); } - /* - * If answer is "KY0;", there is space in buffer and we can proceed. - * If answer is "KY1;", we have to wait a while - * If answer is "KY2;", there is space in buffer and we aren't sending so we can proceed. - * If answer is something else, return with error to prevent infinite loops - */ + // If answer is "KY0;", there is space in buffer and we can proceed. + // If answer is "KY1;", we have to wait a while + // If answer is "KY2;", there is space in buffer and we aren't sending so we can proceed. + // If answer is something else, return with error to prevent infinite loops + if (!strncmp(m2, "KY0", 3)) { break; } if (!strncmp(m2, "KY2", 3)) { break; } diff --git a/rigs/yaesu/ft1000mp.c b/rigs/yaesu/ft1000mp.c index fa8dd68a4..86b5b63c0 100644 --- a/rigs/yaesu/ft1000mp.c +++ b/rigs/yaesu/ft1000mp.c @@ -963,7 +963,7 @@ static int ft1000mp_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) f, vfo); - *freq = f; /* return displayed frequency */ + *freq = f; // return displayed frequency RETURNFUNC(RIG_OK); } @@ -1542,7 +1542,7 @@ static int ft1000mp_get_rxit(RIG *rig, vfo_t vfo, shortfreq_t *rit) rig_debug(RIG_DEBUG_TRACE, "%s: freq = %d Hz for VFO [%s]\n", __func__, (int)f, rig_strvfo(vfo)); - *rit = f; /* return displayed frequency */ + *rit = f; // return displayed frequency RETURNFUNC(RIG_OK); } diff --git a/rigs/yaesu/newcat.c b/rigs/yaesu/newcat.c index 1706f54a1..766297eae 100644 --- a/rigs/yaesu/newcat.c +++ b/rigs/yaesu/newcat.c @@ -11342,7 +11342,7 @@ int newcat_get_cmd(RIG *rig) RETURNFUNC(-RIG_ENAVAIL); case 'O': - /* Too many characters sent without a carriage return */ + // Too many characters sent without a carriage return rig_debug(RIG_DEBUG_VERBOSE, "%s: Overflow for '%s'\n", __func__, priv->cmd_str); rc = -RIG_EPROTO; @@ -11776,7 +11776,7 @@ int newcat_set_cmd(RIG *rig) RETURNFUNC(-RIG_ENAVAIL); case 'O': - /* Too many characters sent without a carriage return */ + // Too many characters sent without a carriage return rig_debug(RIG_DEBUG_VERBOSE, "%s: Overflow for '%s'\n", __func__, priv->cmd_str); rc = -RIG_EPROTO; diff --git a/src/rig.c b/src/rig.c index dc9a7a5de..a73a9df7e 100644 --- a/src/rig.c +++ b/src/rig.c @@ -1697,10 +1697,8 @@ int HAMLIB_API rig_close(RIG *rig) #endif - /* - * Let the backend say 73s to the rig. - * and ignore the return code. - */ + // Let the backend say 73 to the rig. + // and ignore the return code. if (caps->rig_close) { caps->rig_close(rig); @@ -3145,14 +3143,14 @@ pbwidth_t HAMLIB_API rig_passband_normal(RIG *rig, rmode_t mode) { if (rs->filters[i].modes & mode) { - rig_debug(RIG_DEBUG_VERBOSE, "%s: return filter#%d, width=%d\n", __func__, i, + rig_debug(RIG_DEBUG_VERBOSE, "%s: Return filter#%d, width=%d\n", __func__, i, (int)rs->filters[i].width); RETURNFUNC(rs->filters[i].width); } } rig_debug(RIG_DEBUG_VERBOSE, - "%s: filter not found...return %d\n", __func__, + "%s: filter not found...returning %d\n", __func__, 0); RETURNFUNC(0); } @@ -3407,7 +3405,7 @@ int HAMLIB_API rig_set_vfo(RIG *rig, vfo_t vfo) rig_set_cache_freq(rig, RIG_VFO_ALL, 0); } - rig_debug(RIG_DEBUG_TRACE, "%s: return %d, vfo=%s, curr_vfo=%s\n", __func__, + rig_debug(RIG_DEBUG_TRACE, "%s: returning %d, vfo=%s, curr_vfo=%s\n", __func__, retcode, rig_strvfo(vfo), rig_strvfo(rs->current_vfo)); ELAPSED2; @@ -3838,7 +3836,7 @@ int HAMLIB_API rig_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt) cachep->ptt = ptt; elapsed_ms(&cachep->time_ptt, HAMLIB_ELAPSED_SET); - if (retcode != RIG_OK) { rig_debug(RIG_DEBUG_ERR, "%s: return code=%d\n", __func__, retcode); } + if (retcode != RIG_OK) { rig_debug(RIG_DEBUG_ERR, "%s: Return code=%d\n", __func__, retcode); } memcpy(&rs->pttport_deprecated, pttp, sizeof(rs->pttport_deprecated)); commit f9185d1d2469fad84aa925396606c6b752b17e49 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 22 15:19:38 2024 -0600 Print error on bufferoverflow and astyle sprintflst.c diff --git a/src/sprintflst.c b/src/sprintflst.c index 978a783d3..06b381316 100644 --- a/src/sprintflst.c +++ b/src/sprintflst.c @@ -72,19 +72,23 @@ int rig_sprintf_vfo(char *str, int nlen, vfo_t vfo) if (sv && sv[0] && (strstr(sv, "None") == 0)) { int written = snprintf(str + len, nlen - len, "%s ", sv); + if (written < 0 || written >= nlen - len) { // Truncate and break if there's no space left + rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow\n", __func__); len = nlen - 1; str[len] = '\0'; break; } + len += written; } if (len >= nlen) { // Ensure null-termination and avoid overflow + rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow\n", __func__); str[nlen - 1] = '\0'; break; } @@ -143,12 +147,19 @@ int rig_sprintf_ant(char *str, int str_len, ant_t ant) switch (i) { case 0: ant_name = "ANT1"; break; + case 1: ant_name = "ANT2"; break; + case 2: ant_name = "ANT3"; break; + case 3: ant_name = "ANT4"; break; + case 4: ant_name = "ANT5"; break; + case 30: ant_name = "ANT_UNKNOWN"; break; + case 31: ant_name = "ANT_CURR"; break; + default: ant_name = "ANT_UNK"; rig_debug(RIG_DEBUG_ERR, "%s: unknown ant=%d\n", __func__, i); @@ -156,19 +167,23 @@ int rig_sprintf_ant(char *str, int str_len, ant_t ant) } int written = snprintf(str + len, str_len - len, "%s ", ant_name); + if (written < 0 || written >= str_len - len) { // Truncate if buffer is full + rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow\n", __func__); len = str_len - 1; str[len] = '\0'; break; } + len += written; } if (len >= str_len) { // Ensure null-termination + rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow\n", __func__); str[str_len - 1] = '\0'; break; } @@ -370,7 +385,8 @@ int sprintf_level_ext(char *str, int nlen, const struct confparams *extlevels) return len; } -int rig_sprintf_level_gran(char *str, int nlen, setting_t level, const gran_t *gran) +int rig_sprintf_level_gran(char *str, int nlen, setting_t level, + const gran_t *gran) { int i, len = 0; @@ -398,22 +414,27 @@ int rig_sprintf_level_gran(char *str, int nlen, setting_t level, const gran_t *g { rig_debug(RIG_DEBUG_BUG, "unknown level idx %d\n", i); } + continue; } int written; + if (RIG_LEVEL_IS_FLOAT(rig_idx2setting(i))) { - written = snprintf(str + len, nlen - len, "%s(%f..%f/%f) ", ms, gran[i].min.f, gran[i].max.f, gran[i].step.f); + written = snprintf(str + len, nlen - len, "%s(%f..%f/%f) ", ms, gran[i].min.f, + gran[i].max.f, gran[i].step.f); } else { - written = snprintf(str + len, nlen - len, "%s(%d..%d/%d) ", ms, gran[i].min.i, gran[i].max.i, gran[i].step.i); + written = snprintf(str + len, nlen - len, "%s(%d..%d/%d) ", ms, gran[i].min.i, + gran[i].max.i, gran[i].step.i); } if (written < 0 || written >= nlen - len) { // Truncate and stop further processing if the buffer is full + rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow\n", __func__); len = nlen - 1; str[len] = '\0'; break; @@ -424,6 +445,7 @@ int rig_sprintf_level_gran(char *str, int nlen, setting_t level, const gran_t *g if (len >= nlen) { // Ensure null-termination and avoid overflow + rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow\n", __func__); str[nlen - 1] = '\0'; break; } @@ -432,11 +454,13 @@ int rig_sprintf_level_gran(char *str, int nlen, setting_t level, const gran_t *g return len; } -int rot_sprintf_level_gran(char *str, int nlen, setting_t level, const gran_t *gran) +int rot_sprintf_level_gran(char *str, int nlen, setting_t level, + const gran_t *gran) { int i, len = 0; *str = '\0'; + if (level == ROT_LEVEL_NONE) { return 0; @@ -459,23 +483,28 @@ int rot_sprintf_level_gran(char *str, int nlen, setting_t level, const gran_t *g { rig_debug(RIG_DEBUG_BUG, "unknown level idx %d\n", i); } + continue; } int written; + if (ROT_LEVEL_IS_FLOAT(rig_idx2setting(i))) { - written = snprintf(str + len, nlen - len, "%s(%f..%f/%f) ", ms, gran[i].min.f, gran[i].max.f, gran[i].step.f); + written = snprintf(str + len, nlen - len, "%s(%f..%f/%f) ", ms, gran[i].min.f, + gran[i].max.f, gran[i].step.f); } else { - written = snprintf(str + len, nlen - len, "%s(%d..%d/%d) ", ms, gran[i].min.i, gran[i].max.i, gran[i].step.i); + written = snprintf(str + len, nlen - len, "%s(%d..%d/%d) ", ms, gran[i].min.i, + gran[i].max.i, gran[i].step.i); } if (written < 0 || written >= nlen - len) { // Truncate and stop further processing if the buffer is full len = nlen - 1; + rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow\n", __func__); str[len] = '\0'; break; } @@ -485,6 +514,7 @@ int rot_sprintf_level_gran(char *str, int nlen, setting_t level, const gran_t *g if (len >= nlen) { // Ensure null-termination and avoid overflow + rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow\n", __func__); str[nlen - 1] = '\0'; break; } @@ -547,6 +577,7 @@ int rot_sprintf_parm(char *str, int nlen, setting_t parm) if (written < 0 || written >= nlen - len) { // Truncate and stop further processing if the buffer is full + rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow\n", __func__); len = nlen - 1; str[len] = '\0'; break; @@ -557,6 +588,7 @@ int rot_sprintf_parm(char *str, int nlen, setting_t parm) if (len >= nlen) { // Ensure null-termination and avoid overflow + rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow\n", __func__); str[nlen - 1] = '\0'; break; } @@ -565,7 +597,8 @@ int rot_sprintf_parm(char *str, int nlen, setting_t parm) return len; } -int rig_sprintf_parm_gran(char *str, int nlen, setting_t parm, const gran_t *gran) +int rig_sprintf_parm_gran(char *str, int nlen, setting_t parm, + const gran_t *gran) { int i, len = 0; *str = '\0'; @@ -578,24 +611,30 @@ int rig_sprintf_parm_gran(char *str, int nlen, setting_t parm, const gran_t *gra for (i = 0; i < RIG_SETTING_MAX; i++) { const char *ms; + if (!(parm & rig_idx2setting(i))) { continue; } + ms = rig_strparm(parm & rig_idx2setting(i)); + if (!ms || !ms[0]) { if (parm != DUMMY_ALL && parm != RIG_PARM_SET(DUMMY_ALL)) { rig_debug(RIG_DEBUG_BUG, "unknown parm idx %d\n", i); } + continue; } int written; + if (RIG_PARM_IS_FLOAT(rig_idx2setting(i))) { - written = snprintf(str + len, nlen - len, "%s(%.g..%.g/%.g) ", ms, gran[i].min.f, gran[i].max.f, gran[i].step.f); + written = snprintf(str + len, nlen - len, "%s(%.g..%.g/%.g) ", ms, + gran[i].min.f, gran[i].max.f, gran[i].step.f); } else if (RIG_PARM_IS_STRING(rig_idx2setting(i))) { @@ -610,21 +649,25 @@ int rig_sprintf_parm_gran(char *str, int nlen, setting_t parm, const gran_t *gra } else { - written = snprintf(str + len, nlen - len, "%s(%d..%d/%d) ", ms, gran[i].min.i, gran[i].max.i, gran[i].step.i); + written = snprintf(str + len, nlen - len, "%s(%d..%d/%d) ", ms, gran[i].min.i, + gran[i].max.i, gran[i].step.i); } if (written < 0 || written >= nlen - len) { // Truncate and stop further processing if the buffer is full + rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow\n", __func__); len = nlen - 1; str[len] = '\0'; break; } + len += written; if (len >= nlen) { // Ensure null-termination and avoid overflow + rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow\n", __func__); str[nlen - 1] = '\0'; break; } @@ -633,7 +676,8 @@ int rig_sprintf_parm_gran(char *str, int nlen, setting_t parm, const gran_t *gra return len; } -int rot_sprintf_parm_gran(char *str, int nlen, setting_t parm, const gran_t *gran) +int rot_sprintf_parm_gran(char *str, int nlen, setting_t parm, + const gran_t *gran) { int i, len = 0; *str = '\0'; @@ -646,42 +690,52 @@ int rot_sprintf_parm_gran(char *str, int nlen, setting_t parm, const gran_t *gra for (i = 0; i < RIG_SETTING_MAX; i++) { const char *ms; + if (!(parm & rig_idx2setting(i))) { continue; } + ms = rot_strparm(parm & rig_idx2setting(i)); + if (!ms || !ms[0]) { if (parm != DUMMY_ALL && parm != ROT_PARM_SET(DUMMY_ALL)) { rig_debug(RIG_DEBUG_BUG, "unknown parm idx %d\n", i); } + continue; } int written; + if (ROT_PARM_IS_FLOAT(rig_idx2setting(i))) { - written = snprintf(str + len, nlen - len, "%s(%f..%f/%f) ", ms, gran[i].min.f, gran[i].max.f, gran[i].step.f); + written = snprintf(str + len, nlen - len, "%s(%f..%f/%f) ", ms, gran[i].min.f, + gran[i].max.f, gran[i].step.f); } else { - written = snprintf(str + len, nlen - len, "%s(%d..%d/%d) ", ms, gran[i].min.i, gran[i].max.i, gran[i].step.i); + written = snprintf(str + len, nlen - len, "%s(%d..%d/%d) ", ms, gran[i].min.i, + gran[i].max.i, gran[i].step.i); } if (written < 0 || written >= nlen - len) { // Truncate and stop further processing if the buffer is full + rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow\n", __func__); len = nlen - 1; str[len] = '\0'; break; } + len += written; if (len >= nlen) { // Ensure null-termination and avoid overflow + rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow\n", __func__); str[nlen - 1] = '\0'; break; } @@ -769,19 +823,23 @@ int rot_sprintf_status(char *str, int nlen, rot_status_t status) if (sv && sv[0] && (strstr(sv, "None") == 0)) { int written = snprintf(str + len, nlen - len, "%s ", sv); + if (written < 0 || written >= nlen - len) { // Truncate and break if there's no space left + rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow\n", __func__); len = nlen - 1; str[len] = '\0'; break; } + len += written; } if (len >= nlen) { // Ensure null-termination and avoid overflow + rig_debug(RIG_DEBUG_ERR, "%s: buffer overflow\n", __func__); str[nlen - 1] = '\0'; break; } commit e262fb82c262f1b6e279e337f1642a6689256f94 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 22 12:27:43 2024 -0600 Fix several potential overflows in sprintflst.c diff --git a/src/sprintflst.c b/src/sprintflst.c index 800f0a80d..978a783d3 100644 --- a/src/sprintflst.c +++ b/src/sprintflst.c @@ -52,10 +52,10 @@ int check_buffer_overflow(char *str, int len, int nlen) return RIG_OK; } - int rig_sprintf_vfo(char *str, int nlen, vfo_t vfo) { - unsigned int i, len = 0; + unsigned int i; + int len = 0; rig_debug(RIG_DEBUG_TRACE, "%s: vfo=%s\n", __func__, rig_strvfo(vfo)); *str = '\0'; @@ -67,20 +67,32 @@ int rig_sprintf_vfo(char *str, int nlen, vfo_t vfo) for (i = 0; i < HAMLIB_MAX_VFOS; i++) { - const char *sv; - sv = rig_strvfo(vfo & RIG_VFO_N(i)); + const char *sv = rig_strvfo(vfo & RIG_VFO_N(i)); if (sv && sv[0] && (strstr(sv, "None") == 0)) { - len += snprintf(str + len, nlen - len, "%s ", sv); - check_buffer_overflow(str, len, nlen); + int written = snprintf(str + len, nlen - len, "%s ", sv); + if (written < 0 || written >= nlen - len) + { + // Truncate and break if there's no space left + len = nlen - 1; + str[len] = '\0'; + break; + } + len += written; + } + + if (len >= nlen) + { + // Ensure null-termination and avoid overflow + str[nlen - 1] = '\0'; + break; } } return len; } - int rig_sprintf_mode(char *str, int nlen, rmode_t mode) { unsigned int i, len = 0; @@ -111,18 +123,17 @@ int rig_sprintf_mode(char *str, int nlen, rmode_t mode) return len; } - int rig_sprintf_ant(char *str, int str_len, ant_t ant) { int i, len = 0; - char *ant_name; + const char *ant_name; *str = '\0'; if (ant == RIG_ANT_NONE) { - SNPRINTF(str, str_len, "ANT_NONE"); - return 0; + snprintf(str, str_len, "ANT_NONE"); + return (int)strlen(str); // Return length of "ANT_NONE" } for (i = 0; i < RIG_ANT_MAX; i++) @@ -132,34 +143,40 @@ int rig_sprintf_ant(char *str, int str_len, ant_t ant) switch (i) { case 0: ant_name = "ANT1"; break; - case 1: ant_name = "ANT2"; break; - case 2: ant_name = "ANT3"; break; - case 3: ant_name = "ANT4"; break; - case 4: ant_name = "ANT5"; break; - case 30: ant_name = "ANT_UNKNOWN"; break; - case 31: ant_name = "ANT_CURR"; break; - default: ant_name = "ANT_UNK"; rig_debug(RIG_DEBUG_ERR, "%s: unknown ant=%d\n", __func__, i); break; } - len += snprintf(str + len, str_len - len, "%s ", ant_name); - check_buffer_overflow(str, len, str_len); + int written = snprintf(str + len, str_len - len, "%s ", ant_name); + if (written < 0 || written >= str_len - len) + { + // Truncate if buffer is full + len = str_len - 1; + str[len] = '\0'; + break; + } + len += written; + } + + if (len >= str_len) + { + // Ensure null-termination + str[str_len - 1] = '\0'; + break; } } return len; } - int rig_sprintf_func(char *str, int nlen, setting_t func) { unsigned int i, len = 0; @@ -353,9 +370,7 @@ int sprintf_level_ext(char *str, int nlen, const struct confparams *extlevels) return len; } - -int rig_sprintf_level_gran(char *str, int nlen, setting_t level, - const gran_t *gran) +int rig_sprintf_level_gran(char *str, int nlen, setting_t level, const gran_t *gran) { int i, len = 0; @@ -383,43 +398,45 @@ int rig_sprintf_level_gran(char *str, int nlen, setting_t level, { rig_debug(RIG_DEBUG_BUG, "unknown level idx %d\n", i); } - continue; } + int written; if (RIG_LEVEL_IS_FLOAT(rig_idx2setting(i))) { - len += snprintf(str + len, nlen - len, - "%s(%f..%f/%f) ", - ms, - gran[i].min.f, - gran[i].max.f, - gran[i].step.f); + written = snprintf(str + len, nlen - len, "%s(%f..%f/%f) ", ms, gran[i].min.f, gran[i].max.f, gran[i].step.f); } else { - len += snprintf(str + len, nlen - len, - "%s(%d..%d/%d) ", - ms, - gran[i].min.i, - gran[i].max.i, - gran[i].step.i); + written = snprintf(str + len, nlen - len, "%s(%d..%d/%d) ", ms, gran[i].min.i, gran[i].max.i, gran[i].step.i); } - check_buffer_overflow(str, len, nlen); + if (written < 0 || written >= nlen - len) + { + // Truncate and stop further processing if the buffer is full + len = nlen - 1; + str[len] = '\0'; + break; + } + + len += written; + + if (len >= nlen) + { + // Ensure null-termination and avoid overflow + str[nlen - 1] = '\0'; + break; + } } return len; } - -int rot_sprintf_level_gran(char *str, int nlen, setting_t level, - const gran_t *gran) +int rot_sprintf_level_gran(char *str, int nlen, setting_t level, const gran_t *gran) { int i, len = 0; *str = '\0'; - if (level == ROT_LEVEL_NONE) { return 0; @@ -442,36 +459,40 @@ int rot_sprintf_level_gran(char *str, int nlen, setting_t level, { rig_debug(RIG_DEBUG_BUG, "unknown level idx %d\n", i); } - continue; } + int written; if (ROT_LEVEL_IS_FLOAT(rig_idx2setting(i))) { - len += snprintf(str + len, nlen - len, - "%s(%f..%f/%f) ", - ms, - gran[i].min.f, - gran[i].max.f, - gran[i].step.f); + written = snprintf(str + len, nlen - len, "%s(%f..%f/%f) ", ms, gran[i].min.f, gran[i].max.f, gran[i].step.f); } else { - len += snprintf(str + len, nlen - len, - "%s(%d..%d/%d) ", - ms, - gran[i].min.i, - gran[i].max.i, - gran[i].step.i); + written = snprintf(str + len, nlen - len, "%s(%d..%d/%d) ", ms, gran[i].min.i, gran[i].max.i, gran[i].step.i); } - check_buffer_overflow(str, len, nlen); + if (written < 0 || written >= nlen - len) + { + // Truncate and stop further processing if the buffer is full + len = nlen - 1; + str[len] = '\0'; + break; + } + + len += written; + + if (len >= nlen) + { + // Ensure null-termination and avoid overflow + str[nlen - 1] = '\0'; + break; + } } return len; } - int rig_sprintf_parm(char *str, int nlen, setting_t parm) { int i, len = 0; @@ -501,7 +522,6 @@ int rig_sprintf_parm(char *str, int nlen, setting_t parm) return len; } - int rot_sprintf_parm(char *str, int nlen, setting_t parm) { int i, len = 0; @@ -519,24 +539,35 @@ int rot_sprintf_parm(char *str, int nlen, setting_t parm) if (!ms || !ms[0]) { - continue; /* unknown, FIXME! */ + continue; /* unknown, FIXME! */ } - strcat(str, ms); - strcat(str, " "); - len += strlen(ms) + 1; - check_buffer_overflow(str, len, nlen); + int written = snprintf(str + len, nlen - len, "%s ", ms); + + if (written < 0 || written >= nlen - len) + { + // Truncate and stop further processing if the buffer is full + len = nlen - 1; + str[len] = '\0'; + break; + } + + len += written; + + if (len >= nlen) + { + // Ensure null-termination and avoid overflow + str[nlen - 1] = '\0'; + break; + } } return len; } - -int rig_sprintf_parm_gran(char *str, int nlen, setting_t parm, - const gran_t *gran) +int rig_sprintf_parm_gran(char *str, int nlen, setting_t parm, const gran_t *gran) { int i, len = 0; - *str = '\0'; if (parm == RIG_PARM_NONE) @@ -547,65 +578,64 @@ int rig_sprintf_parm_gran(char *str, int nlen, setting_t parm, for (i = 0; i < RIG_SETTING_MAX; i++) { const char *ms; - if (!(parm & rig_idx2setting(i))) { continue; } - ms = rig_strparm(parm & rig_idx2setting(i)); - if (!ms || !ms[0]) { if (parm != DUMMY_ALL && parm != RIG_PARM_SET(DUMMY_ALL)) { rig_debug(RIG_DEBUG_BUG, "unknown parm idx %d\n", i); } - continue; } + int written; if (RIG_PARM_IS_FLOAT(rig_idx2setting(i))) { - len += snprintf(str + len, nlen - len, - "%s(%.g..%.g/%.g) ", - ms, - gran[i].min.f, - gran[i].max.f, - gran[i].step.f); + written = snprintf(str + len, nlen - len, "%s(%.g..%.g/%.g) ", ms, gran[i].min.f, gran[i].max.f, gran[i].step.f); } else if (RIG_PARM_IS_STRING(rig_idx2setting(i))) { if (gran[i].step.s) { - len += snprintf(str + len, nlen - len, - "%s(%s) ", - ms, - gran[i].step.s); + written = snprintf(str + len, nlen - len, "%s(%s) ", ms, gran[i].step.s); + } + else + { + continue; } } else { - len += snprintf(str + len, nlen - len, - "%s(%d..%d/%d) ", - ms, - gran[i].min.i, - gran[i].max.i, - gran[i].step.i); + written = snprintf(str + len, nlen - len, "%s(%d..%d/%d) ", ms, gran[i].min.i, gran[i].max.i, gran[i].step.i); } - check_buffer_overflow(str, len, nlen); + if (written < 0 || written >= nlen - len) + { + // Truncate and stop further processing if the buffer is full + len = nlen - 1; + str[len] = '\0'; + break; + } + len += written; + + if (len >= nlen) + { + // Ensure null-termination and avoid overflow + str[nlen - 1] = '\0'; + break; + } } return len; } - -int rot_sprintf_parm_gran(char *str, int nlen, setting_t parm, - const gran_t *gran) +int rot_sprintf_parm_gran(char *str, int nlen, setting_t parm, const gran_t *gran) { int i, len = 0; - *str = '\0'; if (parm == ROT_PARM_NONE) @@ -616,50 +646,50 @@ int rot_sprintf_parm_gran(char *str, int nlen, setting_t parm, for (i = 0; i < RIG_SETTING_MAX; i++) { const char *ms; - if (!(parm & rig_idx2setting(i))) { continue; } - ms = rot_strparm(parm & rig_idx2setting(i)); - if (!ms || !ms[0]) { if (parm != DUMMY_ALL && parm != ROT_PARM_SET(DUMMY_ALL)) { rig_debug(RIG_DEBUG_BUG, "unknown parm idx %d\n", i); } - continue; } + int written; if (ROT_PARM_IS_FLOAT(rig_idx2setting(i))) { - len += snprintf(str + len, nlen - len, - "%s(%f..%f/%f) ", - ms, - gran[i].min.f, - gran[i].max.f, - gran[i].step.f); + written = snprintf(str + len, nlen - len, "%s(%f..%f/%f) ", ms, gran[i].min.f, gran[i].max.f, gran[i].step.f); } else { - len += snprintf(str + len, nlen - len, - "%s(%d..%d/%d) ", - ms, - gran[i].min.i, - gran[i].max.i, - gran[i].step.i); + written = snprintf(str + len, nlen - len, "%s(%d..%d/%d) ", ms, gran[i].min.i, gran[i].max.i, gran[i].step.i); } - check_buffer_overflow(str, len, nlen); + if (written < 0 || written >= nlen - len) + { + // Truncate and stop further processing if the buffer is full + len = nlen - 1; + str[len] = '\0'; + break; + } + len += written; + + if (len >= nlen) + { + // Ensure null-termination and avoid overflow + str[nlen - 1] = '\0'; + break; + } } return len; } - int rig_sprintf_vfop(char *str, int nlen, vfo_op_t op) { int i, len = 0; commit e56f8187614b2702fb584117a006a2e789ceea3f Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 22 11:39:51 2024 -0600 Fix overrunning write in gemeni.c diff --git a/amplifiers/gemini/gemini.h b/amplifiers/gemini/gemini.h index 94ecc26c1..d32d1db0c 100644 --- a/amplifiers/gemini/gemini.h +++ b/amplifiers/gemini/gemini.h @@ -47,7 +47,7 @@ struct gemini_priv_data double vswr; int current; // Amps int temperature; // Centigrade - char state[5]; + char state[8]; int ptt; char trip[256]; }; commit d5dd12d50d824d4655f4c3a0e8b3cffdc464df56 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 22 11:38:27 2024 -0600 Fix overrunning write in newcat.c diff --git a/rigs/yaesu/newcat.c b/rigs/yaesu/newcat.c index 8549048b9..1706f54a1 100644 --- a/rigs/yaesu/newcat.c +++ b/rigs/yaesu/newcat.c @@ -8096,7 +8096,7 @@ int newcat_get_channel(RIG *rig, vfo_t vfo, channel_t *chan, int read_only) if (priv->ret_data[28] != ';') // must have TAG data? { // get the TAG data - sscanf(&priv->ret_data[28], "%32s", chan->tag); + sscanf(&priv->ret_data[28], "%31s", chan->tag); char *p = strchr(chan->tag, ';'); if (p) { *p = 0; } commit 45cc53a5265677f572f4526d750ee546bb4390c4 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 22 11:36:45 2024 -0600 Fix potential overflow in sprintflst.c diff --git a/src/sprintflst.c b/src/sprintflst.c index eada0d7b6..800f0a80d 100644 --- a/src/sprintflst.c +++ b/src/sprintflst.c @@ -719,7 +719,6 @@ int rig_sprintf_scan(char *str, int nlen, scan_t rscan) return len; } - int rot_sprintf_status(char *str, int nlen, rot_status_t status) { int len = 0; @@ -735,20 +734,33 @@ int rot_sprintf_status(char *str, int nlen, rot_status_t status) for (i = 0; i < HAMLIB_MAX_ROTORS; i++) { - const char *sv; - sv = rot_strstatus(status & ROT_STATUS_N(i)); + const char *sv = rot_strstatus(status & ROT_STATUS_N(i)); if (sv && sv[0] && (strstr(sv, "None") == 0)) { - len += snprintf(str + len, nlen - len, "%s ", sv); + int written = snprintf(str + len, nlen - len, "%s ", sv); + if (written < 0 || written >= nlen - len) + { + // Truncate and break if there's no space left + len = nlen - 1; + str[len] = '\0'; + break; + } + len += written; } - check_buffer_overflow(str, len, nlen); + if (len >= nlen) + { + // Ensure null-termination and avoid overflow + str[nlen - 1] = '\0'; + break; + } } return len; } + int rig_sprintf_spectrum_modes(char *str, int nlen, const enum rig_spectrum_mode_e *modes) { commit 750adb40b53f89889b802bc64100ce095f114dc2 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 22 11:30:04 2024 -0600 Fix cleartext warning in rigctl_parse.c diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index 4565f8779..ebe9df723 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -5518,8 +5518,9 @@ declare_proto_rig(password) } else { - rig_debug(RIG_DEBUG_ERR, "%s: password error, '%s'!='%s'\n", __func__, - key, rigctld_password); + //rig_debug(RIG_DEBUG_ERR, "%s: password error, '%s'!='%s'\n", __func__, + // key, rigctld_password); + rig_debug(RIG_DEBUG_ERR, "%s: password error\n", __func__); } RETURNFUNC2(retval); commit b763761d9e307b4023e8a28d1dcbdc0116a5ff12 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 22 11:26:18 2024 -0600 Fix cleartext warning in rigctl_parse.c and rotctl_parse.c diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index e54c18263..4565f8779 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -1879,8 +1879,9 @@ readline_repeat: else { fprintf(fout, - "%s: error = %s\n", - cmd_entry->name, + //"%s: error = %s\n", + //cmd_entry->name, + "error = %s\n", rigerror(retcode)); } } diff --git a/tests/rotctl_parse.c b/tests/rotctl_parse.c index 08807d6fc..c47457645 100644 --- a/tests/rotctl_parse.c +++ b/tests/rotctl_parse.c @@ -1489,7 +1489,8 @@ int rotctl_parse(ROT *my_rot, FILE *fin, FILE *fout, const char *argv[], { if (cmd_entry->name != NULL) { - fprintf(fout, "%s: error = %s\n", cmd_entry->name, rigerror(retcode)); + //fprintf(fout, "%s: error = %s\n", cmd_entry->name, rigerror(retcode)); + fprintf(fout, "error = %s\n", rigerror(retcode)); } } } commit d302b8fabd713cfbebd53679ad5fb685122903cc Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 22 11:14:14 2024 -0600 Fix sscanf in rigctl_parse.c diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index d90fdda5a..e54c18263 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -825,7 +825,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, retcode = fscanf(fin, "%s", ++pcmd); - if (retcode == 0) { rig_debug(RIG_DEBUG_WARN, "%s: unable to scan %c\n", __func__, *(pcmd - 1)); } + if (retcode == 0 || retcode == EOF) { rig_debug(RIG_DEBUG_WARN, "%s: unable to scan %c\n", __func__, *(pcmd - 1)); } while (*++pcmd); @@ -3398,7 +3398,7 @@ declare_proto_rig(set_level) int dummy; - if (level == RIG_LEVEL_METER && sscanf(arg2, "%d", &dummy) == 0) + if (level == RIG_LEVEL_METER && sscanf(arg2, "%d", &dummy) <= 0) { if (strcmp(arg2, "COMP") == 0) { arg2 = "2"; } else if (strcmp(arg2, "ALC") == 0) { arg2 = "4"; } @@ -5932,7 +5932,7 @@ declare_proto_rig(cm108_get_bit) // try GPIO format first int n = sscanf(arg1, "GPIO%d", &gpio); - if (n == 0) + if (n == 0 || n == EOF) { n = sscanf(arg1, "%d", &gpio); } commit fe45fa2dfc15f2152d6294e7457ae218df972a0f Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 22 10:38:07 2024 -0600 Fix sscanf compare in rigctl_parse.c diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index aeb4313fd..d90fdda5a 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -5967,7 +5967,7 @@ declare_proto_rig(cm108_set_bit) // try GPIO format first int n = sscanf(arg1, "GPIO%d", &gpio); - if (n == 0) + if (n == 0 || n == EOF) { n = sscanf(arg1, "%d", &gpio); } commit 86518546db30c22a42c5ddc12e68434c4ed3f8ee Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 22 10:37:15 2024 -0600 Fix sscanf compare in gs232b.c diff --git a/rotators/gs232a/gs232b.c b/rotators/gs232a/gs232b.c index 65a900855..461a8491b 100644 --- a/rotators/gs232a/gs232b.c +++ b/rotators/gs232a/gs232b.c @@ -226,7 +226,7 @@ gs232b_rot_get_position(ROT *rot, azimuth_t *az, elevation_t *el) * directives, any amount of space is matched, including none in the input. */ // There's a 12PR1A rotor that only returns AZ so we may only get AZ=xxx - if (sscanf(posbuf, "AZ=%d EL=%d", &int_az, &int_el) == 0) + if (sscanf(posbuf, "AZ=%d EL=%d", &int_az, &int_el) <= 0) { // only give error if we didn't parse anything rig_debug(RIG_DEBUG_ERR, "%s: wrong reply '%s', expected AZ=xxx EL=xxx\n", commit 13f7b01d279a14078b485b9af4e999d3d4f8f5c7 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 22 10:36:05 2024 -0600 Fix sscanf compare in trxmanager.c diff --git a/rigs/dummy/trxmanager.c b/rigs/dummy/trxmanager.c index 9a4dcf50a..e9790e4d2 100644 --- a/rigs/dummy/trxmanager.c +++ b/rigs/dummy/trxmanager.c @@ -1114,7 +1114,7 @@ static int trxmanager_get_split_vfo(RIG *rig, vfo_t vfo, split_t *split, *tx_vfo = RIG_VFO_B; n = sscanf(response, "SP%d", &tsplit); - if (n == 0) + if (n == 0 || n == EOF) { rig_debug(RIG_DEBUG_ERR, "%s error getting split from '%s'\n", __func__, response); commit 62b0a25a3ddab25c65de373dd6a83d812af5a9f1 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 22 10:35:06 2024 -0600 Fix sscanf compare in flrig.c diff --git a/rigs/dummy/flrig.c b/rigs/dummy/flrig.c index dac27e01e..811ce04d7 100644 --- a/rigs/dummy/flrig.c +++ b/rigs/dummy/flrig.c @@ -910,7 +910,7 @@ static int flrig_open(RIG *rig) int dummy; if (retval == RIG_ENAVAIL || value[0] == 0 - || sscanf(value, "%d", &dummy) == 0) // must not have it + || sscanf(value, "%d", &dummy) <= 0) // must not have it { priv->has_get_bwA = 0; priv->has_get_bwB = 0; // if we don't have A then surely we don't have B either commit 57c5047c3ec662cd102961346ed1d4957ea88b5b Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 22 10:32:59 2024 -0600 Hopefully fix codeql warning about cleartext storage of sensitive information diff --git a/tests/ampctl_parse.c b/tests/ampctl_parse.c index ed45d6f95..62e3ac080 100644 --- a/tests/ampctl_parse.c +++ b/tests/ampctl_parse.c @@ -1406,7 +1406,8 @@ int ampctl_parse(AMP *my_amp, FILE *fin, FILE *fout, char *argv[], int argc) } else { - fprintf(fout, "%s: error = %s\n", cmd_entry->name, rigerror(retcode)); + fprintf(fout, "error = %s\n", rigerror(retcode)); + //fprintf(fout, "%s: error = %s\n", cmd_entry->name, rigerror(retcode)); } } else commit 89383a553a5e6b05779479edac2af0134cb10335 Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 22 10:31:17 2024 -0600 Fix buffer overrun in ampctl.c diff --git a/tests/ampctl.c b/tests/ampctl.c index 6fc960bb5..6a0cf29b3 100644 --- a/tests/ampctl.c +++ b/tests/ampctl.c @@ -213,7 +213,7 @@ int main(int argc, char *argv[]) return 1; } - strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms)); + strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms) - 1); break; case 't': commit ec3978e5210f6142f33504523168f55b4a4032ac Author: Michael Black W9MDB <mdb...@ya...> Date: Sun Dec 22 06:37:50 2024 -0600 Remove vim from Dockerfile since it is not portable diff --git a/docker-build/Dockerfile b/docker-build/Dockerfile index d92407f18..612034dce 100644 --- a/docker-build/Dockerfile +++ b/docker-build/Dockerfile @@ -4,7 +4,7 @@ FROM ubuntu:latest AS hamlib-base-image ENV DEBIAN_FRONTEND="noninteractive" TZ="Etc/UTC" RUN apt-get update \ - && apt-get install -y vim git build-essential automake libtool python-is-python3 \ + && apt-get install -y git build-essential automake libtool python-is-python3 \ && rm -rf /var/lib/apt/lists/* # Builder Image commit 2b23051c6ddb266c359ce57008d44deeab3f5bc6 Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Dec 21 15:19:06 2024 -0600 Remove display of password from debug https://github.com/Hamlib/Hamlib/security/code-scanning/15 diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index 5c52ad408..aeb4313fd 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -5478,7 +5478,7 @@ int rigctld_password_check(RIG *rig, const char *md5) { int retval = -RIG_EINVAL; //fprintf(fout, "password %s\n", password); - rig_debug(RIG_DEBUG_TRACE, "%s: %s == %s\n", __func__, md5, rigctld_password); + //rig_debug(RIG_DEBUG_TRACE, "%s: %s == %s\n", __func__, md5, rigctld_password); is_passwordOK = 0; char *mymd5 = rig_make_md5(rigctld_password); commit 032e530def273825892a6bfe8e4b5eef137ec529 Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Dec 21 15:06:11 2024 -0600 Fix the other ts590.c problems diff --git a/rigs/kenwood/ts590.c b/rigs/kenwood/ts590.c index 66ecd38a4..bbe80b940 100644 --- a/rigs/kenwood/ts590.c +++ b/rigs/kenwood/ts590.c @@ -1958,7 +1958,7 @@ struct rig_caps fx4_caps = .max_ifshift = Hz(0), // .targetable_vfo = RIG_TARGETABLE_FREQ | RIG_TARGETABLE_MODE, // mode command is not vfo targetable - .targetable_vfo = RIG_TARGETABLE_FREQ + .targetable_vfo = RIG_TARGETABLE_FREQ, .transceive = RIG_TRN_RIG, .agc_level_count = 6, .agc_levels = { RIG_AGC_OFF, RIG_AGC_SLOW, RIG_AGC_MEDIUM, RIG_AGC_FAST, RIG_AGC_SUPERFAST, RIG_AGC_ON }, @@ -2168,7 +2168,7 @@ struct rig_caps ts590sg_caps = .max_ifshift = Hz(0), // .targetable_vfo = RIG_TARGETABLE_FREQ | RIG_TARGETABLE_MODE, // mode command is not vfo targetable - .targetable_vfo = RIG_TARGETABLE_FREQ + .targetable_vfo = RIG_TARGETABLE_FREQ, .transceive = RIG_TRN_RIG, .agc_level_count = 6, .agc_levels = { RIG_AGC_OFF, RIG_AGC_SLOW, RIG_AGC_MEDIUM, RIG_AGC_FAST, RIG_AGC_SUPERFAST, RIG_AGC_ON }, commit a7dbebffa9297d3e9afa5c356ab74bfdb2c0243d Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Dec 21 15:05:14 2024 -0600 Fix ts590.c diff --git a/rigs/kenwood/ts590.c b/rigs/kenwood/ts590.c index 624904517..66ecd38a4 100644 --- a/rigs/kenwood/ts590.c +++ b/rigs/kenwood/ts590.c @@ -1738,7 +1738,7 @@ struct rig_caps ts590_caps = .max_ifshift = Hz(0), // .targetable_vfo = RIG_TARGETABLE_FREQ | RIG_TARGETABLE_MODE, // mode command is not vfo targetable - .targetable_vfo = RIG_TARGETABLE_FREQ + .targetable_vfo = RIG_TARGETABLE_FREQ, .transceive = RIG_TRN_RIG, .agc_level_count = 6, .agc_levels = { RIG_AGC_OFF, RIG_AGC_SLOW, RIG_AGC_MEDIUM, RIG_AGC_FAST, RIG_AGC_SUPERFAST, RIG_AGC_ON }, commit 33293112744fc08f70811af4add9c7dd6f6533fa Merge: ec7103582 6bb5c4049 Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Dec 21 14:59:06 2024 -0600 Merge branch 'master' of github.com:Hamlib/Hamlib commit 6bb5c404994308c06bdfd853642b60adb662b78f Merge: 1364996bd db00197e6 Author: Michael Black <mdb...@ya...> Date: Sat Dec 21 14:50:12 2024 -0600 Merge pull request #1639 from 8r4n/feature/multi-stage-docker-build Added multi-stage Docker build and hamlib-runtime image commit ec7103582297545948602bc833cf1883fd94e8d8 Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Dec 21 14:47:43 2024 -0600 Fix sscanf check in aclog.c https://github.com/Hamlib/Hamlib/security/code-scanning/3206 diff --git a/rigs/dummy/aclog.c b/rigs/dummy/aclog.c index 6f8183ac0..b8b8bedd9 100644 --- a/rigs/dummy/aclog.c +++ b/rigs/dummy/aclog.c @@ -530,7 +530,7 @@ static int aclog_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width) *mode = RIG_MODE_NONE; int n = sscanf(p, "<MODE>%31[^<]", modetmp); - if (n) { *mode = modeMapGetHamlib(modetmp); } + if (n == 1) { *mode = modeMapGetHamlib(modetmp); } else { rig_debug(RIG_DEBUG_ERR, "%s: Unable to parse <MODE> from '%s'\n", __func__, commit 8842ae7c2920799442bfda812fa56c241dfdeebd Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Dec 21 14:46:39 2024 -0600 Fix sscanf check in smartsdr.c https://github.com/Hamlib/Hamlib/security/code-scanning/3208 diff --git a/rigs/flexradio/smartsdr.c b/rigs/flexradio/smartsdr.c index 16324b5bc..e91cab9c0 100644 --- a/rigs/flexradio/smartsdr.c +++ b/rigs/flexradio/smartsdr.c @@ -462,7 +462,7 @@ static int smartsdr_parse_S(RIG *rig, char *s) rig_debug(RIG_DEBUG_VERBOSE, "%s: PTT state=%s, ptt=%d\n", __func__, state, priv->ptt); } - else if (sscanf(p, "tx=%d\n", &priv->tx)) + else if (sscanf(p, "tx=%d\n", &priv->tx) == 1) { rig_debug(RIG_DEBUG_VERBOSE, "%s: tx=%d\n", __func__, priv->tx); } commit 4b4b1b0d517403f0f460f1a255358b4f1b426e0b Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Dec 21 14:43:20 2024 -0600 Fix buffer overflow in ft991.c https://github.com/Hamlib/Hamlib/security/code-scanning/3209 diff --git a/rigs/yaesu/ft991.c b/rigs/yaesu/ft991.c index dfe56fe80..d2c36f37d 100644 --- a/rigs/yaesu/ft991.c +++ b/rigs/yaesu/ft991.c @@ -702,7 +702,7 @@ static int ft991_set_split_mode(RIG *rig, vfo_t vfo, rmode_t tx_mode, } strncat(restore_commands, priv->ret_data, - NEWCAT_DATA_LEN - strlen(restore_commands)); + NEWCAT_DATA_LEN - strlen(restore_commands) - 1); /* Change mode on VFOA */ if (RIG_OK != (err = newcat_set_mode(rig, RIG_VFO_A, tx_mode, commit e6be427c519ae3228787c728a1bdc5cc5dc31d0c Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Dec 21 14:42:46 2024 -0600 Fix buffer overflow in ampctld.c diff --git a/tests/ampctld.c b/tests/ampctld.c index a2e00aa78..079eb068b 100644 --- a/tests/ampctld.c +++ b/tests/ampctld.c @@ -256,7 +256,7 @@ int main(int argc, char *argv[]) return 1; } - strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms)); + strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms) - 1); break; case 't': commit 72424ac144904dc9c70161fe70c64f8657e89758 Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Dec 21 14:41:58 2024 -0600 Fix buffer overflow in rigctl.c https://github.com/Hamlib/Hamlib/security/code-scanning/3212 diff --git a/tests/rigctl.c b/tests/rigctl.c index 078d621fd..383c7185b 100644 --- a/tests/rigctl.c +++ b/tests/rigctl.c @@ -475,7 +475,7 @@ int main(int argc, char *argv[]) return 1; } - strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms)); + strncat(conf_parms, optarg, MAXCONFLEN - strlen(conf_parms) - 1); break; case 'o': commit 12c453ccd3cbf4455d346f7d4f42fa7061bee0cb Author: Michael Black W9MDB <mdb...@ya...> Date: Sat Dec 21 14:41:25 2024 -0600 Fix buffer overflow in rigctlcom.c https://github.com/Hamlib/Hamlib/security/code-scanning/3213 diff --git a/tests/rigctlcom.c b/tests/rigctlcom.c index 3938a4027..f81de0ce5 100644 --- a/tests/rigctlcom.c +++ b/tests/rigctlcom.c @@ -439,7 +439,7 @@ int main(int argc, char *argv[]) retur... [truncated message content] |
From: n0nb <n0...@us...> - 2024-12-20 00:06:09
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via 1364996bd298643a288d79edde45f7fd53cf0816 (commit) from be045da06b661234feb6b1258ca58e8c028b9b56 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 1364996bd298643a288d79edde45f7fd53cf0816 Author: Nate Bargmann <n0...@n0...> Date: Thu Dec 19 18:05:40 2024 -0600 Advance to 4.7~git diff --git a/configure.ac b/configure.ac index 7cb321c75..c0516aab6 100644 --- a/configure.ac +++ b/configure.ac @@ -14,7 +14,7 @@ dnl Please do not use '-' in the version number, as package managers will fail, dnl however, the use of '~' should be fine as apt (others?) will treat dnl it as an earlier version than the actual release. TNX KA6MAL dnl PACKAGE_NAME + " " + PACKAGE_VERSION must not exceed 20 chars! -AC_INIT([Hamlib],[4.6~git],[ham...@li...],[hamlib],[http://www.hamlib.org]) +AC_INIT([Hamlib],[4.7~git],[ham...@li...],[hamlib],[http://www.hamlib.org]) #AC_INIT([PRODUCT_NAME], [Hamlib]) #AC_DEFINE([Hamlib], [PRODUCT_VERSION_RESOURCE]) ----------------------------------------------------------------------- Summary of changes: configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: n0nb <n0...@us...> - 2024-12-20 00:03:52
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, Hamlib-4.6 has been created at c0542ae864ce6f9cc4b29b0c30b44e273261d114 (commit) - Log ----------------------------------------------------------------- commit c0542ae864ce6f9cc4b29b0c30b44e273261d114 Author: Nate Bargmann <n0...@n0...> Date: Thu Dec 19 07:18:18 2024 -0600 Advance to 4.6~rc1 diff --git a/configure.ac b/configure.ac index 7cb321c75..4c1c914d2 100644 --- a/configure.ac +++ b/configure.ac @@ -14,7 +14,7 @@ dnl Please do not use '-' in the version number, as package managers will fail, dnl however, the use of '~' should be fine as apt (others?) will treat dnl it as an earlier version than the actual release. TNX KA6MAL dnl PACKAGE_NAME + " " + PACKAGE_VERSION must not exceed 20 chars! -AC_INIT([Hamlib],[4.6~git],[ham...@li...],[hamlib],[http://www.hamlib.org]) +AC_INIT([Hamlib],[4.6~rc1],[ham...@li...],[hamlib],[http://www.hamlib.org]) #AC_INIT([PRODUCT_NAME], [Hamlib]) #AC_DEFINE([Hamlib], [PRODUCT_VERSION_RESOURCE]) ----------------------------------------------------------------------- hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: n0nb <n0...@us...> - 2024-12-06 11:38:51
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via be045da06b661234feb6b1258ca58e8c028b9b56 (commit) via 58924b7bec47a73ee4665030be78b83a530b45c0 (commit) from 671a3b8562d71f28cb75874d30c90f969a129902 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit be045da06b661234feb6b1258ca58e8c028b9b56 Author: Michael Black W9MDB <mdb...@ya...> Date: Wed Dec 4 17:15:35 2024 -0600 Fix set_mode on rigctlcom diff --git a/tests/rigctlcom.c b/tests/rigctlcom.c index fca7aaabd..3938a4027 100644 --- a/tests/rigctlcom.c +++ b/tests/rigctlcom.c @@ -224,7 +224,7 @@ int main(int argc, char *argv[]) char conf_parms[MAXCONFLEN] = ""; int status; - printf("rigctlcom Version 1.5\n"); + printf("rigctlcom Version 1.6\n"); while (1) { @@ -1604,7 +1604,6 @@ static int handle_ts2000(void *arg) } else if (strncmp(arg, "MD", 2) == 0) { - //char response[32]; mode_t mode = 0; int imode = 0; @@ -1633,10 +1632,6 @@ static int handle_ts2000(void *arg) case 9: mode = RIG_MODE_RTTYR; break; } rig_set_mode(my_rig, RIG_VFO_A, mode, -1); -#if 0 - SNPRINTF(response, sizeof(response), "MD%c;", mode + '0'); - return write_block2((void *)__func__, &my_com, response, strlen(response)); -#endif } else if (strcmp(arg, "PS1;") == 0) { commit 58924b7bec47a73ee4665030be78b83a530b45c0 Author: Michael Black W9MDB <mdb...@ya...> Date: Wed Dec 4 15:43:47 2024 -0600 Add DATA_FMN mode to flrig diff --git a/rigs/dummy/flrig.c b/rigs/dummy/flrig.c index df6f27bde..dac27e01e 100644 --- a/rigs/dummy/flrig.c +++ b/rigs/dummy/flrig.c @@ -1047,6 +1047,7 @@ static int flrig_open(RIG *rig) else if (streq(p, "D-USB")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } else if (streq(p, "DATA")) { modeMapAdd(&modes, RIG_MODE_PKTUSB, p); } else if (streq(p, "DATA-FM")) { modeMapAdd(&modes, RIG_MODE_PKTFM, p); } + else if (streq(p, "DATA-FMN")) { modeMapAdd(&modes, RIG_MODE_PKTFMN, p); } else if (streq(p, "DATA-L")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p); } else if (streq(p, "DATA-R")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p); } else if (streq(p, "DATA-LSB")) { modeMapAdd(&modes, RIG_MODE_PKTLSB, p); } ----------------------------------------------------------------------- Summary of changes: rigs/dummy/flrig.c | 1 + tests/rigctlcom.c | 7 +------ 2 files changed, 2 insertions(+), 6 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |
From: n0nb <n0...@us...> - 2024-12-04 20:57:24
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, master has been updated via 671a3b8562d71f28cb75874d30c90f969a129902 (commit) from 46711b1db4b4f737964f700941c1184db81d5bf1 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 671a3b8562d71f28cb75874d30c90f969a129902 Author: Michael Black W9MDB <mdb...@ya...> Date: Wed Dec 4 14:47:48 2024 -0600 Fix rig_get_DBM in flrig diff --git a/rigs/dummy/flrig.c b/rigs/dummy/flrig.c index e739acf81..df6f27bde 100644 --- a/rigs/dummy/flrig.c +++ b/rigs/dummy/flrig.c @@ -2386,8 +2386,7 @@ static int flrig_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) } case RIG_LEVEL_STRENGTH: - val->i = atoi(value); - //if (val->i > 0) val->i /= 10; + val->i = atoi(value) + 73; rig_debug(RIG_DEBUG_TRACE, "%s: val.i='%s'(%d)\n", __func__, value, val->i); break; ----------------------------------------------------------------------- Summary of changes: rigs/dummy/flrig.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |