kopia lustrzana https://github.com/Hamlib/Hamlib
Apply Linux C Style to ft757gx.c
rodzic
99cbb5b1ad
commit
49e2233f9f
163
yaesu/ft757gx.c
163
yaesu/ft757gx.c
|
@ -72,7 +72,8 @@ struct ft757_priv_data {
|
|||
#define TOK_FAKEFREQ TOKEN_BACKEND(1)
|
||||
|
||||
const struct confparams ft757gx_cfg_params[] = {
|
||||
{ TOK_FAKEFREQ, "fakefreq", "Fake get-freq", "Fake getting freq",
|
||||
{
|
||||
TOK_FAKEFREQ, "fakefreq", "Fake get-freq", "Fake getting freq",
|
||||
"0", RIG_CONF_CHECKBUTTON
|
||||
},
|
||||
{ RIG_CONF_END, NULL, }
|
||||
|
@ -126,34 +127,38 @@ const struct rig_caps ft757gx_caps = {
|
|||
|
||||
.tx_range_list1 = { RIG_FRNG_END, },
|
||||
|
||||
.rx_range_list2 = { { .start = kHz(500), .end = 29999990,
|
||||
.modes = FT757GX_ALL_RX_MODES,.low_power = -1,.high_power = -1},
|
||||
RIG_FRNG_END, }, /* rx range */
|
||||
.rx_range_list2 = { {
|
||||
.start = kHz(500), .end = 29999990,
|
||||
.modes = FT757GX_ALL_RX_MODES, .low_power = -1, .high_power = -1
|
||||
},
|
||||
RIG_FRNG_END,
|
||||
}, /* rx range */
|
||||
|
||||
.tx_range_list2 = { {kHz(1500),1999900,FT757GX_ALL_TX_MODES,.low_power = 5000,.high_power = 100000},
|
||||
.tx_range_list2 = { {kHz(1500), 1999900, FT757GX_ALL_TX_MODES, .low_power = 5000, .high_power = 100000},
|
||||
|
||||
{.start = kHz(3500),3999900,FT757GX_ALL_TX_MODES,5000,100000},
|
||||
{.start = kHz(3500), 3999900, FT757GX_ALL_TX_MODES, 5000, 100000},
|
||||
|
||||
{.start = kHz(7000),7499900,FT757GX_ALL_TX_MODES,5000,100000},
|
||||
{.start = kHz(7000), 7499900, FT757GX_ALL_TX_MODES, 5000, 100000},
|
||||
|
||||
{.start = MHz(10),10499900,FT757GX_ALL_TX_MODES,5000,100000},
|
||||
{.start = MHz(10), 10499900, FT757GX_ALL_TX_MODES, 5000, 100000},
|
||||
|
||||
{.start = MHz(14),14499900,FT757GX_ALL_TX_MODES,5000,100000},
|
||||
{.start = MHz(14), 14499900, FT757GX_ALL_TX_MODES, 5000, 100000},
|
||||
|
||||
{.start = MHz(18),18499900,FT757GX_ALL_TX_MODES,5000,100000},
|
||||
{.start = MHz(18), 18499900, FT757GX_ALL_TX_MODES, 5000, 100000},
|
||||
|
||||
{.start = MHz(21),21499900,FT757GX_ALL_TX_MODES,5000,100000},
|
||||
{.start = MHz(21), 21499900, FT757GX_ALL_TX_MODES, 5000, 100000},
|
||||
|
||||
{.start = kHz(24500),24999900,FT757GX_ALL_TX_MODES,5000,100000},
|
||||
{.start = kHz(24500), 24999900, FT757GX_ALL_TX_MODES, 5000, 100000},
|
||||
|
||||
{.start = MHz(28),29999900,FT757GX_ALL_TX_MODES,5000,100000},
|
||||
{.start = MHz(28), 29999900, FT757GX_ALL_TX_MODES, 5000, 100000},
|
||||
|
||||
RIG_FRNG_END, },
|
||||
RIG_FRNG_END,
|
||||
},
|
||||
|
||||
|
||||
.tuning_steps = {
|
||||
{FT757GX_ALL_RX_MODES,10},
|
||||
{FT757GX_ALL_RX_MODES,100},
|
||||
{FT757GX_ALL_RX_MODES, 10},
|
||||
{FT757GX_ALL_RX_MODES, 100},
|
||||
RIG_TS_END,
|
||||
},
|
||||
|
||||
|
@ -228,6 +233,7 @@ const struct rig_caps ft757gx2_caps = {
|
|||
.transceive = RIG_TRN_OFF,
|
||||
.bank_qty = 0,
|
||||
.chan_desc_sz = 0,
|
||||
|
||||
.chan_list = {
|
||||
{ 0, 9, RIG_MTYPE_MEM, FT757_MEM_CAP },
|
||||
RIG_CHAN_END
|
||||
|
@ -237,40 +243,47 @@ const struct rig_caps ft757gx2_caps = {
|
|||
|
||||
.tx_range_list1 = { RIG_FRNG_END, },
|
||||
|
||||
.rx_range_list2 = { { .start = kHz(150), .end = 29999990,
|
||||
.modes = FT757GX_ALL_RX_MODES,.low_power = -1,.high_power = -1},
|
||||
RIG_FRNG_END, }, /* rx range */
|
||||
.rx_range_list2 = { {
|
||||
.start = kHz(150),
|
||||
.end = 29999990,
|
||||
.modes = FT757GX_ALL_RX_MODES,
|
||||
.low_power = -1,
|
||||
.high_power = -1
|
||||
},
|
||||
RIG_FRNG_END,
|
||||
}, /* rx range */
|
||||
|
||||
/* FIXME: 10m is "less" and AM is 25W carrier */
|
||||
.tx_range_list2 = { {kHz(1500),1999900,FT757GX_ALL_TX_MODES,.low_power = 5000,.high_power = 100000},
|
||||
.tx_range_list2 = { {kHz(1500), 1999900, FT757GX_ALL_TX_MODES, .low_power = 5000, .high_power = 100000},
|
||||
|
||||
{.start = kHz(3500),3999900,FT757GX_ALL_TX_MODES,5000,100000},
|
||||
{.start = kHz(3500), 3999900, FT757GX_ALL_TX_MODES, 5000, 100000},
|
||||
|
||||
{.start = kHz(7000),7499900,FT757GX_ALL_TX_MODES,5000,100000},
|
||||
{.start = kHz(7000), 7499900, FT757GX_ALL_TX_MODES, 5000, 100000},
|
||||
|
||||
{.start = MHz(10),10499900,FT757GX_ALL_TX_MODES,5000,100000},
|
||||
{.start = MHz(10), 10499900, FT757GX_ALL_TX_MODES, 5000, 100000},
|
||||
|
||||
{.start = MHz(14),14499900,FT757GX_ALL_TX_MODES,5000,100000},
|
||||
{.start = MHz(14), 14499900, FT757GX_ALL_TX_MODES, 5000, 100000},
|
||||
|
||||
{.start = MHz(18),18499900,FT757GX_ALL_TX_MODES,5000,100000},
|
||||
{.start = MHz(18), 18499900, FT757GX_ALL_TX_MODES, 5000, 100000},
|
||||
|
||||
{.start = MHz(21),21499900,FT757GX_ALL_TX_MODES,5000,100000},
|
||||
{.start = MHz(21), 21499900, FT757GX_ALL_TX_MODES, 5000, 100000},
|
||||
|
||||
{.start = kHz(24500),24999900,FT757GX_ALL_TX_MODES,5000,100000},
|
||||
{.start = kHz(24500), 24999900, FT757GX_ALL_TX_MODES, 5000, 100000},
|
||||
|
||||
{.start = MHz(28),29999900,FT757GX_ALL_TX_MODES,5000,100000},
|
||||
{.start = MHz(28), 29999900, FT757GX_ALL_TX_MODES, 5000, 100000},
|
||||
|
||||
RIG_FRNG_END, },
|
||||
RIG_FRNG_END,
|
||||
},
|
||||
|
||||
|
||||
.tuning_steps = {
|
||||
{FT757GX_ALL_RX_MODES,10},
|
||||
{FT757GX_ALL_RX_MODES, 10},
|
||||
RIG_TS_END,
|
||||
},
|
||||
|
||||
/* mode/filter list, .remember = order matters! */
|
||||
.filters = {
|
||||
{RIG_MODE_SSB|RIG_MODE_CW, kHz(2.7)},
|
||||
{RIG_MODE_SSB | RIG_MODE_CW, kHz(2.7)},
|
||||
{RIG_MODE_CW, Hz(600)}, /* narrow */
|
||||
{RIG_MODE_AM, kHz(6)},
|
||||
{RIG_MODE_FM, kHz(15)},
|
||||
|
@ -312,9 +325,11 @@ int ft757_init(RIG *rig)
|
|||
if (!rig)
|
||||
return -RIG_EINVAL;
|
||||
|
||||
p = (struct ft757_priv_data * ) calloc(1, sizeof(struct ft757_priv_data));
|
||||
p = (struct ft757_priv_data *) calloc(1, sizeof(struct ft757_priv_data));
|
||||
|
||||
if (!p) /* whoops! memory shortage! */
|
||||
return -RIG_ENOMEM;
|
||||
|
||||
p->curfreq = 1e6;
|
||||
|
||||
/* TODO: read pacing from preferences */
|
||||
|
@ -339,6 +354,7 @@ int ft757_cleanup(RIG *rig)
|
|||
|
||||
if (rig->state.priv)
|
||||
free(rig->state.priv);
|
||||
|
||||
rig->state.priv = NULL;
|
||||
|
||||
return RIG_OK;
|
||||
|
@ -362,6 +378,7 @@ int ft757_open(RIG *rig)
|
|||
} else {
|
||||
/* read back the 75 status bytes from FT757GXII */
|
||||
retval = ft757_get_update_data(rig);
|
||||
|
||||
if (retval < 0) {
|
||||
memset(priv->update_data, 0, FT757GX_STATUS_UPDATE_DATA_LENGTH);
|
||||
return retval;
|
||||
|
@ -389,7 +406,7 @@ int ft757_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
return -RIG_EINVAL;
|
||||
|
||||
/* fill in first four bytes */
|
||||
to_bcd(cmd, freq/10, BCD_LEN);
|
||||
to_bcd(cmd, freq / 10, BCD_LEN);
|
||||
|
||||
priv->curfreq = freq;
|
||||
return write_block(&rig->state.rigport, (char *)cmd, YAESU_CMD_LENGTH);
|
||||
|
@ -421,10 +438,12 @@ int ft757_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
|||
int ft757gx_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
|
||||
{
|
||||
struct ft757_priv_data *priv = (struct ft757_priv_data *)rig->state.priv;
|
||||
|
||||
if (priv->fakefreq) { // only return last freq set when fakeit is turned on
|
||||
*freq = priv->curfreq;
|
||||
return RIG_OK;
|
||||
}
|
||||
|
||||
return RIG_ENAVAIL;
|
||||
}
|
||||
|
||||
|
@ -443,25 +462,29 @@ int ft757_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
|
|||
return -RIG_EINVAL;
|
||||
|
||||
retval = ft757_get_update_data(rig); /* get whole shebang from rig */
|
||||
|
||||
if (retval < 0)
|
||||
return retval;
|
||||
|
||||
/* grab freq (little endian format) and convert */
|
||||
switch(vfo) {
|
||||
switch (vfo) {
|
||||
case RIG_VFO_CURR:
|
||||
*freq = 10 * from_bcd(priv->update_data+STATUS_CURR_FREQ, BCD_LEN);
|
||||
*freq = 10 * from_bcd(priv->update_data + STATUS_CURR_FREQ, BCD_LEN);
|
||||
break;
|
||||
|
||||
case RIG_VFO_A:
|
||||
*freq = 10 * from_bcd(priv->update_data+STATUS_VFOA_FREQ, BCD_LEN);
|
||||
*freq = 10 * from_bcd(priv->update_data + STATUS_VFOA_FREQ, BCD_LEN);
|
||||
break;
|
||||
|
||||
case RIG_VFO_B:
|
||||
*freq = 10 * from_bcd(priv->update_data+STATUS_VFOB_FREQ, BCD_LEN);
|
||||
*freq = 10 * from_bcd(priv->update_data + STATUS_VFOB_FREQ, BCD_LEN);
|
||||
break;
|
||||
|
||||
default:
|
||||
return -RIG_EINVAL; /* sorry, wrong VFO */
|
||||
}
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE,"%s returning: Freq=%"PRIfreq"\n", __func__, *freq );
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s returning: Freq=%"PRIfreq"\n", __func__, *freq);
|
||||
return RIG_OK;
|
||||
}
|
||||
|
||||
|
@ -477,19 +500,23 @@ int ft757_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
return -RIG_EINVAL;
|
||||
|
||||
retval = ft757_get_update_data(rig); /* get whole shebang from rig */
|
||||
|
||||
if (retval < 0)
|
||||
return retval;
|
||||
|
||||
switch(vfo) {
|
||||
switch (vfo) {
|
||||
case RIG_VFO_CURR:
|
||||
retval = rig2mode(rig, priv->update_data[STATUS_CURR_MODE], mode, width);
|
||||
break;
|
||||
|
||||
case RIG_VFO_A:
|
||||
retval = rig2mode(rig, priv->update_data[STATUS_VFOA_MODE], mode, width);
|
||||
break;
|
||||
|
||||
case RIG_VFO_B:
|
||||
retval = rig2mode(rig, priv->update_data[STATUS_VFOB_MODE], mode, width);
|
||||
break;
|
||||
|
||||
default:
|
||||
return -RIG_EINVAL; /* sorry, wrong VFO */
|
||||
}
|
||||
|
@ -514,15 +541,18 @@ int ft757_set_vfo(RIG *rig, vfo_t vfo)
|
|||
if (!rig)
|
||||
return -RIG_EINVAL;
|
||||
|
||||
switch(vfo) {
|
||||
switch (vfo) {
|
||||
case RIG_VFO_CURR:
|
||||
return RIG_OK;
|
||||
|
||||
case RIG_VFO_A:
|
||||
cmd[3] = 0x00; /* VFO A */
|
||||
break;
|
||||
|
||||
case RIG_VFO_B:
|
||||
cmd[3] = 0x01; /* VFO B */
|
||||
break;
|
||||
|
||||
default:
|
||||
return -RIG_EINVAL; /* sorry, wrong VFO */
|
||||
}
|
||||
|
@ -544,13 +574,13 @@ int ft757_get_vfo(RIG *rig, vfo_t *vfo)
|
|||
return -RIG_EINVAL;
|
||||
|
||||
retval = ft757_get_update_data(rig); /* get whole shebang from rig */
|
||||
|
||||
if (retval < 0)
|
||||
return retval;
|
||||
|
||||
if (priv->update_data[0] & 0x10)
|
||||
return RIG_VFO_MEM;
|
||||
else
|
||||
if (priv->update_data[0] & 0x08)
|
||||
else if (priv->update_data[0] & 0x08)
|
||||
return RIG_VFO_B;
|
||||
else
|
||||
return RIG_VFO_A;
|
||||
|
@ -570,6 +600,7 @@ int ft757_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt)
|
|||
return -RIG_EINVAL;
|
||||
|
||||
retval = ft757_get_update_data(rig); /* get whole shebang from rig */
|
||||
|
||||
if (retval < 0)
|
||||
return retval;
|
||||
|
||||
|
@ -595,6 +626,7 @@ int ft757_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
|
||||
/* send READ STATUS(Meter only) cmd to rig */
|
||||
retval = write_block(&rig->state.rigport, (char *)cmd, YAESU_CMD_LENGTH);
|
||||
|
||||
if (retval < 0)
|
||||
return retval;
|
||||
|
||||
|
@ -602,11 +634,12 @@ int ft757_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
retval = read_block(&rig->state.rigport, (char *)cmd, 1);
|
||||
|
||||
if (retval != 1) {
|
||||
rig_debug(RIG_DEBUG_ERR,"%s: read meter failed %d.\n",
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: read meter failed %d.\n",
|
||||
__func__, retval);
|
||||
|
||||
return retval < 0 ? retval : -RIG_EIO;
|
||||
}
|
||||
|
||||
val->i = cmd[0];
|
||||
|
||||
return RIG_OK;
|
||||
|
@ -624,7 +657,7 @@ int ft757_get_update_data(RIG *rig)
|
|||
{
|
||||
unsigned char cmd[YAESU_CMD_LENGTH] = { 0x00, 0x00, 0x00, 0x00, 0x10};
|
||||
struct ft757_priv_data *priv = (struct ft757_priv_data *)rig->state.priv;
|
||||
int retval=0;
|
||||
int retval = 0;
|
||||
int nbtries ;
|
||||
/* Maximum number of attempts to ask/read the data. */
|
||||
int maxtries = rig->state.rigport.retry ;
|
||||
|
@ -634,12 +667,12 @@ int ft757_get_update_data(RIG *rig)
|
|||
|
||||
/* At least on one model, returns erraticaly a timeout. Increasing the timeout
|
||||
does not fix things. So we restart the read from scratch, it works most of times. */
|
||||
for( nbtries = 0 ; nbtries < maxtries ; nbtries++ )
|
||||
{
|
||||
for (nbtries = 0 ; nbtries < maxtries ; nbtries++) {
|
||||
serial_flush(&rig->state.rigport);
|
||||
|
||||
/* send READ STATUS cmd to rig */
|
||||
retval = write_block(&rig->state.rigport, (char *)cmd, YAESU_CMD_LENGTH);
|
||||
|
||||
if (retval < 0)
|
||||
return retval;
|
||||
|
||||
|
@ -647,19 +680,21 @@ int ft757_get_update_data(RIG *rig)
|
|||
retval = read_block(&rig->state.rigport,
|
||||
(char *)priv->update_data,
|
||||
FT757GX_STATUS_UPDATE_DATA_LENGTH);
|
||||
|
||||
if (retval == FT757GX_STATUS_UPDATE_DATA_LENGTH) {
|
||||
break ;
|
||||
}
|
||||
|
||||
rig_debug(RIG_DEBUG_ERR,
|
||||
"%s: read update_data failed, %d octets of %d read, retry %d out of %d\n",
|
||||
__func__, retval, FT757GX_STATUS_UPDATE_DATA_LENGTH,
|
||||
nbtries, maxtries);
|
||||
/* The delay is quadratic. */
|
||||
usleep(nbtries*nbtries*1000000);
|
||||
usleep(nbtries * nbtries * 1000000);
|
||||
}
|
||||
|
||||
if (retval != FT757GX_STATUS_UPDATE_DATA_LENGTH) {
|
||||
rig_debug(RIG_DEBUG_ERR,"%s: read update_data failed, %d octets of %d read.\n",
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: read update_data failed, %d octets of %d read.\n",
|
||||
__func__, retval, FT757GX_STATUS_UPDATE_DATA_LENGTH);
|
||||
|
||||
return retval < 0 ? retval : -RIG_EIO;
|
||||
|
@ -681,26 +716,32 @@ int mode2rig(RIG *rig, rmode_t mode, pbwidth_t width)
|
|||
/*
|
||||
* translate mode from generic to ft757 specific
|
||||
*/
|
||||
switch(mode) {
|
||||
switch (mode) {
|
||||
case RIG_MODE_AM:
|
||||
md = MODE_AM;
|
||||
break;
|
||||
|
||||
case RIG_MODE_USB:
|
||||
md = MODE_USB;
|
||||
break;
|
||||
|
||||
case RIG_MODE_LSB:
|
||||
md = MODE_LSB;
|
||||
break;
|
||||
|
||||
case RIG_MODE_FM:
|
||||
md = MODE_FM;
|
||||
break;
|
||||
|
||||
case RIG_MODE_CW:
|
||||
if (width == RIG_PASSBAND_NORMAL ||
|
||||
width >= rig_passband_normal(rig, mode))
|
||||
md = MODE_CWW;
|
||||
else
|
||||
md = MODE_CWN;
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
return -RIG_EINVAL; /* sorry, wrong MODE */
|
||||
}
|
||||
|
@ -719,26 +760,32 @@ int rig2mode(RIG *rig, int md, rmode_t *mode, pbwidth_t *width)
|
|||
/*
|
||||
* translate mode from ft757 specific to generic
|
||||
*/
|
||||
switch(md) {
|
||||
switch (md) {
|
||||
case MODE_AM:
|
||||
*mode = RIG_MODE_AM;
|
||||
break;
|
||||
|
||||
case MODE_USB:
|
||||
*mode = RIG_MODE_USB;
|
||||
break;
|
||||
|
||||
case MODE_LSB:
|
||||
*mode = RIG_MODE_LSB;
|
||||
break;
|
||||
|
||||
case MODE_FM:
|
||||
*mode = RIG_MODE_FM;
|
||||
break;
|
||||
|
||||
case MODE_CWW:
|
||||
case MODE_CWN:
|
||||
*mode = RIG_MODE_CW;
|
||||
break;
|
||||
|
||||
default:
|
||||
return -RIG_EINVAL; /* sorry, wrong MODE */
|
||||
}
|
||||
|
||||
if (md == MODE_CWN)
|
||||
*width = rig_passband_narrow(rig, *mode);
|
||||
else
|
||||
|
@ -759,17 +806,19 @@ int ft757gx_get_conf(RIG *rig, token_t token, char *val)
|
|||
rig_debug(RIG_DEBUG_VERBOSE, "%s called.\n", __func__);
|
||||
|
||||
rs = &rig->state;
|
||||
priv = (struct ft757_priv_data*)rs->priv;
|
||||
priv = (struct ft757_priv_data *)rs->priv;
|
||||
|
||||
|
||||
switch(token) {
|
||||
switch (token) {
|
||||
case TOK_FAKEFREQ:
|
||||
sprintf(val,"%d",priv->fakefreq);
|
||||
sprintf(val, "%d", priv->fakefreq);
|
||||
break;
|
||||
|
||||
default:
|
||||
val = NULL;
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
/*
|
||||
|
@ -784,18 +833,22 @@ int ft757gx_set_conf(RIG *rig, token_t token, const char *val)
|
|||
rig_debug(RIG_DEBUG_VERBOSE, "%s called. val=%s\n", __func__, val);
|
||||
|
||||
rs = &rig->state;
|
||||
priv = (struct ft757_priv_data*)rs->priv;
|
||||
priv = (struct ft757_priv_data *)rs->priv;
|
||||
|
||||
switch(token) {
|
||||
switch (token) {
|
||||
case TOK_FAKEFREQ:
|
||||
priv->fakefreq = 0; // should only be 0 or 1 -- default to 0
|
||||
|
||||
if (val[0] != '0')
|
||||
priv->fakefreq = 1;
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "fakefreq=%d\n", __func__, priv->fakefreq);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
|
Ładowanie…
Reference in New Issue