pull/361/head
Michael Black W9MDB 2020-07-31 15:18:26 -05:00
commit 6fbb039a69
2 zmienionych plików z 294 dodań i 244 usunięć

Wyświetl plik

@ -77,10 +77,12 @@ static const yaesu_cmd_set_t ncmd[] =
{ 1, { 0x00, 0x00, 0x00, 0x00, 0x05 } }, /* select vfo A */
{ 1, { 0x00, 0x00, 0x00, 0x01, 0x05 } }, /* select vfo B */
{ 0, { 0x00, 0x00, 0x00, 0x00, 0x06 } }, /* copy memory data to vfo A */
{ 0, { 0x00, 0x00, 0x00, 0x00, 0x09 } }, /* RX clarifier on */
{ 1, { 0x00, 0x00, 0x00, 0x01, 0x09 } }, /* RX clarifier off */
{ 1, { 0x00, 0x00, 0x00, 0x80, 0x09 } }, /* TX clarifier on */
{ 1, { 0x00, 0x00, 0x00, 0x81, 0x09 } }, /* TX clarifier off */
{ 1, { 0x00, 0x00, 0x00, 0x01, 0x09 } }, /* RX clarifier on */
{ 1, { 0x00, 0x00, 0x00, 0x00, 0x09 } }, /* RX clarifier off */
{ 1, { 0x00, 0x00, 0x00, 0x81, 0x09 } }, /* TX clarifier on */
{ 1, { 0x00, 0x00, 0x00, 0x80, 0x09 } }, /* TX clarifier off */
{ 0, { 0x00, 0x00, 0x00, 0xFF, 0x09 } }, /* set clarifier offset */
{ 0, { 0x00, 0x00, 0x00, 0x00, 0x0a } }, /* set VFOA freq */
{ 0, { 0x00, 0x00, 0x00, 0x00, 0x8a } }, /* set VFOB freq */
@ -138,9 +140,13 @@ static const yaesu_cmd_set_t ncmd[] =
#define FT1000MP_OTHER_TX_MODES (RIG_MODE_CW| RIG_MODE_SSB|RIG_MODE_RTTY|RIG_MODE_FM) /* 100 W class */
#define FT1000MP_AM_TX_MODES (RIG_MODE_AM ) /* set 25W max */
#define FT1000MP_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|RIG_FUNC_LOCK /* |RIG_FUNC_TUNER */) /* FIXME */
#define FT1000MP_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|RIG_FUNC_LOCK \
|RIG_FUNC_RIT|RIG_FUNC_XIT \
/* |RIG_FUNC_TUNER */) /* FIXME */
#define FT1000MP_LEVEL_GET (RIG_LEVEL_RAWSTR|RIG_LEVEL_ALC|RIG_LEVEL_SWR|RIG_LEVEL_RFPOWER|RIG_LEVEL_COMP|RIG_LEVEL_MICGAIN|RIG_LEVEL_CWPITCH)
#define FT1000MP_LEVEL_GET (RIG_LEVEL_RAWSTR|RIG_LEVEL_ALC|RIG_LEVEL_SWR|RIG_LEVEL_RFPOWER|RIG_LEVEL_COMP| \
RIG_LEVEL_MICGAIN|RIG_LEVEL_CWPITCH)
#define FT1000MP_VFOS (RIG_VFO_A|RIG_VFO_B)
#define FT1000MP_ANTS 0 /* FIXME: declare antenna connectors: ANT-A, ANT-B, RX ANT */
@ -216,7 +222,7 @@ const struct rig_caps ft1000mp_caps =
RIG_MODEL(RIG_MODEL_FT1000MP),
.model_name = "FT-1000MP",
.mfg_name = "Yaesu",
.version = "20200727.0",
.version = "20200731.0",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -331,14 +337,17 @@ const struct rig_caps ft1000mp_caps =
.set_split_vfo = ft1000mp_set_split_vfo,
.get_split_vfo = ft1000mp_get_split_vfo,
.get_rit = ft1000mp_get_rit,
.get_rit = ft1000mp_get_rxit,
.set_rit = ft1000mp_set_rit,
.get_xit = ft1000mp_get_xit,
.get_xit = ft1000mp_get_rxit,
.set_xit = ft1000mp_set_xit,
.get_level = ft1000mp_get_level,
.set_ptt = ft1000mp_set_ptt,
.set_func = ft1000mp_set_func,
.get_func = ft1000mp_get_func,
/* TODO: the remaining ... */
};
@ -347,7 +356,7 @@ const struct rig_caps ft1000mpmkv_caps =
RIG_MODEL(RIG_MODEL_FT1000MPMKV),
.model_name = "MARK-V FT-1000MP",
.mfg_name = "Yaesu",
.version = "20200716.0",
.version = "20200731.0",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -462,14 +471,17 @@ const struct rig_caps ft1000mpmkv_caps =
.set_split_vfo = ft1000mp_set_split_vfo,
.get_split_vfo = ft1000mp_get_split_vfo,
.get_rit = ft1000mp_get_rit,
.get_rit = ft1000mp_get_rxit,
.set_rit = ft1000mp_set_rit,
.get_xit = ft1000mp_get_xit,
.get_xit = ft1000mp_get_rxit,
.set_xit = ft1000mp_set_xit,
.get_level = ft1000mp_get_level,
.set_ptt = ft1000mp_set_ptt,
.set_func = ft1000mp_set_func,
.get_func = ft1000mp_get_func,
/* TODO: the remaining ... */
};
@ -478,7 +490,7 @@ const struct rig_caps ft1000mpmkvfld_caps =
RIG_MODEL(RIG_MODEL_FT1000MPMKVFLD),
.model_name = "MARK-V Field FT-1000MP",
.mfg_name = "Yaesu",
.version = "20200716.0",
.version = "20200731.0",
.copyright = "LGPL",
.status = RIG_STATUS_STABLE,
.rig_type = RIG_TYPE_TRANSCEIVER,
@ -593,14 +605,17 @@ const struct rig_caps ft1000mpmkvfld_caps =
.set_split_vfo = ft1000mp_set_split_vfo,
.get_split_vfo = ft1000mp_get_split_vfo,
.get_rit = ft1000mp_get_rit,
.get_rit = ft1000mp_get_rxit,
.set_rit = ft1000mp_set_rit,
.get_xit = ft1000mp_get_xit,
.get_xit = ft1000mp_get_rxit,
.set_xit = ft1000mp_set_xit,
.get_level = ft1000mp_get_level,
.set_ptt = ft1000mp_set_ptt,
.set_func = ft1000mp_set_func,
.get_func = ft1000mp_get_func,
/* TODO: the remaining ... */
};
@ -765,25 +780,10 @@ int ft1000mp_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
return RIG_OK;
}
/*
* Return Freq for a given VFO
*
*/
int ft1000mp_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
int ft1000mp_get_vfo_data(RIG *rig, vfo_t vfo)
{
struct ft1000mp_priv_data *priv;
unsigned char *p;
freq_t f;
int cmd_index, len, retval;
rig_debug(RIG_DEBUG_VERBOSE, "%s: called\n", __func__);
priv = (struct ft1000mp_priv_data *)rig->state.priv;
if (vfo == RIG_VFO_A || vfo == RIG_VFO_B)
{
cmd_index = FT1000MP_NATIVE_VFO_UPDATE;
@ -801,11 +801,31 @@ int ft1000mp_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
*/
retval = ft1000mp_get_update_data(rig, cmd_index, len);
return retval;
}
/*
* Return Freq for a given VFO
*
*/
int ft1000mp_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
{
struct ft1000mp_priv_data *priv;
unsigned char *p;
freq_t f;
int retval;
rig_debug(RIG_DEBUG_VERBOSE, "%s: called\n", __func__);
retval = ft1000mp_get_vfo_data(rig, vfo);
if (retval < 0)
{
return retval;
}
priv = (struct ft1000mp_priv_data *)rig->state.priv;
if (vfo == RIG_VFO_B)
{
p = &priv->update_data[FT1000MP_SUMO_VFO_B_FREQ];
@ -952,35 +972,20 @@ int ft1000mp_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
struct ft1000mp_priv_data *priv;
unsigned char mymode; /* ft1000mp mode */
unsigned char mymode_ext; /* ft1000mp extra mode bit mode */
int cmd_index, len, retval;
int retval;
rig_debug(RIG_DEBUG_VERBOSE, "%s: called\n", __func__);
priv = (struct ft1000mp_priv_data *)rig->state.priv;
if (vfo == RIG_VFO_A || vfo == RIG_VFO_B)
{
cmd_index = FT1000MP_NATIVE_VFO_UPDATE;
len = 2 * FT1000MP_STATUS_UPDATE_LENGTH;
}
else
{
/* RIG_VFO_CURR or RIG_VFO_MEM */
cmd_index = FT1000MP_NATIVE_CURR_VFO_UPDATE;
len = FT1000MP_STATUS_UPDATE_LENGTH;
}
/*
* get record from rig
*/
retval = ft1000mp_get_update_data(rig, cmd_index, len);
retval = ft1000mp_get_vfo_data(rig, vfo);
if (retval < 0)
{
return retval;
}
priv = (struct ft1000mp_priv_data *)rig->state.priv;
if (vfo == RIG_VFO_B)
{
mymode = priv->update_data[FT1000MP_SUMO_VFO_B_MODE];
@ -1148,15 +1153,152 @@ int ft1000mp_get_vfo(RIG *rig, vfo_t *vfo)
return RIG_OK;
}
int ft1000mp_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
{
struct ft1000mp_priv_data *priv;
struct rig_state *rs;
unsigned char *cmd;
rs = &rig->state;
priv = (struct ft1000mp_priv_data *)rig->state.priv;
rig_debug(RIG_DEBUG_VERBOSE, "%s called func\n", __func__);
switch (func)
{
case RIG_FUNC_RIT:
if (status)
{
memcpy(&priv->p_cmd, &ncmd[FT1000MP_NATIVE_RIT_ON].nseq, YAESU_CMD_LENGTH);
}
else
{
memcpy(&priv->p_cmd, &ncmd[FT1000MP_NATIVE_RIT_OFF].nseq, YAESU_CMD_LENGTH);
}
cmd = priv->p_cmd;
write_block(&rs->rigport, (char *) cmd, YAESU_CMD_LENGTH);
return RIG_OK;
case RIG_FUNC_XIT:
if (status)
{
memcpy(&priv->p_cmd, &ncmd[FT1000MP_NATIVE_XIT_ON].nseq, YAESU_CMD_LENGTH);
}
else
{
memcpy(&priv->p_cmd, &ncmd[FT1000MP_NATIVE_XIT_OFF].nseq, YAESU_CMD_LENGTH);
}
cmd = priv->p_cmd;
write_block(&rs->rigport, (char *) cmd, YAESU_CMD_LENGTH); break;
return RIG_OK;
default:
rig_debug(RIG_DEBUG_ERR, "Unsupported set_func %s", rig_strfunc(func));
return -RIG_EINVAL;
}
return -RIG_EINVAL;
}
int ft1000mp_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status)
{
int retval;
struct ft1000mp_priv_data *priv;
unsigned char *p;
priv = (struct ft1000mp_priv_data *)rig->state.priv;
rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__);
if (!status)
{
return -RIG_EINVAL;
}
switch (func)
{
case RIG_FUNC_RIT:
{
retval = ft1000mp_get_vfo_data(rig, vfo);
if (retval < 0)
{
return retval;
}
if (vfo == RIG_VFO_B)
{
p = &priv->update_data[FT1000MP_SUMO_VFO_B_MEM];
}
else
{
p = &priv->update_data[FT1000MP_SUMO_VFO_A_MEM]; /* CURR_VFO has VFOA offset */
}
*status = (*p & 2) ? 1 : 0;
return RIG_OK;
}
case RIG_FUNC_XIT:
{
retval = ft1000mp_get_vfo_data(rig, vfo);
if (retval < 0)
{
return retval;
}
if (vfo == RIG_VFO_B)
{
p = &priv->update_data[FT1000MP_SUMO_VFO_B_MEM];
}
else
{
p = &priv->update_data[FT1000MP_SUMO_VFO_A_MEM]; /* CURR_VFO has VFOA offset */
}
*status = (*p & 1) ? 1 : 0;
return RIG_OK;
}
default:
rig_debug(RIG_DEBUG_ERR, "Unsupported get_func %s", rig_strfunc(func));
return -RIG_EINVAL;
}
return -RIG_EINVAL;
}
/*
* set_rit only support vfo = RIG_VFO_CURR
*/
int ft1000mp_set_rit(RIG *rig, vfo_t vfo, shortfreq_t rit)
{
if (rit != 0)
{
ft1000mp_set_func(rig, vfo, RIG_FUNC_RIT, 1);
}
return ft1000mp_set_rxit(rig, vfo, rit);
}
int ft1000mp_set_xit(RIG *rig, vfo_t vfo, shortfreq_t rit)
{
return ft1000mp_set_rxit(rig, vfo, rit);
}
int ft1000mp_set_rxit(RIG *rig, vfo_t vfo, shortfreq_t rit)
{
struct rig_state *rs;
struct ft1000mp_priv_data *priv;
unsigned char *cmd; /* points to sequence to send */
int direction = 0;
rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __func__);
@ -1168,10 +1310,25 @@ int ft1000mp_set_rit(RIG *rig, vfo_t vfo, shortfreq_t rit)
/*
* Copy native cmd freq_set to private cmd storage area
*/
memcpy(&priv->p_cmd, &ncmd[FT1000MP_NATIVE_RIT_ON].nseq, YAESU_CMD_LENGTH);
memcpy(&priv->p_cmd, &ncmd[FT1000MP_NATIVE_RXIT_SET].nseq, YAESU_CMD_LENGTH);
to_bcd(priv->p_cmd, labs(rit) / 10, 4); /* store bcd format in in p_cmd */
priv->p_cmd[2] = rit >= 0 ? 0x00 : 0xff;
if (rit < 0)
{
direction = 0xff;
rit = -rit;
}
unsigned char rit_freq[10];
// yes, it really is this nasty and complicated!
to_bcd_be(rit_freq, (rit - (rit / 1000) * 1000) / 10, 2);
priv->p_cmd[0] = rit_freq[0]; // 10 hz
to_bcd_be(rit_freq, rit / 1000, 2);
priv->p_cmd[1] = rit_freq[0]; // Khz
priv->p_cmd[2] = direction;
cmd = priv->p_cmd; /* get native sequence */
write_block(&rs->rigport, (char *) cmd, YAESU_CMD_LENGTH);
@ -1185,38 +1342,18 @@ int ft1000mp_set_rit(RIG *rig, vfo_t vfo, shortfreq_t rit)
*
*/
int ft1000mp_get_rit(RIG *rig, vfo_t vfo, shortfreq_t *rit)
int ft1000mp_get_rxit(RIG *rig, vfo_t vfo, shortfreq_t *rit)
{
struct ft1000mp_priv_data *priv;
unsigned char *p;
shortfreq_t f;
int cmd_index, len, retval;
int retval;
rig_debug(RIG_DEBUG_VERBOSE, "%s: called\n", __func__);
priv = (struct ft1000mp_priv_data *)rig->state.priv;
if (vfo == RIG_VFO_CURR)
{
vfo = rig->state.current_vfo;
}
if (vfo == RIG_VFO_A || vfo == RIG_VFO_B)
{
cmd_index = FT1000MP_NATIVE_VFO_UPDATE;
len = 2 * FT1000MP_STATUS_UPDATE_LENGTH;
}
else
{
/* RIG_VFO_CURR or RIG_VFO_MEM */
cmd_index = FT1000MP_NATIVE_CURR_VFO_UPDATE;
len = FT1000MP_STATUS_UPDATE_LENGTH;
}
/*
* get record from rig
*/
retval = ft1000mp_get_update_data(rig, cmd_index, len);
retval = ft1000mp_get_vfo_data(rig, vfo);
if (retval < 0)
{
@ -1236,7 +1373,8 @@ int ft1000mp_get_rit(RIG *rig, vfo_t vfo, shortfreq_t *rit)
if (p[0] & 0x80)
{
f = (~(f - 1) & 0x7fff) * -1; // two's complement
f = ~(f - 1) & 0x7fff; // two's complement
f = -f;
}
f = f * 10 / 16;
@ -1250,109 +1388,6 @@ int ft1000mp_get_rit(RIG *rig, vfo_t vfo, shortfreq_t *rit)
}
/*
* set_xit only support vfo = RIG_VFO_CURR
*/
int ft1000mp_set_xit(RIG *rig, vfo_t vfo, shortfreq_t xit)
{
struct rig_state *rs;
struct ft1000mp_priv_data *priv;
unsigned char *cmd; /* points to sequence to send */
rig_debug(RIG_DEBUG_TRACE, "%s: called\n", __func__);
rs = &rig->state;
priv = (struct ft1000mp_priv_data *)rs->priv;
rig_debug(RIG_DEBUG_TRACE, "%s: requested freq = %d Hz \n", __func__, (int)xit);
/*
* Copy native cmd freq_set to private cmd storage area
*/
memcpy(&priv->p_cmd, &ncmd[FT1000MP_NATIVE_XIT_ON].nseq, YAESU_CMD_LENGTH);
to_bcd(priv->p_cmd, labs(xit) / 10, 4); /* store bcd format in in p_cmd */
priv->p_cmd[2] = xit >= 0 ? 0x00 : 0xff;
cmd = priv->p_cmd; /* get native sequence */
write_block(&rs->rigport, (char *) cmd, YAESU_CMD_LENGTH);
return RIG_OK;
}
/*
* Return XIT for a given VFO
*
*/
int ft1000mp_get_xit(RIG *rig, vfo_t vfo, shortfreq_t *xit)
{
struct ft1000mp_priv_data *priv;
unsigned char *p;
shortfreq_t f;
int cmd_index, len, retval;
rig_debug(RIG_DEBUG_VERBOSE, "%s: called\n", __func__);
priv = (struct ft1000mp_priv_data *)rig->state.priv;
if (vfo == RIG_VFO_CURR)
{
vfo = rig->state.current_vfo;
}
if (vfo == RIG_VFO_A || vfo == RIG_VFO_B)
{
cmd_index = FT1000MP_NATIVE_VFO_UPDATE;
len = 2 * FT1000MP_STATUS_UPDATE_LENGTH;
}
else
{
/* RIG_VFO_CURR or RIG_VFO_MEM */
cmd_index = FT1000MP_NATIVE_CURR_VFO_UPDATE;
len = FT1000MP_STATUS_UPDATE_LENGTH;
}
/*
* get record from rig
*/
retval = ft1000mp_get_update_data(rig, cmd_index, len);
if (retval < 0)
{
return retval;
}
if (vfo == RIG_VFO_B)
{
p = &priv->update_data[FT1000MP_SUMO_VFO_B_CLAR];
}
else
{
p = &priv->update_data[FT1000MP_SUMO_VFO_A_CLAR]; /* CURR_VFO has VFOA offset */
}
/* big endian integer, kinda */
if (p[0] & 0x80)
{
f = (p[0] << 8) + p[1] - 65536;
}
else
{
f = (p[0] << 8) + p[1];
}
f = f * 10 / 16;
rig_debug(RIG_DEBUG_TRACE, "%s: freq = %d Hz for VFO [%s]\n", __func__, (int)f,
rig_strvfo(vfo));
*xit = f; /* return displayed frequency */
return RIG_OK;
}
int ft1000mp_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
{
struct ft1000mp_priv_data *priv;

Wyświetl plik

@ -25,6 +25,8 @@
#ifndef _FT1000MP_H
#define _FT1000MP_H 1
//#include "rig.h"
#define FT1000MP_STATUS_FLAGS_LENGTH 5 /* 0xfa return size */
#define FT1000MP_STATUS_UPDATE_LENGTH 16 /* 0x10 U = 02 return size */
@ -66,53 +68,55 @@
*
*/
enum ft1000mp_native_cmd_e {
FT1000MP_NATIVE_SPLIT_OFF = 0,
FT1000MP_NATIVE_SPLIT_ON,
FT1000MP_NATIVE_RECALL_MEM,
FT1000MP_NATIVE_VFO_TO_MEM,
FT1000MP_NATIVE_VFO_A,
FT1000MP_NATIVE_VFO_B,
FT1000MP_NATIVE_M_TO_VFO,
FT1000MP_NATIVE_RIT_ON,
FT1000MP_NATIVE_RIT_OFF,
FT1000MP_NATIVE_XIT_ON,
FT1000MP_NATIVE_XIT_OFF,
FT1000MP_NATIVE_FREQA_SET,
FT1000MP_NATIVE_FREQB_SET,
FT1000MP_NATIVE_MODE_SET_LSB,
FT1000MP_NATIVE_MODE_SET_USB,
FT1000MP_NATIVE_MODE_SET_CW,
FT1000MP_NATIVE_MODE_SET_CWR,
FT1000MP_NATIVE_MODE_SET_AM,
FT1000MP_NATIVE_MODE_SET_AMS,
FT1000MP_NATIVE_MODE_SET_FM,
FT1000MP_NATIVE_MODE_SET_FMW,
FT1000MP_NATIVE_MODE_SET_RTTY_LSB,
FT1000MP_NATIVE_MODE_SET_RTTY_USB,
FT1000MP_NATIVE_MODE_SET_DATA_LSB,
FT1000MP_NATIVE_MODE_SET_DATA_FM,
FT1000MP_NATIVE_MODE_SET_LSB_B,
FT1000MP_NATIVE_MODE_SET_USB_B,
FT1000MP_NATIVE_MODE_SET_CW_B,
FT1000MP_NATIVE_MODE_SET_CWR_B,
FT1000MP_NATIVE_MODE_SET_AM_B,
FT1000MP_NATIVE_MODE_SET_AMS_B,
FT1000MP_NATIVE_MODE_SET_FM_B,
FT1000MP_NATIVE_MODE_SET_FMW_B,
FT1000MP_NATIVE_MODE_SET_RTTY_LSB_B,
FT1000MP_NATIVE_MODE_SET_RTTY_USB_B,
FT1000MP_NATIVE_MODE_SET_DATA_LSB_B,
FT1000MP_NATIVE_MODE_SET_DATA_FM_B,
FT1000MP_NATIVE_PACING,
FT1000MP_NATIVE_PTT_OFF,
FT1000MP_NATIVE_PTT_ON,
FT1000MP_NATIVE_VFO_UPDATE,
FT1000MP_NATIVE_CURR_VFO_UPDATE,
FT1000MP_NATIVE_UPDATE,
FT1000MP_NATIVE_AB,
FT1000MP_NATIVE_SIZE /* end marker, value indicates number of */
/* native cmd entries */
enum ft1000mp_native_cmd_e
{
FT1000MP_NATIVE_SPLIT_OFF = 0,
FT1000MP_NATIVE_SPLIT_ON,
FT1000MP_NATIVE_RECALL_MEM,
FT1000MP_NATIVE_VFO_TO_MEM,
FT1000MP_NATIVE_VFO_A,
FT1000MP_NATIVE_VFO_B,
FT1000MP_NATIVE_M_TO_VFO,
FT1000MP_NATIVE_RIT_ON,
FT1000MP_NATIVE_RIT_OFF,
FT1000MP_NATIVE_XIT_ON,
FT1000MP_NATIVE_XIT_OFF,
FT1000MP_NATIVE_RXIT_SET,
FT1000MP_NATIVE_FREQA_SET,
FT1000MP_NATIVE_FREQB_SET,
FT1000MP_NATIVE_MODE_SET_LSB,
FT1000MP_NATIVE_MODE_SET_USB,
FT1000MP_NATIVE_MODE_SET_CW,
FT1000MP_NATIVE_MODE_SET_CWR,
FT1000MP_NATIVE_MODE_SET_AM,
FT1000MP_NATIVE_MODE_SET_AMS,
FT1000MP_NATIVE_MODE_SET_FM,
FT1000MP_NATIVE_MODE_SET_FMW,
FT1000MP_NATIVE_MODE_SET_RTTY_LSB,
FT1000MP_NATIVE_MODE_SET_RTTY_USB,
FT1000MP_NATIVE_MODE_SET_DATA_LSB,
FT1000MP_NATIVE_MODE_SET_DATA_FM,
FT1000MP_NATIVE_MODE_SET_LSB_B,
FT1000MP_NATIVE_MODE_SET_USB_B,
FT1000MP_NATIVE_MODE_SET_CW_B,
FT1000MP_NATIVE_MODE_SET_CWR_B,
FT1000MP_NATIVE_MODE_SET_AM_B,
FT1000MP_NATIVE_MODE_SET_AMS_B,
FT1000MP_NATIVE_MODE_SET_FM_B,
FT1000MP_NATIVE_MODE_SET_FMW_B,
FT1000MP_NATIVE_MODE_SET_RTTY_LSB_B,
FT1000MP_NATIVE_MODE_SET_RTTY_USB_B,
FT1000MP_NATIVE_MODE_SET_DATA_LSB_B,
FT1000MP_NATIVE_MODE_SET_DATA_FM_B,
FT1000MP_NATIVE_PACING,
FT1000MP_NATIVE_PTT_OFF,
FT1000MP_NATIVE_PTT_ON,
FT1000MP_NATIVE_VFO_UPDATE,
FT1000MP_NATIVE_CURR_VFO_UPDATE,
FT1000MP_NATIVE_UPDATE,
FT1000MP_NATIVE_AB,
FT1000MP_NATIVE_SIZE /* end marker, value indicates number of */
/* native cmd entries */
};
@ -124,18 +128,21 @@ typedef enum ft1000mp_native_cmd_e ft1000mp_native_cmd_t;
*
*/
#define MODE_SET_LSB 0x00
#define MODE_SET_USB 0x01
#define MODE_SET_CW 0x02
#define MODE_SET_CWR 0x03
#define MODE_SET_AM 0x04
#define MODE_SET_AMS 0x05
#define MODE_SET_FM 0x06
#define MODE_SET_FMW 0x07 /* what width is that? */
#define MODE_SET_RTTYL 0x08
#define MODE_SET_RTTYU 0x09
#define MODE_SET_PKTL 0x0a
#define MODE_SET_PKTF 0x0b
#define MODE_SET_LSB 0x00
#define MODE_SET_USB 0x01
#define MODE_SET_CW 0x02
#define MODE_SET_CWR 0x03
#define MODE_SET_AM 0x04
#define MODE_SET_AMS 0x05
#define MODE_SET_FM 0x06
#define MODE_SET_FMW 0x07 /* what width is that? */
#define MODE_SET_RTTYL 0x08
#define MODE_SET_RTTYU 0x09
#define MODE_SET_PKTL 0x0a
#define MODE_SET_PKTF 0x0b
/*
@ -196,6 +203,8 @@ typedef enum ft1000mp_native_cmd_e ft1000mp_native_cmd_t;
#define FT1000MP_SUMO_VFO_B_MODE 0x17
#define FT1000MP_SUMO_VFO_A_IF 0x08
#define FT1000MP_SUMO_VFO_B_IF 0x18
#define FT1000MP_SUMO_VFO_A_MEM 0x09
#define FT1000MP_SUMO_VFO_B_MEM 0x19
/* mask extra mode bit from IF Filter status byte in VFO status
block */
@ -220,18 +229,24 @@ int ft1000mp_get_split_freq(RIG *rig, vfo_t vfo, freq_t *tx_freq);
int ft1000mp_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo);
int ft1000mp_get_split_vfo(RIG *rig, vfo_t vfo, split_t *split, vfo_t *tx_vfo);
int ft1000mp_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width); /* select mode */
int ft1000mp_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width); /* get mode */
int ft1000mp_set_mode(RIG *rig, vfo_t vfo, rmode_t mode,
pbwidth_t width); /* select mode */
int ft1000mp_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode,
pbwidth_t *width); /* get mode */
int ft1000mp_set_vfo(RIG *rig, vfo_t vfo); /* select vfo */
int ft1000mp_get_vfo(RIG *rig, vfo_t *vfo); /* get vfo */
int ft1000mp_set_rit(RIG *rig, vfo_t vfo, shortfreq_t rit);
int ft1000mp_get_rit(RIG *rig, vfo_t vfo, shortfreq_t *rit);
int ft1000mp_set_xit(RIG *rig, vfo_t vfo, shortfreq_t xit);
int ft1000mp_get_xit(RIG *rig, vfo_t vfo, shortfreq_t *xit);
int ft1000mp_set_xit(RIG *rig, vfo_t vfo, shortfreq_t rit);
int ft1000mp_set_rxit(RIG *rig, vfo_t vfo, shortfreq_t rit);
int ft1000mp_get_rxit(RIG *rig, vfo_t vfo, shortfreq_t *rit);
int ft1000mp_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val);
int ft1000mp_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt);
int ft1000mp_set_func(RIG *rig, vfo_t vfo, setting_t func, int status);
int ft1000mp_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status);
#endif /* _FT1000MP_H */