kopia lustrzana https://github.com/Hamlib/Hamlib
update rigs for new functions
rodzic
99a99ba97e
commit
f6b39c1161
|
@ -22,7 +22,7 @@
|
|||
#ifndef _FRAME_H
|
||||
#define _FRAME_H 1
|
||||
|
||||
#define MAXFRAMELEN 512
|
||||
#define MAXFRAMELEN 80
|
||||
|
||||
/*
|
||||
* helper functions
|
||||
|
|
|
@ -123,7 +123,7 @@ struct confparams ic7100_ext[] = {
|
|||
};
|
||||
|
||||
struct cmdparams ic7100_extcmds[] = {
|
||||
{ {.t=TOK_LINK} }
|
||||
{ {0} }
|
||||
};
|
||||
|
||||
// IC-7100 S-meter calibration data based on manual
|
||||
|
|
114
icom/icom.c
114
icom/icom.c
|
@ -424,6 +424,17 @@ const struct confparams icom_ext_parms[] =
|
|||
{ TOK_SCOPE_DAT, "scpdat", "Scope data", "", "", RIG_CONF_BINARY, {} },
|
||||
{ TOK_SCOPE_STS, "scpsts", "Scope status", "", "", RIG_CONF_CHECKBUTTON, {} },
|
||||
{ TOK_SCOPE_DOP, "scpdop", "Scope data output", "", "", RIG_CONF_CHECKBUTTON, {} },
|
||||
{ TOK_SCOPE_MSS, "scpmss", "Scope main/sub", "", "", RIG_CONF_CHECKBUTTON, {} },
|
||||
{ TOK_SCOPE_MOD, "scpmod", "Scope mode", "", "", RIG_CONF_BINARY, {} },
|
||||
{ TOK_SCOPE_SPN, "scpspn", "Scope span", "", "", RIG_CONF_BINARY, {} },
|
||||
{ TOK_SCOPE_EDG, "scpedg", "Scope edge", "", "", RIG_CONF_BINARY, {} },
|
||||
{ TOK_SCOPE_HLD, "scphld", "Scope hold", "", "", RIG_CONF_BINARY, {} },
|
||||
{ TOK_SCOPE_REF, "scpref", "Scope reference", "", "", RIG_CONF_BINARY, {} },
|
||||
{ TOK_SCOPE_SWP, "scpswp", "Scope sweep", "", "", RIG_CONF_BINARY, {} },
|
||||
{ TOK_SCOPE_STX, "scpstx", "Scope Tx o/p", "", "", RIG_CONF_CHECKBUTTON, {} },
|
||||
{ TOK_SCOPE_TYP, "scptyp", "Scope type", "", "", RIG_CONF_NUMERIC, {} },
|
||||
{ TOK_SCOPE_VBW, "scpvbw", "Scope vbw", "", "", RIG_CONF_BINARY, {} },
|
||||
{ TOK_SCOPE_FEF, "scpfef", "Scope edge", "", "", RIG_CONF_BINARY, {} },
|
||||
{ RIG_CONF_END, NULL, }
|
||||
};
|
||||
|
||||
|
@ -1867,6 +1878,14 @@ int icom_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
(const struct icom_priv_caps *) rig->caps->priv;
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
const struct cmdparams *cmd = priv_caps->riglevels;
|
||||
for (i = 0; cmd && cmd[i].id.s != 0; i++) {
|
||||
if (cmd[i].id.s == level) {
|
||||
return icom_set_cmd(rig,vfo, (struct cmdparams *)&cmd[i], val);
|
||||
}
|
||||
}
|
||||
|
||||
rs = &rig->state;
|
||||
|
||||
/*
|
||||
|
@ -2170,19 +2189,10 @@ int icom_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
lvl_sc = S_LVL_MON;
|
||||
break;
|
||||
|
||||
default: {
|
||||
int i;
|
||||
const struct icom_priv_caps *priv = rig->caps->priv;
|
||||
const struct cmdparams *cmd = priv->riglevels;
|
||||
for (i = 0; cmd && cmd[i].id.s != 0; i++) {
|
||||
if (cmd[i].id.s == level) {
|
||||
return icom_set_cmd(rig,vfo, (struct cmdparams *)&cmd[i], val);
|
||||
}
|
||||
}
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: unsupported set_level %s", __func__,
|
||||
rig_strlevel(level));
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
retval = icom_transaction(rig, lvl_cn, lvl_sc, lvlbuf, lvl_len, ackbuf,
|
||||
|
@ -2221,6 +2231,16 @@ int icom_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
(const struct icom_priv_caps *) rig->caps->priv;
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
const struct icom_priv_caps *priv = rig->caps->priv;
|
||||
const struct cmdparams *cmd = priv->riglevels;
|
||||
int i;
|
||||
for (i = 0; cmd && cmd[i].id.s != 0; i++) {
|
||||
if (cmd[i].id.s == level) {
|
||||
return icom_get_cmd(rig, vfo, (struct cmdparams *)&cmd[i], val);
|
||||
}
|
||||
}
|
||||
|
||||
rs = &rig->state;
|
||||
|
||||
lvl2_len = 0;
|
||||
|
@ -2408,19 +2428,10 @@ int icom_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
lvl_sc = S_LVL_MON;
|
||||
break;
|
||||
|
||||
default: {
|
||||
const struct icom_priv_caps *priv = rig->caps->priv;
|
||||
const struct cmdparams *cmd = priv->riglevels;
|
||||
int i;
|
||||
for (i = 0; cmd && cmd[i].id.s != 0; i++) {
|
||||
if (cmd[i].id.s == level) {
|
||||
return icom_get_cmd(rig, vfo, (struct cmdparams *)&cmd[i], val);
|
||||
}
|
||||
}
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: unsupported get_level %s", __func__,
|
||||
rig_strlevel(level));
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
/* use lvl2buf and lvl2_len for 'set mode' subcommand */
|
||||
|
@ -2702,15 +2713,13 @@ int icom_get_ext_cmd(RIG *rig, vfo_t vfo, token_t token, value_t *val)
|
|||
|
||||
const struct icom_priv_caps *priv = rig->caps->priv;
|
||||
const struct cmdparams *cmd = priv->extcmds ? priv->extcmds : icom_ext_cmd;
|
||||
for (i = 0; cmd && cmd[i].id.t != 0; i++) {
|
||||
if (cmd[i].id.t == TOK_LINK) {
|
||||
for (i = 0; (cmd[i].id.t != 0) || (cmd != icom_ext_cmd); ) {
|
||||
if (cmd[i].id.t == 0) {
|
||||
cmd = icom_ext_cmd;
|
||||
i = -1;
|
||||
continue;
|
||||
}
|
||||
if (cmd[i].id.t == token) {
|
||||
i = 0;
|
||||
} else if (cmd[i].id.t == token) {
|
||||
return icom_get_cmd(rig, vfo, (struct cmdparams *)&cmd[i], val);
|
||||
}
|
||||
} else i++;
|
||||
}
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
@ -2729,15 +2738,13 @@ int icom_set_ext_cmd(RIG *rig, vfo_t vfo, token_t token, value_t val)
|
|||
|
||||
const struct icom_priv_caps *priv = rig->caps->priv;
|
||||
const struct cmdparams *cmd = priv->extcmds ? priv->extcmds : icom_ext_cmd;
|
||||
for (i = 0; cmd && cmd[i].id.t != 0; i++) {
|
||||
if (cmd[i].id.t == TOK_LINK) {
|
||||
for (i = 0; (cmd[i].id.t != 0) || (cmd != icom_ext_cmd); ) {
|
||||
if (cmd[i].id.t == 0) {
|
||||
cmd = icom_ext_cmd;
|
||||
i = -1;
|
||||
continue;
|
||||
}
|
||||
if (cmd[i].id.t == token) {
|
||||
i = 0;
|
||||
} else if (cmd[i].id.t == token) {
|
||||
return icom_set_cmd(rig, vfo, (struct cmdparams *)&cmd[i], val);
|
||||
}
|
||||
} else i++;
|
||||
}
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
@ -4464,6 +4471,14 @@ int icom_set_parm(RIG *rig, setting_t parm, value_t val)
|
|||
{
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
int i;
|
||||
const struct icom_priv_caps *priv = rig->caps->priv;
|
||||
const struct cmdparams *cmd = priv->rigparms;
|
||||
for (i = 0; cmd && cmd[i].id.s != 0; i++) {
|
||||
if (cmd[i].id.s == parm) {
|
||||
return icom_set_cmd(rig, RIG_VFO_NONE, (struct cmdparams *)&cmd[i], val);
|
||||
}
|
||||
}
|
||||
switch (parm)
|
||||
{
|
||||
case RIG_PARM_ANN:
|
||||
|
@ -4493,19 +4508,10 @@ int icom_set_parm(RIG *rig, setting_t parm, value_t val)
|
|||
return icom_set_raw(rig, C_CTL_ANN, ann_mode, 0, NULL, 0, 0);
|
||||
}
|
||||
|
||||
default:{
|
||||
int i;
|
||||
const struct icom_priv_caps *priv = rig->caps->priv;
|
||||
const struct cmdparams *cmd = priv->rigparms;
|
||||
for (i = 0; cmd && cmd[i].id.s != 0; i++) {
|
||||
if (cmd[i].id.s == parm) {
|
||||
return icom_set_cmd(rig, RIG_VFO_NONE, (struct cmdparams *)&cmd[i], val);
|
||||
}
|
||||
}
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: unsupported set_parm %s\n", __func__,
|
||||
rig_strparm(parm));
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4524,21 +4530,21 @@ int icom_get_parm(RIG *rig, setting_t parm, value_t *val)
|
|||
{
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
||||
const struct icom_priv_caps *priv = rig->caps->priv;
|
||||
const struct cmdparams *cmd = priv->rigparms;
|
||||
int i;
|
||||
for (i = 0; cmd && cmd[i].id.s != 0; i++) {
|
||||
if (cmd[i].id.s == parm) {
|
||||
return icom_get_cmd(rig, RIG_VFO_NONE, (struct cmdparams *)&cmd[i], val);
|
||||
}
|
||||
}
|
||||
|
||||
switch (parm)
|
||||
{
|
||||
default: {
|
||||
const struct icom_priv_caps *priv = rig->caps->priv;
|
||||
const struct cmdparams *cmd = priv->rigparms;
|
||||
int i;
|
||||
for (i = 0; cmd && cmd[i].id.s != 0; i++) {
|
||||
if (cmd[i].id.s == parm) {
|
||||
return icom_get_cmd(rig, RIG_VFO_NONE, (struct cmdparams *)&cmd[i], val);
|
||||
}
|
||||
}
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: unsupported get_parm %s", __func__,
|
||||
rig_strparm(parm));
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
|
|
77
icom/icr30.c
77
icom/icr30.c
|
@ -48,9 +48,9 @@
|
|||
#define ICR30_VFO_OPS (RIG_OP_FROM_VFO|RIG_OP_TO_VFO|RIG_OP_MCL)
|
||||
#define ICR30_SCAN_OPS (RIG_SCAN_NONE)
|
||||
|
||||
#define TOK_ANL TOKEN_BACKEND(110)
|
||||
#define TOK_EAR TOKEN_BACKEND(111)
|
||||
#define TOK_REC TOKEN_BACKEND(112)
|
||||
#define TOK_ANL TOKEN_BACKEND(001)
|
||||
#define TOK_EAR TOKEN_BACKEND(002)
|
||||
#define TOK_REC TOKEN_BACKEND(003)
|
||||
|
||||
int icr30_tokens[] = { TOK_ANL, TOK_EAR, TOK_REC,
|
||||
TOK_DSTAR_DSQL, TOK_DSTAR_CALL_SIGN, TOK_DSTAR_MESSAGE, TOK_DSTAR_STATUS,
|
||||
|
@ -64,11 +64,11 @@ struct confparams icr30_ext[] = {
|
|||
{ 0 }
|
||||
};
|
||||
|
||||
struct cmdparams icr30_cmd[] = {
|
||||
struct cmdparams icr30_extcmds[] = {
|
||||
{ {.t=TOK_ANL}, C_CTL_MEM, S_MEM_ANL, SC_MOD_RW, 0, {}, CMD_DAT_BOL, 1 },
|
||||
{ {.t=TOK_EAR}, C_CTL_MEM, S_MEM_EAR, SC_MOD_RW, 0, {}, CMD_DAT_BOL, 1 },
|
||||
{ {.t=TOK_REC}, C_CTL_MEM, S_MEM_REC, SC_MOD_WR, 0, {}, CMD_DAT_BOL, 1 },
|
||||
{ {.t=TOK_LINK} }
|
||||
{ {0} }
|
||||
};
|
||||
|
||||
#define ICR30_STR_CAL { 2, \
|
||||
|
@ -121,7 +121,7 @@ static const struct icom_priv_caps icr30_priv_caps =
|
|||
r8500_ts_sc_list, /* wrong, but don't have set_ts anyway */
|
||||
.r2i_mode = icr30_r2i_mode,
|
||||
.offs_len = 4,
|
||||
.extcmds = icr30_cmd
|
||||
.extcmds = icr30_extcmds /* Custom ext_parm parameters */
|
||||
};
|
||||
|
||||
const struct rig_caps icr30_caps =
|
||||
|
@ -225,46 +225,47 @@ const struct rig_caps icr30_caps =
|
|||
},
|
||||
.str_cal = ICR30_STR_CAL,
|
||||
|
||||
.cfgparams = icom_cfg_params,
|
||||
.set_conf = icom_set_conf,
|
||||
.get_conf = icom_get_conf,
|
||||
.cfgparams = icom_cfg_params,
|
||||
.set_conf = icom_set_conf,
|
||||
.get_conf = icom_get_conf,
|
||||
.set_powerstat = icom_set_powerstat,
|
||||
|
||||
.priv = (void *)& icr30_priv_caps,
|
||||
.rig_init = icom_init,
|
||||
.rig_cleanup = icom_cleanup,
|
||||
.rig_open = NULL,
|
||||
.rig_close = NULL,
|
||||
.rig_init = icom_init,
|
||||
.rig_cleanup = icom_cleanup,
|
||||
.rig_open = NULL,
|
||||
.rig_close = NULL,
|
||||
|
||||
.set_freq = icom_set_freq,
|
||||
.get_freq = icom_get_freq,
|
||||
.set_mode = icr30_set_mode,
|
||||
.get_mode = icom_get_mode,
|
||||
.vfo_op = icom_vfo_op,
|
||||
.set_vfo = icom_set_vfo,
|
||||
.set_freq = icom_set_freq,
|
||||
.get_freq = icom_get_freq,
|
||||
.set_mode = icr30_set_mode,
|
||||
.get_mode = icom_get_mode,
|
||||
.vfo_op = icom_vfo_op,
|
||||
.set_vfo = icom_set_vfo,
|
||||
.set_rptr_offs = icom_set_rptr_offs,
|
||||
.get_rptr_offs = icom_get_rptr_offs,
|
||||
.set_rptr_shift = icom_set_rptr_shift,
|
||||
.get_rptr_shift = icom_get_rptr_shift,
|
||||
.set_ts = icom_set_ts,
|
||||
.get_ts = icom_get_ts,
|
||||
.set_ant = icom_set_ant,
|
||||
.get_ant = icom_get_ant,
|
||||
.set_ts = icom_set_ts,
|
||||
.get_ts = icom_get_ts,
|
||||
.set_ant = icom_set_ant,
|
||||
.get_ant = icom_get_ant,
|
||||
.set_bank = icom_set_bank,
|
||||
.set_mem = icom_set_mem,
|
||||
.decode_event = icom_decode_event,
|
||||
.set_level = icom_set_level,
|
||||
.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,
|
||||
.set_ext_level = icom_set_ext_level,
|
||||
.get_ext_level = icom_get_ext_level,
|
||||
.get_dcd = icom_get_dcd,
|
||||
.set_ctcss_sql = icom_set_ctcss_sql,
|
||||
.get_ctcss_sql = icom_get_ctcss_sql,
|
||||
.set_dcs_sql = icom_set_dcs_sql,
|
||||
.get_dcs_sql = icom_get_dcs_sql,
|
||||
.set_level = icom_set_level,
|
||||
.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,
|
||||
.set_ext_level = icom_set_ext_level,
|
||||
.get_ext_level = icom_get_ext_level,
|
||||
.get_dcd = icom_get_dcd,
|
||||
.set_ctcss_sql = icom_set_ctcss_sql,
|
||||
.get_ctcss_sql = icom_get_ctcss_sql,
|
||||
.set_dcs_sql = icom_set_dcs_sql,
|
||||
.get_dcs_sql = icom_get_dcs_sql,
|
||||
};
|
||||
|
|
|
@ -77,7 +77,8 @@ struct cmdparams icr8600_rigparms[] = {
|
|||
|
||||
int icr8600_tokens[] = { TOK_DSTAR_DSQL, TOK_DSTAR_CALL_SIGN, TOK_DSTAR_MESSAGE, TOK_DSTAR_STATUS,
|
||||
TOK_DSTAR_GPS_DATA, TOK_DSTAR_GPS_MESS, TOK_DSTAR_CODE, TOK_DSTAR_TX_DATA,
|
||||
TOK_SCOPE_DAT, TOK_SCOPE_STS, TOK_SCOPE_DOP,
|
||||
TOK_SCOPE_DAT, TOK_SCOPE_STS, TOK_SCOPE_DOP, TOK_SCOPE_MSS, TOK_SCOPE_MOD, TOK_SCOPE_SPN,
|
||||
TOK_SCOPE_HLD, TOK_SCOPE_REF, TOK_SCOPE_SWP, TOK_SCOPE_TYP, TOK_SCOPE_VBW, TOK_SCOPE_FEF,
|
||||
TOK_BACKEND_NONE };
|
||||
|
||||
struct confparams icr8600_ext[] = {
|
||||
|
@ -85,7 +86,7 @@ struct confparams icr8600_ext[] = {
|
|||
};
|
||||
|
||||
struct cmdparams icr8600_extcmds[] = {
|
||||
{ {.t=TOK_LINK} }
|
||||
{ {0} }
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -103,14 +104,14 @@ struct cmdparams icr8600_extcmds[] = {
|
|||
|
||||
static const struct icom_priv_caps icr8600_priv_caps =
|
||||
{
|
||||
0x96, /* default address */
|
||||
0, /* 731 mode */
|
||||
0, /* no XCHG */
|
||||
r8600_ts_sc_list, /* list of tuning steps */
|
||||
.offs_len = 4, /* Repeater offset is 4 bytes */
|
||||
.serial_USB_echo_check = 1, /* USB CI-V may not echo */
|
||||
.rigparms = icr8600_rigparms,
|
||||
.extcmds = icr8600_extcmds
|
||||
0x96, /* default address */
|
||||
0, /* 731 mode */
|
||||
0, /* no XCHG */
|
||||
r8600_ts_sc_list, /* list of tuning steps */
|
||||
.offs_len = 4, /* Repeater offset is 4 bytes */
|
||||
.serial_USB_echo_check = 1, /* USB CI-V may not echo */
|
||||
.rigparms = icr8600_rigparms, /* Custom parm parameters */
|
||||
.extcmds = icr8600_extcmds /* Custom ext_parm parameters */
|
||||
};
|
||||
|
||||
const struct rig_caps icr8600_caps =
|
||||
|
@ -219,6 +220,7 @@ const struct rig_caps icr8600_caps =
|
|||
|
||||
.set_conf = icom_set_conf,
|
||||
.get_conf = icom_get_conf,
|
||||
// .set_powerstat = icom_set_powerstat,
|
||||
|
||||
.priv = (void *)& icr8600_priv_caps,
|
||||
.rig_init = icom_init,
|
||||
|
|
11
icom/id51.c
11
icom/id51.c
|
@ -27,8 +27,11 @@
|
|||
#include <stdlib.h>
|
||||
|
||||
#include "hamlib/rig.h"
|
||||
#include "idx_builtin.h"
|
||||
#include "token.h"
|
||||
#include "icom.h"
|
||||
#include "idx_builtin.h"
|
||||
#include "icom_defs.h"
|
||||
#include "frame.h"
|
||||
|
||||
/*
|
||||
* Specs and protocol details comes from the chapter 17 of ID-51A_E_PLUS2_CD_0.pdf
|
||||
|
@ -63,6 +66,10 @@
|
|||
|
||||
#define ID51_PARM_ALL RIG_PARM_NONE
|
||||
|
||||
int id51_tokens[] = { TOK_DSTAR_DSQL, TOK_DSTAR_CALL_SIGN, TOK_DSTAR_MESSAGE, TOK_DSTAR_STATUS,
|
||||
TOK_DSTAR_GPS_DATA, TOK_DSTAR_GPS_MESS, TOK_DSTAR_CODE, TOK_DSTAR_TX_DATA,
|
||||
TOK_DSTAR_MY_CS, TOK_DSTAR_TX_CS, TOK_DSTAR_TX_MESS,
|
||||
TOK_BACKEND_NONE };
|
||||
|
||||
/*
|
||||
* FIXME: real measurement
|
||||
|
@ -111,6 +118,7 @@ const struct rig_caps id51_caps =
|
|||
.level_gran = {
|
||||
[LVL_RAWSTR] = { .min = { .i = 0 }, .max = { .i = 255 } },
|
||||
},
|
||||
.ext_tokens = id51_tokens,
|
||||
.extparms = icom_ext_parms,
|
||||
.parm_gran = {},
|
||||
.ctcss_list = common_ctcss_list,
|
||||
|
@ -170,6 +178,7 @@ const struct rig_caps id51_caps =
|
|||
.cfgparams = icom_cfg_params,
|
||||
.set_conf = icom_set_conf,
|
||||
.get_conf = icom_get_conf,
|
||||
.set_powerstat = icom_set_powerstat,
|
||||
|
||||
.priv = (void *)& id51_priv_caps,
|
||||
.rig_init = icom_init,
|
||||
|
|
|
@ -613,7 +613,6 @@ enum rig_conf_e {
|
|||
RIG_CONF_BINARY /*!< Binary buffer type */
|
||||
};
|
||||
|
||||
#define TOK_LINK -1
|
||||
#define RIG_COMBO_MAX 16
|
||||
#define RIG_BIN_MAX 80
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue