kopia lustrzana https://github.com/Hamlib/Hamlib
Initial implementation of icom extended operations
func, level & parm extended functions are all mapped to a single icom_[gs]et_ext_cmd() function. These are table driven, so as to not endlessly repeat the same code for each extended operation.pull/179/head
rodzic
f1d0340b8d
commit
9aa96d6dd0
|
@ -22,7 +22,7 @@
|
|||
#ifndef _FRAME_H
|
||||
#define _FRAME_H 1
|
||||
|
||||
#define MAXFRAMELEN 56
|
||||
#define MAXFRAMELEN 80
|
||||
|
||||
/*
|
||||
* helper functions
|
||||
|
|
|
@ -209,6 +209,7 @@ const struct rig_caps ic7100_caps =
|
|||
[LVL_KEYSPD] = { .min = { .i = 6 }, .max = { .i = 48 }, .step = { .i = 1 } },
|
||||
[LVL_CWPITCH] = { .min = { .i = 300 }, .max = { .i = 900 }, .step = { .i = 1 } },
|
||||
},
|
||||
.extparms = icom_ext_parms,
|
||||
.parm_gran = {},
|
||||
.ctcss_list = common_ctcss_list,
|
||||
.dcs_list = common_dcs_list,
|
||||
|
@ -355,7 +356,8 @@ const struct rig_caps ic7100_caps =
|
|||
|
||||
.set_parm = icom_set_parm,
|
||||
.get_parm = icom_get_parm,
|
||||
|
||||
.set_ext_parm = icom_set_ext_parm,
|
||||
.get_ext_parm = icom_get_ext_parm,
|
||||
.set_mem = icom_set_mem,
|
||||
.vfo_op = icom_vfo_op,
|
||||
.scan = icom_scan,
|
||||
|
|
237
icom/icom.c
237
icom/icom.c
|
@ -50,6 +50,8 @@
|
|||
|
||||
static int set_vfo_curr(RIG *rig, vfo_t vfo, vfo_t curr_vfo);
|
||||
|
||||
static char databuf[MAXFRAMELEN];
|
||||
|
||||
const cal_table_float_t icom_default_swr_cal =
|
||||
{
|
||||
5,
|
||||
|
@ -400,6 +402,50 @@ const struct confparams icom_cfg_params[] =
|
|||
{ RIG_CONF_END, NULL, }
|
||||
};
|
||||
|
||||
/*
|
||||
* Lookup table for icom_get_ext_parm
|
||||
*/
|
||||
|
||||
const struct confparams icom_ext_parms[] =
|
||||
{
|
||||
{ TOK_DSTAR_CALL_SIGN, "dscals", "D-STAR Call sign" },
|
||||
{ TOK_DSTAR_MESSAGE, "dsrmes", "D-STAR Rx Message" },
|
||||
{ TOK_DSTAR_STATUS, "dsstat", "D-STAR Rx Status" },
|
||||
{ TOK_DSTAR_GPS_DATA, "dsgpsd", "D-STAR GPS Data" },
|
||||
{ TOK_DSTAR_GPS_MESS, "dsgpsm", "D-STAR GPS Message" },
|
||||
{ TOK_DSTAR_DSQL, "dsdsql", "D-STAR CSQL Code" },
|
||||
{ TOK_DSTAR_MY_CS, "dsmycs", "D-STAR MY Call Sign" },
|
||||
{ TOK_DSTAR_TX_CS, "dstxcs", "D-STAR Tx Call Sign" },
|
||||
{ TOK_DSTAR_TX_MESS, "dstmes", "D-STAR Tx Message" },
|
||||
{ TOK_DSTAR_TX_DATA, "dstdat", "D-STAR Tx Data" },
|
||||
{ TOK_DRIVE_GAIN, "drive_gain", "Drive gain" },
|
||||
{ TOK_DIGI_SEL_FUNC, "digi_sel", "DIGI-SEL enable" },
|
||||
{ TOK_DIGI_SEL_LEVEL, "digi_sel_level", "DIGI-SEL level" },
|
||||
{ RIG_CONF_END, NULL, }
|
||||
};
|
||||
|
||||
/*
|
||||
* Lookup table for icom_get_ext_* & icom_set_ext_* functions
|
||||
*/
|
||||
|
||||
const struct cmdparams icom_ext_cmd[] =
|
||||
{
|
||||
{ TOK_DSTAR_CALL_SIGN, C_CTL_DIG, S_DIG_DSCALS, SC_MOD_RW12, 2, {0}, CMD_DAT_BUF, 38 },
|
||||
{ TOK_DSTAR_MESSAGE, C_CTL_DIG, S_DIG_DSMESS, SC_MOD_RW12, 2, {0}, CMD_DAT_BUF, 32 },
|
||||
{ TOK_DSTAR_STATUS, C_CTL_DIG, S_DIG_DSRSTS, SC_MOD_RW12, 2, {0}, CMD_DAT_WRD, 1 },
|
||||
{ TOK_DSTAR_GPS_DATA, C_CTL_DIG, S_DIG_DSGPSD, SC_MOD_RW12, 2, {0}, 0, 0 },
|
||||
{ TOK_DSTAR_GPS_MESS, C_CTL_DIG, S_DIG_DSGPSM, SC_MOD_RW12, 2, {0}, CMD_DAT_BUF, 52 },
|
||||
{ TOK_DSTAR_DSQL, C_CTL_DIG, S_DIG_DSCSQL, SC_MOD_RW12, 2, {0}, 0, 0 },
|
||||
{ TOK_DSTAR_MY_CS, C_CTL_DVT, S_DVT_DSMYCS, SC_MOD_RW, 1, {0}, 0, 0 },
|
||||
{ TOK_DSTAR_TX_CS, C_CTL_DVT, S_DVT_DSTXCS, SC_MOD_RW, 1, {0}, 0, 0 },
|
||||
{ TOK_DSTAR_TX_MESS, C_CTL_DVT, S_DVT_DSTXMS, SC_MOD_RW, 1, {0}, 0, 0 },
|
||||
{ TOK_DSTAR_TX_DATA, C_CTL_DSD, S_DSD_DSTXDT, SC_MOD_RW, 1, {0}, 0, 0 },
|
||||
{ TOK_DRIVE_GAIN, C_CTL_LVL, S_LVL_DRIVE, SC_MOD_RW, 1, {0}, CMD_DAT_FLT, 2 },
|
||||
{ TOK_DIGI_SEL_FUNC, C_CTL_FUNC, S_FUNC_DIGISEL, SC_MOD_RW, 1, {0}, CMD_DAT_BOL, 1 },
|
||||
{ TOK_DIGI_SEL_LEVEL, C_CTL_LVL, S_LVL_DIGI, SC_MOD_RW, 1, {0}, CMD_DAT_FLT, 2 },
|
||||
{ 0 }
|
||||
};
|
||||
|
||||
/*
|
||||
* Please, if the default CI-V address of your rig is listed as UNKNOWN_ADDR,
|
||||
* send the value to <fillods@users.sourceforge.net> for inclusion. Thanks --SF
|
||||
|
@ -2369,81 +2415,150 @@ int icom_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
return RIG_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* icom_set_ext_level
|
||||
* Assumes rig!=NULL, rig->state.priv!=NULL
|
||||
*/
|
||||
int icom_set_ext_func(RIG *rig, vfo_t vfo, token_t token, int status)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
return icom_set_ext_cmd(rig, vfo, token, (value_t)status);
|
||||
}
|
||||
|
||||
int icom_get_ext_func(RIG *rig, vfo_t vfo, token_t token, int *status)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
return icom_get_ext_cmd(rig, vfo, token, (value_t *)status);
|
||||
}
|
||||
|
||||
int icom_set_ext_level(RIG *rig, vfo_t vfo, token_t token, value_t val)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
switch (token)
|
||||
{
|
||||
case TOK_DRIVE_GAIN:
|
||||
return icom_set_raw(rig, C_CTL_LVL, S_LVL_DRIVE, 0, NULL, 2, (int) val.f);
|
||||
|
||||
case TOK_DIGI_SEL_FUNC:
|
||||
return icom_set_raw(rig, C_CTL_FUNC, S_FUNC_DIGISEL, 0, NULL, 1, val.i ? 1 : 0);
|
||||
|
||||
case TOK_DIGI_SEL_LEVEL:
|
||||
return icom_set_raw(rig, C_CTL_LVL, S_LVL_DIGI, 0, NULL, 2, (int) val.f);
|
||||
|
||||
default:
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
return icom_set_ext_cmd(rig, vfo, token, val);
|
||||
}
|
||||
|
||||
/*
|
||||
* icom_get_ext_level
|
||||
* Assumes rig!=NULL, rig->state.priv!=NULL, val!=NULL
|
||||
*/
|
||||
int icom_get_ext_level(RIG *rig, vfo_t vfo, token_t token, value_t *val)
|
||||
{
|
||||
int icom_val;
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
return icom_get_ext_cmd(rig, vfo, token, val);
|
||||
}
|
||||
|
||||
int icom_set_ext_parm(RIG *rig, token_t token, value_t val)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
return icom_set_ext_cmd(rig, RIG_VFO_NONE, token, val);
|
||||
}
|
||||
|
||||
int icom_get_ext_parm(RIG *rig, token_t token, value_t *val)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
return icom_get_ext_cmd(rig, RIG_VFO_NONE, token, val);
|
||||
}
|
||||
|
||||
int icom_get_ext_cmd(RIG *rig, vfo_t vfo, token_t token, value_t *val)
|
||||
{
|
||||
int i;
|
||||
unsigned char ssc = 0x02;
|
||||
unsigned char resbuf[MAXFRAMELEN];
|
||||
int reslen = sizeof(resbuf);
|
||||
int retval;
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
switch (token)
|
||||
{
|
||||
case TOK_DRIVE_GAIN:
|
||||
retval = icom_get_raw(rig, C_CTL_LVL, S_LVL_DRIVE, 0, NULL, &icom_val);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
{
|
||||
return retval;
|
||||
for (i = 0; icom_ext_cmd[i].token != 0; i++) {
|
||||
if (icom_ext_cmd[i].token == token) {
|
||||
if (!(icom_ext_cmd[i].submod & SC_MOD_WR)) break;
|
||||
if ((icom_ext_cmd[i].submod & SC_MOD_RW12) == SC_MOD_RW12) {
|
||||
retval = icom_get_raw_buf(rig, icom_ext_cmd[i].command, icom_ext_cmd[i].subcmd,
|
||||
1, &ssc, &reslen, resbuf);
|
||||
} else {
|
||||
retval = icom_get_raw_buf(rig, icom_ext_cmd[i].command, icom_ext_cmd[i].subcmd,
|
||||
icom_ext_cmd[i].sublen, (unsigned char *)icom_ext_cmd[i].subext, &reslen, resbuf);
|
||||
}
|
||||
if (retval != RIG_OK) {
|
||||
return retval;
|
||||
}
|
||||
switch (icom_ext_cmd[i].dattyp) {
|
||||
case CMD_DAT_WRD: {
|
||||
int wrd = 0;
|
||||
int j;
|
||||
for (j = 0; j < icom_ext_cmd[i].datlen; j++) {
|
||||
wrd = (wrd << 8) + resbuf[j];
|
||||
}
|
||||
val->i = wrd;
|
||||
}
|
||||
break;
|
||||
case CMD_DAT_BUF:
|
||||
memcpy(databuf, resbuf, icom_ext_cmd[i].datlen);
|
||||
val->s = databuf;
|
||||
break;
|
||||
case CMD_DAT_INT:
|
||||
val->i = from_bcd_be(resbuf, (reslen * 2));
|
||||
break;
|
||||
case CMD_DAT_FLT:
|
||||
val->f = (float) from_bcd_be(resbuf, (reslen * 2));
|
||||
break;
|
||||
case CMD_DAT_BOL:
|
||||
val->i = (from_bcd_be(resbuf, (reslen * 2)) == 0) ? 0 : 1;
|
||||
break;
|
||||
default:
|
||||
val->i = 0;
|
||||
break;
|
||||
}
|
||||
return RIG_OK;
|
||||
}
|
||||
|
||||
val->f = (float) icom_val;
|
||||
break;
|
||||
|
||||
case TOK_DIGI_SEL_FUNC:
|
||||
retval = icom_get_raw(rig, C_CTL_FUNC, S_FUNC_DIGISEL, 0, NULL, &icom_val);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
val->i = icom_val ? 1 : 0;
|
||||
break;
|
||||
|
||||
case TOK_DIGI_SEL_LEVEL:
|
||||
retval = icom_get_raw(rig, C_CTL_LVL, S_LVL_DIGI, 0, NULL, &icom_val);
|
||||
|
||||
if (retval != RIG_OK)
|
||||
{
|
||||
return retval;
|
||||
}
|
||||
|
||||
val->f = (float) icom_val;
|
||||
break;
|
||||
|
||||
default:
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
/*
|
||||
* icom_set_ext_cmd
|
||||
* Assumes rig!=NULL, rig->state.priv!=NULL
|
||||
*/
|
||||
int icom_set_ext_cmd(RIG *rig, vfo_t vfo, token_t token, value_t val)
|
||||
{
|
||||
int i;
|
||||
unsigned char cmdbuf[MAXFRAMELEN];
|
||||
int cmdlen = 0;
|
||||
unsigned char ackbuf[MAXFRAMELEN];
|
||||
int acklen = 0;
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
for (i = 0; icom_ext_cmd[i].token != 0; i++) {
|
||||
if (icom_ext_cmd[i].token == token) {
|
||||
if (!(icom_ext_cmd[i].submod & SC_MOD_RD)) break;
|
||||
if ((icom_ext_cmd[i].submod & SC_MOD_RW12) == SC_MOD_RW12) {
|
||||
cmdbuf[0] = 0x01;
|
||||
cmdlen = 1;
|
||||
} else {
|
||||
cmdlen = icom_ext_cmd[i].sublen - 1;
|
||||
memcpy(cmdbuf, icom_ext_cmd[i].subext, cmdlen);
|
||||
}
|
||||
int wrd = val.i;
|
||||
int j;
|
||||
switch (icom_ext_cmd[i].dattyp) {
|
||||
case CMD_DAT_WRD:
|
||||
for (j = 1; j <= icom_ext_cmd[i].datlen; j++) {
|
||||
cmdbuf[cmdlen + icom_ext_cmd[i].datlen - j] = wrd & 0xff;
|
||||
wrd >>= 8;
|
||||
}
|
||||
break;
|
||||
case CMD_DAT_BUF:
|
||||
memcpy(&cmdbuf[cmdlen], val.s, icom_ext_cmd[i].datlen);
|
||||
break;
|
||||
case CMD_DAT_INT:
|
||||
case CMD_DAT_BOL:
|
||||
to_bcd_be(&cmdbuf[cmdlen], val.i, (icom_ext_cmd[i].datlen * 2));
|
||||
break;
|
||||
case CMD_DAT_FLT:
|
||||
to_bcd_be(&cmdbuf[cmdlen], (int) val.f, (cmdlen * 2));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
cmdlen += icom_ext_cmd[i].datlen;
|
||||
return icom_transaction(rig, icom_ext_cmd[i].command, icom_ext_cmd[i].subcmd,
|
||||
cmdbuf, cmdlen, ackbuf, &acklen);
|
||||
}
|
||||
}
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
19
icom/icom.h
19
icom/icom.h
|
@ -105,6 +105,17 @@ struct icom_agc_level
|
|||
icom_level; /* Icom AGC level for C_CTL_FUNC (0x16), S_FUNC_AGC (0x12) command */
|
||||
};
|
||||
|
||||
struct cmdparams { /* Lookup table items for icom_ext_parm */
|
||||
token_t token; /* TOKEN_BACKEND */
|
||||
int command; /* CI-V command */
|
||||
int subcmd; /* CI-V Subcommand */
|
||||
int submod; /* Subcommand modifier */
|
||||
int sublen; /* Number of bytes for subcommand extension */
|
||||
unsigned char subext[4]; /* Subcommand extension bytes */
|
||||
int dattyp; /* Data type conversion */
|
||||
int datlen; /* Number of data bytes in frame */
|
||||
};
|
||||
|
||||
struct icom_priv_caps
|
||||
{
|
||||
unsigned char re_civ_addr; /* the remote dlft equipment's CI-V address*/
|
||||
|
@ -225,8 +236,14 @@ int icom_set_ext_level(RIG *rig, vfo_t vfo, token_t token, value_t val);
|
|||
int icom_get_ext_level(RIG *rig, vfo_t vfo, token_t token, value_t *val);
|
||||
int icom_set_func(RIG *rig, vfo_t vfo, setting_t func, int status);
|
||||
int icom_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status);
|
||||
int icom_set_ext_func(RIG *rig, vfo_t vfo, token_t token, int status);
|
||||
int icom_get_ext_func(RIG *rig, vfo_t vfo, token_t token, int *status);
|
||||
int icom_set_parm(RIG *rig, setting_t parm, value_t val);
|
||||
int icom_get_parm(RIG *rig, setting_t parm, value_t *val);
|
||||
int icom_set_ext_parm(RIG *rig, token_t token, value_t val);
|
||||
int icom_get_ext_parm(RIG *rig, token_t token, value_t *val);
|
||||
int icom_set_ext_cmd(RIG *rig, vfo_t vfo, token_t token, value_t val);
|
||||
int icom_get_ext_cmd(RIG *rig, vfo_t vfo, token_t token, value_t *val);
|
||||
int icom_set_conf(RIG *rig, token_t token, const char *val);
|
||||
int icom_get_conf(RIG *rig, token_t token, char *val);
|
||||
int icom_set_powerstat(RIG *rig, powerstat_t status);
|
||||
|
@ -261,6 +278,8 @@ int icom_get_custom_parm_time(RIG *rig, int parmbuflen, unsigned char *parmbuf,
|
|||
int *seconds);
|
||||
|
||||
extern const struct confparams icom_cfg_params[];
|
||||
extern const struct confparams icom_ext_parms[];
|
||||
extern const struct cmdparams icom_ext_cmds[];
|
||||
|
||||
extern const struct rig_caps ic703_caps;
|
||||
extern const struct rig_caps ic706_caps;
|
||||
|
|
|
@ -92,8 +92,10 @@
|
|||
#define C_CTL_MEM 0x1a /* Misc memory/bank/rig control functions, Sc */
|
||||
#define C_SET_TONE 0x1b /* Set tone frequency */
|
||||
#define C_CTL_PTT 0x1c /* Control Transmit On/Off, Sc */
|
||||
#define C_CTL_DVT 0x1f /* Digital modes calsigns & messages */
|
||||
#define C_CTL_DIG 0x20 /* Digital modes settings & status */
|
||||
#define C_CTL_RIT 0x21 /* RIT/XIT control */
|
||||
#define C_CTL_DSD 0x22 /* D-STAR Data */
|
||||
#define C_SEND_SEL_FREQ 0x25 /* Send/Recv sel/unsel VFO frequency */
|
||||
#define C_CTL_MTEXT 0x70 /* Microtelecom Extension */
|
||||
#define C_CTL_MISC 0x7f /* Miscellaneous control, Sc */
|
||||
|
@ -442,14 +444,17 @@
|
|||
#define S_DIG_DSGPSD 0x03 /* D-STAR GPS data */
|
||||
#define S_DIG_DSGPSM 0x04 /* D-STAR GPS message */
|
||||
#define S_DIG_DSCSQL 0x05 /* D-STAR CSQL */
|
||||
#define S_DIG_P25ID 0x06 /* P25 ID */
|
||||
#define S_DIG_P25ID 0x06 /* P25 ID */
|
||||
#define S_DIG_P25STS 0x07 /* P25 Rx status */
|
||||
#define S_DIG_DPRXID 0x08 /* dPMR Rx ID */
|
||||
#define S_DIG_DPRSTS 0x09 /* dPMR Rx status */
|
||||
#define S_DIG_NXRXID 0x0A /* NXDN Rx ID */
|
||||
#define S_DIG_NXRSTS 0x0B /* NXDN Rx status */
|
||||
#define S_DIG_DCRXID 0x0C /* DCR Rx ID */
|
||||
#define S_DIG_DCRSTS 0x0D /* DCR Rx status */
|
||||
#define S_DVT_DSMYCS 0x00 /* D-STAR My CS */
|
||||
#define S_DVT_DSTXCS 0x01 /* D-STAR Tx CS */
|
||||
#define S_DVT_DSTXMS 0x02 /* D-STAR Tx Mess */
|
||||
#define S_DSD_DSTXDT 0x00 /* D-STAR Tx Data */
|
||||
|
||||
/*
|
||||
* C_CTL_MISC OptoScan extension
|
||||
|
@ -502,5 +507,34 @@
|
|||
#define TOK_DRIVE_GAIN TOKEN_BACKEND(103)
|
||||
#define TOK_DIGI_SEL_FUNC TOKEN_BACKEND(104)
|
||||
#define TOK_DIGI_SEL_LEVEL TOKEN_BACKEND(105)
|
||||
#define TOK_DSTAR_CALL_SIGN TOKEN_BACKEND(106)
|
||||
#define TOK_DSTAR_MESSAGE TOKEN_BACKEND(107)
|
||||
#define TOK_DSTAR_STATUS TOKEN_BACKEND(108)
|
||||
#define TOK_DSTAR_GPS_DATA TOKEN_BACKEND(109)
|
||||
#define TOK_DSTAR_GPS_MESS TOKEN_BACKEND(110)
|
||||
#define TOK_DSTAR_DSQL TOKEN_BACKEND(111)
|
||||
#define TOK_DSTAR_MY_CS TOKEN_BACKEND(112)
|
||||
#define TOK_DSTAR_TX_CS TOKEN_BACKEND(113)
|
||||
#define TOK_DSTAR_TX_MESS TOKEN_BACKEND(114)
|
||||
#define TOK_DSTAR_TX_DATA TOKEN_BACKEND(115)
|
||||
|
||||
/*
|
||||
* icom_ext_parm table subcommand modifiers
|
||||
*/
|
||||
|
||||
#define SC_MOD_RD 0x01 /* Readable */
|
||||
#define SC_MOD_WR 0x02 /* Writeable */
|
||||
#define SC_MOD_RW 0x03 /* Read-write */
|
||||
#define SC_MOD_RW12 0x07 /* Write +0x01, Read +0x02 */
|
||||
|
||||
/*
|
||||
* icom_ext_parm table data types
|
||||
*/
|
||||
|
||||
#define CMD_DAT_WRD 0x00 /* literal single word type */
|
||||
#define CMD_DAT_BUF 0x01 /* literal byte buffer type */
|
||||
#define CMD_DAT_INT 0x02 /* bcd int type */
|
||||
#define CMD_DAT_FLT 0x03 /* bcd float type */
|
||||
#define CMD_DAT_BOL 0x04 /* bcd boolean type */
|
||||
|
||||
#endif /* _ICOM_DEFS_H */
|
||||
|
|
11
icom/icr30.c
11
icom/icr30.c
|
@ -42,9 +42,9 @@
|
|||
#define ICR30_LEVEL_ALL (RIG_LEVEL_ATT|RIG_LEVEL_AF|RIG_LEVEL_RF|\
|
||||
RIG_LEVEL_SQL|RIG_LEVEL_RAWSTR|RIG_LEVEL_STRENGTH)
|
||||
|
||||
#define ICR30_VFO_ALL (RIG_VFO_A)
|
||||
#define ICR30_VFO_ALL (RIG_VFO_MAIN|RIG_VFO_SUB)
|
||||
|
||||
#define ICR30_VFO_OPS (RIG_VFO_MAIN|RIG_VFO_SUB)
|
||||
#define ICR30_VFO_OPS (RIG_OP_FROM_VFO|RIG_OP_TO_VFO|RIG_OP_MCL)
|
||||
#define ICR30_SCAN_OPS (RIG_SCAN_NONE)
|
||||
|
||||
#define ICR30_STR_CAL { 2, \
|
||||
|
@ -126,11 +126,12 @@ const struct rig_caps icr30_caps =
|
|||
.has_get_level = ICR30_LEVEL_ALL,
|
||||
.has_set_level = RIG_LEVEL_SET(ICR30_LEVEL_ALL),
|
||||
.has_get_parm = RIG_PARM_NONE,
|
||||
.has_set_parm = RIG_PARM_NONE, /* FIXME: parms */
|
||||
.has_set_parm = RIG_PARM_NONE,
|
||||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
},
|
||||
.parm_gran = {},
|
||||
.extparms = icom_ext_parms,
|
||||
.ctcss_list = common_ctcss_list,
|
||||
.dcs_list = common_dcs_list,
|
||||
.preamp = { RIG_DBLST_END, },
|
||||
|
@ -228,6 +229,10 @@ const struct rig_caps icr30_caps =
|
|||
.get_level = icom_get_level,
|
||||
.set_func = icom_set_func,
|
||||
.get_func = icom_get_func,
|
||||
.set_parm = icom_set_parm,
|
||||
.get_parm = icom_get_parm,
|
||||
.set_ext_parm = icom_set_ext_parm,
|
||||
.get_ext_parm = icom_get_ext_parm,
|
||||
.get_dcd = icom_get_dcd,
|
||||
.set_ctcss_sql = icom_set_ctcss_sql,
|
||||
.get_ctcss_sql = icom_get_ctcss_sql,
|
||||
|
|
|
@ -122,6 +122,7 @@ const struct rig_caps icr8600_caps =
|
|||
.has_set_parm = RIG_PARM_SET(ICR8600_PARM_ALL),
|
||||
.level_gran = { [LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } } },
|
||||
.parm_gran = { [PARM_TIME] = { .min = { .i = 0 }, .max = { .i = 86399} } },
|
||||
.extparms = icom_ext_parms,
|
||||
.ctcss_list = common_ctcss_list,
|
||||
.dcs_list = common_dcs_list,
|
||||
.preamp = { 20, RIG_DBLST_END, }, /* 20 on HF, 14 on VHF, UHF, same setting */
|
||||
|
@ -222,6 +223,8 @@ const struct rig_caps icr8600_caps =
|
|||
.get_level = icom_get_level,
|
||||
.set_parm = icr8600_set_parm,
|
||||
.get_parm = icr8600_get_parm,
|
||||
.set_ext_parm = icom_set_ext_parm,
|
||||
.get_ext_parm = icom_get_ext_parm,
|
||||
.get_dcd = icom_get_dcd,
|
||||
.set_mem = icom_set_mem,
|
||||
.vfo_op = icom_vfo_op,
|
||||
|
|
|
@ -88,7 +88,7 @@ const struct rig_caps id31_caps =
|
|||
.version = BACKEND_VER ".0",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_UNTESTED,
|
||||
.rig_type = RIG_TYPE_MOBILE,
|
||||
.rig_type = RIG_TYPE_HANDHELD,
|
||||
.ptt_type = RIG_PTT_RIG,
|
||||
.dcd_type = RIG_DCD_RIG,
|
||||
.port_type = RIG_PORT_SERIAL,
|
||||
|
@ -111,6 +111,7 @@ const struct rig_caps id31_caps =
|
|||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
},
|
||||
.extparms = icom_ext_parms,
|
||||
.parm_gran = {},
|
||||
.ctcss_list = common_ctcss_list,
|
||||
.dcs_list = full_dcs_list,
|
||||
|
@ -185,7 +186,10 @@ const struct rig_caps id31_caps =
|
|||
.get_func = icom_get_func,
|
||||
.set_level = icom_set_level,
|
||||
.get_level = icom_get_level,
|
||||
|
||||
.set_parm = icom_set_parm,
|
||||
.get_parm = icom_get_parm,
|
||||
.set_ext_parm = icom_set_ext_parm,
|
||||
.get_ext_parm = icom_get_ext_parm,
|
||||
.set_ptt = icom_set_ptt,
|
||||
.get_ptt = icom_get_ptt,
|
||||
.get_dcd = icom_get_dcd,
|
||||
|
|
|
@ -115,6 +115,7 @@ const struct rig_caps id4100_caps =
|
|||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
},
|
||||
.extparms = icom_ext_parms,
|
||||
.parm_gran = {},
|
||||
.ctcss_list = common_ctcss_list,
|
||||
.dcs_list = full_dcs_list,
|
||||
|
@ -194,6 +195,10 @@ const struct rig_caps id4100_caps =
|
|||
.get_func = icom_get_func,
|
||||
.set_level = icom_set_level,
|
||||
.get_level = icom_get_level,
|
||||
.set_parm = icom_set_parm,
|
||||
.get_parm = icom_get_parm,
|
||||
.set_ext_parm = icom_set_ext_parm,
|
||||
.get_ext_parm = icom_get_ext_parm,
|
||||
|
||||
.set_ptt = icom_set_ptt,
|
||||
.get_ptt = icom_get_ptt,
|
||||
|
|
|
@ -88,7 +88,7 @@ const struct rig_caps id51_caps =
|
|||
.version = BACKEND_VER ".0",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_UNTESTED,
|
||||
.rig_type = RIG_TYPE_MOBILE,
|
||||
.rig_type = RIG_TYPE_HANDHELD,
|
||||
.ptt_type = RIG_PTT_RIG,
|
||||
.dcd_type = RIG_DCD_RIG,
|
||||
.port_type = RIG_PORT_SERIAL,
|
||||
|
@ -111,6 +111,7 @@ const struct rig_caps id51_caps =
|
|||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
},
|
||||
.extparms = icom_ext_parms,
|
||||
.parm_gran = {},
|
||||
.ctcss_list = common_ctcss_list,
|
||||
.dcs_list = full_dcs_list,
|
||||
|
@ -190,6 +191,10 @@ const struct rig_caps id51_caps =
|
|||
.get_func = icom_get_func,
|
||||
.set_level = icom_set_level,
|
||||
.get_level = icom_get_level,
|
||||
.set_parm = icom_set_parm,
|
||||
.get_parm = icom_get_parm,
|
||||
.set_ext_parm = icom_set_ext_parm,
|
||||
.get_ext_parm = icom_get_ext_parm,
|
||||
|
||||
.set_ptt = icom_set_ptt,
|
||||
.get_ptt = icom_get_ptt,
|
||||
|
|
|
@ -115,6 +115,7 @@ const struct rig_caps id5100_caps =
|
|||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
},
|
||||
.extparms = icom_ext_parms,
|
||||
.parm_gran = {},
|
||||
.ctcss_list = common_ctcss_list,
|
||||
.dcs_list = full_dcs_list,
|
||||
|
@ -194,7 +195,11 @@ const struct rig_caps id5100_caps =
|
|||
.get_func = icom_get_func,
|
||||
.set_level = icom_set_level,
|
||||
.get_level = icom_get_level,
|
||||
|
||||
.set_parm = icom_set_parm,
|
||||
.get_parm = icom_get_parm,
|
||||
.set_ext_parm = icom_set_ext_parm,
|
||||
.get_ext_parm = icom_get_ext_parm,
|
||||
|
||||
.set_ptt = icom_set_ptt,
|
||||
.get_ptt = icom_get_ptt,
|
||||
.get_dcd = icom_get_dcd,
|
||||
|
|
Ładowanie…
Reference in New Issue