kopia lustrzana https://github.com/Hamlib/Hamlib
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/815pull/822/head
rodzic
ca9a45c93e
commit
fecc7d42aa
|
@ -7629,13 +7629,13 @@ int icom_set_powerstat(RIG *rig, powerstat_t status)
|
||||||
// sending more than enough 0xfe's to wake up the rs232
|
// sending more than enough 0xfe's to wake up the rs232
|
||||||
write_block(&rs->rigport, (char *) fe_buf, fe_max);
|
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
|
// we'll try 0x18 0x01 now -- should work on STBY rigs too
|
||||||
pwr_sc = S_PWR_ON;
|
pwr_sc = S_PWR_ON;
|
||||||
fe_buf[0] = 0;
|
fe_buf[0] = 0;
|
||||||
priv->serial_USB_echo_off = 1;
|
priv->serial_USB_echo_off = 1;
|
||||||
retval =
|
retval =
|
||||||
icom_transaction(rig, C_SET_PWR, pwr_sc, NULL, 0, ackbuf, &ack_len);
|
icom_transaction(rig, C_SET_PWR, pwr_sc, NULL, 0, ackbuf, &ack_len);
|
||||||
|
hl_usleep(4000*1000); // give some time to wake up
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -7647,7 +7647,7 @@ int icom_set_powerstat(RIG *rig, powerstat_t status)
|
||||||
}
|
}
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
retry = 2;
|
retry = 3;
|
||||||
|
|
||||||
if (status == RIG_POWER_ON) // wait for wakeup only
|
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
|
// need to see if echo is on or not first
|
||||||
// until such time as rig is awake we don't know
|
// until such time as rig is awake we don't know
|
||||||
retval = icom_get_usb_echo_off(rig);
|
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
|
// Use get_freq as all rigs should repond to this
|
||||||
retval = rig_get_freq(rig, RIG_VFO_CURR, &freq);
|
retval = rig_get_freq(rig, RIG_VFO_CURR, &freq);
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#endif
|
#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_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)
|
#define ICOM_GET_VFO_NUMBER(vfo) (ICOM_IS_SECONDARY_VFO(vfo) ? 0x01 : 0x00)
|
||||||
|
|
Ładowanie…
Reference in New Issue