[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] |