From ba8f56dfbbe97ff026b552e071a9a9e7bcd536e9 Mon Sep 17 00:00:00 2001 From: Michael Black Date: Wed, 15 Apr 2020 09:37:22 -0500 Subject: [PATCH 1/6] Change sync_cb to encompass the entire transaction Testing to see if the fixes the problem with Flex rigs --- tests/rigctl_parse.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index a55ac93e1..725495d98 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -1542,7 +1542,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, #endif // HAVE_LIBREADLINE - if (sync_cb) { sync_cb(1); } /* lock if necessary */ + if (sync_cb) sync_cb(1); /* lock if necessary */ if (!prompt) { @@ -1600,9 +1600,13 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, p2 ? p2 : "", p3 ? p3 : ""); - if (sync_cb) { sync_cb(0); } /* unlock if necessary */ - if (retcode == RIG_EIO) { return retcode; } + if (retcode == RIG_EIO) + { + if (sync_cb) sync_cb(0); /* unlock if necessary */ + + return retcode; + } if (retcode != RIG_OK) { @@ -1645,6 +1649,8 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, fflush(fout); + if (sync_cb) sync_cb(0); /* unlock if necessary */ + if (retcode == -RIG_ENAVAIL) { return retcode; From 9f3fbc07fde257209ffafe3ba12aa7dedf91eb92 Mon Sep 17 00:00:00 2001 From: Michael Black Date: Wed, 15 Apr 2020 09:57:08 -0500 Subject: [PATCH 2/6] Add debug to rigctl_parse.c --- tests/rigctl_parse.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index 725495d98..a60afb0fd 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -136,7 +136,7 @@ struct test_table }; -#define CHKSCN1ARG(a) if ((a) != 1) return -RIG_EINVAL; else do {} while(0) +#define CHKSCN1ARG(a) if ((a) != 1) { rig_debug(RIG_DEBUG_ERR,"%s: chkarg err\n", __func__);return -RIG_EINVAL;} else do {} while(0) #define ACTION(f) rigctl_##f #define declare_proto_rig(f) static int (ACTION(f))(RIG *rig, \ @@ -627,6 +627,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, { if (scanfc(fin, "%c", &cmd) < 1) { + rig_debug(RIG_DEBUG_WARN, "%s: nothing to scan#1?\n", __func__); return -1; } @@ -639,6 +640,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, if (scanfc(fin, "%c", &cmd) < 1) { + rig_debug(RIG_DEBUG_WARN, "%s: nothing to scan#2?\n", __func__); return -1; } } @@ -659,6 +661,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, if (scanfc(fin, "%c", &cmd) < 1) { + rig_debug(RIG_DEBUG_WARN, "%s: nothing to scan#3?\n", __func__); return -1; } } @@ -681,6 +684,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, if (scanfc(fin, "%c", pcmd) < 1) { + rig_debug(RIG_DEBUG_WARN, "%s: nothing to scan#4?\n", __func__); return -1; } @@ -688,6 +692,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, { if (scanfc(fin, "%c", ++pcmd) < 1) { + rig_debug(RIG_DEBUG_WARN, "%s: nothing to scan#5?\n", __func__); return -1; } } @@ -724,6 +729,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, { if (scanfc(fin, "%c", &cmd) < 1) { + rig_debug(RIG_DEBUG_WARN, "%s: nothing to scan#6?\n", __func__); return -1; } } @@ -785,6 +791,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, if (scanfc(fin, "%s", arg1) < 1) { + rig_debug(RIG_DEBUG_WARN, "%s: nothing to scan#7?\n", __func__); return -1; } @@ -886,6 +893,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, if (scanfc(fin, "%s", arg1) < 1) { + rig_debug(RIG_DEBUG_WARN, "%s: nothing to scan#8?\n", __func__); return -1; } @@ -940,6 +948,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, if (scanfc(fin, "%s", arg2) < 1) { + rig_debug(RIG_DEBUG_WARN, "%s: nothing to scan#9?\n", __func__); return -1; } @@ -986,6 +995,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, if (scanfc(fin, "%s", arg3) < 1) { + rig_debug(RIG_DEBUG_WARN, "%s: nothing to scan#10?\n", __func__); return -1; } @@ -1542,7 +1552,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, #endif // HAVE_LIBREADLINE - if (sync_cb) sync_cb(1); /* lock if necessary */ + if (sync_cb) { sync_cb(1); } /* lock if necessary */ if (!prompt) { @@ -1603,7 +1613,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, if (retcode == RIG_EIO) { - if (sync_cb) sync_cb(0); /* unlock if necessary */ + if (sync_cb) { sync_cb(0); } /* unlock if necessary */ return retcode; } @@ -1649,7 +1659,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, fflush(fout); - if (sync_cb) sync_cb(0); /* unlock if necessary */ + if (sync_cb) { sync_cb(0); } /* unlock if necessary */ if (retcode == -RIG_ENAVAIL) { From 32a8ba45ae095958abe2ee86a98399aac566c6a7 Mon Sep 17 00:00:00 2001 From: Michael Black Date: Wed, 15 Apr 2020 11:33:09 -0500 Subject: [PATCH 3/6] Allow empty line for noninteractive rigctld --- tests/rigctl_parse.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index a60afb0fd..90e4b96cd 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -628,7 +628,8 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, if (scanfc(fin, "%c", &cmd) < 1) { rig_debug(RIG_DEBUG_WARN, "%s: nothing to scan#1?\n", __func__); - return -1; + //return -1; + continue; } /* Extended response protocol requested with leading '+' on command From 819be74317604349226f0b7a92c8cba0b4fe9f14 Mon Sep 17 00:00:00 2001 From: Michael Black Date: Wed, 15 Apr 2020 11:55:07 -0500 Subject: [PATCH 4/6] Testing continuation of rigctld when nothing to scan --- tests/rigctl_parse.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index 90e4b96cd..f57e05ecf 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -628,6 +628,7 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, if (scanfc(fin, "%c", &cmd) < 1) { rig_debug(RIG_DEBUG_WARN, "%s: nothing to scan#1?\n", __func__); + cmd = 0x0a; //return -1; continue; } From 774cb9d25cebb313866c06020a5aadfc87c13a82 Mon Sep 17 00:00:00 2001 From: Michael Black Date: Wed, 15 Apr 2020 12:28:42 -0500 Subject: [PATCH 5/6] More testing on Flex problem allow rigctld to continue executing --- tests/rigctl_parse.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index f57e05ecf..a89f42bbf 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -628,9 +628,8 @@ int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc, if (scanfc(fin, "%c", &cmd) < 1) { rig_debug(RIG_DEBUG_WARN, "%s: nothing to scan#1?\n", __func__); - cmd = 0x0a; - //return -1; - continue; + cmd = 0x0a; // setting 0x0a as though CR/LF was sent + hl_usleep(200*1e6); } /* Extended response protocol requested with leading '+' on command From 8bd1d0c4672d1f6ba014da805bdb0aca30471a62 Mon Sep 17 00:00:00 2001 From: Michael Black Date: Fri, 17 Apr 2020 23:07:45 -0500 Subject: [PATCH 6/6] Update baud rate for TS480 --- rigs/kenwood/ts480.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rigs/kenwood/ts480.c b/rigs/kenwood/ts480.c index 792a02842..fecc3d94b 100644 --- a/rigs/kenwood/ts480.c +++ b/rigs/kenwood/ts480.c @@ -641,8 +641,8 @@ const struct rig_caps pt8000a_caps = .ptt_type = RIG_PTT_RIG_MICDATA, .dcd_type = RIG_DCD_RIG, .port_type = RIG_PORT_SERIAL, - .serial_rate_min = 4800, - .serial_rate_max = 115200, + .serial_rate_min = 9600, + .serial_rate_max = 57600, .serial_data_bits = 8, .serial_stop_bits = 1, .serial_parity = RIG_PARITY_NONE,