Hopefully fixed auto_power_on for IC-7610 and IC-9700

But it takes ~4 seconds on IC-7300 to power on 14 seconds to time out when the rig does not respond at all
https://github.com/Hamlib/Hamlib/issues/815
pull/822/head
Mike Black W9MDB 2021-10-05 11:40:54 -05:00
rodzic ca9a45c93e
commit fecc7d42aa
2 zmienionych plików z 7 dodań i 4 usunięć

Wyświetl plik

@ -7629,13 +7629,13 @@ int icom_set_powerstat(RIG *rig, powerstat_t status)
// sending more than enough 0xfe's to wake up the rs232
write_block(&rs->rigport, (char *) fe_buf, fe_max);
hl_usleep(100 * 1000);
// we'll try 0x18 0x01 now -- should work on STBY rigs too
pwr_sc = S_PWR_ON;
fe_buf[0] = 0;
priv->serial_USB_echo_off = 1;
retval =
icom_transaction(rig, C_SET_PWR, pwr_sc, NULL, 0, ackbuf, &ack_len);
hl_usleep(4000*1000); // give some time to wake up
break;
@ -7647,7 +7647,7 @@ int icom_set_powerstat(RIG *rig, powerstat_t status)
}
i = 0;
retry = 2;
retry = 3;
if (status == RIG_POWER_ON) // wait for wakeup only
{
@ -7657,7 +7657,10 @@ int icom_set_powerstat(RIG *rig, powerstat_t status)
// need to see if echo is on or not first
// until such time as rig is awake we don't know
retval = icom_get_usb_echo_off(rig);
if (retval == -RIG_ETIMEOUT) continue;
if (retval == -RIG_ETIMEOUT) {
rig_debug(RIG_DEBUG_WARN, "%s: get_usb_echo_off timeout...try#%d\n", __func__, i+1);
continue;
}
// Use get_freq as all rigs should repond to this
retval = rig_get_freq(rig, RIG_VFO_CURR, &freq);

Wyświetl plik

@ -30,7 +30,7 @@
#include <sys/time.h>
#endif
#define BACKEND_VER "20211004"
#define BACKEND_VER "20211005"
#define ICOM_IS_SECONDARY_VFO(vfo) ((vfo) & (RIG_VFO_B | RIG_VFO_SUB | RIG_VFO_SUB_B | RIG_VFO_MAIN_B))
#define ICOM_GET_VFO_NUMBER(vfo) (ICOM_IS_SECONDARY_VFO(vfo) ? 0x01 : 0x00)