From bd1fcbe025bc2e88c08cf26d2b6a6faa8c718f95 Mon Sep 17 00:00:00 2001 From: Mike Black W9MDB Date: Fri, 28 Jul 2023 17:32:23 -0500 Subject: [PATCH] Adjust icom power up to use the mininum number of 0xfe's needed for the baud rate --- rigs/icom/icom.c | 25 +++++++++++++++++++++++-- rigs/icom/icom.h | 2 +- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/rigs/icom/icom.c b/rigs/icom/icom.c index 33b361cc3..d3af1f0a1 100644 --- a/rigs/icom/icom.c +++ b/rigs/icom/icom.c @@ -8080,8 +8080,8 @@ int icom_set_powerstat(RIG *rig, powerstat_t status) unsigned char ackbuf[200]; int ack_len = sizeof(ackbuf), retval = RIG_OK, echo_status; int pwr_sc; - // so we'll do up to 175 for 115,200 - int fe_max = 175; + // so we'll do up to 150 for 115,200 + int fe_max = 150; unsigned char fe_buf[fe_max]; // for FE's to power up int i; int retry, retry_save; @@ -8105,6 +8105,27 @@ int icom_set_powerstat(RIG *rig, powerstat_t status) case RIG_POWER_ON: // ic7300 manual says ~150 for 115,200 // we'll just send a few more to be sure for all speeds + switch(rs->rigport.parm.serial.rate) + { + case 4800: + fe_max = 7; + break; + case 9600: + fe_max = 13; + break; + case 19200: + fe_max = 25; + break; + case 38400: + fe_max = 50; + break; + case 57600: + fe_max = 75; + break; + case 115200: + default: + fe_max = 150; + } memset(fe_buf, 0xfe, fe_max); // sending more than enough 0xfe's to wake up the rs232 write_block(&rs->rigport, fe_buf, fe_max); diff --git a/rigs/icom/icom.h b/rigs/icom/icom.h index 163b7754e..afd52e2b2 100644 --- a/rigs/icom/icom.h +++ b/rigs/icom/icom.h @@ -35,7 +35,7 @@ #include #endif -#define BACKEND_VER "20230724" +#define BACKEND_VER "20230728" #define ICOM_IS_ID31 rig_is_model(rig, RIG_MODEL_ID31) #define ICOM_IS_ID51 rig_is_model(rig, RIG_MODEL_ID51)