kopia lustrzana https://github.com/Hamlib/Hamlib
Change ft857 and ft897 to use ft815_read_ack and dynamic post_write_delay instead of static
This will support adjusting post_write_delay to hopefully fix a problem on older/slower Mac systems https://github.com/Hamlib/Hamlib/issues/330pull/345/head
rodzic
c70805902a
commit
3fbaeaf871
|
@ -496,6 +496,7 @@ int ft817_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
|
|||
while ((f1 == 0 || f1 != f2) && retries-- > 0)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: retries=%d\n", __func__, retries);
|
||||
|
||||
if ((n = ft817_get_status(rig, FT817_NATIVE_CAT_GET_FREQ_MODE_STATUS)) < 0)
|
||||
{
|
||||
return n;
|
||||
|
@ -794,12 +795,13 @@ int ft817_get_dcd(RIG *rig, vfo_t vfo, dcd_t *dcd)
|
|||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
static int ft817_read_ack(RIG *rig)
|
||||
int ft817_read_ack(RIG *rig)
|
||||
{
|
||||
#if (FT817_POST_WRITE_DELAY == 0)
|
||||
char dummy;
|
||||
int n;
|
||||
|
||||
if (rig->state.rigport.post_write_delay == 0)
|
||||
{
|
||||
if ((n = read_block(&rig->state.rigport, &dummy, 1)) < 0)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: error reading ack\n", __func__);
|
||||
|
@ -812,8 +814,7 @@ static int ft817_read_ack(RIG *rig)
|
|||
{
|
||||
return -RIG_ERJCTED;
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
|
|
@ -146,6 +146,7 @@ enum ft857_digi
|
|||
#define FT857_VFO_ALL (RIG_VFO_A|RIG_VFO_B)
|
||||
#define FT857_ANTS 0
|
||||
|
||||
extern int ft817_read_ack(RIG *rig);
|
||||
static int ft857_send_icmd(RIG *rig, int index, unsigned char *data);
|
||||
|
||||
const struct rig_caps ft857_caps =
|
||||
|
@ -153,7 +154,7 @@ const struct rig_caps ft857_caps =
|
|||
RIG_MODEL(RIG_MODEL_FT857),
|
||||
.model_name = "FT-857",
|
||||
.mfg_name = "Yaesu",
|
||||
.version = "20200323.0",
|
||||
.version = "20200628.0",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_STABLE,
|
||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||
|
@ -468,32 +469,6 @@ static int ft857_get_status(RIG *rig, int status)
|
|||
return RIG_OK;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
static int ft857_read_ack(RIG *rig)
|
||||
{
|
||||
#if (FT857_POST_WRITE_DELAY == 0)
|
||||
char dummy;
|
||||
int n;
|
||||
|
||||
if ((n = read_block(&rig->state.rigport, &dummy, 1)) < 0)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: error reading ack\n", __func__);
|
||||
return n;
|
||||
}
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: ack received (%d)\n", __func__, dummy);
|
||||
|
||||
if (dummy != 0)
|
||||
{
|
||||
return -RIG_ERJCTED;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* private helper function to send a private command sequence.
|
||||
* Must only be complete sequences.
|
||||
|
@ -509,7 +484,7 @@ static int ft857_send_cmd(RIG *rig, int index)
|
|||
}
|
||||
|
||||
write_block(&rig->state.rigport, (char *) p->pcs[index].nseq, YAESU_CMD_LENGTH);
|
||||
return ft857_read_ack(rig);
|
||||
return ft817_read_ack(rig);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -530,7 +505,7 @@ static int ft857_send_icmd(RIG *rig, int index, unsigned char *data)
|
|||
memcpy(cmd, data, YAESU_CMD_LENGTH - 1);
|
||||
|
||||
write_block(&rig->state.rigport, (char *) cmd, YAESU_CMD_LENGTH);
|
||||
return ft857_read_ack(rig);
|
||||
return ft817_read_ack(rig);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
|
|
@ -111,6 +111,7 @@ static int ft897_set_rptr_shift(RIG *rig, vfo_t vfo, rptr_shift_t rptr_shift);
|
|||
static int ft897_set_rptr_offs(RIG *rig, vfo_t vfo, shortfreq_t offs);
|
||||
static int ft897_set_rit(RIG *rig, vfo_t vfo, shortfreq_t rit);
|
||||
static int ft897_get_dcd(RIG *rig, vfo_t vfo, dcd_t *dcd);
|
||||
extern int ft817_read_ack(RIG *rig);
|
||||
// static int ft897_set_powerstat(RIG *rig, powerstat_t status);
|
||||
|
||||
/* Native ft897 cmd set prototypes. These are READ ONLY as each */
|
||||
|
@ -190,7 +191,7 @@ const struct rig_caps ft897_caps =
|
|||
RIG_MODEL(RIG_MODEL_FT897),
|
||||
.model_name = "FT-897",
|
||||
.mfg_name = "Yaesu",
|
||||
.version = "20200607.0",
|
||||
.version = "20200628.0",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_STABLE,
|
||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||
|
@ -791,32 +792,6 @@ int ft897_get_dcd(RIG *rig, vfo_t vfo, dcd_t *dcd)
|
|||
return RIG_OK;
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
static int ft897_read_ack(RIG *rig)
|
||||
{
|
||||
#if (FT897_POST_WRITE_DELAY == 0)
|
||||
char dummy;
|
||||
int n;
|
||||
|
||||
if ((n = read_block(&rig->state.rigport, &dummy, 1)) < 0)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: error reading ack\n", __func__);
|
||||
return n;
|
||||
}
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: ack received (%d)\n", __func__, dummy);
|
||||
|
||||
if (dummy != 0)
|
||||
{
|
||||
return -RIG_ERJCTED;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* private helper function to send a private command sequence.
|
||||
* Must only be complete sequences.
|
||||
|
@ -832,7 +807,7 @@ static int ft897_send_cmd(RIG *rig, int index)
|
|||
}
|
||||
|
||||
write_block(&rig->state.rigport, (char *) p->pcs[index].nseq, YAESU_CMD_LENGTH);
|
||||
return ft897_read_ack(rig);
|
||||
return ft817_read_ack(rig);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -853,7 +828,7 @@ static int ft897_send_icmd(RIG *rig, int index, unsigned char *data)
|
|||
memcpy(cmd, data, YAESU_CMD_LENGTH - 1);
|
||||
|
||||
write_block(&rig->state.rigport, (char *) cmd, YAESU_CMD_LENGTH);
|
||||
return ft897_read_ack(rig);
|
||||
return ft817_read_ack(rig);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
|
Ładowanie…
Reference in New Issue