kopia lustrzana https://github.com/Hamlib/Hamlib
Merge branch 'master' of https://github.com/Hamlib/Hamlib
commit
0540fa4f12
|
@ -11,7 +11,7 @@ YAESUSRC = ft100.c ft100.h ft747.c ft747.h ft817.c ft817.h ft847.c ft847.h \
|
|||
## Yaesu radios that use the new Kenwood style CAT commands
|
||||
NEWCATSRC = newcat.c newcat.h ft450.c ft450.h ft950.c ft950.h ft991.c ft991.h \
|
||||
ft2000.c ft2000.h ft9000.c ft9000.h ft5000.c ft5000.h ft1200.c ft1200.h \
|
||||
ft891.c ft891.h ftdx101.c ftdx101.h ftdx101mp.c ft3000.c ftdx10.c
|
||||
ft891.c ft891.h ftdx101.c ftdx101.h ftdx101mp.c ft3000.c ftdx10.c ft710.h
|
||||
|
||||
noinst_LTLIBRARIES = libhamlib-yaesu.la
|
||||
libhamlib_yaesu_la_SOURCES = yaesu.c yaesu.h level_gran_yaesu.h $(YAESUSRC) $(NEWCATSRC)
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
* ft710.c - (C) Nate Bargmann 2007 (n0nb at arrl.net)
|
||||
* (C) Stephane Fillod 2008-2010
|
||||
* (C) Terry Embry 2008-2009
|
||||
* (C) Mikael Nousiainen 2020
|
||||
* (C) Mikael Nousiainen 2023
|
||||
*
|
||||
* This shared library provides an API for communicating
|
||||
* via serial interface to an FTDX10(D/MP) using the "CAT" interface
|
||||
* via serial interface to an FT-710 using the "CAT" interface
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
|
@ -33,34 +33,16 @@
|
|||
#include "tones.h"
|
||||
#include "newcat.h"
|
||||
#include "yaesu.h"
|
||||
#include "ftdx10.h" // reuse this until we know different
|
||||
#include "ft710.h"
|
||||
|
||||
const struct newcat_priv_caps ft710_priv_caps =
|
||||
{
|
||||
.roofing_filter_count = 6,
|
||||
.roofing_filters =
|
||||
{
|
||||
// The index must match ext level combo index
|
||||
{ .index = 0, .set_value = '0', .get_value = 0, .width = 12000, .optional = 0 },
|
||||
{ .index = 1, .set_value = '1', .get_value = '6', .width = 12000, .optional = 0 },
|
||||
{ .index = 2, .set_value = '2', .get_value = '7', .width = 3000, .optional = 0 },
|
||||
// { .index = 3, .set_value = '3', .get_value = '8', .width = 1200, .optional = 1 },
|
||||
{ .index = 4, .set_value = '4', .get_value = '9', .width = 500, .optional = 0 },
|
||||
{ .index = 5, .set_value = '5', .get_value = 'A', .width = 300, .optional = 0 },
|
||||
}
|
||||
.roofing_filter_count = 0,
|
||||
.roofing_filters = {}
|
||||
};
|
||||
|
||||
const struct confparams ft710_ext_levels[] =
|
||||
{
|
||||
{
|
||||
TOK_ROOFING_FILTER,
|
||||
"ROOFINGFILTER",
|
||||
"Roofing filter",
|
||||
"Roofing filter",
|
||||
NULL,
|
||||
RIG_CONF_COMBO,
|
||||
{ .c = { .combostr = { "AUTO", "12 kHz", "3 kHz", "500 Hz", "300 Hz (optional)", NULL } } }
|
||||
},
|
||||
{
|
||||
TOK_KEYER,
|
||||
"KEYER",
|
||||
|
@ -127,7 +109,7 @@ const struct confparams ft710_ext_levels[] =
|
|||
|
||||
int ft710_ext_tokens[] =
|
||||
{
|
||||
TOK_ROOFING_FILTER, TOK_KEYER, TOK_APF_FREQ, TOK_APF_WIDTH,
|
||||
TOK_KEYER, TOK_APF_FREQ, TOK_APF_WIDTH,
|
||||
TOK_CONTOUR, TOK_CONTOUR_FREQ, TOK_CONTOUR_LEVEL, TOK_CONTOUR_WIDTH,
|
||||
TOK_BACKEND_NONE
|
||||
};
|
||||
|
@ -137,7 +119,7 @@ const struct rig_caps ft710_caps =
|
|||
RIG_MODEL(RIG_MODEL_FT710),
|
||||
.model_name = "FT-710",
|
||||
.mfg_name = "Yaesu",
|
||||
.version = NEWCAT_VER ".3",
|
||||
.version = NEWCAT_VER ".5",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_STABLE,
|
||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||
|
@ -154,10 +136,10 @@ const struct rig_caps ft710_caps =
|
|||
.post_write_delay = 20,
|
||||
.timeout = 1000,
|
||||
.retry = 3,
|
||||
.has_get_func = FTDX10_FUNCS,
|
||||
.has_set_func = FTDX10_FUNCS,
|
||||
.has_get_level = FTDX10_LEVELS,
|
||||
.has_set_level = RIG_LEVEL_SET(FTDX10_LEVELS),
|
||||
.has_get_func = FT710_FUNCS,
|
||||
.has_set_func = FT710_FUNCS,
|
||||
.has_get_level = FT710_LEVELS,
|
||||
.has_set_level = RIG_LEVEL_SET(FT710_LEVELS),
|
||||
.has_get_parm = RIG_PARM_NONE,
|
||||
.has_set_parm = RIG_PARM_NONE,
|
||||
.level_gran =
|
||||
|
@ -177,14 +159,18 @@ const struct rig_caps ft710_caps =
|
|||
.max_ifshift = Hz(1200),
|
||||
.agc_level_count = 5,
|
||||
.agc_levels = { RIG_AGC_OFF, RIG_AGC_FAST, RIG_AGC_MEDIUM, RIG_AGC_SLOW, RIG_AGC_AUTO },
|
||||
.vfo_ops = FTDX10_VFO_OPS,
|
||||
.vfo_ops = FT710_VFO_OPS,
|
||||
.scan_ops = RIG_SCAN_VFO,
|
||||
.targetable_vfo = RIG_TARGETABLE_FREQ | RIG_TARGETABLE_FUNC | RIG_TARGETABLE_LEVEL | RIG_TARGETABLE_COMMON | RIG_TARGETABLE_TONE | RIG_TARGETABLE_MODE,
|
||||
.transceive = RIG_TRN_OFF, /* May enable later as the FTDX10 has an Auto Info command */
|
||||
.targetable_vfo = RIG_TARGETABLE_FREQ,
|
||||
.transceive = RIG_TRN_OFF, /* May enable later as the FT-710 has an Auto Info command */
|
||||
.bank_qty = 0,
|
||||
.chan_desc_sz = 0,
|
||||
.rfpower_meter_cal = FTDX10_RFPOWER_METER_CAL,
|
||||
.swr_cal = FTDX10_SWR_CAL,
|
||||
.rfpower_meter_cal = FT710_RFPOWER_METER_CAL,
|
||||
.swr_cal = FT710_SWR_CAL,
|
||||
.str_cal = FT710_STR_CAL,
|
||||
.id_meter_cal = FT710_ID_CAL,
|
||||
.vd_meter_cal = FT710_VD_CAL,
|
||||
.comp_meter_cal = FT710_COMP_CAL,
|
||||
.chan_list = {
|
||||
{ 1, 99, RIG_MTYPE_MEM, NEWCAT_MEM_CAP },
|
||||
RIG_CHAN_END,
|
||||
|
@ -192,44 +178,44 @@ const struct rig_caps ft710_caps =
|
|||
|
||||
.rx_range_list1 = {
|
||||
/* General coverage + ham, ANT_5 is RX only antenna */
|
||||
{kHz(30), MHz(60), FTDX10_ALL_RX_MODES, -1, -1, FTDX10_VFO_ALL, FTDX10_TX_ANTS, "USA"},
|
||||
{kHz(30), MHz(60), FT710_ALL_RX_MODES, -1, -1, FT710_VFO_ALL, FT710_TX_ANTS, "USA"},
|
||||
RIG_FRNG_END,
|
||||
},
|
||||
|
||||
.tx_range_list1 = { /* the 101DX is 100W and the MP is 200W */
|
||||
FRQ_RNG_HF(1, FTDX10_OTHER_TX_MODES, W(5), W(200), FTDX10_VFO_ALL, FTDX10_TX_ANTS),
|
||||
FRQ_RNG_HF(1, FTDX10_AM_TX_MODES, W(2), W(75), FTDX10_VFO_ALL, FTDX10_TX_ANTS), /* AM class */
|
||||
FRQ_RNG_6m(1, FTDX10_OTHER_TX_MODES, W(5), W(200), FTDX10_VFO_ALL, FTDX10_TX_ANTS),
|
||||
FRQ_RNG_6m(1, FTDX10_AM_TX_MODES, W(2), W(75), FTDX10_VFO_ALL, FTDX10_TX_ANTS), /* AM class */
|
||||
FRQ_RNG_HF(1, FT710_OTHER_TX_MODES, W(5), W(200), FT710_VFO_ALL, FT710_TX_ANTS),
|
||||
FRQ_RNG_HF(1, FT710_AM_TX_MODES, W(2), W(75), FT710_VFO_ALL, FT710_TX_ANTS), /* AM class */
|
||||
FRQ_RNG_6m(1, FT710_OTHER_TX_MODES, W(5), W(200), FT710_VFO_ALL, FT710_TX_ANTS),
|
||||
FRQ_RNG_6m(1, FT710_AM_TX_MODES, W(2), W(75), FT710_VFO_ALL, FT710_TX_ANTS), /* AM class */
|
||||
|
||||
RIG_FRNG_END,
|
||||
},
|
||||
|
||||
.rx_range_list2 = {
|
||||
{kHz(30), MHz(60), FTDX10_ALL_RX_MODES, -1, -1, FTDX10_VFO_ALL, FTDX10_TX_ANTS, "EUR"},
|
||||
{kHz(30), MHz(60), FT710_ALL_RX_MODES, -1, -1, FT710_VFO_ALL, FT710_TX_ANTS, "EUR"},
|
||||
RIG_FRNG_END,
|
||||
},
|
||||
|
||||
.tx_range_list2 = {
|
||||
FRQ_RNG_HF(2, FTDX10_OTHER_TX_MODES, W(5), W(200), FTDX10_VFO_ALL, FTDX10_TX_ANTS),
|
||||
FRQ_RNG_HF(2, FTDX10_AM_TX_MODES, W(2), W(75), FTDX10_VFO_ALL, FTDX10_TX_ANTS), /* AM class */
|
||||
FRQ_RNG_6m(2, FTDX10_OTHER_TX_MODES, W(5), W(200), FTDX10_VFO_ALL, FTDX10_TX_ANTS),
|
||||
FRQ_RNG_6m(2, FTDX10_AM_TX_MODES, W(2), W(75), FTDX10_VFO_ALL, FTDX10_TX_ANTS), /* AM class */
|
||||
FRQ_RNG_4m_REGION2(FTDX10_OTHER_TX_MODES, W(5), W(200), FTDX10_VFO_ALL, FTDX10_TX_ANTS),
|
||||
FRQ_RNG_4m_REGION2(FTDX10_AM_TX_MODES, W(2), W(75), FTDX10_VFO_ALL, FTDX10_TX_ANTS), /* AM class */
|
||||
FRQ_RNG_HF(2, FT710_OTHER_TX_MODES, W(5), W(200), FT710_VFO_ALL, FT710_TX_ANTS),
|
||||
FRQ_RNG_HF(2, FT710_AM_TX_MODES, W(2), W(75), FT710_VFO_ALL, FT710_TX_ANTS), /* AM class */
|
||||
FRQ_RNG_6m(2, FT710_OTHER_TX_MODES, W(5), W(200), FT710_VFO_ALL, FT710_TX_ANTS),
|
||||
FRQ_RNG_6m(2, FT710_AM_TX_MODES, W(2), W(75), FT710_VFO_ALL, FT710_TX_ANTS), /* AM class */
|
||||
FRQ_RNG_4m_REGION2(FT710_OTHER_TX_MODES, W(5), W(200), FT710_VFO_ALL, FT710_TX_ANTS),
|
||||
FRQ_RNG_4m_REGION2(FT710_AM_TX_MODES, W(2), W(75), FT710_VFO_ALL, FT710_TX_ANTS), /* AM class */
|
||||
|
||||
RIG_FRNG_END,
|
||||
},
|
||||
|
||||
.tuning_steps = {
|
||||
{FTDX10_SSB_CW_RX_MODES, Hz(10)}, /* Normal */
|
||||
{FTDX10_SSB_CW_RX_MODES, Hz(100)}, /* Fast */
|
||||
{FT710_SSB_CW_RX_MODES, Hz(10)}, /* Normal */
|
||||
{FT710_SSB_CW_RX_MODES, Hz(100)}, /* Fast */
|
||||
|
||||
{FTDX10_AM_RX_MODES, Hz(100)}, /* Normal */
|
||||
{FTDX10_AM_RX_MODES, kHz(1)}, /* Fast */
|
||||
{FT710_AM_RX_MODES, Hz(100)}, /* Normal */
|
||||
{FT710_AM_RX_MODES, kHz(1)}, /* Fast */
|
||||
|
||||
{FTDX10_FM_RX_MODES, Hz(100)}, /* Normal */
|
||||
{FTDX10_FM_RX_MODES, kHz(1)}, /* Fast */
|
||||
{FT710_FM_RX_MODES, Hz(100)}, /* Normal */
|
||||
{FT710_FM_RX_MODES, kHz(1)}, /* Fast */
|
||||
|
||||
RIG_TS_END,
|
||||
|
||||
|
@ -237,10 +223,10 @@ const struct rig_caps ft710_caps =
|
|||
|
||||
/* mode/filter list, remember that order matters! */
|
||||
.filters = {
|
||||
{FTDX10_CW_RTTY_PKT_RX_MODES, Hz(600)}, /* Normal CW, RTTY, PKT/USER */
|
||||
{FTDX10_CW_RTTY_PKT_RX_MODES, Hz(300)}, /* Narrow CW, RTTY, PKT/USER */
|
||||
{FTDX10_CW_RTTY_PKT_RX_MODES, Hz(2400)}, /* Wide CW, RTTY, PKT/USER */
|
||||
{FTDX10_CW_RTTY_PKT_RX_MODES, Hz(1200)}, /* Normal CW, RTTY, PKT/USER */
|
||||
{FT710_CW_RTTY_PKT_RX_MODES, Hz(600)}, /* Normal CW, RTTY, PKT/USER */
|
||||
{FT710_CW_RTTY_PKT_RX_MODES, Hz(300)}, /* Narrow CW, RTTY, PKT/USER */
|
||||
{FT710_CW_RTTY_PKT_RX_MODES, Hz(2400)}, /* Wide CW, RTTY, PKT/USER */
|
||||
{FT710_CW_RTTY_PKT_RX_MODES, Hz(1200)}, /* Normal CW, RTTY, PKT/USER */
|
||||
{RIG_MODE_SSB, Hz(2400)}, /* Normal SSB */
|
||||
{RIG_MODE_SSB, Hz(1800)}, /* Narrow SSB */
|
||||
{RIG_MODE_SSB, Hz(3000)}, /* Wide SSB */
|
||||
|
@ -248,7 +234,7 @@ const struct rig_caps ft710_caps =
|
|||
{RIG_MODE_AMN, Hz(6000)}, /* Narrow AM */
|
||||
{RIG_MODE_FM | RIG_MODE_PKTFM, Hz(16000)}, /* Normal FM */
|
||||
{RIG_MODE_FMN | RIG_MODE_PKTFMN, Hz(9000)}, /* Narrow FM */
|
||||
{FTDX10_CW_RTTY_PKT_RX_MODES | RIG_MODE_SSB, RIG_FLT_ANY},
|
||||
{FT710_CW_RTTY_PKT_RX_MODES | RIG_MODE_SSB, RIG_FLT_ANY},
|
||||
|
||||
RIG_FLT_END,
|
||||
},
|
||||
|
@ -276,10 +262,10 @@ const struct rig_caps ft710_caps =
|
|||
.get_ptt = newcat_get_ptt,
|
||||
.set_split_vfo = newcat_set_split_vfo,
|
||||
.get_split_vfo = newcat_get_split_vfo,
|
||||
.set_rit = newcat_set_rit,
|
||||
.get_rit = newcat_get_rit,
|
||||
.set_xit = newcat_set_xit,
|
||||
.get_xit = newcat_get_xit,
|
||||
.set_rit = newcat_set_clarifier_frequency,
|
||||
.get_rit = newcat_get_clarifier_frequency,
|
||||
.set_xit = newcat_set_clarifier_frequency,
|
||||
.get_xit = newcat_get_clarifier_frequency,
|
||||
.set_ant = NULL,
|
||||
.get_ant = NULL,
|
||||
.get_func = newcat_get_func,
|
||||
|
|
|
@ -0,0 +1,186 @@
|
|||
/*
|
||||
* hamlib - (C) Frank Singleton 2000 (javabear at users.sourceforge.net)
|
||||
*
|
||||
* FT710.h - (C) Nate Bargmann 2007 (n0nb at arrl.net)
|
||||
* (C) Stephane Fillod 2008-2010
|
||||
* (C) Michael Black W9MDB 2020
|
||||
* (C) Mikael Nousiainen 2023
|
||||
*
|
||||
* This shared library provides an API for communicating
|
||||
* via serial interface to an FT-710 using the "CAT" interface
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _FT710_H
|
||||
#define _FT710_H 1
|
||||
|
||||
#define FT710_VFO_ALL (RIG_VFO_A|RIG_VFO_B|RIG_VFO_MEM)
|
||||
|
||||
/* Receiver caps */
|
||||
|
||||
#define FT710_ALL_RX_MODES (RIG_MODE_AM|RIG_MODE_AMN|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|\
|
||||
RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_PKTLSB|RIG_MODE_PKTUSB|RIG_MODE_PKTFM|\
|
||||
RIG_MODE_FM|RIG_MODE_FMN|RIG_MODE_PKTFMN)
|
||||
|
||||
#define FT710_SSB_CW_RX_MODES (RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|\
|
||||
RIG_MODE_RTTY|RIG_MODE_RTTYR|RIG_MODE_PKTLSB|RIG_MODE_PKTUSB)
|
||||
#define FT710_AM_RX_MODES (RIG_MODE_AM|RIG_MODE_AMN)
|
||||
#define FT710_FM_RX_MODES (RIG_MODE_FM|RIG_MODE_PKTFM|RIG_MODE_FMN|RIG_MODE_PKTFMN)
|
||||
#define FT710_CW_RTTY_PKT_RX_MODES (RIG_MODE_RTTY|RIG_MODE_RTTYR|\
|
||||
RIG_MODE_PKTUSB|RIG_MODE_PKTLSB|RIG_MODE_CW|RIG_MODE_CWR)
|
||||
|
||||
/* TRX caps */
|
||||
|
||||
#define FT710_OTHER_TX_MODES (RIG_MODE_AM|RIG_MODE_AMN|RIG_MODE_CW|RIG_MODE_SSB|RIG_MODE_RTTY| \
|
||||
RIG_MODE_PKTLSB|RIG_MODE_PKTUSB|RIG_MODE_PKTFM|RIG_MODE_FM|RIG_MODE_FMN|RIG_MODE_PKTFMN) /* 100 W class */
|
||||
#define FT710_AM_TX_MODES (RIG_MODE_AM|RIG_MODE_AMN) /* set 25W max */
|
||||
|
||||
#define FT710_LEVELS (RIG_LEVEL_ATT|RIG_LEVEL_PREAMP|\
|
||||
RIG_LEVEL_ALC|RIG_LEVEL_RAWSTR|RIG_LEVEL_STRENGTH|RIG_LEVEL_SWR|\
|
||||
RIG_LEVEL_RFPOWER|RIG_LEVEL_RF|RIG_LEVEL_SQL|\
|
||||
RIG_LEVEL_MICGAIN|RIG_LEVEL_IF|RIG_LEVEL_CWPITCH|\
|
||||
RIG_LEVEL_KEYSPD|RIG_LEVEL_AF|RIG_LEVEL_AGC|\
|
||||
RIG_LEVEL_METER|RIG_LEVEL_BKINDL|RIG_LEVEL_SQL|\
|
||||
RIG_LEVEL_VOXGAIN|RIG_LEVEL_VOXDELAY|RIG_LEVEL_COMP|\
|
||||
RIG_LEVEL_ANTIVOX|RIG_LEVEL_NR|RIG_LEVEL_NB|RIG_LEVEL_NOTCHF|\
|
||||
RIG_LEVEL_MONITOR_GAIN|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_RFPOWER_METER_WATTS|\
|
||||
RIG_LEVEL_COMP_METER|RIG_LEVEL_VD_METER|RIG_LEVEL_ID_METER|\
|
||||
RIG_LEVEL_BAND_SELECT)
|
||||
|
||||
#define FT710_FUNCS (RIG_FUNC_TONE|RIG_FUNC_TSQL|RIG_FUNC_LOCK|\
|
||||
RIG_FUNC_MON|RIG_FUNC_NB|RIG_FUNC_NR|RIG_FUNC_VOX|\
|
||||
RIG_FUNC_FBKIN|RIG_FUNC_COMP|RIG_FUNC_ANF|RIG_FUNC_MN|\
|
||||
RIG_FUNC_RIT|RIG_FUNC_XIT|RIG_FUNC_TUNER|RIG_FUNC_APF)
|
||||
|
||||
/* TBC */
|
||||
#define FT710_VFO_OPS (RIG_OP_TUNE|RIG_OP_CPY|RIG_OP_XCHG|\
|
||||
RIG_OP_UP|RIG_OP_DOWN|RIG_OP_BAND_UP|RIG_OP_BAND_DOWN|\
|
||||
RIG_OP_TO_VFO|RIG_OP_FROM_VFO|RIG_OP_TOGGLE)
|
||||
|
||||
// Borrowed from FLRig -- Thanks to Dave W1HKJ
|
||||
#define FT710_RFPOWER_METER_CAL \
|
||||
{ \
|
||||
5, \
|
||||
{ \
|
||||
{27, 5.0f}, \
|
||||
{94, 25.0f}, \
|
||||
{147, 50.0f}, \
|
||||
{176, 75.0f}, \
|
||||
{205, 100.0f}, \
|
||||
} \
|
||||
}
|
||||
|
||||
// Based on testing with G3VPX Ian Sumner for the FT7101D
|
||||
#define FT710_SWR_CAL \
|
||||
{ \
|
||||
8, \
|
||||
{ \
|
||||
{0, 1.0f}, \
|
||||
{26, 1.2f}, \
|
||||
{52, 1.5f}, \
|
||||
{89, 2.0f}, \
|
||||
{126, 3.0f}, \
|
||||
{173, 4.0f}, \
|
||||
{236, 5.0f}, \
|
||||
{255, 25.0f}, \
|
||||
} \
|
||||
}
|
||||
|
||||
/* TBC */
|
||||
#define FT710_STR_CAL { 16, \
|
||||
{ \
|
||||
{ 0, -54 }, /* S0 */ \
|
||||
{ 12, -48 }, /* S1 */ \
|
||||
{ 27, -42 }, /* S2 */ \
|
||||
{ 40, -36 }, /* S3 */ \
|
||||
{ 55, -30 }, /* S4 */ \
|
||||
{ 65, -24 }, /* S5 */ \
|
||||
{ 80, -18 }, /* S6 */ \
|
||||
{ 95, -12 }, /* S7 */ \
|
||||
{ 112, -6 }, /* S8 */ \
|
||||
{ 130, 0 }, /* S9 */ \
|
||||
{ 150, 10 }, /* +10 */ \
|
||||
{ 172, 20 }, /* +20 */ \
|
||||
{ 190, 30 }, /* +30 */ \
|
||||
{ 220, 40 }, /* +40 */ \
|
||||
{ 240, 50 }, /* +50 */ \
|
||||
{ 255, 60 }, /* +60 */ \
|
||||
} }
|
||||
|
||||
|
||||
#define FT710_ID_CAL { 7, \
|
||||
{ \
|
||||
{ 0, 0.0f }, \
|
||||
{ 53, 5.0f }, \
|
||||
{ 65, 6.0f }, \
|
||||
{ 78, 7.0f }, \
|
||||
{ 86, 8.0f }, \
|
||||
{ 98, 9.0f }, \
|
||||
{ 107, 10.0f } \
|
||||
} \
|
||||
}
|
||||
|
||||
/* TBC */
|
||||
#define FT710_VD_CAL { 2, \
|
||||
{ \
|
||||
{ 0, 0.0f }, \
|
||||
{ 192, 13.8f }, \
|
||||
} \
|
||||
}
|
||||
|
||||
#define FT710_COMP_CAL { 9, \
|
||||
{ \
|
||||
{ 0, 0.0f }, \
|
||||
{ 40, 2.5f }, \
|
||||
{ 60, 5.0f }, \
|
||||
{ 85, 7.5f }, \
|
||||
{ 135, 10.0f }, \
|
||||
{ 150, 12.5f }, \
|
||||
{ 175, 15.0f }, \
|
||||
{ 195, 17.5f }, \
|
||||
{ 220, 20.0f } \
|
||||
} \
|
||||
}
|
||||
|
||||
/*
|
||||
* Other features (used by rig_caps)
|
||||
*/
|
||||
|
||||
#define FT710_TX_ANTS RIG_ANT_CURR
|
||||
|
||||
#define FT710_MEM_CHNL_LENGTH 1 /* 0x10 P1 = 01 return size */
|
||||
#define FT710_OP_DATA_LENGTH 19 /* 0x10 P1 = 03 return size */
|
||||
#define FT710_VFO_DATA_LENGTH 18 /* 0x10 P1 = 03 return size -- A & B returned */
|
||||
#define FT710_MEM_CHNL_DATA_LENGTH 19 /* 0x10 P1 = 04, P4 = 0x01-0x20 return size */
|
||||
#define FT710_STATUS_FLAGS_LENGTH 5 /* 0xf7, 0xfa return size */
|
||||
#define FT710_ALL_DATA_LENGTH 649 /* 0x10 P1 = 00 return size */
|
||||
|
||||
/* Timing values in mS */
|
||||
|
||||
/* Delay between bytes sent
|
||||
* Should not exceed value set in CAT TOT menu (rig default is 10 mSec)
|
||||
*/
|
||||
#define FT710_WRITE_DELAY 0
|
||||
|
||||
|
||||
/* Delay sequential fast writes */
|
||||
|
||||
#define FT710_POST_WRITE_DELAY 5
|
||||
|
||||
#endif /* _FT710_H */
|
|
@ -257,6 +257,7 @@ static const yaesu_newcat_commands_t valid_commands[] =
|
|||
{"BS", TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE },
|
||||
{"BU", TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE },
|
||||
{"BY", TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE },
|
||||
{"CF", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, TRUE },
|
||||
{"CH", TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE },
|
||||
{"CN", TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE },
|
||||
{"CO", TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE },
|
||||
|
@ -278,7 +279,7 @@ static const yaesu_newcat_commands_t valid_commands[] =
|
|||
{"FK", FALSE, TRUE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
|
||||
{"FN", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE },
|
||||
{"FR", FALSE, TRUE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE },
|
||||
{"FS", TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE },
|
||||
{"FS", TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, FALSE },
|
||||
{"FT", TRUE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE },
|
||||
{"GT", TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE },
|
||||
{"ID", TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE },
|
||||
|
@ -329,7 +330,7 @@ static const yaesu_newcat_commands_t valid_commands[] =
|
|||
{"RO", FALSE, TRUE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE },
|
||||
{"RP", TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE },
|
||||
{"RS", TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE },
|
||||
{"RT", TRUE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE },
|
||||
{"RT", TRUE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE },
|
||||
{"RU", TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE },
|
||||
{"SC", TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE },
|
||||
{"SD", TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE },
|
||||
|
@ -357,7 +358,7 @@ static const yaesu_newcat_commands_t valid_commands[] =
|
|||
{"VT", FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, TRUE, TRUE },
|
||||
{"VV", TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE },
|
||||
{"VX", TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE },
|
||||
{"XT", FALSE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE },
|
||||
{"XT", FALSE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE },
|
||||
{"ZI", FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE },
|
||||
} ;
|
||||
|
||||
|
@ -399,6 +400,8 @@ static int set_roofing_filter(RIG *rig, vfo_t vfo, int index);
|
|||
static int set_roofing_filter_for_width(RIG *rig, vfo_t vfo, int width);
|
||||
static int get_roofing_filter(RIG *rig, vfo_t vfo,
|
||||
struct newcat_roofing_filter **roofing_filter);
|
||||
static int newcat_set_clarifier(RIG *rig, vfo_t vfo, int rx, int tx);
|
||||
static int newcat_get_clarifier(RIG *rig, vfo_t vfo, int *rx, int *tx);
|
||||
static int newcat_set_apf_frequency(RIG *rig, vfo_t vfo, int freq);
|
||||
static int newcat_get_apf_frequency(RIG *rig, vfo_t vfo, int *freq);
|
||||
static int newcat_set_apf_width(RIG *rig, vfo_t vfo, int choice);
|
||||
|
@ -2251,6 +2254,28 @@ int newcat_set_rptr_offs(RIG *rig, vfo_t vfo, shortfreq_t offs)
|
|||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "%s%04li%c", command, offs,
|
||||
cat_term);
|
||||
}
|
||||
else if (is_ft710)
|
||||
{
|
||||
if (freq >= 28000000 && freq <= 29700000)
|
||||
{
|
||||
strcpy(command, "EX010318");
|
||||
}
|
||||
else if (freq >= 50000000 && freq <= 54000000)
|
||||
{
|
||||
strcpy(command, "EX010319");
|
||||
}
|
||||
else
|
||||
{
|
||||
// only valid on 10m and 6m bands
|
||||
RETURNFUNC(-RIG_EINVAL);
|
||||
}
|
||||
|
||||
// Step size is 1 kHz
|
||||
offs /= 1000;
|
||||
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "%s%04li%c", command, offs,
|
||||
cat_term);
|
||||
}
|
||||
else if (is_ftdx1200)
|
||||
{
|
||||
if (freq >= 28000000 && freq <= 29700000)
|
||||
|
@ -2465,6 +2490,26 @@ int newcat_get_rptr_offs(RIG *rig, vfo_t vfo, shortfreq_t *offs)
|
|||
// Step size is 1 kHz
|
||||
step = 1000;
|
||||
}
|
||||
else if (is_ft710)
|
||||
{
|
||||
if (freq >= 28000000 && freq <= 29700000)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX010318%c", cat_term);
|
||||
}
|
||||
else if (freq >= 50000000 && freq <= 54000000)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX010319%c", cat_term);
|
||||
}
|
||||
else
|
||||
{
|
||||
// only valid on 10m and 6m bands
|
||||
*offs = 0;
|
||||
RETURNFUNC(RIG_OK);
|
||||
}
|
||||
|
||||
// Step size is 1 kHz
|
||||
step = 1000;
|
||||
}
|
||||
else if (is_ftdx1200)
|
||||
{
|
||||
if (freq >= 28000000 && freq <= 29700000)
|
||||
|
@ -3979,7 +4024,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
if (is_ft950 || is_ftdx1200 || is_ftdx3000 || is_ft891 || is_ft991
|
||||
if (is_ft950 || is_ftdx1200 || is_ftdx3000 || is_ft891 || is_ft991 || is_ft710
|
||||
|| is_ftdx101d || is_ftdx101mp || is_ftdx10)
|
||||
{
|
||||
scale = 100.;
|
||||
|
@ -4023,7 +4068,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
|
||||
fpf = newcat_scale_float(255, val.f);
|
||||
|
||||
if (is_ftdx10 || is_ft710) { main_sub_vfo = '0'; }
|
||||
if (is_ftdx10) { main_sub_vfo = '0'; }
|
||||
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "AG%c%03d%c", main_sub_vfo, fpf,
|
||||
cat_term);
|
||||
|
@ -4196,7 +4241,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
if (is_ft991 || is_ftdx3000 || is_ftdx3000dm || is_ftdx5000 || is_ftdx101d
|
||||
if (is_ft991 || is_ft710 || is_ftdx3000 || is_ftdx3000dm || is_ftdx5000 || is_ftdx101d
|
||||
|| is_ftdx101mp)
|
||||
{
|
||||
newcat_get_mode(rig, vfo, &mode, &width);
|
||||
|
@ -4204,7 +4249,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
|
||||
if (val.f > 1.0) { RETURNFUNC(-RIG_EINVAL); }
|
||||
|
||||
if (is_ftdx1200 || is_ftdx3000 || is_ftdx3000dm || is_ft891 || is_ft991
|
||||
if (is_ftdx1200 || is_ftdx3000 || is_ftdx3000dm || is_ft891 || is_ft991 || is_ft710
|
||||
|| is_ftdx101d
|
||||
|| is_ftdx101mp
|
||||
|| is_ftdx10)
|
||||
|
@ -4219,7 +4264,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "MG%03d%c", fpf, cat_term);
|
||||
|
||||
// Some Yaesu rigs reject this command in RTTY modes
|
||||
if (is_ft991 || is_ftdx3000 || is_ftdx3000dm || is_ftdx5000 || is_ftdx101d
|
||||
if (is_ft991 || is_ft710 || is_ftdx3000 || is_ftdx3000dm || is_ftdx5000 || is_ftdx101d
|
||||
|| is_ftdx101mp)
|
||||
{
|
||||
if (mode & RIG_MODE_RTTY || mode & RIG_MODE_RTTYR)
|
||||
|
@ -4395,7 +4440,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
scale = 255;
|
||||
}
|
||||
|
||||
if (is_ftdx10 || is_ft710) { main_sub_vfo = 0; }
|
||||
if (is_ftdx10) { main_sub_vfo = '0'; }
|
||||
|
||||
fpf = newcat_scale_float(scale, val.f);
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "RG%c%03d%c", main_sub_vfo, fpf,
|
||||
|
@ -4496,7 +4541,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
|
||||
millis = dot10ths_to_millis(val.i, keyspd.i);
|
||||
|
||||
if (is_ftdx101d || is_ftdx101mp || is_ftdx10)
|
||||
if (is_ftdx101d || is_ftdx101mp || is_ftdx10 || is_ft710)
|
||||
{
|
||||
if (millis <= 30) { SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "SD00;"); }
|
||||
else if (millis <= 50) { SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "SD01;"); }
|
||||
|
@ -4579,7 +4624,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
if (is_ft891 || is_ft991 || is_ftdx101d || is_ftdx101mp || is_ftdx10)
|
||||
if (is_ft891 || is_ft991 || is_ft710 || is_ftdx101d || is_ftdx101mp || is_ftdx10)
|
||||
{
|
||||
scale = 100;
|
||||
}
|
||||
|
@ -4623,7 +4668,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "VD%04d%c", val.i, cat_term);
|
||||
}
|
||||
else if (is_ftdx101d || is_ftdx101mp || is_ftdx10) // new lookup table argument
|
||||
else if (is_ftdx101d || is_ftdx101mp || is_ftdx10 || is_ft710) // new lookup table argument
|
||||
{
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: ft101 #1 val.i=%d\n", __func__, val.i);
|
||||
|
||||
|
@ -4679,7 +4724,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_ANTIVOX:
|
||||
if (is_ftdx101d || is_ftdx101mp || is_ftdx10)
|
||||
if (is_ftdx101d || is_ftdx101mp || is_ftdx10 || is_ft710)
|
||||
{
|
||||
fpf = newcat_scale_float(100, val.f);
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "AV%03d%c", fpf, cat_term);
|
||||
|
@ -4789,7 +4834,7 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
|
||||
if (val.f > 1.0) { RETURNFUNC(-RIG_EINVAL); }
|
||||
|
||||
if (is_ftdx1200 || is_ftdx3000 || is_ftdx3000dm || is_ft891 || is_ft991
|
||||
if (is_ftdx1200 || is_ftdx3000 || is_ftdx3000dm || is_ft891 || is_ft991 || is_ft710
|
||||
|| is_ftdx101d
|
||||
|| is_ftdx101mp
|
||||
|| is_ftdx10)
|
||||
|
@ -4833,7 +4878,8 @@ int newcat_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
fpf = newcat_scale_float(10, val.f);
|
||||
// Do not scale the value, level maximum value is set to 10
|
||||
fpf = val.f;
|
||||
|
||||
if (fpf < 0)
|
||||
{
|
||||
|
@ -5021,7 +5067,7 @@ int newcat_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
if (is_ft991 || is_ftdx3000 || is_ftdx3000dm || is_ftdx5000 || is_ftdx101d
|
||||
if (is_ft991 || is_ft710 || is_ftdx3000 || is_ftdx3000dm || is_ftdx5000 || is_ftdx101d
|
||||
|| is_ftdx101mp)
|
||||
{
|
||||
newcat_get_mode(rig, vfo, &mode, &width);
|
||||
|
@ -5030,7 +5076,7 @@ int newcat_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "MG%c", cat_term);
|
||||
|
||||
// Some Yaesu rigs reject this command in RTTY modes
|
||||
if (is_ft991 || is_ftdx3000 || is_ftdx3000dm || is_ftdx5000 || is_ftdx101d
|
||||
if (is_ft991 || is_ft710 || is_ftdx3000 || is_ftdx3000dm || is_ftdx5000 || is_ftdx101d
|
||||
|| is_ftdx101mp)
|
||||
{
|
||||
if (mode & RIG_MODE_RTTY || mode & RIG_MODE_RTTYR)
|
||||
|
@ -5300,7 +5346,7 @@ int newcat_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_ANTIVOX:
|
||||
if (is_ftdx101d || is_ftdx101mp || is_ftdx10)
|
||||
if (is_ftdx101d || is_ftdx101mp || is_ftdx10 || is_ft710)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "AV%c", cat_term);
|
||||
}
|
||||
|
@ -5420,7 +5466,7 @@ int newcat_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
{
|
||||
case RIG_LEVEL_RFPOWER:
|
||||
if (is_ft950 || is_ftdx1200 || is_ftdx3000 || is_ftdx3000dm || is_ft891
|
||||
|| is_ft991
|
||||
|| is_ft991 || is_ft710
|
||||
|| is_ftdx101d || is_ftdx101mp || is_ftdx10)
|
||||
{
|
||||
scale = 100.;
|
||||
|
@ -5452,7 +5498,7 @@ int newcat_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_ANTIVOX:
|
||||
val->f = (float) atoi(retlvl) / 100.;
|
||||
val->f = ((float) atoi(retlvl)) / 100.;
|
||||
break;
|
||||
|
||||
case RIG_LEVEL_SWR:
|
||||
|
@ -5591,7 +5637,7 @@ int newcat_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_MICGAIN:
|
||||
if (is_ftdx1200 || is_ftdx3000 || is_ftdx3000dm || is_ft891 || is_ft991
|
||||
if (is_ftdx1200 || is_ftdx3000 || is_ftdx3000dm || is_ft891 || is_ft991 || is_ft710
|
||||
|| is_ftdx101d
|
||||
|| is_ftdx101mp
|
||||
|| is_ftdx10)
|
||||
|
@ -5624,7 +5670,7 @@ int newcat_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_SQL:
|
||||
if (is_ft891 || is_ft991 || is_ftdx101d || is_ftdx101mp || is_ftdx10)
|
||||
if (is_ft891 || is_ft991 || is_ft710 || is_ftdx101d || is_ftdx101mp || is_ftdx10)
|
||||
{
|
||||
scale = 100.;
|
||||
}
|
||||
|
@ -5642,7 +5688,7 @@ int newcat_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
int millis;
|
||||
value_t keyspd;
|
||||
|
||||
if (is_ftdx101d || is_ftdx101mp || is_ftdx10)
|
||||
if (is_ftdx101d || is_ftdx101mp || is_ftdx10 || is_ft710)
|
||||
{
|
||||
switch (raw_value)
|
||||
{
|
||||
|
@ -5763,7 +5809,7 @@ int newcat_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
case RIG_LEVEL_VOXDELAY:
|
||||
val->i = atoi(retlvl);
|
||||
|
||||
if (is_ftdx101d || is_ftdx101mp)
|
||||
if (is_ftdx101d || is_ftdx101mp || is_ftdx10 || is_ft710)
|
||||
{
|
||||
switch (val->i)
|
||||
{
|
||||
|
@ -5916,7 +5962,7 @@ int newcat_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
break;
|
||||
|
||||
case RIG_LEVEL_MONITOR_GAIN:
|
||||
if (is_ftdx1200 || is_ftdx3000 || is_ftdx3000dm || is_ft891 || is_ft991
|
||||
if (is_ftdx1200 || is_ftdx3000 || is_ftdx3000dm || is_ft891 || is_ft991 || is_ft710
|
||||
|| is_ftdx101d
|
||||
|| is_ftdx101mp)
|
||||
{
|
||||
|
@ -5927,11 +5973,12 @@ int newcat_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
scale = 255.;
|
||||
}
|
||||
|
||||
val->f = (float)atoi(retlvl) / scale;
|
||||
val->f = ((float) atoi(retlvl)) / scale;
|
||||
break;
|
||||
|
||||
case RIG_LEVEL_NB:
|
||||
val->f = (float)(atoi(retlvl) / 10.);
|
||||
// Do not scale the value, level maximum value is set to 10
|
||||
val->f = (float) atoi(retlvl);
|
||||
break;
|
||||
|
||||
case RIG_LEVEL_TEMP_METER:
|
||||
|
@ -6216,13 +6263,13 @@ int newcat_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
|||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
if (is_ft991 || is_ftdx3000 || is_ftdx3000dm || is_ftdx5000 || is_ftdx101d
|
||||
if (is_ft991 || is_ft710 || is_ftdx3000 || is_ftdx3000dm || is_ftdx5000 || is_ftdx101d
|
||||
|| is_ftdx101mp)
|
||||
{
|
||||
newcat_get_mode(rig, vfo, &mode, &width);
|
||||
}
|
||||
|
||||
if (is_ft891 || is_ft991 || is_ftdx1200 || is_ftdx3000 || is_ftdx3000dm
|
||||
if (is_ft891 || is_ft991 || is_ft710 || is_ftdx1200 || is_ftdx3000 || is_ftdx3000dm
|
||||
|| is_ftdx101d
|
||||
|| is_ftdx101mp)
|
||||
{
|
||||
|
@ -6237,7 +6284,7 @@ int newcat_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
|||
}
|
||||
|
||||
// Some Yaesu rigs reject this command in AM/FM/RTTY modes
|
||||
if (is_ft991 || is_ftdx3000 || is_ftdx3000dm || is_ftdx5000 || is_ftdx101d
|
||||
if (is_ft991 || is_ft710 || is_ftdx3000 || is_ftdx3000dm || is_ftdx5000 || is_ftdx101d
|
||||
|| is_ftdx101mp)
|
||||
{
|
||||
if (mode & RIG_MODE_AM || mode & RIG_MODE_FM || mode & RIG_MODE_AMN
|
||||
|
@ -6274,23 +6321,37 @@ int newcat_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
|||
break;
|
||||
|
||||
case RIG_FUNC_RIT:
|
||||
if (!newcat_valid_command(rig, "RT"))
|
||||
if (is_ft710)
|
||||
{
|
||||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
RETURNFUNC(newcat_set_clarifier(rig, vfo, status, -1));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!newcat_valid_command(rig, "RT"))
|
||||
{
|
||||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "RT%d%c", status ? 1 : 0,
|
||||
cat_term);
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "RT%d%c", status ? 1 : 0,
|
||||
cat_term);
|
||||
}
|
||||
break;
|
||||
|
||||
case RIG_FUNC_XIT:
|
||||
if (!newcat_valid_command(rig, "XT"))
|
||||
if (is_ft710)
|
||||
{
|
||||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
RETURNFUNC(newcat_set_clarifier(rig, vfo, -1, status));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!newcat_valid_command(rig, "XT"))
|
||||
{
|
||||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "XT%d%c", status ? 1 : 0,
|
||||
cat_term);
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "XT%d%c", status ? 1 : 0,
|
||||
cat_term);
|
||||
}
|
||||
break;
|
||||
|
||||
case RIG_FUNC_APF:
|
||||
|
@ -6299,13 +6360,12 @@ int newcat_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
|||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
|
||||
if (is_ftdx101d || is_ftdx101mp)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CO%c2%04d%c", main_sub_vfo,
|
||||
status ? 1 : 0, cat_term);
|
||||
}
|
||||
else if (is_ftdx10 || is_ft991 || is_ft891)
|
||||
else if (is_ftdx10 || is_ft710 || is_ft991 || is_ft891)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CO02%04d%c", status ? 1 : 0,
|
||||
cat_term);
|
||||
|
@ -6325,6 +6385,8 @@ int newcat_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
|
|||
RETURNFUNC(-RIG_ENIMPL);
|
||||
}
|
||||
|
||||
priv->question_mark_response_means_rejected = 1;
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@ -6518,7 +6580,7 @@ int newcat_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status)
|
|||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
if (is_ftdx1200 || is_ftdx3000 || is_ftdx3000dm || is_ft891 || is_ft991
|
||||
if (is_ftdx1200 || is_ftdx3000 || is_ftdx3000dm || is_ft891 || is_ft991 || is_ft710
|
||||
|| is_ftdx101d
|
||||
|| is_ftdx101mp)
|
||||
{
|
||||
|
@ -6550,21 +6612,35 @@ int newcat_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status)
|
|||
break;
|
||||
|
||||
case RIG_FUNC_RIT:
|
||||
if (!newcat_valid_command(rig, "RT"))
|
||||
if (is_ft710)
|
||||
{
|
||||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
RETURNFUNC(newcat_get_clarifier(rig, vfo, status, NULL));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!newcat_valid_command(rig, "RT"))
|
||||
{
|
||||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "RT%c", cat_term);
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "RT%c", cat_term);
|
||||
}
|
||||
break;
|
||||
|
||||
case RIG_FUNC_XIT:
|
||||
if (!newcat_valid_command(rig, "XT"))
|
||||
if (is_ft710)
|
||||
{
|
||||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
RETURNFUNC(newcat_get_clarifier(rig, vfo, NULL, status));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!newcat_valid_command(rig, "XT"))
|
||||
{
|
||||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "XT%c", cat_term);
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "XT%c", cat_term);
|
||||
}
|
||||
break;
|
||||
|
||||
case RIG_FUNC_APF:
|
||||
|
@ -6578,7 +6654,7 @@ int newcat_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status)
|
|||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CO%c2%c", main_sub_vfo,
|
||||
cat_term);
|
||||
}
|
||||
else if (is_ftdx10 || is_ft991 || is_ft891)
|
||||
else if (is_ftdx10 || is_ft710 || is_ft991 || is_ft891)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CO02%c", cat_term);
|
||||
}
|
||||
|
@ -6692,11 +6768,7 @@ int newcat_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status)
|
|||
break;
|
||||
|
||||
case RIG_FUNC_APF:
|
||||
if (is_ftdx101d || is_ftdx101mp)
|
||||
{
|
||||
*status = (retfunc[last_char_index] == '1') ? 1 : 0;
|
||||
}
|
||||
else if (is_ftdx10 || is_ft991 || is_ft891)
|
||||
if (is_ftdx101d || is_ftdx101mp || is_ftdx10 || is_ft991 || is_ft891 || is_ft710)
|
||||
{
|
||||
*status = (retfunc[last_char_index] == '1') ? 1 : 0;
|
||||
}
|
||||
|
@ -6751,7 +6823,7 @@ int newcat_set_ext_level(RIG *rig, vfo_t vfo, token_t token, value_t val)
|
|||
RETURNFUNC(set_roofing_filter(rig, vfo, val.i));
|
||||
|
||||
case TOK_KEYER:
|
||||
if (!newcat_valid_command(rig, "ML"))
|
||||
if (!newcat_valid_command(rig, "KR"))
|
||||
{
|
||||
RETURNFUNC(-RIG_ENAVAIL);
|
||||
}
|
||||
|
@ -7135,7 +7207,14 @@ int newcat_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op)
|
|||
switch (op)
|
||||
{
|
||||
case RIG_OP_TUNE:
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "AC002%c", cat_term);
|
||||
if (is_ft710)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "AC003%c", cat_term);
|
||||
}
|
||||
else
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "AC002%c", cat_term);
|
||||
}
|
||||
break;
|
||||
|
||||
case RIG_OP_CPY:
|
||||
|
@ -11306,6 +11385,170 @@ int newcat_send_voice_mem(RIG *rig, vfo_t vfo, int ch)
|
|||
RETURNFUNC2(newcat_set_cmd(rig));
|
||||
}
|
||||
|
||||
static int newcat_set_clarifier(RIG *rig, vfo_t vfo, int rx, int tx)
|
||||
{
|
||||
struct newcat_priv_data *priv = (struct newcat_priv_data *)rig->state.priv;
|
||||
char main_sub_vfo = '0';
|
||||
int result;
|
||||
|
||||
if (!newcat_valid_command(rig, "CF"))
|
||||
{
|
||||
RETURNFUNC2(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_FREQ)
|
||||
{
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
// Negative value keeps the current state for RIT/XIT
|
||||
if (rx < 0 || tx < 0)
|
||||
{
|
||||
int current_rx, current_tx;
|
||||
result = newcat_get_clarifier(rig, vfo, ¤t_rx, ¤t_tx);
|
||||
if (result == RIG_OK)
|
||||
{
|
||||
if (rx < 0)
|
||||
{
|
||||
rx = current_rx;
|
||||
}
|
||||
if (tx < 0)
|
||||
{
|
||||
tx = current_tx;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (rx < 0)
|
||||
{
|
||||
rx = 0;
|
||||
}
|
||||
if (tx < 0)
|
||||
{
|
||||
tx = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CF%c00%d%d000%c", main_sub_vfo,
|
||||
rx ? 1 : 0, tx ? 1 : 0, cat_term);
|
||||
|
||||
RETURNFUNC2(newcat_set_cmd(rig));
|
||||
}
|
||||
|
||||
static int newcat_get_clarifier(RIG *rig, vfo_t vfo, int *rx, int *tx)
|
||||
{
|
||||
struct newcat_priv_data *priv = (struct newcat_priv_data *)rig->state.priv;
|
||||
char main_sub_vfo = '0';
|
||||
int err;
|
||||
int ret_data_len;
|
||||
char *ret_data;
|
||||
|
||||
if (!newcat_valid_command(rig, "CF"))
|
||||
{
|
||||
RETURNFUNC2(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_FREQ)
|
||||
{
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CF%c00%c", main_sub_vfo, cat_term);
|
||||
|
||||
if ((err = newcat_get_cmd(rig)) != RIG_OK)
|
||||
{
|
||||
RETURNFUNC2(err);
|
||||
}
|
||||
|
||||
ret_data_len = strlen(priv->ret_data);
|
||||
|
||||
/* skip command */
|
||||
ret_data = priv->ret_data + strlen(priv->cmd_str) - 1;
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: ret_data='%s'\n", __func__, ret_data);
|
||||
/* chop term */
|
||||
priv->ret_data[ret_data_len - 1] = '\0';
|
||||
|
||||
if (rx != NULL)
|
||||
{
|
||||
*rx = (ret_data[0] == '1') ? 1 : 0;
|
||||
}
|
||||
if (tx != NULL)
|
||||
{
|
||||
*tx = (ret_data[1] == '1') ? 1 : 0;
|
||||
}
|
||||
|
||||
RETURNFUNC2(RIG_OK);
|
||||
}
|
||||
|
||||
int newcat_set_clarifier_frequency(RIG *rig, vfo_t vfo, shortfreq_t freq)
|
||||
{
|
||||
struct newcat_priv_data *priv = (struct newcat_priv_data *)rig->state.priv;
|
||||
char main_sub_vfo = '0';
|
||||
|
||||
if (!newcat_valid_command(rig, "CF"))
|
||||
{
|
||||
RETURNFUNC2(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_FREQ)
|
||||
{
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CF%c01%+05d%c", main_sub_vfo,
|
||||
(int) freq, cat_term);
|
||||
|
||||
RETURNFUNC2(newcat_set_cmd(rig));
|
||||
}
|
||||
|
||||
int newcat_get_clarifier_frequency(RIG *rig, vfo_t vfo, shortfreq_t *freq)
|
||||
{
|
||||
struct newcat_priv_data *priv = (struct newcat_priv_data *)rig->state.priv;
|
||||
char main_sub_vfo = '0';
|
||||
int err;
|
||||
int ret_data_len;
|
||||
char *ret_data;
|
||||
int freq_result;
|
||||
int result;
|
||||
|
||||
if (!newcat_valid_command(rig, "CF"))
|
||||
{
|
||||
RETURNFUNC2(-RIG_ENAVAIL);
|
||||
}
|
||||
|
||||
if (rig->caps->targetable_vfo & RIG_TARGETABLE_FREQ)
|
||||
{
|
||||
main_sub_vfo = (RIG_VFO_B == vfo || RIG_VFO_SUB == vfo) ? '1' : '0';
|
||||
}
|
||||
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CF%c01%c", main_sub_vfo, cat_term);
|
||||
|
||||
if ((err = newcat_get_cmd(rig)) != RIG_OK)
|
||||
{
|
||||
RETURNFUNC2(err);
|
||||
}
|
||||
|
||||
ret_data_len = strlen(priv->ret_data);
|
||||
|
||||
/* skip command */
|
||||
ret_data = priv->ret_data + strlen(priv->cmd_str) - 1;
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: ret_data='%s'\n", __func__, ret_data);
|
||||
/* chop term */
|
||||
priv->ret_data[ret_data_len - 1] = '\0';
|
||||
|
||||
result = sscanf(ret_data, "%05d", &freq_result);
|
||||
if (result != 1)
|
||||
{
|
||||
rig_debug(RIG_DEBUG_ERR, "%s: error parsing clarifier frequency: %s\n", __func__, ret_data);
|
||||
RETURNFUNC2(-RIG_EPROTO);
|
||||
}
|
||||
|
||||
*freq = (shortfreq_t) freq_result;
|
||||
|
||||
RETURNFUNC2(RIG_OK);
|
||||
}
|
||||
|
||||
static int newcat_set_apf_frequency(RIG *rig, vfo_t vfo, int freq)
|
||||
{
|
||||
struct newcat_priv_data *priv = (struct newcat_priv_data *)rig->state.priv;
|
||||
|
@ -11322,7 +11565,7 @@ static int newcat_set_apf_frequency(RIG *rig, vfo_t vfo, int freq)
|
|||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CO%c3%04d%c", main_sub_vfo,
|
||||
(freq + 250) / 10, cat_term);
|
||||
}
|
||||
else if (is_ftdx10 || is_ft991 || is_ft891)
|
||||
else if (is_ftdx10 || is_ft991 || is_ft891 || is_ft710)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CO03%04d%c", (freq + 250) / 10,
|
||||
cat_term);
|
||||
|
@ -11358,7 +11601,7 @@ static int newcat_get_apf_frequency(RIG *rig, vfo_t vfo, int *freq)
|
|||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CO%c3%c", main_sub_vfo,
|
||||
cat_term);
|
||||
}
|
||||
else if (is_ftdx10 || is_ft991 || is_ft891)
|
||||
else if (is_ftdx10 || is_ft991 || is_ft891 || is_ft710)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CO03%c", cat_term);
|
||||
}
|
||||
|
@ -11406,6 +11649,11 @@ static int newcat_set_apf_width(RIG *rig, vfo_t vfo, int choice)
|
|||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX030201%d%c", choice,
|
||||
cat_term);
|
||||
}
|
||||
else if (is_ft710)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX030204%d%c", choice,
|
||||
cat_term);
|
||||
}
|
||||
else if (is_ft991)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX111%d%c", choice, cat_term);
|
||||
|
@ -11446,6 +11694,10 @@ static int newcat_get_apf_width(RIG *rig, vfo_t vfo, int *choice)
|
|||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX030201%c", cat_term);
|
||||
}
|
||||
else if (is_ft710)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX030204%c", cat_term);
|
||||
}
|
||||
else if (is_ft991)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX111%c", cat_term);
|
||||
|
@ -11500,7 +11752,7 @@ static int newcat_set_contour(RIG *rig, vfo_t vfo, int status)
|
|||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CO%c0%04d%c", main_sub_vfo,
|
||||
status ? 1 : 0, cat_term);
|
||||
}
|
||||
else if (is_ftdx10 || is_ft991 || is_ft891)
|
||||
else if (is_ftdx10 || is_ft991 || is_ft891 || is_ft710)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CO00%04d%c", status ? 1 : 0,
|
||||
cat_term);
|
||||
|
@ -11542,7 +11794,7 @@ static int newcat_get_contour(RIG *rig, vfo_t vfo, int *status)
|
|||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CO%c0%c", main_sub_vfo,
|
||||
cat_term);
|
||||
}
|
||||
else if (is_ftdx10 || is_ft991 || is_ft891)
|
||||
else if (is_ftdx10 || is_ft991 || is_ft891 || is_ft710)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CO00%c", cat_term);
|
||||
}
|
||||
|
@ -11596,7 +11848,7 @@ static int newcat_set_contour_frequency(RIG *rig, vfo_t vfo, int freq)
|
|||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CO%c1%04d%c", main_sub_vfo,
|
||||
freq, cat_term);
|
||||
}
|
||||
else if (is_ftdx10 || is_ft991 || is_ft891)
|
||||
else if (is_ftdx10 || is_ft991 || is_ft891 || is_ft710)
|
||||
{
|
||||
// Range is 10..3200 Hz
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CO01%04d%c", freq, cat_term);
|
||||
|
@ -11639,7 +11891,7 @@ static int newcat_get_contour_frequency(RIG *rig, vfo_t vfo, int *freq)
|
|||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CO%c1%c", main_sub_vfo,
|
||||
cat_term);
|
||||
}
|
||||
else if (is_ftdx10 || is_ft991 || is_ft891)
|
||||
else if (is_ftdx10 || is_ft991 || is_ft891 || is_ft710)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "CO01%c", cat_term);
|
||||
}
|
||||
|
@ -11702,6 +11954,11 @@ static int newcat_set_contour_level(RIG *rig, vfo_t vfo, int level)
|
|||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX030202%+03d%c", level,
|
||||
cat_term);
|
||||
}
|
||||
else if (is_ft710)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX030205%+03d%c", level,
|
||||
cat_term);
|
||||
}
|
||||
else if (is_ft991)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX112%+03d%c", level, cat_term);
|
||||
|
@ -11743,6 +12000,10 @@ static int newcat_get_contour_level(RIG *rig, vfo_t vfo, int *level)
|
|||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX030202%c", cat_term);
|
||||
}
|
||||
else if (is_ft710)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX030205%c", cat_term);
|
||||
}
|
||||
else if (is_ft991)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX112%c", cat_term);
|
||||
|
@ -11796,6 +12057,11 @@ static int newcat_set_contour_width(RIG *rig, vfo_t vfo, int width)
|
|||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX030203%02d%c", width,
|
||||
cat_term);
|
||||
}
|
||||
else if (is_ft710)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX030206%02d%c", width,
|
||||
cat_term);
|
||||
}
|
||||
else if (is_ft991)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX113%02d%c", width, cat_term);
|
||||
|
@ -11836,6 +12102,10 @@ static int newcat_get_contour_width(RIG *rig, vfo_t vfo, int *width)
|
|||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX030203%c", cat_term);
|
||||
}
|
||||
else if (is_ft710)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX030206%c", cat_term);
|
||||
}
|
||||
else if (is_ft991)
|
||||
{
|
||||
SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX113%c", cat_term);
|
||||
|
|
|
@ -204,6 +204,8 @@ int newcat_get_rit(RIG * rig, vfo_t vfo, shortfreq_t * rit);
|
|||
int newcat_set_rit(RIG * rig, vfo_t vfo, shortfreq_t rit);
|
||||
int newcat_get_xit(RIG * rig, vfo_t vfo, shortfreq_t * xit);
|
||||
int newcat_set_xit(RIG * rig, vfo_t vfo, shortfreq_t xit);
|
||||
int newcat_get_clarifier_frequency(RIG *rig, vfo_t vfo, shortfreq_t *freq);
|
||||
int newcat_set_clarifier_frequency(RIG *rig, vfo_t vfo, shortfreq_t freq);
|
||||
int newcat_power2mW(RIG * rig, unsigned int *mwpower, float power, freq_t freq, rmode_t mode);
|
||||
int newcat_mW2power(RIG * rig, float *power, unsigned int mwpower, freq_t freq, rmode_t mode);
|
||||
int newcat_set_split_vfo(RIG * rig, vfo_t vfo, split_t split, vfo_t tx_vfo);
|
||||
|
|
Ładowanie…
Reference in New Issue