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:
|
retry_open:
|
||||||
retval_echo = icom_get_usb_echo_off(rig);
|
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; }
|
if (retval_echo == 0 || retval_echo == 1)
|
||||||
else { retval = retval_echo; }
|
{
|
||||||
|
retval = RIG_OK;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
retval = retval_echo;
|
||||||
|
}
|
||||||
|
|
||||||
if (retval == RIG_OK) // then we know our echo status
|
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;
|
rs->rigport.retry = 0;
|
||||||
rig->state.current_vfo = icom_current_vfo(rig);
|
rig->state.current_vfo = icom_current_vfo(rig);
|
||||||
// some rigs like the IC7100 still echo when in standby
|
// some rigs like the IC7100 still echo when in standby
|
||||||
// so asking for freq now should timeout if such a rig
|
// so asking for freq now should timeout if such a rig
|
||||||
freq_t tfreq;
|
freq_t tfreq;
|
||||||
retval = rig_get_freq(rig, RIG_VFO_CURR, &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
|
else
|
||||||
{
|
{
|
||||||
|
@ -970,33 +981,35 @@ retry_open:
|
||||||
|
|
||||||
// this is only a fatal error if powerstat is implemented
|
// this is only a fatal error if powerstat is implemented
|
||||||
// if not implemented than we're at an error here
|
// 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;
|
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)
|
if (retval_echo != 0 && retval_echo != 1)
|
||||||
{
|
{
|
||||||
rig_debug(RIG_DEBUG_ERR, "%s: Unable to determine USB echo status\n", __func__);
|
rig_debug(RIG_DEBUG_ERR, "%s: Unable to determine USB echo status\n", __func__);
|
||||||
rs->rigport.retry = retry_save;
|
rs->rigport.retry = retry_save;
|
||||||
}
|
RETURNFUNC(retval_echo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (retval != RIG_OK)
|
else if (retval != RIG_OK)
|
||||||
{
|
{
|
||||||
// didnt' ask for power on so let's retry one more time
|
// 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)
|
if (retry_flag)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1188,10 +1188,10 @@ void *handle_socket(void *arg)
|
||||||
}
|
}
|
||||||
mutex_rigctld(0);
|
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
|
#ifdef HAVE_PTHREAD
|
||||||
#if 0
|
#if 0
|
||||||
|
|
Ładowanie…
Reference in New Issue