diff --git a/rigs/icom/icom.c b/rigs/icom/icom.c index 697f1327c..2b3c73135 100644 --- a/rigs/icom/icom.c +++ b/rigs/icom/icom.c @@ -942,20 +942,31 @@ icom_rig_open(RIG *rig) retry_open: retval_echo = icom_get_usb_echo_off(rig); - rig_debug(RIG_DEBUG_TRACE, "%s: retval_echo=%d\n", __func__, retval_echo); + rig_debug(RIG_DEBUG_TRACE, "%s: echo status result=%d\n", __func__, retval_echo); - if (retval_echo == 0 || retval_echo == 1) { retval = RIG_OK; } - else { retval = retval_echo; } + if (retval_echo == 0 || retval_echo == 1) + { + retval = RIG_OK; + } + else + { + retval = retval_echo; + } if (retval == RIG_OK) // then we know our echo status { - rig_debug(RIG_DEBUG_TRACE, "%s: echo status known, getting freq\n", __func__); + rig_debug(RIG_DEBUG_TRACE, "%s: echo status known, getting frequency\n", __func__); rs->rigport.retry = 0; rig->state.current_vfo = icom_current_vfo(rig); // some rigs like the IC7100 still echo when in standby // so asking for freq now should timeout if such a rig freq_t tfreq; retval = rig_get_freq(rig, RIG_VFO_CURR, &tfreq); + if (retval != RIG_OK) + { + rig_debug(RIG_DEBUG_ERR, "%s: rig error getting frequency retry=%d, err=%s\n", + __func__, retry_flag, rigerror(retval)); + } } else { @@ -970,33 +981,35 @@ retry_open: // this is only a fatal error if powerstat is implemented // if not implemented than we're at an error here - if (retval != RIG_OK && retval != RIG_ENIMPL && retval != RIG_ENAVAIL) + if (retval != RIG_OK) { - rig_debug(RIG_DEBUG_WARN, "%s: unexpected retval here: %s\n", - __func__, rigerror(retval)); - - rig_debug(RIG_DEBUG_WARN, "%s: rig_set_powerstat failed: =%s\n", __func__, - rigerror(retval)); rs->rigport.retry = retry_save; + + rig_debug(RIG_DEBUG_ERR, "%s: rig_set_powerstat failed: %s\n", __func__, + rigerror(retval)); + + if (retval == RIG_ENIMPL || retval == RIG_ENAVAIL) + { + rig_debug(RIG_DEBUG_ERR, "%s: rig_set_powerstat not implemented for rig\n", __func__); + RETURNFUNC(-RIG_ECONF); + } + + RETURNFUNC(retval); } - if (retval == RIG_OK) - { - // Now that we're powered up let's try again - retval_echo = icom_get_usb_echo_off(rig); + // Now that we're powered up let's try again + retval_echo = icom_get_usb_echo_off(rig); - if (retval_echo != 0 && retval_echo != 1) - { - rig_debug(RIG_DEBUG_ERR, "%s: Unable to determine USB echo status\n", __func__); - rs->rigport.retry = retry_save; - } + if (retval_echo != 0 && retval_echo != 1) + { + rig_debug(RIG_DEBUG_ERR, "%s: Unable to determine USB echo status\n", __func__); + rs->rigport.retry = retry_save; + RETURNFUNC(retval_echo); } } else if (retval != RIG_OK) { // didnt' ask for power on so let's retry one more time - rig_debug(RIG_DEBUG_ERR, "%s: rig error getting frequency retry=%d, err=%s\n", - __func__, retry_flag, rigerror(retval)); if (retry_flag) { diff --git a/tests/rigctld.c b/tests/rigctld.c index d18742f8a..5339eb17a 100644 --- a/tests/rigctld.c +++ b/tests/rigctld.c @@ -1188,10 +1188,10 @@ void *handle_socket(void *arg) } mutex_rigctld(0); } - while (!rig_opened && retry-- > 0 && retcode != RIG_OK); + while (!ctrl_c && !rig_opened && retry-- > 0 && retcode != RIG_OK); } } - while (retcode == RIG_OK || RIG_IS_SOFT_ERRCODE(-retcode)); + while (!ctrl_c && (retcode == RIG_OK || RIG_IS_SOFT_ERRCODE(-retcode))); #ifdef HAVE_PTHREAD #if 0