Ignore ICOM transceive frames

pull/1523/head
Mike Black W9MDB 2024-03-01 12:56:20 -06:00
rodzic cef2525d0f
commit 12404aa8a6
1 zmienionych plików z 12 dodań i 0 usunięć

Wyświetl plik

@ -183,6 +183,7 @@ collision_retry:
* up to rs->retry times.
*/
again1:
retval = read_icom_frame(rp, buf, sizeof(buf));
if (retval == -RIG_ETIMEOUT || retval == 0)
@ -209,6 +210,11 @@ collision_retry:
rig_debug(RIG_DEBUG_TRACE, "%s: DEBUG retval=%d, frm_len=%d, cmd=0x%02x\n",
__func__, retval, frm_len, cmd);
if (buf[1] == 0x00) // then this is a transceive frame so ignore it
{
goto again1;
}
if (retval != frm_len && cmd == C_SET_PWR)
{
rig_debug(RIG_DEBUG_TRACE, "%s: removing 0xfe power up echo, len=%d", __func__,
@ -289,6 +295,7 @@ read_another_frame:
* FIXME: handle padding/collisions
* ACKFRMLEN is the smallest frame we can expect from the rig
*/
again2:
buf[0] = 0;
frm_len = read_icom_frame(rp, buf, sizeof(buf));
@ -297,6 +304,11 @@ read_another_frame:
priv->serial_USB_echo_off = 0;
}
if (buf[1] == 0x00) // then it's a transceive frame so ignore it
{
goto again2;
}
#if 0
// this was causing rigctld to fail on IC706 and WSJT-X