kopia lustrzana https://github.com/Hamlib/Hamlib
Add FT847UNI for early serial number units that are one-way comm
rodzic
3b707f57fb
commit
040bb2afea
1
NEWS
1
NEWS
|
@ -13,6 +13,7 @@ Version 4.0
|
||||||
* New rotator backend: iOptron. Bob, KD8CGH
|
* New rotator backend: iOptron. Bob, KD8CGH
|
||||||
* New model: Icom IC-R8600. Ekki, DF4OR
|
* New model: Icom IC-R8600. Ekki, DF4OR
|
||||||
* New utility: rigctlcom. Mike, W9MDB
|
* New utility: rigctlcom. Mike, W9MDB
|
||||||
|
* New model: FT847UNI for unidirectional early serial numbers. Mike, W9MDB
|
||||||
|
|
||||||
Version 3.3
|
Version 3.3
|
||||||
2018-08-12
|
2018-08-12
|
||||||
|
|
|
@ -106,6 +106,7 @@
|
||||||
#define RIG_MODEL_FT991 RIG_MAKE_MODEL(RIG_YAESU, 35)
|
#define RIG_MODEL_FT991 RIG_MAKE_MODEL(RIG_YAESU, 35)
|
||||||
#define RIG_MODEL_FT891 RIG_MAKE_MODEL(RIG_YAESU, 36)
|
#define RIG_MODEL_FT891 RIG_MAKE_MODEL(RIG_YAESU, 36)
|
||||||
#define RIG_MODEL_FTDX3000 RIG_MAKE_MODEL(RIG_YAESU, 37)
|
#define RIG_MODEL_FTDX3000 RIG_MAKE_MODEL(RIG_YAESU, 37)
|
||||||
|
#define RIG_MODEL_FT847UNI RIG_MAKE_MODEL(RIG_YAESU, 38)
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
229
yaesu/ft847.c
229
yaesu/ft847.c
|
@ -350,6 +350,156 @@ const struct rig_caps ft847_caps = {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ft847uni rigs capabilities.
|
||||||
|
* Notice that some rigs share the same functions.
|
||||||
|
* Also this struct is READONLY!
|
||||||
|
*/
|
||||||
|
|
||||||
|
const struct rig_caps ft847uni_caps = {
|
||||||
|
.rig_model = RIG_MODEL_FT847UNI,
|
||||||
|
.model_name = "FT-847UNI",
|
||||||
|
.mfg_name = "Yaesu",
|
||||||
|
.version = "0.1b",
|
||||||
|
.copyright = "LGPL",
|
||||||
|
.status = RIG_STATUS_BETA,
|
||||||
|
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||||
|
.ptt_type = RIG_PTT_RIG,
|
||||||
|
.dcd_type = RIG_DCD_RIG,
|
||||||
|
.port_type = RIG_PORT_SERIAL,
|
||||||
|
.serial_rate_min = 4800,
|
||||||
|
.serial_rate_max = 57600,
|
||||||
|
.serial_data_bits = 8,
|
||||||
|
.serial_stop_bits = 2,
|
||||||
|
.serial_parity = RIG_PARITY_NONE,
|
||||||
|
.serial_handshake = RIG_HANDSHAKE_NONE,
|
||||||
|
.write_delay = FT847_WRITE_DELAY,
|
||||||
|
.post_write_delay = FT847_POST_WRITE_DELAY,
|
||||||
|
.timeout = 1000,
|
||||||
|
.retry = 0,
|
||||||
|
|
||||||
|
.has_get_func = RIG_FUNC_NONE,
|
||||||
|
.has_set_func = FT847_FUNC_ALL,
|
||||||
|
.has_get_level = FT847_LEVEL_ALL,
|
||||||
|
.has_set_level = RIG_LEVEL_NONE,
|
||||||
|
.has_get_parm = RIG_PARM_NONE,
|
||||||
|
.has_set_parm = RIG_PARM_NONE,
|
||||||
|
.level_gran = {}, /* granularity */
|
||||||
|
.parm_gran = {},
|
||||||
|
.ctcss_list = ft847_ctcss_list,
|
||||||
|
.dcs_list = common_dcs_list,
|
||||||
|
.preamp = { RIG_DBLST_END, }, /* no preamp/att in CAT */
|
||||||
|
.attenuator = { RIG_DBLST_END, },
|
||||||
|
.max_rit = Hz(0),
|
||||||
|
.max_xit = Hz(0),
|
||||||
|
.max_ifshift = Hz(0),
|
||||||
|
.targetable_vfo = RIG_TARGETABLE_FREQ|RIG_TARGETABLE_MODE|RIG_TARGETABLE_TONE|RIG_TARGETABLE_FUNC,
|
||||||
|
.transceive = RIG_TRN_OFF,
|
||||||
|
.bank_qty = 0,
|
||||||
|
.chan_desc_sz = 0,
|
||||||
|
.str_cal = FT847_STR_CAL,
|
||||||
|
|
||||||
|
.chan_list = { RIG_CHAN_END, }, /* FIXME: memory chan list: 78, but only in clonable mode? */
|
||||||
|
|
||||||
|
.rx_range_list1 = {
|
||||||
|
{kHz(100),MHz(30),FT847_ALL_RX_MODES,-1,-1}, /* rx range begin */
|
||||||
|
{MHz(36),MHz(76),FT847_ALL_RX_MODES,-1,-1},
|
||||||
|
{MHz(108),MHz(174),FT847_ALL_RX_MODES,-1,-1},
|
||||||
|
{MHz(420),MHz(512),FT847_ALL_RX_MODES,-1,-1},
|
||||||
|
|
||||||
|
RIG_FRNG_END, }, /* rx range end */
|
||||||
|
|
||||||
|
.tx_range_list1 = {
|
||||||
|
FRQ_RNG_HF(1,FT847_OTHER_TX_MODES, W(5),W(100),FT847_VFOS,FT847_ANTS),
|
||||||
|
FRQ_RNG_HF(1,FT847_AM_TX_MODES, W(1),W(25),FT847_VFOS,FT847_ANTS),
|
||||||
|
|
||||||
|
FRQ_RNG_6m(2,FT847_OTHER_TX_MODES, W(5),W(100),FT847_VFOS,FT847_ANTS),
|
||||||
|
FRQ_RNG_6m(2,FT847_AM_TX_MODES, W(1),W(25),FT847_VFOS,FT847_ANTS),
|
||||||
|
|
||||||
|
FRQ_RNG_2m(2,FT847_OTHER_TX_MODES, W(1),W(50),FT847_VFOS,FT847_ANTS),
|
||||||
|
FRQ_RNG_2m(2,FT847_AM_TX_MODES, W(1),W(12.5),FT847_VFOS,FT847_ANTS),
|
||||||
|
|
||||||
|
FRQ_RNG_70cm(2,FT847_OTHER_TX_MODES, W(1),W(50),FT847_VFOS,FT847_ANTS),
|
||||||
|
FRQ_RNG_70cm(2,FT847_AM_TX_MODES, W(1),W(12.5),FT847_VFOS,FT847_ANTS),
|
||||||
|
|
||||||
|
RIG_FRNG_END, }, /* tx range end */
|
||||||
|
|
||||||
|
.rx_range_list2 =
|
||||||
|
{ {kHz(100),MHz(30),FT847_ALL_RX_MODES,-1,-1}, /* rx range begin */
|
||||||
|
{MHz(36),MHz(76),FT847_ALL_RX_MODES,-1,-1},
|
||||||
|
{MHz(108),MHz(174),FT847_ALL_RX_MODES,-1,-1},
|
||||||
|
{MHz(420),MHz(512),FT847_ALL_RX_MODES,-1,-1},
|
||||||
|
|
||||||
|
RIG_FRNG_END, }, /* rx range end */
|
||||||
|
|
||||||
|
.tx_range_list2 =
|
||||||
|
{
|
||||||
|
FRQ_RNG_HF(2,FT847_OTHER_TX_MODES, W(5),W(100),FT847_VFOS,FT847_ANTS),
|
||||||
|
FRQ_RNG_HF(2,FT847_AM_TX_MODES, W(1),W(25),FT847_VFOS,FT847_ANTS),
|
||||||
|
|
||||||
|
FRQ_RNG_6m(2,FT847_OTHER_TX_MODES, W(5),W(100),FT847_VFOS,FT847_ANTS),
|
||||||
|
FRQ_RNG_6m(2,FT847_AM_TX_MODES, W(1),W(25),FT847_VFOS,FT847_ANTS),
|
||||||
|
|
||||||
|
FRQ_RNG_2m(2,FT847_OTHER_TX_MODES, W(1),W(50),FT847_VFOS,FT847_ANTS),
|
||||||
|
FRQ_RNG_2m(2,FT847_AM_TX_MODES, W(1),W(12.5),FT847_VFOS,FT847_ANTS),
|
||||||
|
|
||||||
|
FRQ_RNG_70cm(2,FT847_OTHER_TX_MODES, W(1),W(50),FT847_VFOS,FT847_ANTS),
|
||||||
|
FRQ_RNG_70cm(2,FT847_AM_TX_MODES, W(1),W(12.5),FT847_VFOS,FT847_ANTS),
|
||||||
|
|
||||||
|
RIG_FRNG_END, },
|
||||||
|
|
||||||
|
.tuning_steps = { {FT847_SSB_CW_RX_MODES,1}, /* normal */
|
||||||
|
{FT847_SSB_CW_RX_MODES,10}, /* fast */
|
||||||
|
{FT847_SSB_CW_RX_MODES,100}, /* faster */
|
||||||
|
|
||||||
|
|
||||||
|
{FT847_AM_FM_RX_MODES,10}, /* normal */
|
||||||
|
{FT847_AM_FM_RX_MODES,100}, /* fast */
|
||||||
|
|
||||||
|
RIG_TS_END,
|
||||||
|
},
|
||||||
|
/* mode/filter list, .remember = order matters! */
|
||||||
|
.filters = {
|
||||||
|
{RIG_MODE_SSB|RIG_MODE_CW|RIG_MODE_CWR, kHz(2.2)},
|
||||||
|
{RIG_MODE_CW|RIG_MODE_CWR, Hz(500)},
|
||||||
|
{RIG_MODE_AM, kHz(9)},
|
||||||
|
{RIG_MODE_AM, kHz(2.2)},
|
||||||
|
{RIG_MODE_FM, kHz(15)},
|
||||||
|
{RIG_MODE_FM, kHz(9)},
|
||||||
|
RIG_FLT_END,
|
||||||
|
},
|
||||||
|
|
||||||
|
.priv = NULL,
|
||||||
|
.rig_init = ft847_init,
|
||||||
|
.rig_cleanup = ft847_cleanup,
|
||||||
|
.rig_open = ft847_open,
|
||||||
|
.rig_close = ft847_close,
|
||||||
|
|
||||||
|
.set_freq = ft847_set_freq, /* set freq */
|
||||||
|
.get_freq = ft847_get_freq, /* get freq */
|
||||||
|
.set_mode = ft847_set_mode, /* set mode */
|
||||||
|
.get_mode = ft847_get_mode, /* get mode */
|
||||||
|
.set_split_vfo = ft847_set_split_vfo,
|
||||||
|
.get_split_vfo = ft847_get_split_vfo,
|
||||||
|
.set_split_freq = ft847_set_split_freq,
|
||||||
|
.get_split_freq = ft847_get_split_freq,
|
||||||
|
.set_split_mode = ft847_set_split_mode,
|
||||||
|
.get_split_mode = ft847_get_split_mode,
|
||||||
|
.set_ptt = ft847_set_ptt, /* set ptt */
|
||||||
|
.get_ptt = ft847_get_ptt, /* get ptt */
|
||||||
|
.get_dcd = ft847_get_dcd, /* get dcd */
|
||||||
|
.get_level = ft847_get_level, /* get level */
|
||||||
|
|
||||||
|
.set_func = ft847_set_func,
|
||||||
|
.set_ctcss_tone = ft847_set_ctcss_tone,
|
||||||
|
.set_ctcss_sql = ft847_set_ctcss_sql,
|
||||||
|
.set_dcs_sql = ft847_set_dcs_sql,
|
||||||
|
.set_rptr_shift = ft847_set_rptr_shift,
|
||||||
|
.set_rptr_offs = ft847_set_rptr_offs,
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Function definitions below
|
* Function definitions below
|
||||||
*/
|
*/
|
||||||
|
@ -377,6 +527,13 @@ int ft847_init(RIG *rig) {
|
||||||
p->sat_mode = RIG_SPLIT_OFF;
|
p->sat_mode = RIG_SPLIT_OFF;
|
||||||
rig->state.priv = (void*)p;
|
rig->state.priv = (void*)p;
|
||||||
|
|
||||||
|
/* for early FT-847's we have our own memory items due to one way comm*/
|
||||||
|
/* until these are set we won't know what the values are */
|
||||||
|
p->freqA = 1; /* 1Hz default */
|
||||||
|
p->freqB = 1; /* 1Hz default */
|
||||||
|
p->mode = RIG_MODE_USB; /* mode USB by default to avoid users not setting mode */
|
||||||
|
p->width = 1; /* 1Hz default */
|
||||||
|
|
||||||
return RIG_OK;
|
return RIG_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -518,7 +675,19 @@ int ft847_set_freq(RIG *rig, vfo_t vfo, freq_t freq) {
|
||||||
|
|
||||||
to_bcd_be(p_cmd,freq/10,8); /* store bcd format in in p_cmd */
|
to_bcd_be(p_cmd,freq/10,8); /* store bcd format in in p_cmd */
|
||||||
|
|
||||||
rig_debug(RIG_DEBUG_VERBOSE,"ft847: requested freq after conversion = %"PRIll" Hz \n", from_bcd_be(p_cmd,8)* 10 );
|
rig_debug(RIG_DEBUG_VERBOSE,"%s: requested freq after conversion = %"PRIll" Hz \n", __func__, from_bcd_be(p_cmd,8)* 10 );
|
||||||
|
|
||||||
|
if (rig->caps->rig_model == RIG_MODEL_FT847UNI) {
|
||||||
|
struct ft847_priv_data *priv = (struct ft847_priv_data*)rig->state.priv;
|
||||||
|
if (vfo == RIG_VFO_MAIN) {
|
||||||
|
priv->freqA = freq;
|
||||||
|
rig_debug(RIG_DEBUG_TRACE,"%s: freqA=%"PRIfreq"\n", __func__, priv->freqA);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
priv->freqB = freq;
|
||||||
|
rig_debug(RIG_DEBUG_TRACE,"%s: freqB=%"PRIfreq"\n", __func__, priv->freqB);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return write_block(&rig_s->rigport, (char*)p_cmd, YAESU_CMD_LENGTH);
|
return write_block(&rig_s->rigport, (char*)p_cmd, YAESU_CMD_LENGTH);
|
||||||
}
|
}
|
||||||
|
@ -541,10 +710,25 @@ static int get_freq_and_mode(RIG *rig, vfo_t vfo, freq_t *freq, rmode_t *mode,
|
||||||
unsigned char cmd_index; /* index of sequence to send */
|
unsigned char cmd_index; /* index of sequence to send */
|
||||||
unsigned char data[8];
|
unsigned char data[8];
|
||||||
int n;
|
int n;
|
||||||
|
struct ft847_priv_data *priv = (struct ft847_priv_data*)rig->state.priv;
|
||||||
|
|
||||||
rig_debug(RIG_DEBUG_VERBOSE,"ft847: %s vfo =%s \n",
|
rig_debug(RIG_DEBUG_VERBOSE,"%s: vfo =%s \n",
|
||||||
__func__, rig_strvfo(vfo));
|
__func__, rig_strvfo(vfo));
|
||||||
|
|
||||||
|
if (rig->caps->rig_model == RIG_MODEL_FT847UNI) {
|
||||||
|
if (vfo == RIG_VFO_MAIN) {
|
||||||
|
*freq = priv->freqA;
|
||||||
|
rig_debug(RIG_DEBUG_TRACE,"%s: freqA=%"PRIfreq"\n", __func__, priv->freqA);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
*freq = priv->freqB;
|
||||||
|
rig_debug(RIG_DEBUG_TRACE,"%s: freqB=%"PRIfreq"\n", __func__, priv->freqB);
|
||||||
|
}
|
||||||
|
*mode = priv->mode;
|
||||||
|
*width = priv->width;
|
||||||
|
return RIG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
cmd_index = FT_847_NATIVE_CAT_GET_FREQ_MODE_STATUS_MAIN;
|
cmd_index = FT_847_NATIVE_CAT_GET_FREQ_MODE_STATUS_MAIN;
|
||||||
|
|
||||||
memcpy(p_cmd,&ncmd[cmd_index].nseq,YAESU_CMD_LENGTH);
|
memcpy(p_cmd,&ncmd[cmd_index].nseq,YAESU_CMD_LENGTH);
|
||||||
|
@ -635,6 +819,12 @@ int ft847_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) {
|
||||||
|
|
||||||
rig_debug(RIG_DEBUG_VERBOSE,"ft847: generic mode = %x \n", mode);
|
rig_debug(RIG_DEBUG_VERBOSE,"ft847: generic mode = %x \n", mode);
|
||||||
|
|
||||||
|
if (rig->caps->rig_model == RIG_MODEL_FT847UNI) {
|
||||||
|
struct ft847_priv_data *priv = (struct ft847_priv_data*)rig->state.priv;
|
||||||
|
priv->mode = mode;
|
||||||
|
priv->width = width;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
switch(mode) {
|
switch(mode) {
|
||||||
case RIG_MODE_AM:
|
case RIG_MODE_AM:
|
||||||
|
@ -690,6 +880,9 @@ int ft847_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) {
|
||||||
} else {
|
} else {
|
||||||
if (width != RIG_PASSBAND_NORMAL &&
|
if (width != RIG_PASSBAND_NORMAL &&
|
||||||
width != rig_passband_normal(rig, mode)) {
|
width != rig_passband_normal(rig, mode)) {
|
||||||
|
rig_debug(RIG_DEBUG_ERR,"%s: unsupported mode/width: %s/%d, narrow: %d\n",
|
||||||
|
__FUNCTION__, rig_strrmode(mode), width,
|
||||||
|
rig_passband_narrow(rig, mode));
|
||||||
return -RIG_EINVAL; /* sorry, wrong MODE/WIDTH combo */
|
return -RIG_EINVAL; /* sorry, wrong MODE/WIDTH combo */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -784,6 +977,11 @@ int ft847_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt) {
|
||||||
|
|
||||||
rig_debug(RIG_DEBUG_VERBOSE,"ft847:ft847_set_ptt called \n");
|
rig_debug(RIG_DEBUG_VERBOSE,"ft847:ft847_set_ptt called \n");
|
||||||
|
|
||||||
|
if (rig->caps->rig_model == RIG_MODEL_FT847UNI) {
|
||||||
|
struct ft847_priv_data *priv = (struct ft847_priv_data*)rig->state.priv;
|
||||||
|
priv->ptt = ptt;
|
||||||
|
}
|
||||||
|
|
||||||
switch(ptt) {
|
switch(ptt) {
|
||||||
case RIG_PTT_ON:
|
case RIG_PTT_ON:
|
||||||
cmd_index = FT_847_NATIVE_CAT_PTT_ON;
|
cmd_index = FT_847_NATIVE_CAT_PTT_ON;
|
||||||
|
@ -810,6 +1008,9 @@ static int ft847_get_status(RIG *rig, int status_ci)
|
||||||
int len;
|
int len;
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
|
if (rig->caps->rig_model == RIG_MODEL_FT847UNI)
|
||||||
|
return -RIG_ENIMPL;
|
||||||
|
|
||||||
switch (status_ci) {
|
switch (status_ci) {
|
||||||
case FT_847_NATIVE_CAT_GET_RX_STATUS:
|
case FT_847_NATIVE_CAT_GET_RX_STATUS:
|
||||||
data = &p->rx_status;
|
data = &p->rx_status;
|
||||||
|
@ -845,6 +1046,12 @@ int ft847_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt) {
|
||||||
struct ft847_priv_data *p = (struct ft847_priv_data *) rig->state.priv;
|
struct ft847_priv_data *p = (struct ft847_priv_data *) rig->state.priv;
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
|
if (rig->caps->rig_model == RIG_MODEL_FT847UNI) {
|
||||||
|
struct ft847_priv_data *priv = (struct ft847_priv_data*)rig->state.priv;
|
||||||
|
*ptt = priv->ptt;
|
||||||
|
return RIG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
n = ft847_get_status(rig, FT_847_NATIVE_CAT_GET_TX_STATUS);
|
n = ft847_get_status(rig, FT_847_NATIVE_CAT_GET_TX_STATUS);
|
||||||
if (n < 0)
|
if (n < 0)
|
||||||
return n;
|
return n;
|
||||||
|
@ -868,6 +1075,8 @@ int ft847_get_dcd(RIG *rig, vfo_t vfo, dcd_t *dcd) {
|
||||||
struct ft847_priv_data *p = (struct ft847_priv_data *) rig->state.priv;
|
struct ft847_priv_data *p = (struct ft847_priv_data *) rig->state.priv;
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
|
if (rig->caps->rig_model == RIG_MODEL_FT847UNI)
|
||||||
|
return -RIG_ENIMPL;
|
||||||
|
|
||||||
n = ft847_get_status(rig, FT_847_NATIVE_CAT_GET_RX_STATUS);
|
n = ft847_get_status(rig, FT_847_NATIVE_CAT_GET_RX_STATUS);
|
||||||
if (n < 0)
|
if (n < 0)
|
||||||
|
@ -890,6 +1099,8 @@ static int ft847_get_rawstr_level(RIG *rig, value_t *val)
|
||||||
struct ft847_priv_data *p = (struct ft847_priv_data *) rig->state.priv;
|
struct ft847_priv_data *p = (struct ft847_priv_data *) rig->state.priv;
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
|
if (rig->caps->rig_model == RIG_MODEL_FT847UNI)
|
||||||
|
return -RIG_ENIMPL;
|
||||||
|
|
||||||
n = ft847_get_status(rig, FT_847_NATIVE_CAT_GET_RX_STATUS);
|
n = ft847_get_status(rig, FT_847_NATIVE_CAT_GET_RX_STATUS);
|
||||||
if (n < 0)
|
if (n < 0)
|
||||||
|
@ -910,6 +1121,9 @@ static int ft847_get_smeter_level(RIG *rig, value_t *val)
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
|
if (rig->caps->rig_model == RIG_MODEL_FT847UNI)
|
||||||
|
return -RIG_ENIMPL;
|
||||||
|
|
||||||
n = ft847_get_rawstr_level(rig, val);
|
n = ft847_get_rawstr_level(rig, val);
|
||||||
if (n < 0)
|
if (n < 0)
|
||||||
return n;
|
return n;
|
||||||
|
@ -941,6 +1155,9 @@ static int ft847_get_alc_level(RIG *rig, value_t *val)
|
||||||
struct ft847_priv_data *p = (struct ft847_priv_data *) rig->state.priv;
|
struct ft847_priv_data *p = (struct ft847_priv_data *) rig->state.priv;
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
|
if (rig->caps->rig_model == RIG_MODEL_FT847UNI)
|
||||||
|
return -RIG_ENIMPL;
|
||||||
|
|
||||||
n = ft847_get_status(rig, FT_847_NATIVE_CAT_GET_TX_STATUS);
|
n = ft847_get_status(rig, FT_847_NATIVE_CAT_GET_TX_STATUS);
|
||||||
if (n < 0)
|
if (n < 0)
|
||||||
return n;
|
return n;
|
||||||
|
@ -961,6 +1178,10 @@ static int ft847_get_alc_level(RIG *rig, value_t *val)
|
||||||
*/
|
*/
|
||||||
int ft847_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t * val)
|
int ft847_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t * val)
|
||||||
{
|
{
|
||||||
|
if (rig->caps->rig_model == RIG_MODEL_FT847UNI) {
|
||||||
|
return -RIG_ENIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
if (vfo != RIG_VFO_CURR)
|
if (vfo != RIG_VFO_CURR)
|
||||||
return -RIG_ENTARGET;
|
return -RIG_ENTARGET;
|
||||||
|
|
||||||
|
@ -1099,6 +1320,10 @@ int ft847_set_rptr_offs (RIG *rig, vfo_t vfo, shortfreq_t rptr_offs)
|
||||||
{
|
{
|
||||||
unsigned char p_cmd[YAESU_CMD_LENGTH]; /* sequence to send */
|
unsigned char p_cmd[YAESU_CMD_LENGTH]; /* sequence to send */
|
||||||
|
|
||||||
|
if (rig->caps->rig_model == RIG_MODEL_FT847UNI) {
|
||||||
|
return -RIG_ENIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
if (vfo != RIG_VFO_CURR)
|
if (vfo != RIG_VFO_CURR)
|
||||||
return -RIG_ENTARGET;
|
return -RIG_ENTARGET;
|
||||||
|
|
||||||
|
|
|
@ -154,6 +154,12 @@ struct ft847_priv_data {
|
||||||
|
|
||||||
unsigned char rx_status; /* tx returned data */
|
unsigned char rx_status; /* tx returned data */
|
||||||
unsigned char tx_status; /* rx returned data */
|
unsigned char tx_status; /* rx returned data */
|
||||||
|
/* for early ft847's we keep our own memory items */
|
||||||
|
/* Early rigs are one-way com to the rig */
|
||||||
|
freq_t freqA,freqB;
|
||||||
|
mode_t mode;
|
||||||
|
pbwidth_t width;
|
||||||
|
ptt_t ptt;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -107,6 +107,7 @@ DECLARE_INITRIG_BACKEND(yaesu)
|
||||||
rig_register(&ft1200_caps);
|
rig_register(&ft1200_caps);
|
||||||
rig_register(&ft991_caps);
|
rig_register(&ft991_caps);
|
||||||
rig_register(&ft891_caps);
|
rig_register(&ft891_caps);
|
||||||
|
rig_register(&ft847uni_caps);
|
||||||
|
|
||||||
return RIG_OK;
|
return RIG_OK;
|
||||||
}
|
}
|
||||||
|
|
|
@ -78,5 +78,6 @@ extern const struct rig_caps frg9600_caps;
|
||||||
extern const struct rig_caps vr5000_caps;
|
extern const struct rig_caps vr5000_caps;
|
||||||
extern const struct rig_caps vx1700_caps;
|
extern const struct rig_caps vx1700_caps;
|
||||||
extern const struct rig_caps ft1200_caps;
|
extern const struct rig_caps ft1200_caps;
|
||||||
|
extern const struct rig_caps ft847uni_caps;
|
||||||
|
|
||||||
#endif /* _YAESU_H */
|
#endif /* _YAESU_H */
|
||||||
|
|
Ładowanie…
Reference in New Issue