From f4f7bc90814c14747aba264863ccc953413f4481 Mon Sep 17 00:00:00 2001 From: Mike Black W9MDB Date: Mon, 18 Jul 2022 09:51:45 -0500 Subject: [PATCH] Allow rigctl/rigctld to timeout faster on startup https://github.com/Hamlib/Hamlib/issues/1087 --- src/rig.c | 21 +++++++++++++++------ tests/rigctld.c | 1 + 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/rig.c b/src/rig.c index bdc6d9008..c704fc1ee 100644 --- a/src/rig.c +++ b/src/rig.c @@ -1316,13 +1316,22 @@ int HAMLIB_API rig_open(RIG *rig) // prime the freq and mode settings // don't care about the return here -- if it doesn't work so be it + int retry_save = rs->rigport.retry; + rs->rigport.retry = rs->rigport.retry; freq_t freq; - rig_get_freq(rig, RIG_VFO_A, &freq); - rig_get_freq(rig, RIG_VFO_B, &freq); - rmode_t mode; - pbwidth_t width; - rig_get_mode(rig, RIG_VFO_A, &mode, &width); - rig_get_mode(rig, RIG_VFO_B, &mode, &width); + if (rig->caps->get_freq) + { + int retval = rig_get_freq(rig, RIG_VFO_A, &freq); + if (retval == RIG_OK) + { + rig_get_freq(rig, RIG_VFO_B, &freq); + rmode_t mode; + pbwidth_t width; + rig_get_mode(rig, RIG_VFO_A, &mode, &width); + rig_get_mode(rig, RIG_VFO_B, &mode, &width); + } + } + rs->rigport.retry = retry_save; memcpy(&rs->rigport_deprecated, &rs->rigport, sizeof(hamlib_port_t_deprecated)); memcpy(&rs->pttport_deprecated, &rs->pttport, sizeof(hamlib_port_t_deprecated)); diff --git a/tests/rigctld.c b/tests/rigctld.c index 1f549b469..ae29767c6 100644 --- a/tests/rigctld.c +++ b/tests/rigctld.c @@ -1245,6 +1245,7 @@ void *handle_socket(void *arg) { rig_get_powerstat(my_rig, &powerstat); rig_powerstat = powerstat; + if (powerstat == RIG_POWER_OFF) retcode = -RIG_EPOWER; } } else