From 75408098a4af8a9645413bb7873db8db8341e24e Mon Sep 17 00:00:00 2001 From: Mike Black W9MDB Date: Sun, 10 Oct 2021 16:27:58 -0500 Subject: [PATCH] Change Icom frame.c to only look for 0xfd for end of frame. Was not seeing error frames] https://github.com/Hamlib/Hamlib/issues/818 --- rigs/icom/frame.c | 13 ++++++++----- rigs/icom/icom.h | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/rigs/icom/frame.c b/rigs/icom/frame.c index 79c67c7ca..bf525d776 100644 --- a/rigs/icom/frame.c +++ b/rigs/icom/frame.c @@ -439,8 +439,8 @@ int icom_transaction(RIG *rig, int cmd, int subcmd, } /* used in read_icom_frame as end of block */ -static const char icom_block_end[2] = {FI, COL}; -#define icom_block_end_length 2 +static const char icom_block_end[1] = {COL}; +#define icom_block_end_length 1 /* * read_icom_frame @@ -469,7 +469,7 @@ int read_icom_frame(hamlib_port_t *p, unsigned char rxbuffer[], int i = read_string(p, rx_ptr, MAXFRAMELEN - read, icom_block_end, icom_block_end_length); - if (i < 0) /* die on errors */ + if (i < 0 && i != RIG_BUSBUSY) /* die on errors */ { RETURNFUNC(i); } @@ -483,8 +483,11 @@ int read_icom_frame(hamlib_port_t *p, unsigned char rxbuffer[], } /* OK, we got something. add it in and continue */ - read += i; - rx_ptr += i; + if (i > 0) + { + read += i; + rx_ptr += i; + } } while ((read < rxbuffer_len) && (rxbuffer[read - 1] != FI) && (rxbuffer[read - 1] != COL)); diff --git a/rigs/icom/icom.h b/rigs/icom/icom.h index fe150d2a1..911ba5484 100644 --- a/rigs/icom/icom.h +++ b/rigs/icom/icom.h @@ -30,7 +30,7 @@ #include #endif -#define BACKEND_VER "20211005" +#define BACKEND_VER "20211010" #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)