[Hamlib-commits] Hamlib -- Ham radio control libraries branch Hamlib-4.5.1 created. 4.5-174-g75fbd0
Library to control radio transceivers and receivers
Brought to you by:
n0nb
From: n0nb <n0...@us...> - 2022-12-08 16:46:57
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Hamlib -- Ham radio control libraries". The branch, Hamlib-4.5.1 has been created at 75fbd097b1508e0a29b80206e193fd45a9a332cf (commit) - Log ----------------------------------------------------------------- commit 75fbd097b1508e0a29b80206e193fd45a9a332cf Author: Mike Black W9MDB <mdb...@ya...> Date: Thu Dec 8 09:11:46 2022 -0600 Remove 9710.c diff --git a/rigs/mds/9710.c b/rigs/mds/9710.c deleted file mode 100644 index 0f6bd72f..00000000 --- a/rigs/mds/9710.c +++ /dev/null @@ -1,91 +0,0 @@ -#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 -}; commit 9a1ea33d0e254bf89100dc47cc74bc8ab9698ed4 Author: Mike Black W9MDB <mdb...@ya...> Date: Thu Dec 8 09:08:50 2022 -0600 Revert "Add MDS 4710 rig" This reverts commit 1e68b06b53829221567792276f7de335991331f5. diff --git a/configure.ac b/configure.ac index d6c9f11b..c92e77cc 100644 --- a/configure.ac +++ b/configure.ac @@ -47,7 +47,7 @@ dnl added to AC_CONFIG_FILES near the end of this file. See README.developer dnl Beware of duplication should a backend directory include both rig and dnl rotor definitions, e.g. "dummy". Optional backends will not be listed dnl here but will be added later, e.g. "winradio". -RIG_BACKEND_LIST="rigs/adat rigs/alinco rigs/aor rigs/barrett rigs/codan rigs/dorji rigs/drake rigs/dummy rigs/elad rigs/flexradio rigs/icom rigs/icmarine rigs/jrc rigs/kachina rigs/kenwood rigs/kit rigs/lowe rigs/pcr rigs/prm80 rigs/racal rigs/rft rigs/rs rigs/skanti rigs/tapr rigs/tentec rigs/tuner rigs/uniden rigs/winradio rigs/wj rigs/yaesu rigs/gomspace rigs/mds" +RIG_BACKEND_LIST="rigs/adat rigs/alinco rigs/aor rigs/barrett rigs/codan rigs/dorji rigs/drake rigs/dummy rigs/elad rigs/flexradio rigs/icom rigs/icmarine rigs/jrc rigs/kachina rigs/kenwood rigs/kit rigs/lowe rigs/pcr rigs/prm80 rigs/racal rigs/rft rigs/rs rigs/skanti rigs/tapr rigs/tentec rigs/tuner rigs/uniden rigs/winradio rigs/wj rigs/yaesu rigs/gomspace" ROT_BACKEND_LIST="rotators/amsat rotators/ars rotators/celestron rotators/cnctrk rotators/grbltrk rotators/easycomm rotators/ether6 rotators/fodtrack rotators/gs232a rotators/heathkit rotators/m2 rotators/meade rotators/rotorez rotators/sartek rotators/spid rotators/ts7400 rotators/prosistel rotators/ioptron rotators/satel rotators/radant" # Amplifiers are all in the amplifiers directory AMP_BACKEND_LIST="amplifiers/elecraft amplifiers/gemini" @@ -879,7 +879,6 @@ rigs/winradio/Makefile rigs/wj/Makefile rigs/yaesu/Makefile rigs/gomspace/Makefile -rigs/mds/Makefile tests/Makefile scripts/Makefile android/Makefile diff --git a/include/hamlib/riglist.h b/include/hamlib/riglist.h index fd7a1d93..a6843224 100644 --- a/include/hamlib/riglist.h +++ b/include/hamlib/riglist.h @@ -659,12 +659,6 @@ #define RIG_MODEL_GS100 RIG_MAKE_MODEL(RIG_GOMSPACE, 1) //! @endcond -/* - * MDS Microwave Data Systems https://en.wikipedia.org/wiki/Microwave_Data_Systems - */ -#define RIG_MDS 36 -#define RIG_BACKEND_MDS "MDS" -#define RIG_MODEL_MDS4710 RIG_MAKE_MODEL(RIG_MDS, 1) /* * TODO: RIG_MODEL_KWZ30, KNEISNER +DOERING diff --git a/rigs/mds/Android.mk b/rigs/mds/Android.mk deleted file mode 100644 index 1de62734..00000000 --- a/rigs/mds/Android.mk +++ /dev/null @@ -1,12 +0,0 @@ -LOCAL_PATH:= $(call my-dir) - -include $(CLEAR_VARS) - -LOCAL_SRC_FILES := mds.c -LOCAL_MODULE := mds - -LOCAL_CFLAGS := -LOCAL_C_INCLUDES := android include src -LOCAL_LDLIBS := -lhamlib -Lobj/local/$(TARGET_ARCH_ABI) - -include $(BUILD_STATIC_LIBRARY) diff --git a/rigs/mds/Makefile.am b/rigs/mds/Makefile.am deleted file mode 100644 index ca478dde..00000000 --- a/rigs/mds/Makefile.am +++ /dev/null @@ -1,6 +0,0 @@ -MDSSRC = mds.c - -noinst_LTLIBRARIES = libhamlib-mds.la -libhamlib_mds_la_SOURCES = $(MDSSRC) - -EXTRA_DIST = Android.mk diff --git a/rigs/mds/mds.c b/rigs/mds/mds.c deleted file mode 100644 index e2a9e1ef..00000000 --- a/rigs/mds/mds.c +++ /dev/null @@ -1,660 +0,0 @@ -/* - * Hamlib MDS 4710/9710 backend - main file - * Copyright (c) 2022 by Michael Black W9MDB - * - * - * 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 - * - */ -#include <hamlib/config.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <hamlib/rig.h> -#include "serial.h" -#include "misc.h" -#include "cal.h" -#include "token.h" -#include "register.h" - -#include "mds.h" - -#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; - -DECLARE_INITRIG_BACKEND(mds) -{ - rig_debug(RIG_DEBUG_VERBOSE, "%s: _init called\n", __func__); - - rig_register(&mds_caps); - rig_debug(RIG_DEBUG_VERBOSE, "%s: _init back from rig_register\n", __func__); - - return RIG_OK; -} - -int mds_transaction(RIG *rig, char *cmd, int expected, char **result) -{ - char cmd_buf[MAXCMDLEN]; - int retval; - struct rig_state *rs = &rig->state; - struct mds_priv_data *priv = rig->state.priv; - - rig_debug(RIG_DEBUG_VERBOSE, "%s: cmd=%s\n", __func__, cmd); - - SNPRINTF(cmd_buf, sizeof(cmd_buf), "%s\n", cmd); - - rig_flush(&rs->rigport); - retval = write_block(&rs->rigport, (unsigned char *) cmd_buf, strlen(cmd_buf)); - - if (retval < 0) - { - return retval; - } - - if (expected == 0) - { - return RIG_OK; - } - else - { - char cmdtrm_str[2]; /* Default Command/Reply termination char */ - cmdtrm_str[0] = 0x0d; - cmdtrm_str[1] = 0x00; - retval = read_string(&rs->rigport, (unsigned char *) priv->ret_data, - sizeof(priv->ret_data), cmdtrm_str, strlen(cmdtrm_str), 0, expected); - - if (retval < 0) - { - rig_debug(RIG_DEBUG_ERR, "%s(%d): error in read_block\n", __func__, __LINE__); - return retval; - } - } - - if (result != NULL) - { - rig_debug(RIG_DEBUG_VERBOSE, "%s: setting result\n", __func__); - *result = &(priv->ret_data[0]); - } - else - { - rig_debug(RIG_DEBUG_VERBOSE, "%s: no result requested\n", __func__); - } - - return RIG_OK; -} - -int mds_init(RIG *rig) -{ - rig_debug(RIG_DEBUG_VERBOSE, "%s version %s\n", __func__, rig->caps->version); - // cppcheck claims leak here but it's freed in cleanup - rig->state.priv = (struct mds_priv_data *)calloc(1, - sizeof(struct mds_priv_data)); - - if (!rig->state.priv) - { - return -RIG_ENOMEM; - } - - return RIG_OK; -} - -/* - * mds_cleanup - * - */ - -int mds_cleanup(RIG *rig) -{ - - rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - - if (!rig) - { - return -RIG_EINVAL; - } - - if (rig->state.priv) - { - free(rig->state.priv); - } - - rig->state.priv = NULL; - - return RIG_OK; -} - -/* - * mds_get_freq - * Assumes rig!=NULL, rig->state.priv!=NULL, freq!=NULL - */ -int mds_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) -{ - int retval; - char *response = NULL; - - rig_debug(RIG_DEBUG_VERBOSE, "%s: vfo=%s\n", __func__, rig_strvfo(vfo)); - *freq = 0; - - retval = mds_transaction(rig, "TX", 16, &response); - - if (retval != RIG_OK) - { - rig_debug(RIG_DEBUG_ERR, "%s: invalid response=%s\n", __func__, response); - return retval; - } - - retval = sscanf(response, "%lg", freq); - - if (retval != 1) - { - rig_debug(RIG_DEBUG_ERR, "%s: Unable to parse response\n", __func__); - return -RIG_EPROTO; - } - - return RIG_OK; -} - -// TC command does not work on 4050 -- not implemented as of 2022-01-12 -/* - * mds_set_freq - * assumes rig!=NULL, rig->state.priv!=NULL - */ -int mds_set_freq(RIG *rig, vfo_t vfo, freq_t freq) -{ - char cmd_buf[MAXCMDLEN]; - int retval; - freq_t tfreq; - - rig_debug(RIG_DEBUG_VERBOSE, "%s: vfo=%s freq=%.0f\n", __func__, - rig_strvfo(vfo), freq); - - retval = rig_get_freq(rig, vfo, &tfreq); - - if (retval != RIG_OK) - { - rig_debug(RIG_DEBUG_VERBOSE, "%s: get_freq failed: %s\n", __func__, - strerror(retval)); - return retval; - } - - if (tfreq == freq) - { - rig_debug(RIG_DEBUG_VERBOSE, "%s: freq not changing\n", __func__); - return RIG_OK; - } - - // If we are not explicitly asking for VFO_B then we'll set the receive side also - if (vfo != RIG_VFO_B) - { - char *response = NULL; - SNPRINTF((char *) cmd_buf, sizeof(cmd_buf), "TX%.4f", freq / 1e6); - retval = mds_transaction(rig, cmd_buf, 0, &response); - - if (retval < 0) - { - rig_debug(RIG_DEBUG_ERR, "%s: TX failed\n", __func__); - return retval; - } - - SNPRINTF((char *) cmd_buf, sizeof(cmd_buf), "RX%.4f", freq / 1e6); - retval = mds_transaction(rig, cmd_buf, 0, &response); - - if (retval < 0) - { - rig_debug(RIG_DEBUG_ERR, "%s: RX failed\n", __func__); - return retval; - } - } - - return RIG_OK; -} - -/* - * mds_set_ptt - * Assumes rig!=NULL - */ -int mds_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt) -{ - int retval; - char cmd_buf[MAXCMDLEN]; - char *response = NULL; - - rig_debug(RIG_DEBUG_VERBOSE, "%s: ptt=%d\n", __func__, ptt); - - SNPRINTF(cmd_buf, sizeof(cmd_buf), "%s", ptt ? "KEY" : "DKEY"); - retval = mds_transaction(rig, cmd_buf, 0, &response); - - if (retval < 0) - { - rig_debug(RIG_DEBUG_ERR, "%s: invalid response=%s\n", __func__, response); - return retval; - } - - if (strncmp(response, "OK", 2) != 0) - { - rig_debug(RIG_DEBUG_ERR, "%s: Expected OK, got '%s'\n", __func__, response); - return -RIG_EINVAL; - } - - rig_debug(RIG_DEBUG_VERBOSE, "%s: cmd:IP result=%s\n", __func__, response); - - return RIG_OK; -} - -/* - * mds_get_ptt - * Assumes rig!=NULL - */ -int mds_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt) -{ - int retval; - char *response = NULL; - char c; - - rig_debug(RIG_DEBUG_VERBOSE, "%s: vfo=%s\n", __func__, rig_strvfo(vfo)); - - retval = mds_transaction(rig, "IP", 0, &response); - - if (retval != RIG_OK) - { - rig_debug(RIG_DEBUG_ERR, "%s: error response?='%s'\n", __func__, response); - return retval; - } - - c = response[0]; - - if (c == '1' || c == '0') - { - *ptt = c - '0'; - } - else - { - rig_debug(RIG_DEBUG_ERR, "%s: error response='%s'\n", __func__, response); - return -RIG_EPROTO; - } - - return RIG_OK; -} - -/* - * mds_set_mode - * Assumes rig!=NULL - * Note that 2050 does not have set or get width - */ -int mds_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) -{ - char cmd_buf[32], ttmode; - int retval; - rmode_t tmode; - pbwidth_t twidth; - - //struct tt588_priv_data *priv = (struct tt588_priv_data *) rig->state.priv; - - rig_debug(RIG_DEBUG_VERBOSE, "%s: vfo=%s mode=%s width=%d\n", __func__, - rig_strvfo(vfo), rig_strrmode(mode), (int)width); - - retval = rig_get_mode(rig, vfo, &tmode, &twidth); - - if (retval != RIG_OK) - { - rig_debug(RIG_DEBUG_ERR, "%s: get_mode failed %s\n", __func__, - strerror(retval)); - } - - if (tmode == mode) - { - rig_debug(RIG_DEBUG_VERBOSE, "%s: already mode %s so not changing\n", __func__, - rig_strrmode(mode)); - return RIG_OK; - } - - switch (mode) - { - case RIG_MODE_USB: - ttmode = 'U'; - break; - - case RIG_MODE_LSB: - ttmode = 'L'; - break; - - case RIG_MODE_CW: - ttmode = 'C'; - break; - - case RIG_MODE_AM: - ttmode = 'A'; - break; - - case RIG_MODE_RTTY: - ttmode = 'F'; - break; - - default: - rig_debug(RIG_DEBUG_ERR, "%s: unsupported mode %s\n", __func__, - rig_strrmode(mode)); - return -RIG_EINVAL; - } - - SNPRINTF((char *) cmd_buf, sizeof(cmd_buf), "TB%c\n", ttmode); - - retval = mds_transaction(rig, cmd_buf, 0, NULL); - - if (retval < 0) - { - return retval; - } - - return RIG_OK; -} - -/* - * mds_get_mode - * Assumes rig!=NULL - * Note that 2050 does not have set or get width - */ -int mds_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width) -{ - char *result = NULL; - int retval; - - rig_debug(RIG_DEBUG_VERBOSE, "%s: vfo=%s\n", __func__, rig_strvfo(vfo)); - - retval = mds_transaction(rig, "IB", 0, &result); - - if (retval != RIG_OK) - { - rig_debug(RIG_DEBUG_ERR, "%s: bad response=%s\n", __func__, result); - return retval; - } - - //dump_hex((unsigned char *)result,strlen(result)); - switch (result[1]) - { - case 'L': - *mode = RIG_MODE_LSB; - break; - - case 'U': - *mode = RIG_MODE_USB; - break; - - case 'A': - *mode = RIG_MODE_AM; - break; - - case 'F': - *mode = RIG_MODE_RTTY; - break; - - case 'C': - *mode = RIG_MODE_CW; - break; - - default: - rig_debug(RIG_DEBUG_ERR, "%s: Unknown mode='%c%c'\n", __func__, result[0], - result[1]); - return -RIG_EPROTO; - } - - *width = 3000; // we'll default this to 3000 for now - rig_debug(RIG_DEBUG_VERBOSE, "%s: vfo=%s mode=%s width=%d\n", __func__, - rig_strvfo(vfo), rig_strrmode(*mode), (int)*width); - - return RIG_OK; -} - -#if 0 -int mds_get_vfo(RIG *rig, vfo_t *vfo) -{ - *vfo = RIG_VFO_A; - - if (check_vfo(*vfo) == FALSE) - { - rig_debug(RIG_DEBUG_ERR, "%s: unsupported VFO %s\n", __func__, - rig_strvfo(*vfo)); - return -RIG_EINVAL; - } - - rig_debug(RIG_DEBUG_VERBOSE, "%s: vfo=%s\n", __func__, rig_strvfo(*vfo)); - - return RIG_OK; -} -#endif - -/* - * mds_get_level - */ -int mds_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) -{ - int retval = 0; - char *response = NULL; - - switch (level) - { - int strength; - int n; - - case RIG_LEVEL_STRENGTH: - retval = mds_transaction(rig, "IAL", 0, &response); - - if (retval < 0) - { - rig_debug(RIG_DEBUG_ERR, "%s: invalid response=%s\n", __func__, - response); - return retval; - } - - n = sscanf(response, "%2d", &strength); - - if (n == 1) - { - val->i = strength; - } - else - { - rig_debug(RIG_DEBUG_ERR, "%s: unable to parse STRENGTH from %s\n", - __func__, response); - return -RIG_EPROTO; - } - - break; - - default: - rig_debug(RIG_DEBUG_ERR, "%s: unsupported level %s\n", __func__, - rig_strlevel(level)); - return -RIG_EINVAL; - } - - rig_debug(RIG_DEBUG_VERBOSE, "%s: vfo=%s level=%s val=%s\n", __func__, - rig_strvfo(vfo), rig_strlevel(level), response); - - return RIG_OK; -} - -/* - * mds_get_info - */ -const char *mds_get_info(RIG *rig) -{ - char *response = NULL; - int retval; - - rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); - - retval = mds_transaction(rig, "MODEL", 16, &response); - - if (retval != RIG_OK) - { - rig_debug(RIG_DEBUG_WARN, "%s: MODEL command failed: %s\n", __func__, - strerror(retval)); - } - else - { - rig_debug(RIG_DEBUG_VERBOSE, "Model: %s\n", response); - } - - response = NULL; - retval = mds_transaction(rig, "SER", 16, &response); - - if (retval != RIG_OK) - { - rig_debug(RIG_DEBUG_WARN, "%s: SER command failed: %s\n", __func__, - strerror(retval)); - } - else - { - rig_debug(RIG_DEBUG_VERBOSE, "Serial# %s\n", response); - } - - response = NULL; - retval = mds_transaction(rig, "SREV", 16, &response); - - if (retval != RIG_OK) - { - rig_debug(RIG_DEBUG_WARN, "%s: SREV command failed: %s\n", __func__, - strerror(retval)); - } - else - { - rig_debug(RIG_DEBUG_VERBOSE, "Firmware %s\n", response); - } - - response = NULL; - retval = mds_transaction(rig, "SHOW DC", 16, &response); - - if (retval != RIG_OK) - { - rig_debug(RIG_DEBUG_ERR, "%s: SHOW DC failed result=%s\n", __func__, response); - } - else - { - rig_debug(RIG_DEBUG_VERBOSE, "DC %s\n", response); - } - - return response; -} - -int mds_open(RIG *rig) -{ - char *response = NULL; - int retval; - - ENTERFUNC; - mds_get_info(rig); - retval = mds_transaction(rig, "MODEM NONE", 0, &response); - 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 -}; diff --git a/rigs/mds/mds.h b/rigs/mds/mds.h deleted file mode 100644 index b9d0cfce..00000000 --- a/rigs/mds/mds.h +++ /dev/null @@ -1,9 +0,0 @@ -#define MDS_DATA_LEN 256 -#define MDS_RET_LEN 256 -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; - diff --git a/src/register.c b/src/register.c index d49f2b9f..c9aa4841 100644 --- a/src/register.c +++ b/src/register.c @@ -44,7 +44,7 @@ # define PATH_MAX 1024 #endif -#define RIG_BACKEND_MAX 50 +#define RIG_BACKEND_MAX 32 #define DEFINE_INITRIG_BACKEND(backend) \ int MAKE_VERSIONED_FN(PREFIX_INITRIG, ABI_VERSION, backend(void *be_handle)); \ @@ -89,7 +89,6 @@ DEFINE_INITRIG_BACKEND(barrett); DEFINE_INITRIG_BACKEND(elad); DEFINE_INITRIG_BACKEND(codan); DEFINE_INITRIG_BACKEND(gomspace); -DEFINE_INITRIG_BACKEND(mds); //! @endcond #ifdef HAVE_WINRADIO @@ -148,7 +147,6 @@ static struct { RIG_ELAD, RIG_BACKEND_ELAD, RIG_FUNCNAMA(elad) }, { RIG_CODAN, RIG_BACKEND_CODAN, RIG_FUNCNAMA(codan) }, { RIG_GOMSPACE, RIG_BACKEND_GOMSPACE, RIG_FUNCNAM(gomspace) }, - { RIG_MDS, RIG_BACKEND_MDS, RIG_FUNCNAMA(mds) }, { 0, NULL }, /* end */ }; commit bffec5b5284dc2e6e9a8097b842d8b587b8fd87f Author: Mike Black W9MDB <mdb...@ya...> Date: Thu Dec 8 09:08:05 2022 -0600 Revert "Add mds.h to mds/Makefile.am" This reverts commit 99627855a20a1c61781f5c3cc148efa8c0b5f1c4. diff --git a/rigs/mds/Makefile.am b/rigs/mds/Makefile.am index 12bfe7ee..ca478dde 100644 --- a/rigs/mds/Makefile.am +++ b/rigs/mds/Makefile.am @@ -1,4 +1,4 @@ -MDSSRC = mds.c mds.h +MDSSRC = mds.c noinst_LTLIBRARIES = libhamlib-mds.la libhamlib_mds_la_SOURCES = $(MDSSRC) commit 4b794bf08f0d6444efaa6e46968ef6939ab4aa9d Author: Mike Black W9MDB <mdb...@ya...> Date: Thu Dec 8 09:07:29 2022 -0600 Revert "Split MDS 4710/9710" This reverts commit 1a4745a7c21b5e55653540e8a003f2ad0cee6d9f. diff --git a/include/hamlib/riglist.h b/include/hamlib/riglist.h index 0850f5ed..fd7a1d93 100644 --- a/include/hamlib/riglist.h +++ b/include/hamlib/riglist.h @@ -665,7 +665,6 @@ #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 diff --git a/rigs/mds/4710.c b/rigs/mds/4710.c deleted file mode 100644 index 8d3725e5..00000000 --- a/rigs/mds/4710.c +++ /dev/null @@ -1,93 +0,0 @@ -#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 -}; diff --git a/rigs/mds/Makefile.am b/rigs/mds/Makefile.am index 20144ede..12bfe7ee 100644 --- a/rigs/mds/Makefile.am +++ b/rigs/mds/Makefile.am @@ -1,4 +1,4 @@ -MDSSRC = mds.c mds.h 4710.c 9710.c +MDSSRC = mds.c mds.h noinst_LTLIBRARIES = libhamlib-mds.la libhamlib_mds_la_SOURCES = $(MDSSRC) diff --git a/rigs/mds/mds.c b/rigs/mds/mds.c index 37f73c25..e2a9e1ef 100644 --- a/rigs/mds/mds.c +++ b/rigs/mds/mds.c @@ -35,15 +35,20 @@ #define MAXCMDLEN 32 -extern const struct rig_caps mds_4710_caps; -extern const struct rig_caps mds_9710_caps; +#define MDS_VFOS (RIG_VFO_A) + +#define MDS_MODES (RIG_MODE_NONE) + +#define MDS_LEVELS (RIG_LEVEL_NONE) + + +const struct rig_caps mds_caps; DECLARE_INITRIG_BACKEND(mds) { rig_debug(RIG_DEBUG_VERBOSE, "%s: _init called\n", __func__); - rig_register(&mds_4710_caps); - rig_register(&mds_9710_caps); + rig_register(&mds_caps); rig_debug(RIG_DEBUG_VERBOSE, "%s: _init back from rig_register\n", __func__); return RIG_OK; @@ -563,3 +568,93 @@ 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 +}; diff --git a/rigs/mds/mds.h b/rigs/mds/mds.h index 2b985eb8..b9d0cfce 100644 --- a/rigs/mds/mds.h +++ b/rigs/mds/mds.h @@ -1,28 +1,9 @@ -#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 mds_4710_caps; -extern const struct rig_caps mds_9710_caps; +extern const struct rig_caps barrett_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); commit 6ad428e09180d5d6a79f39ad6e6ce0c649415e5b Author: Mike Black W9MDB <mdb...@ya...> Date: Thu Dec 8 09:01:55 2022 -0600 Revert "Change MDS 4710/9710 to Alpha status -- no testing has been done yet" This reverts commit 09f83cbfb7b2be5909dfa329e0c7d20ad253a694. diff --git a/rigs/mds/4710.c b/rigs/mds/4710.c index 879bf38a..8d3725e5 100644 --- a/rigs/mds/4710.c +++ b/rigs/mds/4710.c @@ -7,7 +7,7 @@ const struct rig_caps mds_4710_caps = .mfg_name = "MDS", .version = "20221114.0", .copyright = "LGPL", - .status = RIG_STATUS_ALPHA, + .status = RIG_STATUS_BETA, .rig_type = RIG_TYPE_TRANSCEIVER, .ptt_type = RIG_PTT_RIG, .dcd_type = RIG_DCD_NONE, diff --git a/rigs/mds/9710.c b/rigs/mds/9710.c index 5bd40740..0f6bd72f 100644 --- a/rigs/mds/9710.c +++ b/rigs/mds/9710.c @@ -7,7 +7,7 @@ const struct rig_caps mds_9710_caps = .mfg_name = "MDS", .version = "20221116.0", .copyright = "LGPL", - .status = RIG_STATUS_ALPHA, + .status = RIG_STATUS_BETA, .rig_type = RIG_TYPE_TRANSCEIVER, .ptt_type = RIG_PTT_RIG, .dcd_type = RIG_DCD_NONE, commit f1464f5a1ce9b1de39f6100690b4bb46daa226f9 Author: Mike Black W9MDB <mdb...@ya...> Date: Thu Dec 8 09:01:44 2022 -0600 Revert "Fix range list in mds.c" This reverts commit b4a6f985247a2289dee8554d27f89132feeb1781. diff --git a/rigs/mds/9710.c b/rigs/mds/9710.c index f380dbc7..5bd40740 100644 --- a/rigs/mds/9710.c +++ b/rigs/mds/9710.c @@ -45,9 +45,6 @@ const struct rig_caps mds_9710_caps = .rx_range_list1 = { { .startf = MHz(800), .endf = MHz(880), .modes = MDS_ALL_MODES, - .low_power = 0, .high_power = 0, MDS_ALL_MODES, RIG_ANT_1, - }, - { .startf = MHz(880), .endf = MHz(960), .modes = MDS_ALL_MODES, .low_power = 0, .high_power = 0, MDS_ALL_MODES, RIG_ANT_1, }, commit 96134330391def67cac21be64a74e7e29efc708e Merge: 58f9fd41 b5e25822 Author: Mike Black W9MDB <mdb...@ya...> Date: Thu Dec 8 09:00:38 2022 -0600 Merge remote-tracking branch 'origin/master' into Hamlib-4.5.1 diff --cc NEWS index 35dfca97,7fc4511d..70890f3c --- a/NEWS +++ b/NEWS @@@ -13,7 -13,33 +13,33 @@@ Version 5.x -- futur * Change FT1000MP Mark V model names to align with FT1000MP Version 4.6 - * 2023-XX-XX + * 2023-11-XX -- Planned for Nov 2023 + * Add MDS 4710/9710 rigs + + Version 4.5.1 - * 2022-XX-XX ++ * 2022-12-08 + * FT2000, FTDX3000/D, FT891, FT991, FT950, FTDX5000 now set CAT TOT to 100ms + * Add missing NB2 setting to FT-950, FTDX-1200, FTDX-3000, FTDX-5000, FTDX-9000 + * Add missing meter reading to TS-890S -- thanks to Geore Baltz N3GB + * Fix FT736 VFOB freq and mode set + * Added send_raw to rigctl -- see rigctl man page + * Fix AGC Level dumpcaps on most rigs + * Fix rig_send_raw to return bytes read, fill buffer, and also work with fixed length response/null terminator + * Change all Kenwood rigs to 500ms serial timeout + * Fix dumpcaps filter printout to only show declared filters + * Fix triggering PTT on XGComms device on Linux + * 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) + * Fix man page rigctl to show units for LEVEL items + * Fix Flex6xxx if_len + * Fix FLRig set_ptt + * Fix missing KEYSPD to TS890 + * rigctl 'W' command can now use a singled char terminator like ; that allows for variable length responses with no timeout -- e.g. W FA; ; + * New RIG_LEVEL_USB_AF to control audio gain from rig to computer -- to allow AGC function in software using RF and USB_AF + * Add RIG_LEVEL_AGC_TIME to allow AGC/OFF to be set for IC-7300, IC-9700, IC-705 + * Add RIG_FUNC_OVF_STATUS to get overflow status for IC-7300, IC-9700, IC-705, and IC-R8600 + Version 4.5 * 2022-10-30 diff --cc configure.ac index 28908b58,866ebff4..d6c9f11b --- a/configure.ac +++ b/configure.ac @@@ -14,7 -14,7 +14,7 @@@ dnl Please do not use '-' in the versio dnl however, the use of '~' should be fine as apt (others?) will treat dnl it as an earlier version than the actual release. TNX KA6MAL dnl PACKAGE_NAME + " " + PACKAGE_VERSION must not exceed 20 chars! - AC_INIT([Hamlib],[4.5],[ham...@li...],[hamlib],[http://www.hamlib.org]) -AC_INIT([Hamlib],[4.6~git],[ham...@li...],[hamlib],[http://www.hamlib.org]) ++AC_INIT([Hamlib],[4.5.1],[ham...@li...],[hamlib],[http://www.hamlib.org]) AC_CONFIG_SRCDIR([include/hamlib/rig.h]) AC_CONFIG_MACRO_DIR([macros]) commit b5e258228e3559ff615768c1d148676279144512 Author: Mike Black W9MDB <mdb...@ya...> Date: Wed Dec 7 15:30:38 2022 -0600 Add missing calibration tables for TS890S diff --git a/rigs/kenwood/ts890s.c b/rigs/kenwood/ts890s.c index d30217bd..9c23b131 100644 --- a/rigs/kenwood/ts890s.c +++ b/rigs/kenwood/ts890s.c @@ -24,6 +24,7 @@ #include <hamlib/rig.h> #include "kenwood.h" +#include "cal.h" // TODO: Copied from TS-480, to be verified #define TS890_VFO (RIG_VFO_A|RIG_VFO_B) @@ -37,7 +38,7 @@ // TODO: Copied from TS-480, to be verified #define TS890_LEVEL_SET (RIG_LEVEL_RFPOWER|RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_SQL|RIG_LEVEL_AGC|RIG_LEVEL_KEYSPD|RIG_LEVEL_CWPITCH) -#define TS890_LEVEL_GET (RIG_LEVEL_RFPOWER|RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_SQL|RIG_LEVEL_AGC|RIG_LEVEL_KEYSPD|RIG_LEVEL_ALC|RIG_LEVEL_SWR|RIG_LEVEL_COMP_METER|RIG_LEVEL_ID_METER|RIG_LEVEL_VD_METER|RIG_LEVEL_TEMP_METER|RIG_LEVEL_CWPITCH) +#define TS890_LEVEL_GET (RIG_LEVEL_RFPOWER|RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_SQL|RIG_LEVEL_AGC|RIG_LEVEL_KEYSPD|RIG_LEVEL_ALC|RIG_LEVEL_SWR|RIG_LEVEL_COMP_METER|RIG_LEVEL_ID_METER|RIG_LEVEL_VD_METER|RIG_LEVEL_TEMP_METER|RIG_LEVEL_CWPITCH|RIG_LEVEL_RAWSTR|RIG_LEVEL_STRENGTH) #define TS890_FUNC_ALL (RIG_FUNC_NB|RIG_FUNC_NB2|RIG_FUNC_COMP|RIG_FUNC_VOX|RIG_FUNC_NR|RIG_FUNC_BC|RIG_FUNC_BC2|RIG_FUNC_RIT|RIG_FUNC_XIT|RIG_FUNC_TUNER|RIG_FUNC_SEND_MORSE) #define TS890_VFO_OPS (RIG_OP_UP|RIG_OP_DOWN|RIG_OP_BAND_UP|RIG_OP_BAND_DOWN|RIG_OP_CPY|RIG_OP_TUNE) @@ -302,23 +303,17 @@ int kenwood_ts890_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) return retval; } - if (levelint < 0 || levelint >= 70) + if (rig->caps->swr_cal.size) { - val->f = 99.0; /* 99 == infinty */ + val->f = rig_raw2val_float(val->i, &rig->caps->swr_cal); } else { -#if 0 - val->f = 70.0 / (70 - levelint); -#else - /* Linear approximations of a very non-linear function */ if (levelint < 12) { val->f = 1.0 + (float)levelint / 22.0; } else if (levelint < 24) { val->f = 1.5 + (float)(levelint - 11) / 24.0; } else if (levelint < 36) { val->f = 2.0 + (float)(levelint - 23) / 12.0; } else { val->f = 3.0 + (float)(levelint - 35) / 6.0; } - -#endif } return RIG_OK; @@ -383,6 +378,50 @@ static struct kenwood_priv_caps ts890s_priv_caps = .cmdtrm = EOM_KEN, }; +/* S-meter calibration table + * The TS-890S has two distinct S-meter curves, selectable + * by menu option. Define both, but since Hamlib has only + * one slot, use the the IARU one. + * Values taken from TS-890S In-Depth Manual, p. 8 + */ +/* Meter Type 1 - Kenwood specific (default) */ +#define TS890_SM_CAL2 { 9, \ + { \ + { 0, -28 }, \ + { 3, -26 }, \ + { 11, -20 }, \ + { 19, -13 }, \ + { 27, -7 }, \ + { 35, 0 }, \ + { 48, 20 }, \ + { 59, 40 }, \ + { 70, 60 }, \ + } } +/* Meter Type 2 - IARU Standard */ +#define TS890_SM_CAL1 { 9, \ + { \ + { 0, -54 }, \ + { 3, -48 }, \ + { 11, -36 }, \ + { 19, -24 }, \ + { 27, -12 }, \ + { 35, 0 }, \ + { 48, 20 }, \ + { 59, 40 }, \ + { 70, 60 }, \ + } } + +/* SWR meter calibration table */ +/* The full scale value reads infinity, so arbitrary */ +#define TS890_SWR_CAL { 5, \ + { \ + { 0, 1.0 }, \ + { 11, 1.5 }, \ + { 23, 2.0 }, \ + { 35, 3.0 }, \ + { 70, 15.0 } \ + } } + /* * TS-890S rig capabilities * Copied from ts480_caps, many of the values have not been verified. @@ -393,7 +432,7 @@ const struct rig_caps ts890s_caps = RIG_MODEL(RIG_MODEL_TS890S), .model_name = "TS-890S", .mfg_name = "Kenwood", - .version = BACKEND_VER ".8", + .version = BACKEND_VER ".9", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -415,7 +454,7 @@ const struct rig_caps ts890s_caps = .max_rit = kHz(9.99), .max_xit = kHz(9.99), .max_ifshift = Hz(0), - .targetable_vfo = RIG_TARGETABLE_FREQ|RIG_TARGETABLE_MODE, + .targetable_vfo = RIG_TARGETABLE_FREQ | RIG_TARGETABLE_MODE, .transceive = RIG_TRN_RIG, .agc_level_count = 5, .agc_levels = { RIG_AGC_OFF, RIG_AGC_SLOW, RIG_AGC_MEDIUM, RIG_AGC_FAST, RIG_AGC_ON }, @@ -504,6 +543,9 @@ const struct rig_caps ts890s_caps = }, .vfo_ops = TS890_VFO_OPS, + .str_cal = TS890_SM_CAL1, + .swr_cal = TS890_SWR_CAL, + .priv = (void *)& ts890s_priv_caps, .rig_init = kenwood_init, .rig_open = kenwood_open, commit 2fc6344d546d456f4d4749ebe18159a3baf17e93 Author: Mike Black W9MDB <mdb...@ya...> Date: Tue Dec 6 23:27:28 2022 -0600 Update simftdx3000.c diff --git a/simulators/simftdx3000.c b/simulators/simftdx3000.c index 6438f634..e8c4a31f 100644 --- a/simulators/simftdx3000.c +++ b/simulators/simftdx3000.c @@ -231,14 +231,27 @@ int main(int argc, char *argv[]) } else if (strcmp(buf, "FT;") == 0) { - SNPRINTF(buf, sizeof(buf), "FT%d;", ft); + int val = ft; + + if (ft == 2) { val == 0; } + else if (ft == 3) { val == 1; } + + SNPRINTF(buf, sizeof(buf), "FT%d;", val); n = write(fd, buf, strlen(buf)); } + else if (strncmp(buf, "FT", 2) == 0) + { + sscanf(buf, "FT%d", &ft); + } else if (strcmp(buf, "MD0;") == 0) { SNPRINTF(buf, sizeof(buf), "MD0%d;", md); n = write(fd, buf, strlen(buf)); } + else if (strncmp(buf, "MD0", 3) == 0) + { + sscanf(buf, "MD0%d", &md); + } else if (strcmp(buf, "VS;") == 0) { SNPRINTF(buf, sizeof(buf), "VS%d;", vs); commit 22af811d5ff3fe7260d54044ce748a1963547499 Author: Mike Black W9MDB <mdb...@ya...> Date: Tue Dec 6 12:56:13 2022 -0600 Fix spelling error in rig.c diff --git a/src/rig.c b/src/rig.c index c0d7f269..7c8b326f 100644 --- a/src/rig.c +++ b/src/rig.c @@ -7403,7 +7403,7 @@ static int async_data_handler_start(RIG *rig) if (!rs->async_data_enabled) { rig_debug(RIG_DEBUG_TRACE, - "%s: async data support disabled since asynd_data_enabled=%d\n", __func__, + "%s: async data support disabled since async_data_enabled=%d\n", __func__, rs->async_data_enabled); RETURNFUNC(RIG_OK); } commit 6a80385f8bc2658b1f29aa5cb32d3ea1b60c82a3 Merge: 40d1bad1 5f634df5 Author: Mike Black W9MDB <mdb...@ya...> Date: Mon Dec 5 13:59:55 2022 -0600 Merge branch 'master' of https://github.com/Hamlib/Hamlib commit 5f634df53843d1e5235b067c0470993952e99cac Merge: e3487cb5 dae50c7a Author: Michael Black <mdb...@ya...> Date: Mon Dec 5 13:51:53 2022 -0600 Merge pull request #1175 from PianetaRadio/master Updated YaesuTargetableVFO.ods commit dae50c7a953fb6b1ba5a0a091eb508b28c9a2aa6 Merge: 825fc07d e3487cb5 Author: PianetaRadio <789...@us...> Date: Mon Dec 5 20:40:50 2022 +0100 Merge branch 'Hamlib:master' into master commit 40d1bad1e144feacdbe229af8afd9e36173b25de Author: Mike Black W9MDB <mdb...@ya...> Date: Mon Dec 5 12:49:03 2022 -0600 Fix Jupiter set_freq problem -- was messing up strlen due to binary format https://github.com/Hamlib/Hamlib/issues/1174 diff --git a/rigs/tentec/jupiter.c b/rigs/tentec/jupiter.c index bb54dec5..5009991a 100644 --- a/rigs/tentec/jupiter.c +++ b/rigs/tentec/jupiter.c @@ -130,7 +130,7 @@ const struct rig_caps tt538_caps = RIG_MODEL(RIG_MODEL_TT538), .model_name = "TT-538 Jupiter", .mfg_name = "Ten-Tec", - .version = "20191209.0", + .version = "20221205.0", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -444,20 +444,20 @@ int tt538_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) int tt538_set_freq(RIG *rig, vfo_t vfo, freq_t freq) { - char bytes[4]; + unsigned char bytes[4]; unsigned char cmdbuf[16]; /* Freq is 4 bytes long, MSB sent first. */ - bytes[3] = ((int) freq >> 24) & 0xff; - bytes[2] = ((int) freq >> 16) & 0xff; - bytes[1] = ((int) freq >> 8) & 0xff; - bytes[0] = (int) freq & 0xff; + bytes[3] = ((unsigned int) freq >> 24) & 0xff; + bytes[2] = ((unsigned int) freq >> 16) & 0xff; + bytes[1] = ((unsigned int) freq >> 8) & 0xff; + bytes[0] = ((unsigned int) freq ) & 0xff; SNPRINTF((char *) cmdbuf, sizeof(cmdbuf), "*%c%c%c%c%c" EOM, which_vfo(rig, vfo), bytes[3], bytes[2], bytes[1], bytes[0]); - return tt538_transaction(rig, (char *) cmdbuf, strlen((char *)cmdbuf), NULL, + return tt538_transaction(rig, (char *) cmdbuf, 6, NULL, NULL); } @@ -716,7 +716,7 @@ int tt538_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) width = tt538_filter_number((int) width); SNPRINTF((char *) cmdbuf, sizeof(cmdbuf), "*W%c" EOM, (unsigned char) width); - return tt538_transaction(rig, (char *) cmdbuf, strlen((char *)cmdbuf), NULL, + return tt538_transaction(rig, (char *) cmdbuf, 4, NULL, NULL); return RIG_OK; @@ -1006,6 +1006,7 @@ int tt538_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) { char cc, cmdbuf[32], c1, c2; int retval; + int len; switch (level) { @@ -1023,20 +1024,24 @@ int tt538_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) } SNPRINTF(cmdbuf, sizeof(cmdbuf), "*G%c" EOM, cc); + len = 4; break; case RIG_LEVEL_AF: SNPRINTF(cmdbuf, sizeof(cmdbuf), "*U%c" EOM, (int)(127 * val.f)); + len = 4; break; case RIG_LEVEL_RF: SNPRINTF(cmdbuf, sizeof(cmdbuf), "*I%c" EOM, (int)(127 * val.f)); + len = 4; break; case RIG_LEVEL_IF: c1 = val.i >> 8; c2 = val.i & 0xff; SNPRINTF(cmdbuf, sizeof(cmdbuf), "*P%c%c" EOM, c1, c2); + len = 5; break; case RIG_LEVEL_ATT: @@ -1050,10 +1055,12 @@ int tt538_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) } SNPRINTF(cmdbuf, sizeof(cmdbuf), "*J%c" EOM, cc); + len = 4; break; case RIG_LEVEL_SQL: SNPRINTF(cmdbuf, sizeof(cmdbuf), "*H%c" EOM, (int)(127 * val.f)); + len = 4; break; default: @@ -1062,7 +1069,7 @@ int tt538_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) return -RIG_EINVAL; } - retval = tt538_transaction(rig, cmdbuf, strlen((char *)cmdbuf), NULL, NULL); + retval = tt538_transaction(rig, cmdbuf, len, NULL, NULL); if (retval != RIG_OK) { commit e3487cb5c6330243cf8cf7f0081e5b4b74c1becc Author: Mike Black W9MDB <mdb...@ya...> Date: Mon Dec 5 09:13:13 2022 -0600 Add RIG_TARGETABLE_MODE to ts890.c https://github.com/Hamlib/Hamlib/issues/1172 diff --git a/rigs/kenwood/ts890s.c b/rigs/kenwood/ts890s.c index bfcd067f..d30217bd 100644 --- a/rigs/kenwood/ts890s.c +++ b/rigs/kenwood/ts890s.c @@ -393,7 +393,7 @@ const struct rig_caps ts890s_caps = RIG_MODEL(RIG_MODEL_TS890S), .model_name = "TS-890S", .mfg_name = "Kenwood", - .version = BACKEND_VER ".7", + .version = BACKEND_VER ".8", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -415,7 +415,7 @@ const struct rig_caps ts890s_caps = .max_rit = kHz(9.99), .max_xit = kHz(9.99), .max_ifshift = Hz(0), - .targetable_vfo = RIG_TARGETABLE_FREQ, + .targetable_vfo = RIG_TARGETABLE_FREQ|RIG_TARGETABLE_MODE, .transceive = RIG_TRN_RIG, .agc_level_count = 5, .agc_levels = { RIG_AGC_OFF, RIG_AGC_SLOW, RIG_AGC_MEDIUM, RIG_AGC_FAST, RIG_AGC_ON }, commit e603da4cb6cbc2d540bb29591c5a141b9a226ef2 Author: Mike Black W9MDB <mdb...@ya...> Date: Sun Dec 4 11:59:28 2022 -0600 If rig does not have TARGETABLE_MODE then we return the cached values from VFOA https://github.com/Hamlib/Hamlib/issues/1172 diff --git a/src/rig.c b/src/rig.c index 6efc6540..c0d7f269 100644 --- a/src/rig.c +++ b/src/rig.c @@ -2433,7 +2433,9 @@ int HAMLIB_API rig_get_mode(RIG *rig, if (vfo == RIG_VFO_B && !(caps->targetable_vfo & RIG_TARGETABLE_MODE)) { - vfo = RIG_VFO_A; // we'll just return VFO_A mode which is probably cached + *mode = rig->state.cache.modeMainA; + *width = rig->state.cache.widthMainA; + return RIG_OK; } if ((*mode != RIG_MODE_NONE && cache_ms_mode < rig->state.cache.timeout_ms) commit ea1a718bb52339a8f5f9c582d083bc9ac5448063 Author: Mike Black W9MDB <mdb...@ya...> Date: Sun Dec 4 11:18:33 2022 -0600 Change CAT TOT command in newcat.c to expect a response https://github.com/Hamlib/Hamlib/issues/1163 diff --git a/rigs/yaesu/newcat.c b/rigs/yaesu/newcat.c index dda61be6..5bdae1f4 100644 --- a/rigs/yaesu/newcat.c +++ b/rigs/yaesu/newcat.c @@ -613,7 +613,7 @@ int newcat_open(RIG *rig) SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "%s", cmd); - if (RIG_OK != (err = newcat_set_cmd(rig))) + if (RIG_OK != (err = newcat_get_cmd(rig))) { RETURNFUNC(err); } diff --git a/rigs/yaesu/newcat.h b/rigs/yaesu/newcat.h index b5f302fc..3f35b553 100644 --- a/rigs/yaesu/newcat.h +++ b/rigs/yaesu/newcat.h @@ -50,7 +50,7 @@ typedef char ncboolean; /* shared function version */ -#define NEWCAT_VER "20221203" +#define NEWCAT_VER "20221204" /* Hopefully large enough for future use, 128 chars plus '\0' */ #define NEWCAT_DATA_LEN 129 commit 156b810319cfeaefdbbf0f4e78090be7bc0d4a61 Author: Mike Black W9MDB <mdb...@ya...> Date: Sat Dec 3 22:39:38 2022 -0600 Add secondary check for rig_model in newcat.c for CAT TOT in case ID command fails https://github.com/Hamlib/Hamlib/issues/1163 diff --git a/rigs/yaesu/newcat.c b/rigs/yaesu/newcat.c index 5515ae66..dda61be6 100644 --- a/rigs/yaesu/newcat.c +++ b/rigs/yaesu/newcat.c @@ -603,13 +603,13 @@ int newcat_open(RIG *rig) int err; char *cmd = "EX0291;EX029;"; // FT2000/D - if (priv->rig_id == NC_RIGID_FT950) { cmd = "EX0271;EX027;"; } - else if (priv->rig_id == NC_RIGID_FT891) { cmd = "EX05071;EX0507;"; } - else if (priv->rig_id == NC_RIGID_FT991) { cmd = "EX0321;EX032;"; } - else if (priv->rig_id == NC_RIGID_FT991A) { cmd = "EX0321;EX032;"; } - else if (priv->rig_id == NC_RIGID_FTDX3000) { cmd = "EX0391;EX039;"; } - else if (priv->rig_id == NC_RIGID_FTDX3000DM) { cmd = "EX0391;EX039;"; } - else if (priv->rig_id == NC_RIGID_FTDX5000) { cmd = "EX0331;EX033"; } + if (priv->rig_id == NC_RIGID_FT950 || rig->caps->rig_model == RIG_MODEL_FT950) { cmd = "EX0271;EX027;"; } + else if (priv->rig_id == NC_RIGID_FT891 || rig->caps->rig_model == RIG_MODEL_FT891) { cmd = "EX05071;EX0507;"; } + else if (priv->rig_id == NC_RIGID_FT991 || rig->caps->rig_model == RIG_MODEL_FT991) { cmd = "EX0321;EX032;"; } + else if (priv->rig_id == NC_RIGID_FT991A || rig->caps->rig_model == RIG_MODEL_FT991) { cmd = "EX0321;EX032;"; } + else if (priv->rig_id == NC_RIGID_FTDX3000 || rig->caps->rig_model == RIG_MODEL_FTDX3000) { cmd = "EX0391;EX039;"; } + else if (priv->rig_id == NC_RIGID_FTDX3000DM || rig->caps->rig_model == RIG_MODEL_FTDX3000) { cmd = "EX0391;EX039;"; } + else if (priv->rig_id == NC_RIGID_FTDX5000 || rig->caps->rig_model == RIG_MODEL_FTDX5000) { cmd = "EX0331;EX033"; } SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "%s", cmd); commit a2b3e1348c374c6e2ef555636704471eb4d813e3 Author: Mike Black W9MDB <mdb...@ya...> Date: Sat Dec 3 22:24:05 2022 -0600 Fix ID for FT991 and FT991 in newcat.c so CAT TOT settings work https://github.com/Hamlib/Hamlib/issues/1163 diff --git a/rigs/yaesu/newcat.c b/rigs/yaesu/newcat.c index db01775d..5515ae66 100644 --- a/rigs/yaesu/newcat.c +++ b/rigs/yaesu/newcat.c @@ -57,7 +57,8 @@ typedef enum nc_rigid_e NC_RIGID_FT450D = 244, NC_RIGID_FT950 = 310, NC_RIGID_FT891 = 135, - NC_RIGID_FT991 = 135, + NC_RIGID_FT991 = 570, + NC_RIGID_FT991A = 670, NC_RIGID_FT2000 = 251, NC_RIGID_FT2000D = 252, NC_RIGID_FTDX1200 = 583, @@ -594,6 +595,7 @@ int newcat_open(RIG *rig) || priv->rig_id == NC_RIGID_FT2000D || priv->rig_id == NC_RIGID_FT891 || priv->rig_id == NC_RIGID_FT991 + || priv->rig_id == NC_RIGID_FT991A || priv->rig_id == NC_RIGID_FT950 || priv->rig_id == NC_RIGID_FTDX3000 || priv->rig_id == NC_RIGID_FTDX3000DM) @@ -604,6 +606,7 @@ int newcat_open(RIG *rig) if (priv->rig_id == NC_RIGID_FT950) { cmd = "EX0271;EX027;"; } else if (priv->rig_id == NC_RIGID_FT891) { cmd = "EX05071;EX0507;"; } else if (priv->rig_id == NC_RIGID_FT991) { cmd = "EX0321;EX032;"; } + else if (priv->rig_id == NC_RIGID_FT991A) { cmd = "EX0321;EX032;"; } else if (priv->rig_id == NC_RIGID_FTDX3000) { cmd = "EX0391;EX039;"; } else if (priv->rig_id == NC_RIGID_FTDX3000DM) { cmd = "EX0391;EX039;"; } else if (priv->rig_id == NC_RIGID_FTDX5000) { cmd = "EX0331;EX033"; } commit 825fc07d0007b6b5661c255a08d76badd3765513 Merge: d3d1fd7c fdd88c31 Author: PianetaRadio <789...@us...> Date: Sun Dec 4 00:44:32 2022 +0100 Merge branch 'Hamlib:master' into master commit fdd88c317e56131099a5de73b72727868c3bde3e Author: Mike Black W9MDB <mdb...@ya...> Date: Sat Dec 3 15:44:19 2022 -0600 Update NEWS diff --git a/NEWS b/NEWS index 5a09d4f7..7fc4511d 100644 --- a/NEWS +++ b/NEWS @@ -18,6 +18,7 @@ Version 4.6 Version 4.5.1 * 2022-XX-XX + * FT2000, FTDX3000/D, FT891, FT991, FT950, FTDX5000 now set CAT TOT to 100ms * Add missing NB2 setting to FT-950, FTDX-1200, FTDX-3000, FTDX-5000, FTDX-9000 * Add missing meter reading to TS-890S -- thanks to Geore Baltz N3GB * Fix FT736 VFOB freq and mode set commit 1e1ed4c9e61f08e4022e2b3ce1a2e196c6958ba3 Author: Mike Black W9MDB <mdb...@ya...> Date: Sat Dec 3 15:18:02 2022 -0600 Force the FT-991 to 100ms along with FT-DX2000, Ft-891, FT950, FTDX3000/D 10ms was seeing timeouts on some rigs using rigctl https://github.com/Hamlib/Hamlib/issues/1163 diff --git a/rigs/yaesu/newcat.c b/rigs/yaesu/newcat.c index 6eddf0c2..db01775d 100644 --- a/rigs/yaesu/newcat.c +++ b/rigs/yaesu/newcat.c @@ -587,24 +587,28 @@ int newcat_open(RIG *rig) rig_debug(RIG_DEBUG_VERBOSE, "%s: rig_id=%d\n", __func__, priv->rig_id); rig->state.rigport.timeout = timeout; -#if 0 // possible future enhancement? - // some rigs have a CAT TOT timeout that defaults to 10ms // so we'll increase CAT timeout to 100ms + // 10ms seemed problematic on some rigs/computers if (priv->rig_id == NC_RIGID_FT2000 || priv->rig_id == NC_RIGID_FT2000D || priv->rig_id == NC_RIGID_FT891 || priv->rig_id == NC_RIGID_FT991 - || priv->rig_id == NC_RIGID_FT950) + || priv->rig_id == NC_RIGID_FT950 + || priv->rig_id == NC_RIGID_FTDX3000 + || priv->rig_id == NC_RIGID_FTDX3000DM) { int err; - char *cmd = "EX0291%c"; + char *cmd = "EX0291;EX029;"; // FT2000/D - if (priv->rig_id == NC_RIGID_FT950) { cmd = "EX0271%c"; } - else if (priv->rig_id == NC_RIGID_FT891) { cmd = "EX05071c"; } - else if (priv->rig_id == NC_RIGID_FT991) { cmd = "EX0321c"; } + if (priv->rig_id == NC_RIGID_FT950) { cmd = "EX0271;EX027;"; } + else if (priv->rig_id == NC_RIGID_FT891) { cmd = "EX05071;EX0507;"; } + else if (priv->rig_id == NC_RIGID_FT991) { cmd = "EX0321;EX032;"; } + else if (priv->rig_id == NC_RIGID_FTDX3000) { cmd = "EX0391;EX039;"; } + else if (priv->rig_id == NC_RIGID_FTDX3000DM) { cmd = "EX0391;EX039;"; } + else if (priv->rig_id == NC_RIGID_FTDX5000) { cmd = "EX0331;EX033"; } - SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), cmd, cat_term); + SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "%s", cmd); if (RIG_OK != (err = newcat_set_cmd(rig))) { @@ -612,40 +616,12 @@ int newcat_open(RIG *rig) } } -#endif - if (priv->rig_id == NC_RIGID_FTDX3000 || priv->rig_id == NC_RIGID_FTDX3000DM) { rig->state.disable_yaesu_bandselect = 1; rig_debug(RIG_DEBUG_VERBOSE, "%s: disabling FTDX3000 band select\n", __func__); } - if (priv->rig_id == NC_RIGID_FTDX5000) - { - int err; - // set the CAT TIME OUT TIMER to 100ms - SNPRINTF(priv->cmd_str, sizeof(priv->cmd_str), "EX0331;"); - - if (RIG_OK != (err = newcat_set_cmd(rig))) - { - rig_debug(RIG_DEBUG_ERR, "%s: FTDX5000 CAT RATE error: %s\n", __func__, - rigerror(err)); - } - } - - if (priv->rig_id == NC_RIGID_FTDX3000 || priv->rig_id == NC_RIGID_FTDX3000DM) - { - ... [truncated message content] |