kopia lustrzana https://github.com/Hamlib/Hamlib
Make icom_rig_open() fail in case rig_set_powerstat() failure is auto_power_on is requested. Exit rigctld client loop if process is interrupted.
rodzic
1f428c8d95
commit
664604f7b6
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
Ładowanie…
Reference in New Issue