Split MDS 4710/9710

pull/1161/head
Mike Black W9MDB 2022-11-16 16:50:33 -06:00
rodzic 25ac6d77d6
commit 1a4745a7c2
7 zmienionych plików z 213 dodań i 102 usunięć

4
NEWS
Wyświetl plik

@ -17,7 +17,9 @@ Version 4.6
Version 4.5.1
* 2022-XX-XX
* Add MDS 4710 rig
* Fix dumpcaps filter printout to only show declared filters
* Fix triggering PTT on XGComms device on Linux
* Add MDS 4710/9710 rigs
* Fix level_gran in all rigs
* Add RIG_FUNC_TUNER to flrig.c
* Fix FT-991 level_gran (needs to be done for lots of rigs)

Wyświetl plik

@ -665,6 +665,7 @@
#define RIG_MDS 36
#define RIG_BACKEND_MDS "MDS"
#define RIG_MODEL_MDS4710 RIG_MAKE_MODEL(RIG_MDS, 1)
#define RIG_MODEL_MDS9710 RIG_MAKE_MODEL(RIG_MDS, 2)
/*
* TODO:
RIG_MODEL_KWZ30, KNEISNER +DOERING

93
rigs/mds/4710.c 100644
Wyświetl plik

@ -0,0 +1,93 @@
#include "mds.h"
const struct rig_caps mds_4710_caps =
{
RIG_MODEL(RIG_MODEL_MDS4710),
.model_name = "4710",
.mfg_name = "MDS",
.version = "20221114.0",
.copyright = "LGPL",
.status = RIG_STATUS_BETA,
.rig_type = RIG_TYPE_TRANSCEIVER,
.ptt_type = RIG_PTT_RIG,
.dcd_type = RIG_DCD_NONE,
.port_type = RIG_PORT_SERIAL,
.serial_rate_min = 110,
.serial_rate_max = 38400,
.serial_data_bits = 8,
.serial_stop_bits = 1,
.serial_parity = RIG_PARITY_NONE,
.serial_handshake = RIG_HANDSHAKE_HARDWARE,
.write_delay = 0,
.post_write_delay = 0,
.timeout = 1000,
.retry = 3,
.has_get_func = RIG_FUNC_NONE,
.has_set_func = RIG_FUNC_NONE,
.has_get_level = MDS_LEVELS,
.has_set_level = RIG_LEVEL_NONE,
.has_get_parm = RIG_PARM_NONE,
.has_set_parm = RIG_PARM_NONE,
// .level_gran = { [LVL_CWPITCH] = { .step = { .i = 10 } } },
// .ctcss_list = common_ctcss_list,
// .dcs_list = full_dcs_list,
// 2050 does have channels...not implemented yet as no need yet
// .chan_list = {
// { 0, 18, RIG_MTYPE_MEM, DUMMY_MEM_CAP },
// { 19, 19, RIG_MTYPE_CALL },
// { 20, NB_CHAN-1, RIG_MTYPE_EDGE },
// RIG_CHAN_END,
// },
// .scan_ops = DUMMY_SCAN,
// .vfo_ops = DUMMY_VFO_OP,
.transceive = RIG_TRN_RIG,
.rx_range_list1 = {
{
.startf = MHz(380), .endf = MHz(530), .modes = MDS_ALL_MODES,
.low_power = 0, .high_power = 0, MDS_VFOS, RIG_ANT_1, "USA"
},
RIG_FRNG_END,
},
.rx_range_list2 = {RIG_FRNG_END,},
.tx_range_list1 = {
{MHz(380), MHz(400), MDS_ALL_MODES, W(.1), W(5), RIG_VFO_A, RIG_ANT_NONE, "USA"},
{MHz(400), MHz(450), MDS_ALL_MODES, W(.1), W(5), RIG_VFO_A, RIG_ANT_NONE, "USA"},
{MHz(450), MHz(512), MDS_ALL_MODES, W(.1), W(5), RIG_VFO_A, RIG_ANT_NONE, "USA"},
{MHz(406), MHz(530), MDS_ALL_MODES, W(.1), W(5), RIG_VFO_A, RIG_ANT_NONE, "USA"},
RIG_FRNG_END,
},
// .tx_range_list2 = {RIG_FRNG_END,}
.tuning_steps = {
// Rem: no support for changing tuning step
{MDS_ALL_MODES, 6250},
RIG_TS_END,
},
.filters = {
{MDS_ALL_MODES, RIG_FLT_ANY},
RIG_FLT_END
},
.priv = NULL,
.rig_init = mds_init,
.rig_open = mds_open,
.rig_cleanup = mds_cleanup,
// .set_conf = dummy_set_conf,
// .get_conf = dummy_get_conf,
.set_freq = mds_set_freq,
.get_freq = mds_get_freq,
// .set_mode = mds_set_mode,
// .get_mode = mds_get_mode,
// .set_level = dummy_set_level,
// .get_level = mds_get_level,
.get_info = mds_get_info,
.set_ptt = mds_set_ptt,
.get_ptt = mds_get_ptt,
// .get_dcd = dummy_get_dcd,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};

91
rigs/mds/9710.c 100644
Wyświetl plik

@ -0,0 +1,91 @@
#include "mds.h"
const struct rig_caps mds_9710_caps =
{
RIG_MODEL(RIG_MODEL_MDS9710),
.model_name = "9710",
.mfg_name = "MDS",
.version = "20221116.0",
.copyright = "LGPL",
.status = RIG_STATUS_BETA,
.rig_type = RIG_TYPE_TRANSCEIVER,
.ptt_type = RIG_PTT_RIG,
.dcd_type = RIG_DCD_NONE,
.port_type = RIG_PORT_SERIAL,
.serial_rate_min = 110,
.serial_rate_max = 38400,
.serial_data_bits = 8,
.serial_stop_bits = 1,
.serial_parity = RIG_PARITY_NONE,
.serial_handshake = RIG_HANDSHAKE_HARDWARE,
.write_delay = 0,
.post_write_delay = 0,
.timeout = 1000,
.retry = 3,
.has_get_func = RIG_FUNC_NONE,
.has_set_func = RIG_FUNC_NONE,
.has_get_level = MDS_LEVELS,
.has_set_level = RIG_LEVEL_NONE,
.has_get_parm = RIG_PARM_NONE,
.has_set_parm = RIG_PARM_NONE,
// .level_gran = { [LVL_CWPITCH] = { .step = { .i = 10 } } },
// .ctcss_list = common_ctcss_list,
// .dcs_list = full_dcs_list,
// 2050 does have channels...not implemented yet as no need yet
// .chan_list = {
// { 0, 18, RIG_MTYPE_MEM, DUMMY_MEM_CAP },
// { 19, 19, RIG_MTYPE_CALL },
// { 20, NB_CHAN-1, RIG_MTYPE_EDGE },
// RIG_CHAN_END,
// },
// .scan_ops = DUMMY_SCAN,
// .vfo_ops = DUMMY_VFO_OP,
.transceive = RIG_TRN_RIG,
.rx_range_list1 = {
{
.startf = MHz(800), .endf = MHz(880), .modes = MDS_ALL_MODES,
.startf = MHz(880), .endf = MHz(960), .modes = MDS_ALL_MODES,
.low_power = 0, .high_power = 0, MDS_ALL_MODES, RIG_ANT_1,
},
RIG_FRNG_END,
},
.rx_range_list2 = {RIG_FRNG_END,},
.tx_range_list1 = {
{MHz(380), MHz(530), MDS_ALL_MODES, W(.1), W(5), RIG_VFO_A, RIG_ANT_NONE},
RIG_FRNG_END,
},
// .tx_range_list2 = {RIG_FRNG_END,}
.tuning_steps = {
// Rem: no support for changing tuning step
{MDS_ALL_MODES, 6250},
RIG_TS_END,
},
.filters = {
{MDS_ALL_MODES, RIG_FLT_ANY},
RIG_FLT_END
},
.priv = NULL,
.rig_init = mds_init,
.rig_open = mds_open,
.rig_cleanup = mds_cleanup,
// .set_conf = dummy_set_conf,
// .get_conf = dummy_get_conf,
.set_freq = mds_set_freq,
.get_freq = mds_get_freq,
// .set_mode = mds_set_mode,
// .get_mode = mds_get_mode,
// .set_level = dummy_set_level,
// .get_level = mds_get_level,
.get_info = mds_get_info,
.set_ptt = mds_set_ptt,
.get_ptt = mds_get_ptt,
// .get_dcd = dummy_get_dcd,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};

Wyświetl plik

@ -1,4 +1,4 @@
MDSSRC = mds.c mds.h
MDSSRC = mds.c mds.h 4710.c 9710.c
noinst_LTLIBRARIES = libhamlib-mds.la
libhamlib_mds_la_SOURCES = $(MDSSRC)

Wyświetl plik

@ -35,20 +35,15 @@
#define MAXCMDLEN 32
#define MDS_VFOS (RIG_VFO_A)
#define MDS_MODES (RIG_MODE_NONE)
#define MDS_LEVELS (RIG_LEVEL_NONE)
const struct rig_caps mds_caps;
extern const struct rig_caps mds_4710_caps;
extern const struct rig_caps mds_9710_caps;
DECLARE_INITRIG_BACKEND(mds)
{
rig_debug(RIG_DEBUG_VERBOSE, "%s: _init called\n", __func__);
rig_register(&mds_caps);
rig_register(&mds_4710_caps);
rig_register(&mds_9710_caps);
rig_debug(RIG_DEBUG_VERBOSE, "%s: _init back from rig_register\n", __func__);
return RIG_OK;
@ -568,93 +563,3 @@ int mds_open(RIG *rig)
retval = mds_transaction(rig, "PTT 0", 0, &response);
RETURNFUNC(retval);
}
const struct rig_caps mds_caps =
{
RIG_MODEL(RIG_MODEL_MDS4710),
.model_name = "4710",
.mfg_name = "MDS",
.version = "20221114.0",
.copyright = "LGPL",
.status = RIG_STATUS_BETA,
.rig_type = RIG_TYPE_TRANSCEIVER,
// .targetable_vfo = RIG_TARGETABLE_FREQ | RIG_TARGETABLE_MODE,
.ptt_type = RIG_PTT_RIG,
.dcd_type = RIG_DCD_NONE,
.port_type = RIG_PORT_SERIAL,
.serial_rate_min = 110,
.serial_rate_max = 38400,
.serial_data_bits = 8,
.serial_stop_bits = 1,
.serial_parity = RIG_PARITY_NONE,
.serial_handshake = RIG_HANDSHAKE_HARDWARE,
.write_delay = 0,
.post_write_delay = 0,
.timeout = 1000,
.retry = 3,
.has_get_func = RIG_FUNC_NONE,
.has_set_func = RIG_FUNC_NONE,
.has_get_level = MDS_LEVELS,
.has_set_level = RIG_LEVEL_NONE,
.has_get_parm = RIG_PARM_NONE,
.has_set_parm = RIG_PARM_NONE,
// .level_gran = { [LVL_CWPITCH] = { .step = { .i = 10 } } },
// .ctcss_list = common_ctcss_list,
// .dcs_list = full_dcs_list,
// 2050 does have channels...not implemented yet as no need yet
// .chan_list = {
// { 0, 18, RIG_MTYPE_MEM, DUMMY_MEM_CAP },
// { 19, 19, RIG_MTYPE_CALL },
// { 20, NB_CHAN-1, RIG_MTYPE_EDGE },
// RIG_CHAN_END,
// },
// .scan_ops = DUMMY_SCAN,
// .vfo_ops = DUMMY_VFO_OP,
.transceive = RIG_TRN_RIG,
.rx_range_list1 = {
{
.startf = MHz(380), .endf = MHz(530), .modes = RIG_MODE_ALL,
.low_power = 0, .high_power = 0, MDS_VFOS, RIG_ANT_1
},
RIG_FRNG_END,
},
.rx_range_list2 = {RIG_FRNG_END,},
.tx_range_list1 = {
{MHz(380), MHz(530), RIG_MODE_ALL, W(.1), W(5), RIG_VFO_A, RIG_ANT_NONE},
RIG_FRNG_END,
},
// .tx_range_list2 = {RIG_FRNG_END,}
.tuning_steps = {
// Rem: no support for changing tuning step
{RIG_MODE_ALL, 6250},
RIG_TS_END,
},
.filters = {
{RIG_MODE_ALL, RIG_FLT_ANY},
RIG_FLT_END
},
.priv = NULL,
.rig_init = mds_init,
.rig_open = mds_open,
.rig_cleanup = mds_cleanup,
// .set_conf = dummy_set_conf,
// .get_conf = dummy_get_conf,
.set_freq = mds_set_freq,
.get_freq = mds_get_freq,
// .set_mode = mds_set_mode,
// .get_mode = mds_get_mode,
// .set_level = dummy_set_level,
// .get_level = mds_get_level,
.get_info = mds_get_info,
.set_ptt = mds_set_ptt,
.get_ptt = mds_get_ptt,
// .get_dcd = dummy_get_dcd,
.hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS
};

Wyświetl plik

@ -1,9 +1,28 @@
#include <hamlib/rig.h>
#define MDS_DATA_LEN 256
#define MDS_RET_LEN 256
#define MDS_VFOS (RIG_VFO_A)
#define MDS_ALL_MODES (RIG_MODE_USB)
#define MDS_LEVELS (RIG_LEVEL_NONE)
struct mds_priv_data {
char cmd_str[MDS_DATA_LEN]; /* command string buffer */
char ret_data[MDS_RET_LEN]; /* returned data--max value, most are less */
};
extern const struct rig_caps barrett_caps;
extern const struct rig_caps mds_4710_caps;
extern const struct rig_caps mds_9710_caps;
int mds_init(RIG *rig);
int mds_open(RIG *rig);
int mds_cleanup(RIG *rig);
int mds_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt);
int mds_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt);
int mds_get_freq(RIG *rig, vfo_t vfo, freq_t *freq);
int mds_set_freq(RIG *rig, vfo_t vfo, freq_t freq);
const char *mds_get_info(RIG *rig);