diff --git a/icom/ic756.c b/icom/ic756.c index 04633a64a..03bcf15fe 100644 --- a/icom/ic756.c +++ b/icom/ic756.c @@ -1,8 +1,8 @@ /* * Hamlib CI-V backend - description of IC-756 and variations - * Copyright (c) 2000-2003 by Stephane Fillod + * Copyright (c) 2000-2004 by Stephane Fillod * - * $Id: ic756.c,v 1.9 2003-12-08 08:33:58 fillods Exp $ + * $Id: ic756.c,v 1.10 2004-09-07 21:54:13 fillods Exp $ * * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as @@ -413,13 +413,19 @@ static const struct confparams ic756pro2_ext_parms[] = { static int ic756pro2_set_ext_parm(RIG *rig, token_t token, value_t val); static int ic756pro2_get_ext_parm(RIG *rig, token_t token, value_t *val); +#define IC756PROII_ALL_RX_MODES (RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_FM) +#define IC756PROII_1HZ_TS_MODES IC756PROII_ALL_RX_MODES +#define IC756PROII_OTHER_TX_MODES (RIG_MODE_AM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_FM) +#define IC756PROII_AM_TX_MODES (RIG_MODE_AM) + + const struct rig_caps ic756pro2_caps = { .rig_model = RIG_MODEL_IC756PROII, .model_name = "IC-756PROII", .mfg_name = "Icom", -.version = "0.2", +.version = "0.3", .copyright = "LGPL", -.status = RIG_STATUS_UNTESTED, +.status = RIG_STATUS_ALPHA, .rig_type = RIG_TYPE_TRANSCEIVER, .ptt_type = RIG_PTT_RIG, .dcd_type = RIG_DCD_RIG, @@ -465,30 +471,30 @@ const struct rig_caps ic756pro2_caps = { RIG_CHAN_END, }, -.rx_range_list1 = { {kHz(30),MHz(60),IC756_ALL_RX_MODES,-1,-1,IC756_VFO_ALL}, +.rx_range_list1 = { {kHz(30),MHz(60),IC756PROII_ALL_RX_MODES,-1,-1,IC756_VFO_ALL}, RIG_FRNG_END, }, .tx_range_list1 = { - FRQ_RNG_HF(1,IC756_OTHER_TX_MODES, W(5),W(100),IC756_VFO_ALL,IC756_ANTS), - FRQ_RNG_6m(1,IC756_OTHER_TX_MODES, W(5),W(100),IC756_VFO_ALL,IC756_ANTS), - FRQ_RNG_HF(1,IC756_AM_TX_MODES, W(2),W(40),IC756_VFO_ALL,IC756_ANTS), /* AM class */ - FRQ_RNG_6m(1,IC756_AM_TX_MODES, W(2),W(40),IC756_VFO_ALL,IC756_ANTS), /* AM class */ + FRQ_RNG_HF(1,IC756PROII_OTHER_TX_MODES, W(5),W(100),IC756_VFO_ALL,IC756_ANTS), + FRQ_RNG_6m(1,IC756PROII_OTHER_TX_MODES, W(5),W(100),IC756_VFO_ALL,IC756_ANTS), + FRQ_RNG_HF(1,IC756PROII_AM_TX_MODES, W(2),W(40),IC756_VFO_ALL,IC756_ANTS), /* AM class */ + FRQ_RNG_6m(1,IC756PROII_AM_TX_MODES, W(2),W(40),IC756_VFO_ALL,IC756_ANTS), /* AM class */ RIG_FRNG_END, }, -.rx_range_list2 = { {kHz(30),MHz(60),IC756_ALL_RX_MODES,-1,-1,IC756_VFO_ALL}, +.rx_range_list2 = { {kHz(30),MHz(60),IC756PROII_ALL_RX_MODES,-1,-1,IC756_VFO_ALL}, RIG_FRNG_END, }, .tx_range_list2 = { - FRQ_RNG_HF(2,IC756_OTHER_TX_MODES, W(5),W(100),IC756_VFO_ALL,IC756_ANTS), - FRQ_RNG_6m(2,IC756_OTHER_TX_MODES, W(5),W(100),IC756_VFO_ALL,IC756_ANTS), - FRQ_RNG_HF(2,IC756_AM_TX_MODES, W(2),W(40),IC756_VFO_ALL,IC756_ANTS), /* AM class */ - FRQ_RNG_6m(2,IC756_AM_TX_MODES, W(2),W(40),IC756_VFO_ALL,IC756_ANTS), /* AM class */ + FRQ_RNG_HF(2,IC756PROII_OTHER_TX_MODES, W(5),W(100),IC756_VFO_ALL,IC756_ANTS), + FRQ_RNG_6m(2,IC756PROII_OTHER_TX_MODES, W(5),W(100),IC756_VFO_ALL,IC756_ANTS), + FRQ_RNG_HF(2,IC756PROII_AM_TX_MODES, W(2),W(40),IC756_VFO_ALL,IC756_ANTS), /* AM class */ + FRQ_RNG_6m(2,IC756PROII_AM_TX_MODES, W(2),W(40),IC756_VFO_ALL,IC756_ANTS), /* AM class */ RIG_FRNG_END, }, .tuning_steps = { - {IC756_1HZ_TS_MODES,1}, - {IC756_ALL_RX_MODES,kHz(1)}, - {IC756_ALL_RX_MODES,kHz(5)}, - {IC756_ALL_RX_MODES,kHz(9)}, - {IC756_ALL_RX_MODES,kHz(10)}, + {IC756PROII_1HZ_TS_MODES,1}, + {IC756PROII_ALL_RX_MODES,kHz(1)}, + {IC756PROII_ALL_RX_MODES,kHz(5)}, + {IC756PROII_ALL_RX_MODES,kHz(9)}, + {IC756PROII_ALL_RX_MODES,kHz(10)}, RIG_TS_END, }, /* mode/filter list, remember: order matters! */ diff --git a/icom/icom.c b/icom/icom.c index 20ec4e232..a8ad75604 100644 --- a/icom/icom.c +++ b/icom/icom.c @@ -2,7 +2,7 @@ * Hamlib CI-V backend - main file * Copyright (c) 2000-2004 by Stephane Fillod * - * $Id: icom.c,v 1.89 2004-08-30 01:39:21 fineware Exp $ + * $Id: icom.c,v 1.90 2004-09-07 21:54:20 fillods Exp $ * * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as @@ -1053,15 +1053,15 @@ int icom_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt) { struct icom_priv_data *priv; struct rig_state *rs; - unsigned char ackbuf[MAXFRAMELEN], ptt_sc; + unsigned char ackbuf[MAXFRAMELEN], pttbuf[1]; int ack_len, retval; rs = &rig->state; priv = (struct icom_priv_data*)rs->priv; - ptt_sc = ptt == RIG_PTT_ON ? S_PTT_ON:S_PTT_OFF; + pttbuf[0] = ptt == RIG_PTT_ON ? 1 : 0; - retval = icom_transaction (rig, C_CTL_PTT, ptt_sc, NULL, 0, + retval = icom_transaction (rig, C_CTL_PTT, S_PTT, pttbuf, 1, ackbuf, &ack_len); if (retval != RIG_OK) return retval; @@ -1089,7 +1089,7 @@ int icom_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt) rs = &rig->state; priv = (struct icom_priv_data*)rs->priv; - retval = icom_transaction (rig, C_CTL_PTT, -1, NULL, 0, + retval = icom_transaction (rig, C_CTL_PTT, S_PTT, NULL, 0, pttbuf, &ptt_len); if (retval != RIG_OK) return retval; @@ -1104,7 +1104,7 @@ int icom_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt) return -RIG_ERJCTED; } - *ptt = pttbuf[1] == S_PTT_ON ? RIG_PTT_ON : RIG_PTT_OFF; + *ptt = pttbuf[1] == 1 ? RIG_PTT_ON : RIG_PTT_OFF; return RIG_OK; } diff --git a/icom/icom_defs.h b/icom/icom_defs.h index fde060be5..7e395b7cf 100644 --- a/icom/icom_defs.h +++ b/icom/icom_defs.h @@ -1,8 +1,8 @@ /* * Hamlib CI-V backend - defines for the ICOM "CI-V" interface. - * Copyright (c) 2000-2002 by Stephane Fillod + * Copyright (c) 2000-2004 by Stephane Fillod * - * $Id: icom_defs.h,v 1.16 2004-08-27 01:49:38 fineware Exp $ + * $Id: icom_defs.h,v 1.17 2004-09-07 21:54:20 fillods Exp $ * * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as @@ -257,8 +257,7 @@ /* * Transmit control (C_CTL_PTT) subcommands */ -#define S_PTT_ON 0x00 /* no documentation, not tested! */ -#define S_PTT_OFF 0x01 /* please confirm (IC-756Pro, IC-746) --SF */ +#define S_PTT 0x00 /* * Memory contents (C_CTL_MEM) subcommands