kopia lustrzana https://github.com/Hamlib/Hamlib
Coding style edits
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@3055 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.2.13
rodzic
d78648a170
commit
55736a7427
|
@ -16,9 +16,9 @@
|
|||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
* See the file 'COPYING.LIB' in the main Hamlib distribution directory for
|
||||
* See the file 'COPYING.LIB' in the main Hamlib distribution directory for
|
||||
* the complete text of the GNU Lesser Public License version 2.
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
|
@ -35,13 +35,13 @@ static const struct elec_ext_id_str elec_ext_id_str_lst[] = {
|
|||
{ K23, "K23" },
|
||||
{ K30, "K30" },
|
||||
{ K31, "K31" },
|
||||
{ EXT_LEVEL_NONE, NULL }, /* end marker */
|
||||
{ EXT_LEVEL_NONE, NULL }, /* end marker */
|
||||
};
|
||||
|
||||
|
||||
/* Private Elecraft extra levels definitions
|
||||
*
|
||||
* Token definitions for .cfgparams in rig_caps
|
||||
*
|
||||
* Token definitions for .cfgparams in rig_caps
|
||||
* See enum rig_conf_e and struct confparams in rig.h
|
||||
*/
|
||||
const struct confparams elecraft_ext_levels[] = {
|
||||
|
@ -63,13 +63,13 @@ int elecraft_get_extension_level(RIG *rig, const char *cmd, int *ext_level);
|
|||
/* Shared backend function definitions */
|
||||
|
||||
/* elecraft_open()
|
||||
*
|
||||
*
|
||||
* First checks for ID of '017' then tests for an Elecraft radio/backend using
|
||||
* the K2; command. Here we also test for a K3 and if that fails, assume a K2.
|
||||
* Finally, save the value for later reading.
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
int elecraft_open(RIG *rig)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
|
||||
|
@ -81,10 +81,10 @@ int elecraft_open(RIG *rig)
|
|||
char id[KENWOOD_MAX_BUF_LEN];
|
||||
|
||||
/* Actual read extension levels from radio.
|
||||
*
|
||||
*
|
||||
* The value stored in the k?_ext_lvl variables map to
|
||||
* elec_ext_id_str_lst.level and is only written to by the
|
||||
* elecraft_get_extension_level() private function during elecraft_open()
|
||||
* elecraft_get_extension_level() private function during elecraft_open()
|
||||
* and thereafter shall be treated as READ ONLY!
|
||||
*/
|
||||
struct kenwood_priv_data *priv = rig->state.priv;
|
||||
|
@ -95,34 +95,34 @@ int elecraft_open(RIG *rig)
|
|||
return err;
|
||||
|
||||
switch(rig->caps->rig_model) {
|
||||
case RIG_MODEL_K2:
|
||||
err = elecraft_get_extension_level(rig, "K2", &priv->k2_ext_lvl);
|
||||
if (err != RIG_OK)
|
||||
return err;
|
||||
case RIG_MODEL_K2:
|
||||
err = elecraft_get_extension_level(rig, "K2", &priv->k2_ext_lvl);
|
||||
if (err != RIG_OK)
|
||||
return err;
|
||||
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: K2 level is %d, %s\n", __func__,
|
||||
priv->k2_ext_lvl, elec_ext_id_str_lst[priv->k2_ext_lvl].id);
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: K2 level is %d, %s\n", __func__,
|
||||
priv->k2_ext_lvl, elec_ext_id_str_lst[priv->k2_ext_lvl].id);
|
||||
|
||||
break;
|
||||
case RIG_MODEL_K3:
|
||||
err = elecraft_get_extension_level(rig, "K2", &priv->k2_ext_lvl);
|
||||
if (err != RIG_OK)
|
||||
return err;
|
||||
break;
|
||||
case RIG_MODEL_K3:
|
||||
err = elecraft_get_extension_level(rig, "K2", &priv->k2_ext_lvl);
|
||||
if (err != RIG_OK)
|
||||
return err;
|
||||
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: K2 level is %d, %s\n", __func__,
|
||||
priv->k2_ext_lvl, elec_ext_id_str_lst[priv->k2_ext_lvl].id);
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: K2 level is %d, %s\n", __func__,
|
||||
priv->k2_ext_lvl, elec_ext_id_str_lst[priv->k2_ext_lvl].id);
|
||||
|
||||
err = elecraft_get_extension_level(rig, "K3", &priv->k3_ext_lvl);
|
||||
if (err != RIG_OK)
|
||||
return err;
|
||||
err = elecraft_get_extension_level(rig, "K3", &priv->k3_ext_lvl);
|
||||
if (err != RIG_OK)
|
||||
return err;
|
||||
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: K3 level is %d, %s\n", __func__,
|
||||
priv->k3_ext_lvl, elec_ext_id_str_lst[priv->k3_ext_lvl].id);
|
||||
break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: unrecognized rig model %d\n",
|
||||
__func__, rig->caps->rig_model);
|
||||
return -RIG_EINVAL;
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: K3 level is %d, %s\n", __func__,
|
||||
priv->k3_ext_lvl, elec_ext_id_str_lst[priv->k3_ext_lvl].id);
|
||||
break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: unrecognized rig model %d\n",
|
||||
__func__, rig->caps->rig_model);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#ifndef _ELECRAFT_H
|
||||
#define _ELECRAFT_H 1
|
||||
|
||||
#include "hamlib/rig.h"
|
||||
#include <hamlib/rig.h>
|
||||
|
||||
/* The Elecraft Programmer's Reference details the extension level that
|
||||
* a K2 or K3 may have in effect which modify certain commands.
|
||||
|
@ -35,7 +35,7 @@ enum elec_ext_id_e {
|
|||
K22, /* K2 Extended mode */
|
||||
K23, /* K2 Extended mode/rtty_off */
|
||||
K30, /* K3 Normal mode */
|
||||
K31 /* K3 Extended mode */
|
||||
K31 /* K3 Extended mode */
|
||||
};
|
||||
|
||||
struct elec_ext_id_str {
|
||||
|
@ -45,19 +45,19 @@ struct elec_ext_id_str {
|
|||
|
||||
/* Data sub-modes are provided from the K3 via the DT command */
|
||||
enum k3_data_submodes_e {
|
||||
K3_MODE_DATA_A = 0, /* DT0; */
|
||||
K3_MODE_AFSK_A, /* DT1; */
|
||||
K3_MODE_FSK_D, /* DT2; */
|
||||
K3_MODE_PSK_D /* DT3; */
|
||||
K3_MODE_DATA_A = 0, /* DT0; */
|
||||
K3_MODE_AFSK_A, /* DT1; */
|
||||
K3_MODE_FSK_D, /* DT2; */
|
||||
K3_MODE_PSK_D /* DT3; */
|
||||
};
|
||||
|
||||
|
||||
/* Private tokens used for ext_lvl function in Elecraft backends.
|
||||
/* Private tokens used for ext_lvl function in Elecraft backends.
|
||||
* Extra levels which are rig specific should be coded in
|
||||
* the individual rig files and token #s >= 101.
|
||||
*/
|
||||
#define TOK_IF_FREQ TOKEN_BACKEND(101) /* K3 FI command */
|
||||
#define TOK_TX_STAT TOKEN_BACKEND(102) /* K3 TQ command */
|
||||
#define TOK_IF_FREQ TOKEN_BACKEND(101) /* K3 FI command */
|
||||
#define TOK_TX_STAT TOKEN_BACKEND(102) /* K3 TQ command */
|
||||
|
||||
/* Token structure assigned to .cfgparams in rig_caps */
|
||||
extern const struct confparams elecraft_ext_levels[];
|
||||
|
|
129
kenwood/k2.c
129
kenwood/k2.c
|
@ -39,7 +39,7 @@
|
|||
#define K2_FUNC_ALL (RIG_FUNC_NB|RIG_FUNC_LOCK)
|
||||
|
||||
#define K2_LEVEL_ALL (RIG_LEVEL_ATT|RIG_LEVEL_PREAMP|RIG_LEVEL_AGC|RIG_LEVEL_SQL|\
|
||||
RIG_LEVEL_STRENGTH|RIG_LEVEL_RFPOWER|RIG_LEVEL_KEYSPD)
|
||||
RIG_LEVEL_STRENGTH|RIG_LEVEL_RFPOWER|RIG_LEVEL_KEYSPD)
|
||||
|
||||
#define K2_VFO (RIG_VFO_A|RIG_VFO_B)
|
||||
#define K2_VFO_OP (RIG_OP_UP|RIG_OP_DOWN)
|
||||
|
@ -59,7 +59,7 @@ static struct kenwood_priv_caps k2_priv_caps = {
|
|||
/* K2 Filter list, four per mode */
|
||||
struct k2_filt_s {
|
||||
shortfreq_t width; /* Filter width in Hz */
|
||||
char fslot; /* Crystal filter slot number--1-4 */
|
||||
char fslot; /* Crystal filter slot number--1-4 */
|
||||
char afslot; /* AF filter slot number--0-2 */
|
||||
};
|
||||
|
||||
|
@ -103,13 +103,13 @@ int k2_pop_fw_lst(RIG *rig, const char *cmd);
|
|||
const struct rig_caps k2_caps = {
|
||||
.rig_model = RIG_MODEL_K2,
|
||||
.model_name = "K2",
|
||||
.mfg_name = "Elecraft",
|
||||
.version = "20110118",
|
||||
.mfg_name = "Elecraft",
|
||||
.version = "20110118",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_BETA,
|
||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||
.ptt_type = RIG_PTT_RIG,
|
||||
.dcd_type = RIG_DCD_RIG,
|
||||
.status = RIG_STATUS_BETA,
|
||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||
.ptt_type = RIG_PTT_RIG,
|
||||
.dcd_type = RIG_DCD_RIG,
|
||||
.port_type = RIG_PORT_SERIAL,
|
||||
.serial_rate_min = 4800,
|
||||
.serial_rate_max = 4800,
|
||||
|
@ -117,10 +117,10 @@ const struct rig_caps k2_caps = {
|
|||
.serial_stop_bits = 2,
|
||||
.serial_parity = RIG_PARITY_NONE,
|
||||
.serial_handshake = RIG_HANDSHAKE_NONE,
|
||||
.write_delay = 0, /* Timing between bytes */
|
||||
.write_delay = 0, /* Timing between bytes */
|
||||
.post_write_delay = 100, /* Timing between command strings */
|
||||
.timeout = 600, /* FA and FB make take up to 500 ms on band change */
|
||||
.retry = 3,
|
||||
.timeout = 600, /* FA and FB make take up to 500 ms on band change */
|
||||
.retry = 3,
|
||||
|
||||
.has_get_func = K2_FUNC_ALL,
|
||||
.has_set_func = K2_FUNC_ALL,
|
||||
|
@ -128,19 +128,19 @@ const struct rig_caps k2_caps = {
|
|||
.has_set_level = RIG_LEVEL_SET(K2_LEVEL_ALL),
|
||||
.has_get_parm = RIG_PARM_NONE,
|
||||
.has_set_parm = RIG_PARM_NONE, /* FIXME: parms */
|
||||
.level_gran = {}, /* FIXME: granularity */
|
||||
.level_gran = {}, /* FIXME: granularity */
|
||||
.parm_gran = {},
|
||||
.extlevels = elecraft_ext_levels,
|
||||
.extparms = kenwood_cfg_params,
|
||||
.preamp = { 14, RIG_DBLST_END, },
|
||||
.extparms = kenwood_cfg_params,
|
||||
.preamp = { 14, RIG_DBLST_END, },
|
||||
.attenuator = { 10, RIG_DBLST_END, },
|
||||
.max_rit = Hz(9990),
|
||||
.max_xit = Hz(9990),
|
||||
.max_rit = Hz(9990),
|
||||
.max_xit = Hz(9990),
|
||||
.max_ifshift = Hz(0),
|
||||
.vfo_ops = K2_VFO_OP,
|
||||
.vfo_ops = K2_VFO_OP,
|
||||
.targetable_vfo = RIG_TARGETABLE_FREQ,
|
||||
.transceive = RIG_TRN_RIG,
|
||||
.bank_qty = 0,
|
||||
.bank_qty = 0,
|
||||
.chan_desc_sz = 0,
|
||||
|
||||
.chan_list = { RIG_CHAN_END },
|
||||
|
@ -193,7 +193,7 @@ const struct rig_caps k2_caps = {
|
|||
.priv = (void *)&k2_priv_caps,
|
||||
|
||||
.rig_init = kenwood_init,
|
||||
.rig_cleanup = kenwood_cleanup,
|
||||
.rig_cleanup = kenwood_cleanup,
|
||||
.rig_open = k2_open,
|
||||
.set_freq = kenwood_set_freq,
|
||||
.get_freq = kenwood_get_freq,
|
||||
|
@ -214,8 +214,8 @@ const struct rig_caps k2_caps = {
|
|||
.get_func = kenwood_get_func,
|
||||
.set_ext_parm = kenwood_set_ext_parm,
|
||||
.get_ext_parm = kenwood_get_ext_parm,
|
||||
.set_level = kenwood_set_level,
|
||||
.get_level = kenwood_get_level,
|
||||
.set_level = kenwood_set_level,
|
||||
.get_level = kenwood_get_level,
|
||||
.get_ext_level = k2_get_ext_level,
|
||||
.vfo_op = kenwood_vfo_op,
|
||||
.set_trn = kenwood_set_trn,
|
||||
|
@ -223,7 +223,7 @@ const struct rig_caps k2_caps = {
|
|||
.get_trn = kenwood_get_trn,
|
||||
.set_ant = kenwood_set_ant,
|
||||
.get_ant = kenwood_get_ant,
|
||||
.send_morse = kenwood_send_morse,
|
||||
.send_morse = kenwood_send_morse,
|
||||
|
||||
};
|
||||
|
||||
|
@ -279,23 +279,23 @@ int k2_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
|||
|
||||
/* Select the filter array per mode. */
|
||||
switch(mode) {
|
||||
case RIG_MODE_LSB:
|
||||
case RIG_MODE_USB:
|
||||
flt = &k2_fwmd_ssb;
|
||||
break;
|
||||
case RIG_MODE_CW:
|
||||
case RIG_MODE_CWR:
|
||||
flt = &k2_fwmd_cw;
|
||||
break;
|
||||
case RIG_MODE_RTTY:
|
||||
case RIG_MODE_RTTYR:
|
||||
if (priv->k2_md_rtty == 0)
|
||||
return -RIG_EINVAL; /* RTTY module not installed */
|
||||
else
|
||||
flt = &k2_fwmd_rtty;
|
||||
break;
|
||||
default:
|
||||
return -RIG_EINVAL;
|
||||
case RIG_MODE_LSB:
|
||||
case RIG_MODE_USB:
|
||||
flt = &k2_fwmd_ssb;
|
||||
break;
|
||||
case RIG_MODE_CW:
|
||||
case RIG_MODE_CWR:
|
||||
flt = &k2_fwmd_cw;
|
||||
break;
|
||||
case RIG_MODE_RTTY:
|
||||
case RIG_MODE_RTTYR:
|
||||
if (priv->k2_md_rtty == 0)
|
||||
return -RIG_EINVAL; /* RTTY module not installed */
|
||||
else
|
||||
flt = &k2_fwmd_rtty;
|
||||
break;
|
||||
default:
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
/* Step through the filter list looking for the best match
|
||||
|
@ -303,7 +303,7 @@ int k2_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
|||
* that is wide enough for the width without being too narrow
|
||||
* if possible.
|
||||
*/
|
||||
if (width > flt->filt_list[0].width || ((flt->filt_list[0].width >= width)
|
||||
if (width > flt->filt_list[0].width || ((flt->filt_list[0].width >= width)
|
||||
&& (width > flt->filt_list[1].width))) {
|
||||
width = flt->filt_list[0].width;
|
||||
f = '1';
|
||||
|
@ -316,12 +316,13 @@ int k2_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
|||
} else if ((flt->filt_list[3].width >= width) && (width >= freq)) {
|
||||
width = flt->filt_list[3].width;
|
||||
f = '4';
|
||||
} else
|
||||
} else {
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
/* Construct the filter command and set the radio mode and width*/
|
||||
snprintf(fcmd, 8, "FW0000%c", f);
|
||||
|
||||
|
||||
/* kenwood_set_mode() ignores width value for K2/K3/TS-570 */
|
||||
err = kenwood_set_mode(rig, vfo, mode, width);
|
||||
if (err != RIG_OK)
|
||||
|
@ -393,13 +394,13 @@ int k2_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
|
|||
|
||||
|
||||
/* TQ command is a quick transmit status query--K2/K3 only.
|
||||
*
|
||||
*
|
||||
* token Defined in elecraft.h or this file
|
||||
* val Type depends on token type from confparams structure:
|
||||
* NUMERIC: val.f
|
||||
* COMBO: val.i, starting from 0 Index to a string table.
|
||||
* STRING: val.cs for set, val.s for get
|
||||
* CHECKBUTTON: val.i 0/1
|
||||
* NUMERIC: val.f
|
||||
* COMBO: val.i, starting from 0 Index to a string table.
|
||||
* STRING: val.cs for set, val.s for get
|
||||
* CHECKBUTTON: val.i 0/1
|
||||
*/
|
||||
int k2_get_ext_level(RIG *rig, vfo_t vfo, token_t token, value_t *val)
|
||||
{
|
||||
|
@ -415,22 +416,22 @@ int k2_get_ext_level(RIG *rig, vfo_t vfo, token_t token, value_t *val)
|
|||
cfp = rig_ext_lookup_tok(rig, token);
|
||||
|
||||
switch(token) {
|
||||
case TOK_TX_STAT:
|
||||
err = kenwood_safe_transaction(rig, "TQ", buf, KENWOOD_MAX_BUF_LEN, 4);
|
||||
if (err != RIG_OK)
|
||||
return err;
|
||||
if (cfp->type == RIG_CONF_CHECKBUTTON) {
|
||||
val->i = atoi(&buf[2]);
|
||||
} else {
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: protocol error, invalid token type\n",
|
||||
__func__);
|
||||
return -RIG_EPROTO;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: Unsupported get_ext_level %d\n",
|
||||
__func__, token);
|
||||
return -RIG_EINVAL;
|
||||
case TOK_TX_STAT:
|
||||
err = kenwood_safe_transaction(rig, "TQ", buf, KENWOOD_MAX_BUF_LEN, 4);
|
||||
if (err != RIG_OK)
|
||||
return err;
|
||||
if (cfp->type == RIG_CONF_CHECKBUTTON) {
|
||||
val->i = atoi(&buf[2]);
|
||||
} else {
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: protocol error, invalid token type\n",
|
||||
__func__);
|
||||
return -RIG_EPROTO;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: Unsupported get_ext_level %d\n",
|
||||
__func__, token);
|
||||
return -RIG_EINVAL;
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
|
@ -507,7 +508,7 @@ int k2_probe_mdfw(RIG *rig, struct kenwood_priv_data *priv)
|
|||
strcpy(cmd, "MD3"); /* CW */
|
||||
else if (c == 2)
|
||||
strcpy(cmd, "MD6"); /* RTTY */
|
||||
else { /* Oops! */
|
||||
else { /* Oops! */
|
||||
err = k2_mdfw_rest(rig, mode, fw);
|
||||
if (err != RIG_OK)
|
||||
return err;
|
||||
|
|
Ładowanie…
Reference in New Issue