kopia lustrzana https://github.com/Hamlib/Hamlib
Porównaj commity
7 Commity
1de9a5cede
...
1881b2e206
Autor | SHA1 | Data |
---|---|---|
Mike Black W9MDB | 1881b2e206 | |
Mike Black W9MDB | 1b3481ba95 | |
Mike Black W9MDB | f51e7ef760 | |
Mike Black W9MDB | 2feb4cc65c | |
Mike Black W9MDB | 538d41b9e8 | |
Mike Black W9MDB | 9331f9e5f4 | |
Mike Black W9MDB | 68bcae6ee8 |
1
NEWS
1
NEWS
|
@ -13,6 +13,7 @@ Version 5.x -- future
|
|||
* Change FT1000MP Mark V model names to align with FT1000MP
|
||||
|
||||
Version 4.6
|
||||
* Added SDR Radio SDRConsole -- TS-2000 is now hardware flow control so need separate entry
|
||||
* Added --set-conf=filter_usb, filter_usbd, and filter_cw to allow Icom rigs set mode to set filter number too
|
||||
* Added macros for applications to obtain pointers to Hamlib structures(issues #1445, #1420, #487).
|
||||
Internal conversion is still a WIP, but use of these macros will make the final cutover transparent to applications.
|
||||
|
|
|
@ -204,6 +204,7 @@
|
|||
#define RIG_MODEL_FX4 RIG_MAKE_MODEL(RIG_KENWOOD,53)
|
||||
#define RIG_MODEL_THETIS RIG_MAKE_MODEL(RIG_KENWOOD, 54)
|
||||
#define RIG_MODEL_TRUSDX RIG_MAKE_MODEL(RIG_KENWOOD, 55)
|
||||
#define RIG_MODEL_SDRCONSOLE RIG_MAKE_MODEL(RIG_KENWOOD, 56)
|
||||
|
||||
/*
|
||||
* Icom
|
||||
|
|
|
@ -151,8 +151,8 @@ int codan_init(RIG *rig)
|
|||
int codan_open(RIG *rig)
|
||||
{
|
||||
char *results = NULL;
|
||||
codan_transaction(rig, "scan off\r", 1, &results);
|
||||
codan_transaction(rig, "echo off", 1, &results);
|
||||
codan_transaction(rig, "\recho off", 1, &results);
|
||||
codan_transaction(rig, "ver", 1, &results);
|
||||
//codan_transaction(rig, "prompt time", 1, &results);
|
||||
codan_transaction(rig, "login", 1, &results);
|
||||
|
||||
|
|
|
@ -24,9 +24,9 @@
|
|||
|
||||
#include "hamlib/rig.h"
|
||||
|
||||
#define BACKEND_VER "20211228"
|
||||
#define BACKEND_VER "20240318"
|
||||
|
||||
#define EOM "\x0d"
|
||||
#define EOM "\x0a"
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
// For the current implemented command set 64 is long enough
|
||||
|
|
|
@ -277,7 +277,7 @@ struct rig_caps ic7700_caps =
|
|||
RIG_MODEL(RIG_MODEL_IC7700),
|
||||
.model_name = "IC-7700",
|
||||
.mfg_name = "Icom",
|
||||
.version = BACKEND_VER ".4",
|
||||
.version = BACKEND_VER ".5",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_STABLE,
|
||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||
|
|
|
@ -2578,7 +2578,7 @@ static int icom_get_mode_without_data(RIG *rig, vfo_t vfo, rmode_t *mode,
|
|||
|
||||
// Use command 0x26 to get selected/unselected or Main/Sub VFO mode, data mode and filter width
|
||||
// IC-7800 can set, but not read with 0x26 (although manual states otherwise?)
|
||||
if ((rs->targetable_vfo & RIG_TARGETABLE_MODE) && !RIG_IS_IC7800
|
||||
if ((rs->targetable_vfo & RIG_TARGETABLE_MODE) && !RIG_IS_IC7800 && !RIG_IS_IC7700
|
||||
&& !force_vfo_swap)
|
||||
{
|
||||
retval = icom_get_mode_x26(rig, vfo, &mode_len, modebuf);
|
||||
|
|
|
@ -139,6 +139,10 @@ int xiegu_rig_open(RIG *rig)
|
|||
int cmd = 0x19;
|
||||
int subcmd = 0x00;
|
||||
unsigned short iid;
|
||||
|
||||
retval = icom_rig_open(rig);
|
||||
if (retval != RIG_OK) return retval;
|
||||
|
||||
retval = icom_transaction(rig, cmd, subcmd, NULL, 0, id, &id_len);
|
||||
|
||||
if (retval == RIG_OK)
|
||||
|
@ -149,12 +153,13 @@ int xiegu_rig_open(RIG *rig)
|
|||
{
|
||||
case 0x0090: rig_debug(RIG_DEBUG_VERBOSE, "%s: Xiegu model %s\n", __func__, "G90/G90S");break;
|
||||
case 0x0106: rig_debug(RIG_DEBUG_VERBOSE, "%s: Xiegu model %s\n", __func__, "G106/G106C");break;
|
||||
case 0x6100: rig_debug(RIG_DEBUG_VERBOSE, "%s: Xiegu model %s\n", __func__, "X6100");break;
|
||||
case 0x6100:
|
||||
case 0xa400: rig_debug(RIG_DEBUG_VERBOSE, "%s: Xiegu model %s\n", __func__, "X6100");break;
|
||||
default: rig_debug(RIG_DEBUG_VERBOSE, "%s: Xiegu model %s\n", __func__, "Unknown");break;
|
||||
}
|
||||
}
|
||||
|
||||
return icom_rig_open(rig);
|
||||
return retval;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -349,7 +354,7 @@ struct rig_caps x108g_caps =
|
|||
|
||||
static struct icom_priv_caps x6100_priv_caps =
|
||||
{
|
||||
0x70, /* default address */
|
||||
0xa4, /* default address */
|
||||
0, /* 731 mode */
|
||||
0, /* no XCHG */
|
||||
ic7200_ts_sc_list,
|
||||
|
|
|
@ -6190,6 +6190,7 @@ DECLARE_INITRIG_BACKEND(kenwood)
|
|||
rig_register(&kx3_caps);
|
||||
rig_register(&k4_caps);
|
||||
rig_register(&xg3_caps);
|
||||
rig_register(&sdrconsole_caps);
|
||||
|
||||
rig_register(&ts440_caps);
|
||||
rig_register(&ts940_caps);
|
||||
|
|
|
@ -291,6 +291,7 @@ extern struct rig_caps kx3_caps;
|
|||
extern struct rig_caps k4_caps;
|
||||
extern struct rig_caps xg3_caps;
|
||||
extern struct rig_caps trc80_caps;
|
||||
extern struct rig_caps sdrconsole_caps;
|
||||
|
||||
extern struct rig_caps thd7a_caps;
|
||||
extern struct rig_caps thd72a_caps;
|
||||
|
|
|
@ -1915,3 +1915,249 @@ struct rig_caps ts2000_caps =
|
|||
|
||||
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
|
||||
};
|
||||
/*
|
||||
* SDRConsole TS-2000 rig capabilities
|
||||
* SDRConsole does not use hardware flow control for example
|
||||
*/
|
||||
struct rig_caps sdrconsole_caps =
|
||||
{
|
||||
RIG_MODEL(RIG_MODEL_SDRCONSOLE),
|
||||
.model_name = "SDRConsole",
|
||||
.mfg_name = "SDR Radio",
|
||||
.version = BACKEND_VER ".2",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_STABLE,
|
||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||
.ptt_type = RIG_PTT_RIG,
|
||||
.dcd_type = RIG_DCD_RIG,
|
||||
.port_type = RIG_PORT_SERIAL,
|
||||
.serial_rate_min = 1200,
|
||||
.serial_rate_max = 115200,
|
||||
.serial_data_bits = 8,
|
||||
.serial_stop_bits = 1,
|
||||
.serial_parity = RIG_PARITY_NONE,
|
||||
.serial_handshake = RIG_HANDSHAKE_NONE,
|
||||
.write_delay = 0,
|
||||
.post_write_delay = 0, /* ms */
|
||||
.timeout = 200,
|
||||
.retry = 3,
|
||||
|
||||
.has_get_func = TS2000_FUNC_ALL,
|
||||
.has_set_func = TS2000_FUNC_ALL,
|
||||
.has_get_level = TS2000_LEVEL_GET,
|
||||
.has_set_level = TS2000_LEVEL_SET,
|
||||
.has_get_parm = RIG_PARM_NONE,
|
||||
.has_set_parm = RIG_PARM_NONE,
|
||||
.level_gran =
|
||||
{
|
||||
#include "level_gran_kenwood.h"
|
||||
[LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 30 }, .step = { .i = 1 } },
|
||||
[LVL_KEYSPD] = {.min = {.i = 10}, .max = {.i = 60}, .step = {.i = 1}},
|
||||
[LVL_CWPITCH] = {.min = {.i = 400}, .max = {.i = 1000}, .step = {.i = 50}},
|
||||
[LVL_BKIN_DLYMS] = {.min = {.i = 0}, .max = {.i = 1000}, .step = {.i = 50}},
|
||||
[LVL_SLOPE_LOW] = {.min = {.i = 0}, .max = {.i = 1000}, .step = {.i = 10}},
|
||||
[LVL_SLOPE_HIGH] = {.min = {.i = 0}, .max = {.i = 5000}, .step = {.i = 10}},
|
||||
},
|
||||
.parm_gran = {},
|
||||
.vfo_ops = TS2000_VFO_OPS,
|
||||
.scan_ops = TS2000_SCAN_OP,
|
||||
.ctcss_list = ts2000_ctcss_list,
|
||||
.dcs_list = ts2000_dcs_list,
|
||||
.preamp = { 12, RIG_DBLST_END, },
|
||||
.attenuator = { 12, RIG_DBLST_END, },
|
||||
.max_rit = kHz(20),
|
||||
.max_xit = kHz(20),
|
||||
.max_ifshift = kHz(1),
|
||||
.targetable_vfo = RIG_TARGETABLE_FREQ,
|
||||
.transceive = RIG_TRN_RIG,
|
||||
.agc_level_count = 5,
|
||||
.agc_levels = { RIG_AGC_OFF, RIG_AGC_SLOW, RIG_AGC_MEDIUM, RIG_AGC_FAST, RIG_AGC_SUPERFAST },
|
||||
.bank_qty = 0,
|
||||
.chan_desc_sz = 7,
|
||||
|
||||
.chan_list = {
|
||||
{ 0, 299, RIG_MTYPE_MEM, TS2000_MEM_CAP },
|
||||
{ 1, 3, RIG_MTYPE_MORSE },
|
||||
RIG_CHAN_END,
|
||||
},
|
||||
|
||||
.rx_range_list1 = {
|
||||
{kHz(300), MHz(60), TS2000_ALL_MODES, -1, -1, TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(144), MHz(146), TS2000_ALL_MODES, -1, -1, TS2000_MAINVFO},
|
||||
{MHz(430), MHz(440), TS2000_ALL_MODES, -1, -1, TS2000_MAINVFO},
|
||||
{MHz(144), MHz(146), TS2000_ALL_MODES, -1, -1, TS2000_SUBVFO},
|
||||
{MHz(430), MHz(440), TS2000_ALL_MODES, -1, -1, TS2000_SUBVFO},
|
||||
RIG_FRNG_END,
|
||||
}, /* rx range */
|
||||
.tx_range_list1 = {
|
||||
{kHz(1830), kHz(1850), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{kHz(1830), kHz(1850), TS2000_AM_TX_MODES, 2000, 25000, TS2000_MAINVFO, TS2000_ANTS},
|
||||
{kHz(3500), kHz(3800), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{kHz(3500), kHz(3800), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(7), kHz(7100), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(7), kHz(7100), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(10.1), MHz(10.15), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(10.1), MHz(10.15), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(14), kHz(14350), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(14), kHz(14350), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{kHz(18068), kHz(18168), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{kHz(18068), kHz(18168), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(21), kHz(21450), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(21), kHz(21450), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{kHz(24890), kHz(24990), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{kHz(24890), kHz(24990), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(28), kHz(29700), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(28), kHz(29700), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(50), MHz(50.2), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(50), MHz(50.2), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(144), MHz(146), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO},
|
||||
{MHz(144), MHz(146), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO},
|
||||
{MHz(430), MHz(440), TS2000_OTHER_TX_MODES, W(5), W(50), TS2000_MAINVFO},
|
||||
{MHz(430), MHz(440), TS2000_AM_TX_MODES, W(5), W(12.5), TS2000_MAINVFO},
|
||||
RIG_FRNG_END,
|
||||
}, /* tx range */
|
||||
|
||||
.rx_range_list2 = {
|
||||
{kHz(300), MHz(60), TS2000_ALL_MODES, -1, -1, TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(142), MHz(152), TS2000_ALL_MODES, -1, -1, TS2000_MAINVFO},
|
||||
{MHz(420), MHz(450), TS2000_ALL_MODES, -1, -1, TS2000_MAINVFO},
|
||||
{MHz(118), MHz(174), TS2000_ALL_MODES, -1, -1, TS2000_SUBVFO},
|
||||
{MHz(220), MHz(512), TS2000_ALL_MODES, -1, -1, TS2000_SUBVFO},
|
||||
RIG_FRNG_END,
|
||||
}, /* rx range */
|
||||
.tx_range_list2 = {
|
||||
{kHz(1800), MHz(2), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{kHz(1800), MHz(2), TS2000_AM_TX_MODES, 2000, 25000, TS2000_MAINVFO, TS2000_ANTS},
|
||||
{kHz(3500), MHz(4), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{kHz(3500), MHz(4), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(7), kHz(7300), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(7), kHz(7300), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(10.1), MHz(10.15), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(10.1), MHz(10.15), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(14), kHz(14350), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(14), kHz(14350), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{kHz(18068), kHz(18168), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{kHz(18068), kHz(18168), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(21), kHz(21450), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(21), kHz(21450), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{kHz(24890), kHz(24990), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{kHz(24890), kHz(24990), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(28), kHz(29700), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(28), kHz(29700), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(50), MHz(54), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(50), MHz(54), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO, TS2000_ANTS},
|
||||
{MHz(144), MHz(148), TS2000_OTHER_TX_MODES, W(5), W(100), TS2000_MAINVFO},
|
||||
{MHz(144), MHz(148), TS2000_AM_TX_MODES, W(5), W(25), TS2000_MAINVFO},
|
||||
{MHz(430), MHz(450), TS2000_OTHER_TX_MODES, W(5), W(50), TS2000_MAINVFO},
|
||||
{MHz(430), MHz(450), TS2000_AM_TX_MODES, W(5), W(12.5), TS2000_MAINVFO},
|
||||
RIG_FRNG_END,
|
||||
}, /* tx range */
|
||||
|
||||
.tuning_steps = {
|
||||
{RIG_MODE_SSB | RIG_MODE_CW | RIG_MODE_RTTY, 1},
|
||||
{TS2000_ALL_MODES, 10},
|
||||
{TS2000_ALL_MODES, 100},
|
||||
{TS2000_ALL_MODES, kHz(1)},
|
||||
{TS2000_ALL_MODES, kHz(2.5)},
|
||||
{TS2000_ALL_MODES, kHz(5)},
|
||||
{RIG_MODE_AM | RIG_MODE_FM, kHz(6.25)},
|
||||
{TS2000_ALL_MODES, kHz(10)},
|
||||
{RIG_MODE_AM | RIG_MODE_FM, kHz(12.5)},
|
||||
{RIG_MODE_AM | RIG_MODE_FM, kHz(12.5)},
|
||||
{RIG_MODE_AM | RIG_MODE_FM, kHz(15)},
|
||||
{RIG_MODE_AM | RIG_MODE_FM, kHz(20)},
|
||||
{RIG_MODE_AM | RIG_MODE_FM, kHz(25)},
|
||||
{RIG_MODE_AM | RIG_MODE_FM, kHz(30)},
|
||||
{RIG_MODE_AM | RIG_MODE_FM, kHz(50)},
|
||||
{RIG_MODE_AM | RIG_MODE_FM, kHz(100)},
|
||||
{TS2000_ALL_MODES, MHz(1)},
|
||||
{TS2000_ALL_MODES, 0}, /* any tuning step */
|
||||
RIG_TS_END,
|
||||
},
|
||||
|
||||
/* mode/filter list, remember: order matters! */
|
||||
.filters = {
|
||||
{RIG_MODE_SSB, kHz(2.2)},
|
||||
{RIG_MODE_CW | RIG_MODE_CWR, Hz(200)},
|
||||
{RIG_MODE_CW | RIG_MODE_CWR, Hz(50)},
|
||||
{RIG_MODE_CW | RIG_MODE_CWR, Hz(1000)},
|
||||
{RIG_MODE_CW | RIG_MODE_CWR, Hz(80)},
|
||||
{RIG_MODE_CW | RIG_MODE_CWR, Hz(100)},
|
||||
{RIG_MODE_CW | RIG_MODE_CWR, Hz(150)},
|
||||
{RIG_MODE_CW | RIG_MODE_CWR, Hz(300)},
|
||||
{RIG_MODE_CW | RIG_MODE_CWR, Hz(400)},
|
||||
{RIG_MODE_CW | RIG_MODE_CWR, Hz(500)},
|
||||
{RIG_MODE_CW | RIG_MODE_CWR, Hz(600)},
|
||||
{RIG_MODE_CW | RIG_MODE_CWR, Hz(2000)},
|
||||
{RIG_MODE_RTTY | RIG_MODE_RTTYR, Hz(500)},
|
||||
{RIG_MODE_RTTY | RIG_MODE_RTTYR, Hz(250)},
|
||||
{RIG_MODE_RTTY | RIG_MODE_RTTYR, Hz(1000)},
|
||||
{RIG_MODE_RTTY | RIG_MODE_RTTYR, Hz(1500)},
|
||||
{RIG_MODE_AM, kHz(6)},
|
||||
{RIG_MODE_AM, kHz(2.4)},
|
||||
{RIG_MODE_FM, kHz(12)},
|
||||
{RIG_MODE_FM, kHz(6)},
|
||||
RIG_FLT_END,
|
||||
},
|
||||
|
||||
.str_cal = TS2000_STR_CAL,
|
||||
.swr_cal = TS2000_SWR_CAL,
|
||||
|
||||
.ext_tokens = ts2000_ext_tokens,
|
||||
.extfuncs = ts2000_ext_funcs,
|
||||
.extlevels = ts2000_ext_levels,
|
||||
|
||||
.priv = (void *)& ts2000_priv_caps,
|
||||
|
||||
.rig_init = ts2000_init,
|
||||
.rig_open = kenwood_open,
|
||||
.rig_close = kenwood_close,
|
||||
.rig_cleanup = kenwood_cleanup,
|
||||
.set_freq = kenwood_set_freq,
|
||||
.get_freq = kenwood_get_freq,
|
||||
.set_rit = ts2000_set_rit,
|
||||
.get_rit = ts2000_get_rit,
|
||||
.set_xit = ts2000_set_rit,
|
||||
.get_xit = ts2000_get_rit,
|
||||
.set_mode = kenwood_set_mode,
|
||||
.get_mode = kenwood_get_mode,
|
||||
.set_vfo = kenwood_set_vfo,
|
||||
.get_vfo = kenwood_get_vfo_if,
|
||||
.set_split_vfo = kenwood_set_split_vfo,
|
||||
.get_split_vfo = kenwood_get_split_vfo_if,
|
||||
.set_ctcss_tone = kenwood_set_ctcss_tone_tn,
|
||||
.get_ctcss_tone = kenwood_get_ctcss_tone,
|
||||
.set_ctcss_sql = kenwood_set_ctcss_sql,
|
||||
.get_ctcss_sql = kenwood_get_ctcss_sql,
|
||||
.get_ptt = kenwood_get_ptt,
|
||||
.set_ptt = kenwood_set_ptt,
|
||||
.get_dcd = kenwood_get_dcd,
|
||||
.set_func = ts2000_set_func,
|
||||
.get_func = ts2000_get_func,
|
||||
.set_level = ts2000_set_level,
|
||||
.get_level = ts2000_get_level,
|
||||
.set_ext_func = ts2000_set_ext_func,
|
||||
.get_ext_func = ts2000_get_ext_func,
|
||||
.set_ext_level = ts2000_set_ext_level,
|
||||
.get_ext_level = ts2000_get_ext_level,
|
||||
.set_ant = kenwood_set_ant,
|
||||
.get_ant = kenwood_get_ant,
|
||||
.send_morse = kenwood_send_morse,
|
||||
.wait_morse = rig_wait_morse,
|
||||
.send_voice_mem = kenwood_send_voice_mem,
|
||||
.stop_voice_mem = kenwood_stop_voice_mem,
|
||||
.vfo_op = kenwood_vfo_op,
|
||||
.scan = kenwood_scan,
|
||||
.set_mem = kenwood_set_mem,
|
||||
.get_mem = kenwood_get_mem,
|
||||
.get_channel = ts2000_get_channel,
|
||||
.set_channel = ts2000_set_channel,
|
||||
.set_trn = kenwood_set_trn,
|
||||
.get_trn = kenwood_get_trn,
|
||||
.set_powerstat = kenwood_set_powerstat,
|
||||
.get_powerstat = kenwood_get_powerstat,
|
||||
.get_info = kenwood_get_info,
|
||||
.reset = kenwood_reset,
|
||||
|
||||
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
|
||||
};
|
||||
|
|
|
@ -322,7 +322,16 @@ int kenwood_ts890_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
if ((ptt == RIG_PTT_OFF) != (level == RIG_LEVEL_STRENGTH))
|
||||
{
|
||||
/* We're sorry, the number you have dialed is not in service */
|
||||
return -RIG_ENAVAIL;
|
||||
if (level == RIG_LEVEL_RFPOWER_METER_WATTS)
|
||||
{
|
||||
val->f = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
val->i = 0;
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
||||
/* Find out which meter type is in use */
|
||||
|
@ -482,7 +491,7 @@ struct rig_caps ts890s_caps =
|
|||
RIG_MODEL(RIG_MODEL_TS890S),
|
||||
.model_name = "TS-890S",
|
||||
.mfg_name = "Kenwood",
|
||||
.version = BACKEND_VER ".14",
|
||||
.version = BACKEND_VER ".15",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_STABLE,
|
||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||
|
|
|
@ -313,7 +313,7 @@ struct rig_caps ft1000mp_caps =
|
|||
RIG_MODEL(RIG_MODEL_FT1000MP),
|
||||
.model_name = "FT-1000MP",
|
||||
.mfg_name = "Yaesu",
|
||||
.version = "20240229.0",
|
||||
.version = "20240323.1",
|
||||
.copyright = "LGPL",
|
||||
.status = RIG_STATUS_STABLE,
|
||||
.rig_type = RIG_TYPE_TRANSCEIVER,
|
||||
|
@ -849,14 +849,19 @@ static int ft1000mp_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
vfo = rig->state.current_vfo;
|
||||
}
|
||||
|
||||
// round freq to 10Hz intervals due to rig restriction
|
||||
freq = round(freq / 10.0) * 10.0;
|
||||
|
||||
switch (vfo)
|
||||
{
|
||||
case RIG_VFO_A:
|
||||
cmd_index = FT1000MP_NATIVE_FREQA_SET;
|
||||
CACHE(rig)->freqMainA = freq;
|
||||
break;
|
||||
|
||||
case RIG_VFO_B:
|
||||
cmd_index = FT1000MP_NATIVE_FREQB_SET;
|
||||
CACHE(rig)->freqMainB = freq;
|
||||
break;
|
||||
|
||||
case RIG_VFO_MEM:
|
||||
|
@ -874,9 +879,6 @@ static int ft1000mp_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
*/
|
||||
memcpy(&p->p_cmd, &ncmd[cmd_index].nseq, YAESU_CMD_LENGTH);
|
||||
|
||||
// round freq to 10Hz intervals due to rig restriction
|
||||
freq = round(freq / 10.0) * 10.0;
|
||||
|
||||
to_bcd(p->p_cmd, freq / 10, 8); /* store bcd format in in p_cmd */
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: freq = %"PRIfreq" Hz\n", __func__,
|
||||
|
@ -885,6 +887,7 @@ static int ft1000mp_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
cmd = p->p_cmd; /* get native sequence */
|
||||
write_block(RIGPORT(rig), cmd, YAESU_CMD_LENGTH);
|
||||
|
||||
|
||||
RETURNFUNC(RIG_OK);
|
||||
}
|
||||
|
||||
|
@ -939,8 +942,6 @@ static int ft1000mp_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
|
|||
*freq = CACHE(rig)->freqMainB;
|
||||
}
|
||||
|
||||
return RIG_OK;
|
||||
|
||||
RETURNFUNC(RIG_OK);
|
||||
}
|
||||
|
||||
|
|
|
@ -37,8 +37,8 @@ int keyspd = 85; // 85=20WPM
|
|||
// we make B different from A to ensure we see a difference at startup
|
||||
float freqA = 14074000;
|
||||
float freqB = 14074500;
|
||||
mode_t modeA = RIG_MODE_PKTUSB;
|
||||
mode_t modeB = RIG_MODE_PKTUSB;
|
||||
mode_t modeA = RIG_MODE_FM;
|
||||
mode_t modeB = RIG_MODE_FM;
|
||||
int datamodeA = 0;
|
||||
int datamodeB = 0;
|
||||
pbwidth_t widthA = 0;
|
||||
|
@ -110,6 +110,7 @@ void frameParse(int fd, unsigned char *frame, int len)
|
|||
return;
|
||||
}
|
||||
|
||||
printf("Here#1\n");
|
||||
dumphex(frame, len);
|
||||
|
||||
if (frame[0] != 0xfe && frame[1] != 0xfe)
|
||||
|
|
|
@ -1452,6 +1452,7 @@ int HAMLIB_API rig_set_conf(RIG *rig, hamlib_token_t token, const char *val)
|
|||
*/
|
||||
int HAMLIB_API rig_get_conf(RIG *rig, hamlib_token_t token, char *val)
|
||||
{
|
||||
printf("tokendid=%lx, %s\n", token, val);
|
||||
return rig_get_conf2(rig, token, val, 128);
|
||||
}
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue