kopia lustrzana https://github.com/Hamlib/Hamlib
RIG_E* modified, added tuning_step
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@136 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.1.0
rodzic
fdc34db72a
commit
3657c0f103
84
icom/ic706.c
84
icom/ic706.c
|
@ -6,7 +6,7 @@
|
||||||
* via serial interface to an IC-706 using the "CI-V" interface.
|
* via serial interface to an IC-706 using the "CI-V" interface.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* $Id: ic706.c,v 1.1 2000-09-16 01:46:13 f4cfe Exp $
|
* $Id: ic706.c,v 1.2 2000-09-21 06:46:13 f4cfe Exp $
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
@ -39,9 +39,10 @@
|
||||||
#include <riglist.h>
|
#include <riglist.h>
|
||||||
#include "icom.h"
|
#include "icom.h"
|
||||||
|
|
||||||
static int ic706_init(RIG *rig);
|
|
||||||
|
|
||||||
#define IC706_ALL_RX_MODES (RIG_MODE_AM| RIG_MODE_CW| RIG_MODE_USB| RIG_MODE_LSB| RIG_MODE_RTTY| RIG_MODE_FM| RIG_MODE_WFM| RIG_MODE_NFM| RIG_MODE_NAM| RIG_MODE_CWR)
|
#define IC706_ALL_RX_MODES (RIG_MODE_AM| RIG_MODE_CW| RIG_MODE_USB| RIG_MODE_LSB| RIG_MODE_RTTY| RIG_MODE_FM| RIG_MODE_WFM| RIG_MODE_NFM| RIG_MODE_NAM| RIG_MODE_CWR)
|
||||||
|
#define IC706_1MHZ_TS_MODES (RIG_MODE_AM|RIG_MODE_FM|RIG_MODE_WFM|RIG_MODE_NFM|RIG_MODE_NAM)
|
||||||
|
#define IC706_1HZ_TS_MODES (RIG_MODE_CW|RIG_MODE_USB|RIG_MODE_LSB|RIG_MODE_RTTY|RIG_MODE_CWR)
|
||||||
|
|
||||||
/* tx doesn't have WFM.
|
/* tx doesn't have WFM.
|
||||||
* 100W in all modes but AM (40W)
|
* 100W in all modes but AM (40W)
|
||||||
|
@ -49,6 +50,8 @@ static int ic706_init(RIG *rig);
|
||||||
#define IC706_OTHER_TX_MODES (RIG_MODE_AM| RIG_MODE_CW| RIG_MODE_USB| RIG_MODE_LSB| RIG_MODE_RTTY| RIG_MODE_FM| RIG_MODE_NFM| RIG_MODE_NAM| RIG_MODE_CWR)
|
#define IC706_OTHER_TX_MODES (RIG_MODE_AM| RIG_MODE_CW| RIG_MODE_USB| RIG_MODE_LSB| RIG_MODE_RTTY| RIG_MODE_FM| RIG_MODE_NFM| RIG_MODE_NAM| RIG_MODE_CWR)
|
||||||
#define IC706_AM_TX_MODES (RIG_MODE_AM| RIG_MODE_NAM)
|
#define IC706_AM_TX_MODES (RIG_MODE_AM| RIG_MODE_NAM)
|
||||||
|
|
||||||
|
#define IC706_FUNC_ALL (RIG_FUNC_FAGC|RIG_FUNC_NB|RIG_FUNC_COMP|RIG_FUNC_VOX|RIG_FUNC_TONE|RIG_FUNC_TSQL|RIG_FUNC_SBKIN|RIG_FUNC_FBKIN)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ic706 rigs capabilities.
|
* ic706 rigs capabilities.
|
||||||
* Notice that some rigs share the same functions.
|
* Notice that some rigs share the same functions.
|
||||||
|
@ -56,8 +59,8 @@ static int ic706_init(RIG *rig);
|
||||||
*/
|
*/
|
||||||
const struct rig_caps ic706_caps = {
|
const struct rig_caps ic706_caps = {
|
||||||
RIG_MODEL_IC706, "IC-706", "Icom", "0.1", RIG_STATUS_ALPHA,
|
RIG_MODEL_IC706, "IC-706", "Icom", "0.1", RIG_STATUS_ALPHA,
|
||||||
RIG_TYPE_MOBILE, 1200, 57600, 8, 1, RIG_PARITY_NONE,
|
RIG_TYPE_MOBILE, RIG_PTT_NONE, 1200, 57600, 8, 1, RIG_PARITY_NONE,
|
||||||
RIG_HANDSHAKE_NONE, 2000, 3, 0,
|
RIG_HANDSHAKE_NONE, 0, 2000, 3, IC706_FUNC_ALL, 101,
|
||||||
{ {30000,199999999,IC706_ALL_RX_MODES,-1,-1}, {0,0,0,0,0}, }, /* rx range */
|
{ {30000,199999999,IC706_ALL_RX_MODES,-1,-1}, {0,0,0,0,0}, }, /* rx range */
|
||||||
{ {1800000,1999999,IC706_OTHER_TX_MODES,5000,100000}, /* 100W class */
|
{ {1800000,1999999,IC706_OTHER_TX_MODES,5000,100000}, /* 100W class */
|
||||||
{1800000,1999999,IC706_AM_TX_MODES,2000,40000}, /* 40W class */
|
{1800000,1999999,IC706_AM_TX_MODES,2000,40000}, /* 40W class */
|
||||||
|
@ -82,14 +85,28 @@ const struct rig_caps ic706_caps = {
|
||||||
{144000000,148000000,IC706_OTHER_TX_MODES,5000,20000}, /* not sure.. */
|
{144000000,148000000,IC706_OTHER_TX_MODES,5000,20000}, /* not sure.. */
|
||||||
{144000000,148000000,IC706_AM_TX_MODES,2000,8000}, /* anyone? */
|
{144000000,148000000,IC706_AM_TX_MODES,2000,8000}, /* anyone? */
|
||||||
{0,0,0,0,0} },
|
{0,0,0,0,0} },
|
||||||
ic706_init, icom_cleanup, NULL, NULL, NULL /* probe not supported yet */,
|
{{IC706_1HZ_TS_MODES,1},
|
||||||
icom_set_freq_main_vfo_hz
|
{IC706_ALL_RX_MODES,10},
|
||||||
|
{IC706_ALL_RX_MODES,100},
|
||||||
|
{IC706_ALL_RX_MODES,KHz(1)},
|
||||||
|
{IC706_ALL_RX_MODES,KHz(5)},
|
||||||
|
{IC706_ALL_RX_MODES,KHz(9)},
|
||||||
|
{IC706_ALL_RX_MODES,KHz(10)},
|
||||||
|
{IC706_ALL_RX_MODES,12500},
|
||||||
|
{IC706_ALL_RX_MODES,KHz(20)},
|
||||||
|
{IC706_ALL_RX_MODES,KHz(25)},
|
||||||
|
{IC706_ALL_RX_MODES,KHz(100)},
|
||||||
|
{IC706_1MHZ_TS_MODES,MHz(1)},
|
||||||
|
{0,0}
|
||||||
|
},
|
||||||
|
icom_init, icom_cleanup, NULL, NULL, NULL /* probe not supported yet */,
|
||||||
|
icom_set_freq, NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct rig_caps ic706mkiig_caps = {
|
const struct rig_caps ic706mkiig_caps = {
|
||||||
RIG_MODEL_IC706MKIIG, "IC-706MKIIG", "Icom", "0.1", RIG_STATUS_ALPHA,
|
RIG_MODEL_IC706MKIIG, "IC-706MKIIG", "Icom", "0.1", RIG_STATUS_ALPHA,
|
||||||
RIG_TYPE_MOBILE, 1200, 57600, 8, 1, RIG_PARITY_NONE,
|
RIG_TYPE_MOBILE, RIG_PTT_NONE, 1200, 57600, 8, 1, RIG_PARITY_NONE,
|
||||||
RIG_HANDSHAKE_NONE, 2000, 3, 0,
|
RIG_HANDSHAKE_NONE, 0, 2000, 3, IC706_FUNC_ALL|RIG_FUNC_NR|RIG_FUNC_ANF, 101,
|
||||||
{ {30000,199999999,IC706_ALL_RX_MODES,-1,-1}, /* this trx also has UHF */
|
{ {30000,199999999,IC706_ALL_RX_MODES,-1,-1}, /* this trx also has UHF */
|
||||||
{400000000,470000000,IC706_ALL_RX_MODES,-1,-1}, {0,0,0,0,0}, },
|
{400000000,470000000,IC706_ALL_RX_MODES,-1,-1}, {0,0,0,0,0}, },
|
||||||
{ {1800000,1999999,IC706_OTHER_TX_MODES,5000,100000}, /* 100W class */
|
{ {1800000,1999999,IC706_OTHER_TX_MODES,5000,100000}, /* 100W class */
|
||||||
|
@ -117,46 +134,27 @@ const struct rig_caps ic706mkiig_caps = {
|
||||||
{430000000,450000000,IC706_OTHER_TX_MODES,5000,20000},
|
{430000000,450000000,IC706_OTHER_TX_MODES,5000,20000},
|
||||||
{430000000,450000000,IC706_AM_TX_MODES,2000,8000},
|
{430000000,450000000,IC706_AM_TX_MODES,2000,8000},
|
||||||
{0,0,0,0,0}, },
|
{0,0,0,0,0}, },
|
||||||
ic706_init, icom_cleanup, NULL, NULL, NULL /* probe not supported yet */,
|
{{IC706_1HZ_TS_MODES,1},
|
||||||
icom_set_freq_main_vfo_hz
|
{IC706_ALL_RX_MODES,10},
|
||||||
|
{IC706_ALL_RX_MODES,100},
|
||||||
|
{IC706_ALL_RX_MODES,KHz(1)},
|
||||||
|
{IC706_ALL_RX_MODES,KHz(5)},
|
||||||
|
{IC706_ALL_RX_MODES,KHz(9)},
|
||||||
|
{IC706_ALL_RX_MODES,KHz(10)},
|
||||||
|
{IC706_ALL_RX_MODES,12500},
|
||||||
|
{IC706_ALL_RX_MODES,KHz(20)},
|
||||||
|
{IC706_ALL_RX_MODES,KHz(25)},
|
||||||
|
{IC706_ALL_RX_MODES,KHz(100)},
|
||||||
|
{IC706_1MHZ_TS_MODES,MHz(1)},
|
||||||
|
{0,0}
|
||||||
|
},
|
||||||
|
icom_init, icom_cleanup, NULL, NULL, NULL /* probe not supported yet */,
|
||||||
|
icom_set_freq, NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/* this struct in an array could lead
|
|
||||||
* to an Icom generic ic_init function
|
|
||||||
*/
|
|
||||||
static const struct icom_priv_data ic706_priv = { 0x58, 0};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Function definitions below
|
* Function definitions below
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* setup *priv
|
|
||||||
* serial port is already open (rig->state->fd)
|
|
||||||
*/
|
|
||||||
static int ic706_init(RIG *rig)
|
|
||||||
{
|
|
||||||
struct icom_priv_data *p;
|
|
||||||
|
|
||||||
if (!rig)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
p = (struct icom_priv_data*)malloc(sizeof(struct icom_priv_data));
|
|
||||||
if (!p) {
|
|
||||||
/* whoops! memory shortage! */
|
|
||||||
return -2;
|
|
||||||
}
|
|
||||||
/* TODO: CI-V address should be customizable */
|
|
||||||
|
|
||||||
/* init the priv_data from static struct
|
|
||||||
* + override with rig-specific preferences
|
|
||||||
*/
|
|
||||||
*p = ic706_priv;
|
|
||||||
|
|
||||||
rig->state.priv = (void*)p;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
12
icom/icom.c
12
icom/icom.c
|
@ -6,7 +6,7 @@
|
||||||
* via serial interface to an ICOM using the "CI-V" interface.
|
* via serial interface to an ICOM using the "CI-V" interface.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* $Id: icom.c,v 1.2 2000-09-19 07:04:05 f4cfe Exp $
|
* $Id: icom.c,v 1.3 2000-09-21 06:46:13 f4cfe Exp $
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
@ -69,12 +69,12 @@ int icom_init(RIG *rig)
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (!rig)
|
if (!rig)
|
||||||
return RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
|
|
||||||
p = (struct icom_priv_data*)malloc(sizeof(struct icom_priv_data));
|
p = (struct icom_priv_data*)malloc(sizeof(struct icom_priv_data));
|
||||||
if (!p) {
|
if (!p) {
|
||||||
/* whoops! memory shortage! */
|
/* whoops! memory shortage! */
|
||||||
return RIG_ENOMEM;
|
return -RIG_ENOMEM;
|
||||||
}
|
}
|
||||||
/* TODO: CI-V address should be customizable */
|
/* TODO: CI-V address should be customizable */
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ int icom_init(RIG *rig)
|
||||||
int icom_cleanup(RIG *rig)
|
int icom_cleanup(RIG *rig)
|
||||||
{
|
{
|
||||||
if (!rig)
|
if (!rig)
|
||||||
return RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
|
|
||||||
if (rig->state.priv)
|
if (rig->state.priv)
|
||||||
free(rig->state.priv);
|
free(rig->state.priv);
|
||||||
|
@ -216,7 +216,7 @@ int icom_set_freq(RIG *rig, freq_t freq)
|
||||||
int frm_len;
|
int frm_len;
|
||||||
|
|
||||||
if (!rig)
|
if (!rig)
|
||||||
return RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
|
|
||||||
p = (struct icom_priv_data*)rig->state.priv;
|
p = (struct icom_priv_data*)rig->state.priv;
|
||||||
rig_s = &rig->state;
|
rig_s = &rig->state;
|
||||||
|
@ -235,7 +235,7 @@ int icom_set_freq(RIG *rig, freq_t freq)
|
||||||
read_icom_block(rig_s->fd, buf, ACKFRMLEN, rig_s->timeout);
|
read_icom_block(rig_s->fd, buf, ACKFRMLEN, rig_s->timeout);
|
||||||
|
|
||||||
if (buf[5] != ACK) {
|
if (buf[5] != ACK) {
|
||||||
return RIG_ERJCTED;
|
return -RIG_ERJCTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Ładowanie…
Reference in New Issue