Add SDRConsole rig entry since TS-2000 is now hardware flow control by default

pull/1529/head
Mike Black W9MDB 2024-03-23 08:46:56 -05:00
rodzic 2feb4cc65c
commit f51e7ef760
6 zmienionych plików z 253 dodań i 2 usunięć

Wyświetl plik

@ -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

Wyświetl plik

@ -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);

Wyświetl plik

@ -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;

Wyświetl plik

@ -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
};

Wyświetl plik

@ -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)

Wyświetl plik

@ -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);
}