Add icom get_vfo introduced on IC-9700

Add DD mode for IC-9700
Numerous IC-9700 updates
pull/97/head
Michael Black 2019-04-07 09:03:55 -05:00
rodzic f31701546b
commit e2f6c7d092
6 zmienionych plików z 57 dodań i 31 usunięć

Wyświetl plik

@ -335,7 +335,7 @@ int rig2icom_mode(RIG *rig, rmode_t mode, pbwidth_t width,
case RIG_MODE_RTTY: icmode = S_RTTY; break;
case RIG_MODE_RTTYR: icmode = S_RTTYR; break;
case RIG_MODE_FM: icmode = S_FM; break;
case RIG_MODE_FMN: icmode = S_FMN; break;
case RIG_MODE_FMN: icmode = S_FMN; break;
case RIG_MODE_WFM: icmode = S_WFM; break;
case RIG_MODE_P25: icmode = S_P25; break;
case RIG_MODE_DSTAR: icmode = S_DSTAR; break;
@ -343,6 +343,7 @@ int rig2icom_mode(RIG *rig, rmode_t mode, pbwidth_t width,
case RIG_MODE_NXDNVN: icmode = S_NXDNVN; break;
case RIG_MODE_NXDN_N: icmode = S_NXDN_N; break;
case RIG_MODE_DCR: icmode = S_DCR; break;
case RIG_MODE_DD: icmode = S_DD; break;
default:
rig_debug(RIG_DEBUG_ERR,"icom: Unsupported Hamlib mode %d\n",mode);
return -RIG_EINVAL;

Wyświetl plik

@ -80,6 +80,8 @@
#define IC7300_AGC_MID 0x02
#define IC7300_AGC_SLOW 0x03
#define IC9700_ALL_TX_MODES (RIG_MODE_FM|RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_DSTAR|RIG_MODE_DD)
#define IC9700_ALL_RX_MODES (RIG_MODE_FM|RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_DSTAR|RIG_MODE_DD)
/*
* IC-7300 rig capabilities.
*
@ -347,40 +349,32 @@ const struct rig_caps ic9700_caps = {
.rx_range_list1 = { {kHz(30),MHz(74.8),IC7300_ALL_RX_MODES,-1,-1,IC7300_VFOS}, RIG_FRNG_END, },
.tx_range_list1 = {
FRQ_RNG_HF(1,IC7300_OTHER_TX_MODES, W(2),W(100),IC7300_VFOS,RIG_ANT_1),
FRQ_RNG_60m(1,IC7300_OTHER_TX_MODES, W(2),W(100),IC7300_VFOS,RIG_ANT_1),
FRQ_RNG_6m(1,IC7300_OTHER_TX_MODES, W(2),W(100),IC7300_VFOS,RIG_ANT_1),
FRQ_RNG_4m(1,IC7300_OTHER_TX_MODES, W(2),W(100),IC7300_VFOS,RIG_ANT_1),
FRQ_RNG_HF(1,IC7300_AM_TX_MODES, W(1),W(40),IC7300_VFOS,RIG_ANT_1), /* AM class */
FRQ_RNG_60m(1,IC7300_AM_TX_MODES, W(1),W(40),IC7300_VFOS,RIG_ANT_1), /* AM class */
FRQ_RNG_6m(1,IC7300_AM_TX_MODES, W(1),W(40),IC7300_VFOS,RIG_ANT_1), /* AM class */
FRQ_RNG_4m(1,IC7300_AM_TX_MODES, W(1),W(40),IC7300_VFOS,RIG_ANT_1), /* AM class */
FRQ_RNG_2m(1,IC7300_OTHER_TX_MODES, W(2),W(100),IC7300_VFOS,RIG_ANT_2),
FRQ_RNG_70cm(1,IC7300_OTHER_TX_MODES, W(2),W(75),IC7300_VFOS,RIG_ANT_2),
FRQ_RNG_23cm(1,IC7300_OTHER_TX_MODES, W(2),W(23),IC7300_VFOS,RIG_ANT_3),
FRQ_RNG_2m(1,IC9700_ALL_TX_MODES, W(2),W(100),IC7300_VFOS,RIG_ANT_2),
FRQ_RNG_70cm(1,IC9700_ALL_TX_MODES, W(2),W(75),IC7300_VFOS,RIG_ANT_2),
FRQ_RNG_23cm(1,IC9700_ALL_TX_MODES, W(2),W(23),IC7300_VFOS,RIG_ANT_3),
RIG_FRNG_END, },
.rx_range_list2 = { {kHz(30),MHz(74.8),IC7300_ALL_RX_MODES,-1,-1,IC7300_VFOS}, RIG_FRNG_END, },
.tx_range_list2 = {
FRQ_RNG_HF(2,IC7300_OTHER_TX_MODES, W(2),W(100),IC7300_VFOS,RIG_ANT_1),
FRQ_RNG_60m(2,IC7300_OTHER_TX_MODES, W(2),W(100),IC7300_VFOS,RIG_ANT_1),
FRQ_RNG_6m(2,IC7300_OTHER_TX_MODES, W(2),W(100),IC7300_VFOS,RIG_ANT_1),
FRQ_RNG_HF(2,IC7300_AM_TX_MODES, W(1),W(40),IC7300_VFOS,RIG_ANT_1), /* AM class */
FRQ_RNG_60m(2,IC7300_AM_TX_MODES, W(1),W(40),IC7300_VFOS,RIG_ANT_1), /* AM class */
FRQ_RNG_6m(2,IC7300_AM_TX_MODES, W(1),W(40),IC7300_VFOS,RIG_ANT_1), /* AM class */
FRQ_RNG_70cm(1,IC7300_OTHER_TX_MODES, W(2),W(75),IC7300_VFOS,RIG_ANT_2),
FRQ_RNG_23cm(1,IC7300_OTHER_TX_MODES, W(2),W(23),IC7300_VFOS,RIG_ANT_3),
FRQ_RNG_2m(1,IC9700_ALL_TX_MODES, W(2),W(100),IC7300_VFOS,RIG_ANT_2),
FRQ_RNG_70cm(1,IC9700_ALL_TX_MODES, W(2),W(75),IC7300_VFOS,RIG_ANT_2),
FRQ_RNG_23cm(1,IC9700_ALL_TX_MODES, W(2),W(23),IC7300_VFOS,RIG_ANT_3),
RIG_FRNG_END, },
.tuning_steps = {
{IC7300_ALL_RX_MODES,Hz(1)},
{IC7300_ALL_RX_MODES,kHz(1)},
{IC7300_ALL_RX_MODES,kHz(5)},
{IC7300_ALL_RX_MODES,kHz(9)},
{IC7300_ALL_RX_MODES,kHz(10)},
{IC7300_ALL_RX_MODES,kHz(12.5)},
{IC7300_ALL_RX_MODES,kHz(20)},
{IC7300_ALL_RX_MODES,kHz(25)},
{IC9700_ALL_RX_MODES,Hz(1)},
{IC9700_ALL_RX_MODES,Hz(10)},
{IC9700_ALL_RX_MODES,Hz(100)},
{IC9700_ALL_RX_MODES,Hz(500)},
{IC9700_ALL_RX_MODES,kHz(1)},
{IC9700_ALL_RX_MODES,kHz(5)},
{IC9700_ALL_RX_MODES,kHz(6.25)},
{IC9700_ALL_RX_MODES,kHz(10)},
{IC9700_ALL_RX_MODES,kHz(12.5)},
{IC9700_ALL_RX_MODES,kHz(20)},
{IC9700_ALL_RX_MODES,kHz(25)},
{IC9700_ALL_RX_MODES,kHz(50)},
{IC9700_ALL_RX_MODES,kHz(100)},
RIG_TS_END,
},
@ -418,7 +412,7 @@ const struct rig_caps ic9700_caps = {
.get_freq = icom_get_freq,
.set_mode = icom_set_mode_with_data,
.get_mode = icom_get_mode_with_data,
//.get_vfo = icom_get_vfo,
.get_vfo = icom_get_vfo,
.set_vfo = icom_set_vfo,
.set_ant = NULL,
.get_ant = NULL,
@ -463,6 +457,8 @@ const struct rig_caps ic9700_caps = {
.set_split_vfo = icom_set_split_vfo,
.get_split_vfo = icom_get_split_vfo,
.set_powerstat = icom_set_powerstat,
.get_vfo = icom_get_vfo,
.set_vfo = icom_set_vfo,
.power2mW = icom_power2mW,
.mW2power = icom_mW2power,
.send_morse = icom_send_morse

Wyświetl plik

@ -951,7 +951,33 @@ int icom_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
}
/*
* icom_set_vfo
* icom_get_vfo
* The IC-9700 has introduced the ability to see MAIN/SUB selection
* Maybe we'll see this in future ICOMs or firmware upgrades
* Command 0x07 0XD2
* Assumes rig!=NULL, rig->state.priv!=NULL
*/
int icom_get_vfo(RIG *rig, vfo_t *vfo)
{
unsigned char ackbuf[MAXFRAMELEN];
int ack_len=sizeof(ackbuf), retval;
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
retval = icom_transaction (rig, C_SET_VFO, S_SUB_SEL, NULL, 0,
ackbuf, &ack_len);
if (retval != RIG_OK)
return retval;
if (ack_len != 3) {
rig_debug(RIG_DEBUG_ERR,"%s wrong frame len=%d\n", ack_len);
return -RIG_ERJCTED;
}
*vfo = ackbuf[2] == 0 ? RIG_VFO_MAIN : RIG_VFO_SUB;
return RIG_OK;
}
/*
* icom_get_vfo
* Assumes rig!=NULL, rig->state.priv!=NULL
*/
int icom_set_vfo(RIG *rig, vfo_t vfo)

Wyświetl plik

@ -160,6 +160,7 @@ int icom_set_mode_with_data(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width);
int icom_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width);
int icom_get_mode_with_data(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width);
int icom_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width);
int icom_get_vfo(RIG *rig, vfo_t *vfo);
int icom_set_vfo(RIG *rig, vfo_t vfo);
int icom_set_rptr_shift(RIG *rig, vfo_t vfo, rptr_shift_t rptr_shift);
int icom_get_rptr_shift(RIG *rig, vfo_t vfo, rptr_shift_t *rptr_shift);

Wyświetl plik

@ -126,6 +126,7 @@
#define S_NXDNVN 0x19 /* Set to NXDN_VN */
#define S_NXDN_N 0x20 /* Set to NXDN-N */
#define S_DCR 0x21 /* Set to DCR */
#define S_DD 0x22 /* Set to DD 1200Mhz only? */
#define S_R7000_SSB 0x05 /* Set to SSB on R-7000 */
@ -151,6 +152,7 @@
#define S_DUAL_ON 0xc1 /* Dual watch on */
#define S_MAIN 0xd0 /* Select MAIN band */
#define S_SUB 0xd1 /* Select SUB band */
#define S_SUB_SEL 0xd2 /* Read/Set Main/Sub selection */
#define S_FRONTWIN 0xe0 /* Select front window */
/*

Wyświetl plik

@ -926,7 +926,7 @@ typedef uint64_t rmode_t;
#define RIG_MODE_PSKR CONSTANT_64BIT_FLAG (31) /*!< \c PSKR - Kenwood PSKR and others */
#ifndef SWIGLUA
/* hide the top 32 bits from the Lua binding as they will not work */
#define RIG_MODE_BIT32 CONSTANT_64BIT_FLAG (32) /* reserved for future expansion */
#define RIG_MODE_DD CONSTANT_64BIT_FLAG (32) /* DD Mode IC-9700 */
#define RIG_MODE_BIT33 CONSTANT_64BIT_FLAG (33) /* reserved for future expansion */
#define RIG_MODE_BIT34 CONSTANT_64BIT_FLAG (34) /* reserved for future expansion */
#define RIG_MODE_BIT35 CONSTANT_64BIT_FLAG (35) /* reserved for future expansion */