[Hamlib-commits] Hamlib -- Ham radio control libraries branch master updated. 21c14da270d8d73b9ecff
Library to control radio transceivers and receivers
Brought to you by:
n0nb
From: n0nb <n0...@us...> - 2024-01-08 12:08:15
|
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, master has been updated via 21c14da270d8d73b9ecfffbf4c7709d6dc4f8c32 (commit) via e9e43e23da0be55cc6cc216cec5a6646ebac0bd1 (commit) via eab660500e565913a39caa42174f2ecb3f90d2db (commit) via 2eefb14137ab095dc0a83d4cdc6af4463139690f (commit) via 890d1a69aa3bbb816d8dfdf3d4e2f8410efbb8ce (commit) via 47f92eb5f712b6ac0822642bead5213ed95c1b3c (commit) via 5980eb3cc7c9f2ed758e9ca3e5e7385f6a552b0b (commit) via bb1590ed9cae1406cb24e40e2018face4b4d0a0c (commit) via 64d606c1c4a366f060b0b048f80a59836fefea58 (commit) via 921def7c5f18a4f0cf3f17b4007c8865156c2784 (commit) via 9877387c55153c268b548109fa64ad97dc21c09e (commit) via bd746387f9e7d1b6b52bf015a70c344891776d7a (commit) via 65bd022a2cadb58cada8f249a577653cf11f480e (commit) via c019467987eb9a0d56d8f55b5b0d9045cf752da0 (commit) via 19c4b01e5abf68e91474b376faf2e2dc0b92c9a4 (commit) via 5492572176581c8e17c3d82e9c935cc03a9346e3 (commit) via 0c1f66710a37bd978ac95a2d622e52ee86a52340 (commit) via 5d0cbba91edea54619fc9dcb0647ac4df8c84c39 (commit) via a4fa021848748eb2c57fd53062d911aabed3a917 (commit) via bc2f2ce5c7054450fdd2d251c6d2a4c5ea0ba811 (commit) via da478d6e74d64234fac1848ef3447a6e8892b192 (commit) via 02a6c80800f05c220294e7610c8c39ae95f6a157 (commit) via 08ba518b717f8c9abaadfb9ffa5a34e7f4cc664a (commit) from 32f37d390ffeaa83f9480780cde15a2cad9b3592 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 21c14da270d8d73b9ecfffbf4c7709d6dc4f8c32 Author: Mike Black W9MDB <mdb...@ya...> Date: Sun Jan 7 22:38:52 2024 -0600 Add DL2MAN (tr)uSDX rig Copy of TS480 for starters and needs refinement diff --git a/NEWS b/NEWS index aee9a7730..66ca89cb6 100644 --- a/NEWS +++ b/NEWS @@ -13,6 +13,7 @@ Version 5.x -- future * Change FT1000MP Mark V model names to align with FT1000MP Version 4.6 + * Added DL2MAN (tr)uSDX -- needs refinement * Added Thetis entry -- derived from FlexRadio/Apache PowerSDR * Added VOICE/CW memory capability to many rigs -- thanks to David Balharrie M0DGB/G8FKH * Add -# --skip_init option to rigctl to skip rig initialization -- useful for executing commands quickly diff --git a/include/hamlib/riglist.h b/include/hamlib/riglist.h index 541ab43e0..5c2182db6 100644 --- a/include/hamlib/riglist.h +++ b/include/hamlib/riglist.h @@ -202,6 +202,7 @@ #define RIG_MODEL_QRPLABS RIG_MAKE_MODEL(RIG_KENWOOD,52) #define RIG_MODEL_FX4 RIG_MAKE_MODEL(RIG_KENWOOD,53) #define RIG_MODEL_THETIS RIG_MAKE_MODEL(RIG_KENWOOD, 54) +#define RIG_MODEL_TRUSDX RIG_MAKE_MODEL(RIG_KENWOOD, 55) /* * Icom diff --git a/rigs/kenwood/kenwood.c b/rigs/kenwood/kenwood.c index d7f26d9d3..7b4ba5b03 100644 --- a/rigs/kenwood/kenwood.c +++ b/rigs/kenwood/kenwood.c @@ -6189,6 +6189,7 @@ DECLARE_INITRIG_BACKEND(kenwood) rig_register(&qrplabs_caps); rig_register(&fx4_caps); rig_register(&thetis_caps); + rig_register(&trudx_caps); return (RIG_OK); } diff --git a/rigs/kenwood/kenwood.h b/rigs/kenwood/kenwood.h index 5ab2e64f0..6c2fdbcb5 100644 --- a/rigs/kenwood/kenwood.h +++ b/rigs/kenwood/kenwood.h @@ -325,6 +325,7 @@ extern struct rig_caps sdruno_caps; extern struct rig_caps qrplabs_caps; extern struct rig_caps fx4_caps; extern struct rig_caps thetis_caps; +extern struct rig_caps trudx_caps; /* use when not interested in the answer, but want to check its len */ static int inline kenwood_simple_transaction(RIG *rig, const char *cmd, diff --git a/rigs/kenwood/ts480.c b/rigs/kenwood/ts480.c index 43bb9b769..415f656b0 100644 --- a/rigs/kenwood/ts480.c +++ b/rigs/kenwood/ts480.c @@ -1438,6 +1438,204 @@ struct rig_caps ts480_caps = .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS }; +/* + * truSDC rig capabilities + * Notice that some rigs share the same functions. + */ +struct rig_caps trudx_caps = +{ + RIG_MODEL(RIG_MODEL_TRUSDX), + .model_name = "(tr)uSDX", + .mfg_name = "DL2MAN", + .version = BACKEND_VER ".1", + .copyright = "LGPL", + .status = RIG_STATUS_BETA, + .rig_type = RIG_TYPE_TRANSCEIVER, + .ptt_type = RIG_PTT_RIG_MICDATA, + .dcd_type = RIG_DCD_RIG, + .port_type = RIG_PORT_SERIAL, + .serial_rate_min = 38400, + .serial_rate_max = 115200, + .serial_data_bits = 8, + .serial_stop_bits = 1, + .serial_parity = RIG_PARITY_NONE, + .serial_handshake = RIG_HANDSHAKE_NONE, + .write_delay = 0, + .post_write_delay = 0, + .timeout = 500, + .retry = 3, + .preamp = {12, RIG_DBLST_END,}, + .attenuator = {12, RIG_DBLST_END,}, + .max_rit = kHz(9.99), + .max_xit = kHz(9.99), + .max_ifshift = Hz(0), + .targetable_vfo = RIG_TARGETABLE_FREQ, + .transceive = RIG_TRN_RIG, + .agc_level_count = 3, + .agc_levels = { RIG_AGC_OFF, RIG_AGC_FAST, RIG_AGC_SLOW }, + + .rx_range_list1 = { + {kHz(100), Hz(59999999), TS480_ALL_MODES, -1, -1, TS480_VFO}, + RIG_FRNG_END, + }, /*!< Receive frequency range list for ITU region 1 */ + .tx_range_list1 = { + {kHz(1810), kHz(1850), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, /* 100W class */ + {kHz(1810), kHz(1850), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, /* 25W class */ + {kHz(3500), kHz(3800), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {kHz(3500), kHz(3800), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(7), kHz(7200), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(7), kHz(7200), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {kHz(10100), kHz(10150), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {kHz(10100), kHz(10150), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(14), kHz(14350), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(14), kHz(14350), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {kHz(18068), kHz(18168), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {kHz(18068), kHz(18168), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(21), kHz(21450), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(21), kHz(21450), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {kHz(24890), kHz(24990), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {kHz(24890), kHz(24990), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(28), kHz(29700), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(28), kHz(29700), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(50), kHz(52000), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(50), kHz(52000), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + RIG_FRNG_END, + }, /*!< Transmit frequency range list for ITU region 1 */ + .rx_range_list2 = { + {kHz(100), Hz(59999999), TS480_ALL_MODES, -1, -1, TS480_VFO}, + RIG_FRNG_END, + }, /*!< Receive frequency range list for ITU region 2 */ + .tx_range_list2 = { + {kHz(1800), MHz(2) - 1, TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, /* 100W class */ + {kHz(1800), MHz(2) - 1, TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, /* 25W class */ + {kHz(3500), MHz(4) - 1, TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {kHz(3500), MHz(4) - 1, TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {kHz(5250), kHz(5450), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {kHz(5250), kHz(5450), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(7), kHz(7300), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(7), kHz(7300), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {kHz(10100), kHz(10150), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {kHz(10100), kHz(10150), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(14), kHz(14350), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(14), kHz(14350), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {kHz(18068), kHz(18168), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {kHz(18068), kHz(18168), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(21), kHz(21450), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(21), kHz(21450), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {kHz(24890), kHz(24990), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {kHz(24890), kHz(24990), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(28), kHz(29700), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(28), kHz(29700), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + {MHz(50), kHz(52000), TS480_OTHER_TX_MODES, 5000, 100000, TS480_VFO}, + {MHz(50), kHz(52000), TS480_AM_TX_MODES, 5000, 25000, TS480_VFO}, + RIG_FRNG_END, + }, /*!< Transmit frequency range list for ITU region 2 */ + .tuning_steps = { + {TS480_ALL_MODES, kHz(1)}, + {TS480_ALL_MODES, Hz(2500)}, + {TS480_ALL_MODES, kHz(5)}, + {TS480_ALL_MODES, Hz(6250)}, + {TS480_ALL_MODES, kHz(10)}, + {TS480_ALL_MODES, Hz(12500)}, + {TS480_ALL_MODES, kHz(15)}, + {TS480_ALL_MODES, kHz(20)}, + {TS480_ALL_MODES, kHz(25)}, + {TS480_ALL_MODES, kHz(30)}, + {TS480_ALL_MODES, kHz(100)}, + {TS480_ALL_MODES, kHz(500)}, + {TS480_ALL_MODES, MHz(1)}, + {TS480_ALL_MODES, 0}, /* any tuning step */ + RIG_TS_END, + }, + /* mode/filter list, remember: order matters! */ + .filters = { + {RIG_MODE_SSB, kHz(2.4)}, + {RIG_MODE_SSB, Hz(270)}, + {RIG_MODE_SSB, Hz(500)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(200)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(50)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(1000)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(80)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(100)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(150)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(300)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(400)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(500)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(600)}, + {RIG_MODE_CW | RIG_MODE_CWR, Hz(2000)}, + {RIG_MODE_RTTY | RIG_MODE_RTTYR, Hz(500)}, + {RIG_MODE_RTTY | RIG_MODE_RTTYR, Hz(250)}, + {RIG_MODE_RTTY | RIG_MODE_RTTYR, Hz(1000)}, + {RIG_MODE_RTTY | RIG_MODE_RTTYR, Hz(1500)}, + {RIG_MODE_AM, kHz(6)}, + {RIG_MODE_AM, kHz(2.4)}, + {RIG_MODE_FM, kHz(12)}, + RIG_FLT_END, + }, + .vfo_ops = TS480_VFO_OPS, + .level_gran = + { +#include "level_gran_kenwood.h" + [LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 30 }, .step = { .i = 1 } }, + [LVL_KEYSPD] = {.min = {.i = 10}, .max = {.i = 60}, .step = {.i = 1}}, + [LVL_CWPITCH] = {.min = {.i = 400}, .max = {.i = 1000}, .step = {.i = 50}}, + [LVL_BKIN_DLYMS] = {.min = {.i = 0}, .max = {.i = 1000}, .step = {.i = 50}}, + [LVL_SLOPE_LOW] = {.min = {.i = 0}, .max = {.i = 2400}, .step = {.i = 10}}, + [LVL_SLOPE_HIGH] = {.min = {.i = 0}, .max = {.i = 5000}, .step = {.i = 10}}, + }, + .str_cal = TS480_STR_CAL, + .swr_cal = TS480_SWR_CAL, + + .ext_tokens = ts480_ext_tokens, + .extfuncs = ts480_ext_funcs, + .extlevels = ts480_ext_levels, + + .priv = (void *)& ts480_priv_caps, + .rig_init = ts480_init, + .rig_open = kenwood_open, + .rig_cleanup = kenwood_cleanup, + .set_freq = kenwood_set_freq, + .get_freq = kenwood_get_freq, + .set_rit = ts480_set_rit, + .get_rit = ts480_get_rit, + .set_xit = ts480_set_rit, + .get_xit = ts480_get_rit, + .set_mode = kenwood_set_mode, + .get_mode = kenwood_get_mode, + .set_vfo = kenwood_set_vfo, + .get_vfo = kenwood_get_vfo_if, + .set_split_vfo = kenwood_set_split_vfo, + .get_split_vfo = kenwood_get_split_vfo_if, + .get_ptt = kenwood_get_ptt, + .set_ptt = kenwood_set_ptt, + .get_dcd = kenwood_get_dcd, + .set_powerstat = kenwood_set_powerstat, + .get_powerstat = kenwood_get_powerstat, + .get_info = kenwood_ts480_get_info, + .reset = kenwood_reset, + .set_ant = kenwood_set_ant, + .get_ant = kenwood_get_ant, + .scan = kenwood_scan, /* not working, invalid arguments using rigctl; kenwood_scan does only support on/off and not tone and CTCSS scan */ + .has_set_level = TS480_LEVEL_SET, + .has_get_level = TS480_LEVEL_GET, + .set_level = kenwood_ts480_set_level, + .get_level = kenwood_ts480_get_level, + .set_ext_level = ts480_set_ext_level, + .get_ext_level = ts480_get_ext_level, + .has_get_func = TS480_FUNC_ALL, + .has_set_func = TS480_FUNC_ALL, + .set_func = ts480_set_func, + .get_func = ts480_get_func, + .set_ext_func = ts480_set_ext_func, + .get_ext_func = ts480_get_ext_func, + .send_morse = kenwood_send_morse, + .wait_morse = rig_wait_morse, + .send_voice_mem = kenwood_send_voice_mem, + .stop_voice_mem = kenwood_stop_voice_mem, + .vfo_op = kenwood_vfo_op, + .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS +}; + /* * QRPLabs TS-480 emulation rig capabilities * Notice that some rigs share the same functions. commit e9e43e23da0be55cc6cc216cec5a6646ebac0bd1 Author: Mike Black W9MDB <mdb...@ya...> Date: Sun Jan 7 11:55:20 2024 -0600 Remove readonly references to caps structure since it is R/W now diff --git a/rigs/kenwood/ts450s.c b/rigs/kenwood/ts450s.c index 6a5a43b4d..b2dc44f6e 100644 --- a/rigs/kenwood/ts450s.c +++ b/rigs/kenwood/ts450s.c @@ -106,7 +106,6 @@ int ts450_open(RIG *rig) /* * ts450s rig capabilities. * Notice that some rigs share the same functions. - * Also this struct is READONLY! * RIT: Variable Range 9.99 kHz * * TODO: protocol to be checked with manual (identical to TS690) diff --git a/rigs/kenwood/ts480.c b/rigs/kenwood/ts480.c index 96a904805..43bb9b769 100644 --- a/rigs/kenwood/ts480.c +++ b/rigs/kenwood/ts480.c @@ -2073,7 +2073,6 @@ int malachite_set_freq(RIG *rig, vfo_t vfo, freq_t freq) /* * Malachite SDR rig capabilities. * Notice that some rigs share the same functions. - * Also this struct is READONLY! */ struct rig_caps malachite_caps = { diff --git a/rigs/kenwood/ts570.c b/rigs/kenwood/ts570.c index 33f942c41..ba4f6f49f 100644 --- a/rigs/kenwood/ts570.c +++ b/rigs/kenwood/ts570.c @@ -891,7 +891,6 @@ int ts570_set_xit(RIG *rig, vfo_t vfo, shortfreq_t rit) /* * ts570 rig capabilities. * Notice that some rigs share the same functions. - * Also this struct is READONLY! * RIT: Variable Range 9.99 kHz * * part of infos comes from .http = //www.kenwood.net/ @@ -1078,7 +1077,6 @@ struct rig_caps ts570s_caps = /* * ts570d rig capabilities, which is basically the ts570s without 6m. * Notice that some rigs share the same functions. - * Also this struct is READONLY! * RIT: Variable Range 9.99 kHz * * part of infos comes from .http = //www.kenwood.net/ diff --git a/rigs/kenwood/ts850.c b/rigs/kenwood/ts850.c index f829934ee..f649c51e2 100644 --- a/rigs/kenwood/ts850.c +++ b/rigs/kenwood/ts850.c @@ -94,7 +94,6 @@ static const struct confparams ts850_ext_parms[] = /* * ts850 rig capabilities. * Notice that some rigs share the same functions. -* Also this struct is READONLY! */ struct rig_caps ts850_caps = { diff --git a/rigs/kenwood/ts870s.c b/rigs/kenwood/ts870s.c index 2a7685cb2..cb130b0ef 100644 --- a/rigs/kenwood/ts870s.c +++ b/rigs/kenwood/ts870s.c @@ -528,7 +528,6 @@ static int ts870s_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) /* * ts870s rig capabilities. * Notice that some rigs share the same functions. - * Also this struct is READONLY! * RIT: Variable Range 9.99 kHz * * part of infos comes from .http = //www.kenwood.net/ diff --git a/rigs/kenwood/ts930.c b/rigs/kenwood/ts930.c index 72f3c9088..31a1e577e 100644 --- a/rigs/kenwood/ts930.c +++ b/rigs/kenwood/ts930.c @@ -44,7 +44,6 @@ static struct kenwood_priv_caps ts930_priv_caps = /* * ts930 rig capabilities. * Notice that some rigs share the same functions. - * Also this struct is READONLY! * * part of infos comes from .http = //www.kenwood.net/ */ commit eab660500e565913a39caa42174f2ecb3f90d2db Author: Mike Black W9MDB <mdb...@ya...> Date: Sat Jan 6 16:12:48 2024 -0600 Suppress UDP packet error when errno==0 https://github.com/Hamlib/Hamlib/issues/1461 diff --git a/src/network.c b/src/network.c index 96aa7c5bb..28e7507e3 100644 --- a/src/network.c +++ b/src/network.c @@ -999,8 +999,15 @@ void *multicast_publisher(void *arg) if (send_result < 0) { - rig_debug(RIG_DEBUG_ERR, "%s: error sending UDP packet: %s\n", __func__, - strerror(errno)); + static int flag = 0; + + if (errno != 0 || flag == 0) + { + rig_debug(RIG_DEBUG_ERR, + "%s: error sending UDP packet: %s\n", __func__, + strerror(errno)); + flag = 1; + } } } commit 2eefb14137ab095dc0a83d4cdc6af4463139690f Author: Mike Black W9MDB <mdb...@ya...> Date: Fri Jan 5 16:34:03 2024 -0600 Fix LVL granulatiry in ts590.c again diff --git a/rigs/kenwood/ts590.c b/rigs/kenwood/ts590.c index 0fc14b0e6..223af4863 100644 --- a/rigs/kenwood/ts590.c +++ b/rigs/kenwood/ts590.c @@ -1730,8 +1730,9 @@ struct rig_caps ts590_caps = { #include "level_gran_kenwood.h" [LVL_RF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 255.0f } }, - [LVL_AF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 10.0f } }, - [LVL_AF_INPUT] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 10.0f } }, + [LVL_AF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 255.0f } }, + [LVL_USB_AF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 10.0f } }, + [LVL_USB_AF_INPUT] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 10.0f } }, [LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 30 }, .step = { .i = 1 } }, [LVL_CWPITCH] = {.min = {.i = 300}, .max = {.i = 1000}, .step = {.i = 50}}, [LVL_BKIN_DLYMS] = {.min = {.i = 0}, .max = {.i = 1000}, .step = {.i = 50}}, @@ -1925,7 +1926,7 @@ struct rig_caps fx4_caps = { #include "level_gran_kenwood.h" [LVL_RF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 100.0f } }, - [LVL_AF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 100.0f } }, + [LVL_AF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 255.0f } }, [LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 30 }, .step = { .i = 1 } }, [LVL_CWPITCH] = {.min = {.i = 300}, .max = {.i = 1000}, .step = {.i = 50}}, [LVL_BKIN_DLYMS] = {.min = {.i = 0}, .max = {.i = 1000}, .step = {.i = 50}}, @@ -2123,7 +2124,9 @@ struct rig_caps ts590sg_caps = .level_gran = { #include "level_gran_kenwood.h" [LVL_RF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 255.0f } }, - [LVL_AF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 10.0f } }, + [LVL_AF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 255.0f } }, + [LVL_USB_AF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 10.0f } }, + [LVL_USB_AF_INPUT] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 10.0f } }, [LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 30 }, .step = { .i = 1 } }, [LVL_CWPITCH] = {.min = {.i = 300}, .max = {.i = 1000}, .step = {.i = 50}}, [LVL_BKIN_DLYMS] = {.min = {.i = 0}, .max = {.i = 1000}, .step = {.i = 50}}, commit 890d1a69aa3bbb816d8dfdf3d4e2f8410efbb8ce Author: Mike Black W9MDB <mdb...@ya...> Date: Fri Jan 5 16:26:45 2024 -0600 Fix granularity in ts590.c diff --git a/rigs/kenwood/ts590.c b/rigs/kenwood/ts590.c index 651cdfae0..0fc14b0e6 100644 --- a/rigs/kenwood/ts590.c +++ b/rigs/kenwood/ts590.c @@ -1729,8 +1729,9 @@ struct rig_caps ts590_caps = .level_gran = { #include "level_gran_kenwood.h" - [LVL_RF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 100.0f } }, - [LVL_AF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 100.0f } }, + [LVL_RF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 255.0f } }, + [LVL_AF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 10.0f } }, + [LVL_AF_INPUT] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 10.0f } }, [LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 30 }, .step = { .i = 1 } }, [LVL_CWPITCH] = {.min = {.i = 300}, .max = {.i = 1000}, .step = {.i = 50}}, [LVL_BKIN_DLYMS] = {.min = {.i = 0}, .max = {.i = 1000}, .step = {.i = 50}}, @@ -2121,8 +2122,8 @@ struct rig_caps ts590sg_caps = }, .level_gran = { #include "level_gran_kenwood.h" - [LVL_RF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 100.0f } }, - [LVL_AF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 100.0f } }, + [LVL_RF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 255.0f } }, + [LVL_AF] = { .min = { .f = 0 }, .max = { .f = 1.0 }, .step = { .f = 1.0f / 10.0f } }, [LVL_VOXDELAY] = { .min = { .i = 0 }, .max = { .i = 30 }, .step = { .i = 1 } }, [LVL_CWPITCH] = {.min = {.i = 300}, .max = {.i = 1000}, .step = {.i = 50}}, [LVL_BKIN_DLYMS] = {.min = {.i = 0}, .max = {.i = 1000}, .step = {.i = 50}}, commit 47f92eb5f712b6ac0822642bead5213ed95c1b3c Author: Mike Black W9MDB <mdb...@ya...> Date: Thu Jan 4 12:25:38 2024 -0600 Improved Kenwood USB_AF and USB_AF_INPUT level to make it more symmetrical Values can now be enter in signal digits .1 .2 .3 .4 .5 .6 .7 .8, .9 and higher is max value diff --git a/rigs/kenwood/ts590.c b/rigs/kenwood/ts590.c index e758baa1e..651cdfae0 100644 --- a/rigs/kenwood/ts590.c +++ b/rigs/kenwood/ts590.c @@ -22,6 +22,7 @@ #include <stdio.h> #include <string.h> #include <stdlib.h> +#include <math.h> #include "hamlib/rig.h" #include "kenwood.h" @@ -467,7 +468,7 @@ static int ts590_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) switch (level) { case RIG_LEVEL_USB_AF: - kenwood_val = val.f * 9; + kenwood_val = roundl((val.f + .045) * 9); cmd = 65; // TS-590S if (rig->caps->rig_model == RIG_MODEL_TS590SG) { cmd = 72; } @@ -476,7 +477,7 @@ static int ts590_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) break; case RIG_LEVEL_USB_AF_INPUT: - kenwood_val = val.f * 9; + kenwood_val = roundl((val.f + .045) * 9); cmd = 64; // TS-590S if (rig->caps->rig_model == RIG_MODEL_TS590SG) { cmd = 71; } @@ -663,16 +664,34 @@ static int ts590_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) if (rig->caps->rig_model == RIG_MODEL_TS590SG) { cmd = 72; } retval = ts590_get_ex_menu(rig, cmd, 1, &levelint); - val->f = levelint / 9.0; + + if (levelint == 9) + { + val->f = 1.0; + } + else + { + val->f = roundl(levelint * 10 / 10.0 + .04) / 10.0; + } + return retval; case RIG_LEVEL_USB_AF_INPUT: - cmd = 65; // TS-590S + cmd = 64; // TS-590S if (rig->caps->rig_model == RIG_MODEL_TS590SG) { cmd = 71; } retval = ts590_get_ex_menu(rig, cmd, 1, &levelint); - val->f = levelint / 9.0; + + if (levelint == 9) + { + val->f = 1.0; + } + else + { + val->f = roundl(levelint * 10 / 10.0) / 10.0; + } + return retval; case RIG_LEVEL_AF: @@ -1593,7 +1612,7 @@ struct rig_caps ts590_caps = RIG_MODEL(RIG_MODEL_TS590S), .model_name = "TS-590S", .mfg_name = "Kenwood", - .version = BACKEND_VER ".11", + .version = BACKEND_VER ".12", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -2015,7 +2034,7 @@ struct rig_caps ts590sg_caps = .chan_list = { /* TBC */ { 0, 89, RIG_MTYPE_MEM, TS590_CHANNEL_CAPS }, { 90, 99, RIG_MTYPE_EDGE, TS590_CHANNEL_CAPS }, - { 1, 3, RIG_MTYPE_MORSE }, + { 1, 3, RIG_MTYPE_MORSE }, RIG_CHAN_END, }, commit 5980eb3cc7c9f2ed758e9ca3e5e7385f6a552b0b Merge: 921def7c5 bb1590ed9 Author: Michael Black <mdb...@ya...> Date: Wed Jan 3 22:10:06 2024 -0600 Merge pull request #1470 from GeoBaltz/fix7 Fix copy/paste errors in rigs/icom/ commit bb1590ed9cae1406cb24e40e2018face4b4d0a0c Author: George Baltz N3GB <Geo...@gm...> Date: Wed Jan 3 21:13:42 2024 -0500 More typos/copy/paste errors in rigs/icom diff --git a/rigs/icom/ic737.c b/rigs/icom/ic737.c index e04ea3b3d..8f1a8da64 100644 --- a/rigs/icom/ic737.c +++ b/rigs/icom/ic737.c @@ -157,7 +157,7 @@ struct rig_caps ic737_caps = .rig_init = icom_init, .rig_cleanup = icom_cleanup, .rig_open = icom_rig_open, - .rig_close = icom_rig_open, + .rig_close = icom_rig_close, .set_freq = icom_set_freq, .get_freq = icom_get_freq, diff --git a/rigs/icom/ic738.c b/rigs/icom/ic738.c index 09d646c28..354152d4a 100644 --- a/rigs/icom/ic738.c +++ b/rigs/icom/ic738.c @@ -162,7 +162,7 @@ struct rig_caps ic738_caps = .rig_init = icom_init, .rig_cleanup = icom_cleanup, .rig_open = icom_rig_open, - .rig_close = icom_rig_open, + .rig_close = icom_rig_close, .set_freq = icom_set_freq, .get_freq = icom_get_freq, diff --git a/rigs/icom/ic7410.c b/rigs/icom/ic7410.c index 750393ae5..9e114c8a5 100644 --- a/rigs/icom/ic7410.c +++ b/rigs/icom/ic7410.c @@ -245,7 +245,7 @@ struct rig_caps ic7410_caps = .rig_init = icom_init, .rig_cleanup = icom_cleanup, .rig_open = icom_rig_open, - .rig_close = icom_rig_open, + .rig_close = icom_rig_close, .set_freq = icom_set_freq, .get_freq = icom_get_freq, diff --git a/rigs/icom/ic746.c b/rigs/icom/ic746.c index 23d134bff..461998201 100644 --- a/rigs/icom/ic746.c +++ b/rigs/icom/ic746.c @@ -297,7 +297,7 @@ struct rig_caps ic746_caps = .rig_init = icom_init, .rig_cleanup = icom_cleanup, .rig_open = icom_rig_open, - .rig_close = icom_rig_open, + .rig_close = icom_rig_close, .set_freq = icom_set_freq, .get_freq = icom_get_freq, diff --git a/rigs/icom/ic751.c b/rigs/icom/ic751.c index a1352f616..a691443f7 100644 --- a/rigs/icom/ic751.c +++ b/rigs/icom/ic751.c @@ -209,7 +209,7 @@ struct rig_caps ic751_caps = .rig_init = icom_init, .rig_cleanup = icom_cleanup, .rig_open = icom_rig_open, - .rig_close = icom_rig_open, + .rig_close = icom_rig_close, .set_freq = icom_set_freq, .get_freq = icom_get_freq, diff --git a/rigs/icom/ic7600.c b/rigs/icom/ic7600.c index 3c6f2ba49..bf9c0937a 100644 --- a/rigs/icom/ic7600.c +++ b/rigs/icom/ic7600.c @@ -420,7 +420,7 @@ struct rig_caps ic7600_caps = .rig_init = icom_init, .rig_cleanup = icom_cleanup, .rig_open = icom_rig_open, - .rig_close = icom_rig_open, + .rig_close = icom_rig_close, .set_freq = icom_set_freq, .get_freq = icom_get_freq, diff --git a/rigs/icom/ic761.c b/rigs/icom/ic761.c index 4a73b7a12..0f27af61f 100644 --- a/rigs/icom/ic761.c +++ b/rigs/icom/ic761.c @@ -174,7 +174,7 @@ struct rig_caps ic761_caps = .rig_init = icom_init, .rig_cleanup = icom_cleanup, .rig_open = icom_rig_open, - .rig_close = icom_rig_open, + .rig_close = icom_rig_close, .set_freq = icom_set_freq, .get_freq = icom_get_freq, diff --git a/rigs/icom/id1.c b/rigs/icom/id1.c index 81004a411..d83efc844 100644 --- a/rigs/icom/id1.c +++ b/rigs/icom/id1.c @@ -169,7 +169,7 @@ struct rig_caps id1_caps = .rig_init = icom_init, .rig_cleanup = icom_cleanup, .rig_open = icom_rig_open, - .rig_close = icom_rig_open, + .rig_close = icom_rig_close, .set_freq = icom_set_freq, .get_freq = icom_get_freq, diff --git a/rigs/icom/id31.c b/rigs/icom/id31.c index 3de602f9d..9727c42b6 100644 --- a/rigs/icom/id31.c +++ b/rigs/icom/id31.c @@ -168,7 +168,7 @@ struct rig_caps id31_caps = .rig_init = icom_init, .rig_cleanup = icom_cleanup, .rig_open = icom_rig_open, - .rig_close = icom_rig_open, + .rig_close = icom_rig_close, .set_freq = icom_set_freq, .get_freq = icom_get_freq, diff --git a/rigs/icom/id4100.c b/rigs/icom/id4100.c index c04c9ec55..e06694e95 100644 --- a/rigs/icom/id4100.c +++ b/rigs/icom/id4100.c @@ -176,7 +176,7 @@ struct rig_caps id4100_caps = .rig_init = icom_init, .rig_cleanup = icom_cleanup, .rig_open = icom_rig_open, - .rig_close = icom_rig_open, + .rig_close = icom_rig_close, .set_freq = icom_set_freq, .get_freq = icom_get_freq, diff --git a/rigs/icom/omni.c b/rigs/icom/omni.c index 14eb87af3..0c2e33f7c 100644 --- a/rigs/icom/omni.c +++ b/rigs/icom/omni.c @@ -159,7 +159,7 @@ struct rig_caps omnivip_caps = .rig_cleanup = icom_cleanup, .rig_open = icom_rig_open, - .rig_close = icom_rig_open, + .rig_close = icom_rig_close, .set_freq = icom_set_freq, .get_freq = icom_get_freq, .set_mode = icom_set_mode, diff --git a/rigs/icom/perseus.c b/rigs/icom/perseus.c index 65b5a9c47..e13ae8667 100644 --- a/rigs/icom/perseus.c +++ b/rigs/icom/perseus.c @@ -153,7 +153,7 @@ struct rig_caps perseus_caps = .rig_init = icom_init, .rig_cleanup = icom_cleanup, .rig_open = icom_rig_open, - .rig_close = icom_rig_open, + .rig_close = icom_rig_close, .set_freq = icom_set_freq, .get_freq = icom_get_freq, commit 64d606c1c4a366f060b0b048f80a59836fefea58 Author: George Baltz N3GB <Geo...@gm...> Date: Wed Jan 3 21:00:36 2024 -0500 Fix copy/paste errors in xiegu.c diff --git a/rigs/icom/xiegu.c b/rigs/icom/xiegu.c index 68dc21f48..bd4a88aa3 100644 --- a/rigs/icom/xiegu.c +++ b/rigs/icom/xiegu.c @@ -273,7 +273,7 @@ struct rig_caps x108g_caps = .rig_init = icom_init, .rig_cleanup = icom_cleanup, .rig_open = x108g_rig_open, - .rig_close = icom_rig_open, + .rig_close = icom_rig_close, .set_freq = icom_set_freq, .get_freq = icom_get_freq, @@ -449,7 +449,7 @@ struct rig_caps x6100_caps = .rig_init = icom_init, .rig_cleanup = icom_cleanup, .rig_open = icom_rig_open, - .rig_close = icom_rig_open, + .rig_close = icom_rig_close, .set_freq = icom_set_freq, .get_freq = icom_get_freq, @@ -644,7 +644,7 @@ struct rig_caps g90_caps = .rig_init = icom_init, .rig_cleanup = icom_cleanup, .rig_open = g90_rig_open, - .rig_close = icom_rig_open, + .rig_close = icom_rig_close, .set_freq = icom_set_freq, .get_freq = icom_get_freq, @@ -819,7 +819,7 @@ struct rig_caps x5105_caps = .rig_init = icom_init, .rig_cleanup = icom_cleanup, .rig_open = icom_rig_open, - .rig_close = icom_rig_open, + .rig_close = icom_rig_close, .set_freq = icom_set_freq, .get_freq = icom_get_freq, commit 921def7c5f18a4f0cf3f17b4007c8865156c2784 Author: Mike Black W9MDB <mdb...@ya...> Date: Wed Jan 3 16:56:10 2024 -0600 Show Xeigu Radio ID during g90_open https://github.com/Hamlib/Hamlib/issues/909 diff --git a/rigs/icom/xiegu.c b/rigs/icom/xiegu.c index 8b5313c5b..68dc21f48 100644 --- a/rigs/icom/xiegu.c +++ b/rigs/icom/xiegu.c @@ -497,12 +497,31 @@ struct rig_caps x6100_caps = .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS }; +int g90_rig_open(RIG *rig) +{ + int retval; + unsigned char id[2]; + int id_len = 2; + int cmd = 0x19; + int subcmd = 0x1d; + short iid; + retval = icom_transaction(rig, cmd, subcmd, NULL, 0, id, &id_len); + + if (retval == RIG_OK) + { + memcpy(&iid, id, 2); + rig_debug(RIG_DEBUG_VERBOSE, "Xiegu Radio ID=0x%04x\n", iid); + } + + return icom_rig_open(rig); +} + struct rig_caps g90_caps = { RIG_MODEL(RIG_MODEL_G90), .model_name = "G90", .mfg_name = "Xiegu", - .version = BACKEND_VER ".6", + .version = BACKEND_VER ".7", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_TRANSCEIVER, @@ -624,7 +643,7 @@ struct rig_caps g90_caps = .priv = (void *)& x108g_priv_caps, .rig_init = icom_init, .rig_cleanup = icom_cleanup, - .rig_open = icom_rig_open, + .rig_open = g90_rig_open, .rig_close = icom_rig_open, .set_freq = icom_set_freq, commit 9877387c55153c268b548109fa64ad97dc21c09e Author: Mike Black W9MDB <mdb...@ya...> Date: Sat Dec 30 08:18:44 2023 -0600 Force split off for Yaesu rigs with 60m_exception since split cannot operate in memory mode diff --git a/rigs/yaesu/newcat.c b/rigs/yaesu/newcat.c index fee3ebf3a..436b08775 100644 --- a/rigs/yaesu/newcat.c +++ b/rigs/yaesu/newcat.c @@ -2732,8 +2732,9 @@ int newcat_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo) } if (newcat_60m_exception(rig, rig->state.cache.freqMainA, rig->state.cache.modeMainA)) { - rig_debug(RIG_DEBUG_VERBOSE, "%s: ignoring set_split since we're on 60M exception\n", __func__); - return RIG_OK; // fake the return code to make things happy + rig_debug(RIG_DEBUG_VERBOSE, "%s: force set_split off since we're on 60M exception\n", __func__); + split = RIG_SPLIT_OFF; + //return RIG_OK; // fake the return code to make things happy } if (is_ft991) diff --git a/rigs/yaesu/newcat.h b/rigs/yaesu/newcat.h index 6521bf966..f3a229035 100644 --- a/rigs/yaesu/newcat.h +++ b/rigs/yaesu/newcat.h @@ -50,7 +50,7 @@ typedef char ncboolean; /* shared function version */ -#define NEWCAT_VER "20231204" +#define NEWCAT_VER "20231230" /* Hopefully large enough for future use, 128 chars plus '\0' */ #define NEWCAT_DATA_LEN 129 commit bd746387f9e7d1b6b52bf015a70c344891776d7a Author: Mike Black W9MDB <mdb...@ya...> Date: Fri Dec 29 15:59:34 2023 -0600 Fix set_ant and get_ant for rigctl -m 2 dump_caps https://github.com/Hamlib/Hamlib/issues/1466 diff --git a/rigs/dummy/netrigctl.c b/rigs/dummy/netrigctl.c index 8002348e4..96277700c 100644 --- a/rigs/dummy/netrigctl.c +++ b/rigs/dummy/netrigctl.c @@ -736,6 +736,18 @@ static int netrigctl_open(RIG *rig) if (!has) { rig->caps->get_conf = NULL; } } + else if (strcmp(setting, "has_get_ant") == 0) + { + int has = strtol(value, NULL, 0); + + if (!has) { rig->caps->get_ant = NULL; } + } + else if (strcmp(setting, "has_set_ant") == 0) + { + int has = strtol(value, NULL, 0); + + if (!has) { rig->caps->set_ant = NULL; } + } #if 0 // for the future else if (strcmp(setting, "has_set_trn") == 0) @@ -2811,7 +2823,7 @@ struct rig_caps netrigctl_caps = RIG_MODEL(RIG_MODEL_NETRIGCTL), .model_name = "NET rigctl", .mfg_name = "Hamlib", - .version = "20231004.0", + .version = "20231229.0", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_OTHER, diff --git a/tests/rigctl_parse.c b/tests/rigctl_parse.c index 7fe15672d..ff5018aeb 100644 --- a/tests/rigctl_parse.c +++ b/tests/rigctl_parse.c @@ -4671,6 +4671,8 @@ declare_proto_rig(dump_state) // fprintf(fout, "has_get_trn=%d\n", rig->caps->get_trn != NULL); fprintf(fout, "has_power2mW=%d\n", rig->caps->power2mW != NULL); fprintf(fout, "has_mW2power=%d\n", rig->caps->mW2power != NULL); + fprintf(fout, "has_get_ant=%d\n", rig->caps->get_ant != NULL); + fprintf(fout, "has_set_ant=%d\n", rig->caps->set_ant != NULL); fprintf(fout, "timeout=%d\n", rig->caps->timeout); fprintf(fout, "rig_model=%d\n", rig->caps->rig_model); fprintf(fout, "rigctld_version=%s\n", hamlib_version2); commit 65bd022a2cadb58cada8f249a577653cf11f480e Author: Mike Black W9MDB <mdb...@ya...> Date: Fri Dec 29 15:41:05 2023 -0600 Fix BAND_SELECT segfault on dumpcaps https://github.com/Hamlib/Hamlib/issues/1467 diff --git a/src/sprintflst.c b/src/sprintflst.c index 5c57db5cd..ca87d8b6f 100644 --- a/src/sprintflst.c +++ b/src/sprintflst.c @@ -566,7 +566,7 @@ int rig_sprintf_parm_gran(char *str, int nlen, setting_t parm, if (RIG_PARM_IS_FLOAT(rig_idx2setting(i))) { - len += sprintf(str + len, + len += snprintf(str + len, nlen, "%s(%.g..%.g/%.g) ", ms, gran[i].min.f, @@ -578,10 +578,13 @@ int rig_sprintf_parm_gran(char *str, int nlen, setting_t parm, if (gran[i].step.s) { rig_debug(RIG_DEBUG_ERR, "%s: BAND_SELECT?\n", __func__); + if (strcmp(ms,"BANDSELECT")!=0) + { len += sprintf(str + len, "%s(%s) ", ms, gran[i].step.s); + } } } else commit c019467987eb9a0d56d8f55b5b0d9045cf752da0 Author: Mike Black W9MDB <mdb...@ya...> Date: Thu Dec 28 12:11:31 2023 -0600 Ignore set_split for Yaesu 60M exception rigs Cannot do split in memory modey diff --git a/rigs/yaesu/newcat.c b/rigs/yaesu/newcat.c index 639ed241e..fee3ebf3a 100644 --- a/rigs/yaesu/newcat.c +++ b/rigs/yaesu/newcat.c @@ -2730,6 +2730,11 @@ int newcat_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo) { RETURNFUNC(err); } + if (newcat_60m_exception(rig, rig->state.cache.freqMainA, rig->state.cache.modeMainA)) + { + rig_debug(RIG_DEBUG_VERBOSE, "%s: ignoring set_split since we're on 60M exception\n", __func__); + return RIG_OK; // fake the return code to make things happy + } if (is_ft991) { commit 19c4b01e5abf68e91474b376faf2e2dc0b92c9a4 Merge: 549257217 0c1f66710 Author: Mike Black W9MDB <mdb...@ya...> Date: Thu Dec 28 11:52:24 2023 -0600 Merge branch 'master' of https://github.com/Hamlib/Hamlib commit 5492572176581c8e17c3d82e9c935cc03a9346e3 Author: Mike Black W9MDB <mdb...@ya...> Date: Thu Dec 28 11:51:56 2023 -0600 Add FTDX10 to 860M exception diff --git a/rigs/yaesu/newcat.c b/rigs/yaesu/newcat.c index 3a392bdf4..639ed241e 100644 --- a/rigs/yaesu/newcat.c +++ b/rigs/yaesu/newcat.c @@ -852,7 +852,7 @@ int newcat_60m_exception(RIG *rig, freq_t freq, mode_t mode) } // some rigs need to skip freq/mode settings as 60M only operates in memory mode - if (is_ft991 || is_ft897 || is_ft897d || is_ftdx5000) { return 1; } + if (is_ft991 || is_ft897 || is_ft897d || is_ftdx5000 || is_ftdx10) { return 1; } if (!is_ftdx10 && !is_ft710 && !is_ftdx101d && !is_ftdx101mp) { return 0; } commit 0c1f66710a37bd978ac95a2d622e52ee86a52340 Merge: a4fa02184 5d0cbba91 Author: Michael Black <mdb...@ya...> Date: Thu Dec 28 06:37:23 2023 -0600 Merge pull request #1464 from zcsahok/minor_man_fix Minor man page fix commit 5d0cbba91edea54619fc9dcb0647ac4df8c84c39 Author: zcsahok <ha...@gm...> Date: Thu Dec 28 12:18:02 2023 +0000 Minor man page fix diff --git a/doc/man1/rigctl.1 b/doc/man1/rigctl.1 index baf5b8fa8..add6d52e9 100644 --- a/doc/man1/rigctl.1 +++ b/doc/man1/rigctl.1 @@ -1168,7 +1168,7 @@ VFO reset, \(oq4\(cq = Memory Clear reset, \(oq8\(cq = Master reset. .IP Since these values are defined as a bitmask in .IR include/hamlib/rig.h , -it should be possible to AND these values together to do multiple resets at +it should be possible to OR these values together to do multiple resets at once, if the backend supports it or supports a reset action via rig control at all. . diff --git a/doc/man1/rigctld.1 b/doc/man1/rigctld.1 index fa8277a4e..fc701018b 100644 --- a/doc/man1/rigctld.1 +++ b/doc/man1/rigctld.1 @@ -1052,7 +1052,7 @@ VFO reset, \(oq4\(cq = Memory Clear reset, \(oq8\(cq = Master reset. .IP Since these values are defined as a bitmask in .IR include/hamlib/rig.h , -it should be possible to AND these values together to do multiple resets at +it should be possible to OR these values together to do multiple resets at once, if the backend supports it or supports a reset action via rig control at all. . commit a4fa021848748eb2c57fd53062d911aabed3a917 Author: Mike Black W9MDB <mdb...@ya...> Date: Wed Dec 27 11:58:40 2023 -0600 Update kenwood.c for THETIS diff --git a/rigs/kenwood/kenwood.c b/rigs/kenwood/kenwood.c index c74cd7d87..d7f26d9d3 100644 --- a/rigs/kenwood/kenwood.c +++ b/rigs/kenwood/kenwood.c @@ -5018,6 +5018,7 @@ int kenwood_set_trn(RIG *rig, int trn) char buf[5]; case RIG_MODEL_POWERSDR: // powersdr doesn't have AI command + case RIG_MODEL_THETIS: // powersdr doesn't have AI command RETURNFUNC(-RIG_ENAVAIL); case RIG_MODEL_TS990S: commit bc2f2ce5c7054450fdd2d251c6d2a4c5ea0ba811 Author: Mike Black W9MDB <mdb...@ya...> Date: Wed Dec 27 10:25:48 2023 -0600 Enable set_ptt for IC703 diff --git a/rigs/icom/ic703.c b/rigs/icom/ic703.c index fa1f16d39..4d619f4be 100644 --- a/rigs/icom/ic703.c +++ b/rigs/icom/ic703.c @@ -86,11 +86,11 @@ struct rig_caps ic703_caps = RIG_MODEL(RIG_MODEL_IC703), .model_name = "IC-703", .mfg_name = "Icom", - .version = BACKEND_VER ".1", + .version = BACKEND_VER ".2", .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_MOBILE, - .ptt_type = RIG_PTT_NONE, + .ptt_type = RIG_PTT_RIG, .dcd_type = RIG_DCD_RIG, .port_type = RIG_PORT_SERIAL, .serial_rate_min = 300, commit da478d6e74d64234fac1848ef3447a6e8892b192 Author: Mike Black W9MDB <mdb...@ya...> Date: Tue Dec 26 22:46:38 2023 -0600 Add THETIS to flex.c diff --git a/rigs/kenwood/flex.c b/rigs/kenwood/flex.c index 0fac02689..733a219e0 100644 --- a/rigs/kenwood/flex.c +++ b/rigs/kenwood/flex.c @@ -135,6 +135,7 @@ int flexradio_open(RIG *rig) break; case RIG_MODEL_POWERSDR: + case RIG_MODEL_THETIS: break; default: commit 02a6c80800f05c220294e7610c8c39ae95f6a157 Author: Mike Black W9MDB <mdb...@ya...> Date: Tue Dec 26 22:36:55 2023 -0600 Fix RIG_IS_THETIS in kenwood.c to match RIG_IS_POWERSDR diff --git a/rigs/kenwood/kenwood.c b/rigs/kenwood/kenwood.c index fe301968f..c74cd7d87 100644 --- a/rigs/kenwood/kenwood.c +++ b/rigs/kenwood/kenwood.c @@ -710,7 +710,7 @@ int kenwood_safe_transaction(RIG *rig, const char *cmd, char *buf, { size_t length; // some PowerSDR commands have variable len - int checklen = !RIG_IS_POWERSDR; + int checklen = !RIG_IS_POWERSDR && !RIG_IS_THETIS; err = kenwood_transaction(rig, cmd, buf, buf_size); if (err != RIG_OK) /* return immediately on error as any @@ -5052,7 +5052,7 @@ int kenwood_get_trn(RIG *rig, int *trn) /* these rigs only have AI[0|1] set commands and no AI query */ if (RIG_IS_TS450S || RIG_IS_TS690S || RIG_IS_TS790 || RIG_IS_TS850 - || RIG_IS_TS950S || RIG_IS_TS950SDX || RIG_IS_POWERSDR) + || RIG_IS_TS950S || RIG_IS_TS950SDX || RIG_IS_POWERSDR || RIG_IS_THETIS) { RETURNFUNC(-RIG_ENAVAIL); } diff --git a/rigs/kenwood/kenwood.h b/rigs/kenwood/kenwood.h index 338535b35..5ab2e64f0 100644 --- a/rigs/kenwood/kenwood.h +++ b/rigs/kenwood/kenwood.h @@ -28,7 +28,7 @@ #include "token.h" #include "idx_builtin.h" -#define BACKEND_VER "20231112" +#define BACKEND_VER "20231226" #define EOM_KEN ';' #define EOM_TH '\r' @@ -109,6 +109,7 @@ extern struct confparams kenwood_cfg_params[]; #define RIG_IS_XG3 (rig->caps->rig_model == RIG_MODEL_XG3) #define RIG_IS_PT8000A (rig->caps->rig_model == RIG_MODEL_PT8000A) #define RIG_IS_POWERSDR (rig->caps->rig_model == RIG_MODEL_POWERSDR) +#define RIG_IS_THETIS (rig->caps->rig_model == RIG_MODEL_THETIS) #define RIG_IS_MALACHITE (rig->caps->rig_model == RIG_MODEL_MALACHITE) #define RIG_IS_QRPLABS (rig->caps->rig_model == RIG_MODEL_QRPLABS) commit 08ba518b717f8c9abaadfb9ffa5a34e7f4cc664a Author: Mike Black W9MDB <mdb...@ya...> Date: Tue Dec 26 06:40:11 2023 -0600 Change network.s to allow MacOS compilation for is_networked https://github.com/Hamlib/Hamlib/issues/1463 diff --git a/src/network.c b/src/network.c index 56688787e..96aa7c5bb 100644 --- a/src/network.c +++ b/src/network.c @@ -1153,11 +1153,9 @@ int is_wireless() return 0; } #else -#ifndef __APPLE__ #include <sys/ioctl.h> #include <sys/socket.h> #include <unistd.h> -#include <linux/wireless.h> #include <ifaddrs.h> int is_networked(char *ipv4, int ipv4_length) @@ -1200,6 +1198,8 @@ int is_networked(char *ipv4, int ipv4_length) } +#ifdef __linux__ +#include <linux/wireless.h> int is_wireless_linux(const char *ifname) { int sock = socket(AF_INET, SOCK_DGRAM, 0); @@ -1365,10 +1365,12 @@ void *multicast_receiver(void *arg) rig_debug(RIG_DEBUG_ERR, "%s: error joining multicast group %s:%d: %s\n", __func__, args->multicast_addr, args->multicast_port, strerror(errno)); + if (errno != 0) { return NULL; } + rig_debug(RIG_DEBUG_VERBOSE, "%s: errno==0 so trying to continue\n", __func__); } ----------------------------------------------------------------------- Summary of changes: NEWS | 1 + doc/man1/rigctl.1 | 2 +- doc/man1/rigctld.1 | 2 +- include/hamlib/riglist.h | 1 + rigs/dummy/netrigctl.c | 14 +++- rigs/icom/ic703.c | 4 +- rigs/icom/ic737.c | 2 +- rigs/icom/ic738.c | 2 +- rigs/icom/ic7410.c | 2 +- rigs/icom/ic746.c | 2 +- rigs/icom/ic751.c | 2 +- rigs/icom/ic7600.c | 2 +- rigs/icom/ic761.c | 2 +- rigs/icom/id1.c | 2 +- rigs/icom/id31.c | 2 +- rigs/icom/id4100.c | 2 +- rigs/icom/omni.c | 2 +- rigs/icom/perseus.c | 2 +- rigs/icom/xiegu.c | 31 ++++++-- rigs/kenwood/flex.c | 1 + rigs/kenwood/kenwood.c | 6 +- rigs/kenwood/kenwood.h | 4 +- rigs/kenwood/ts450s.c | 1 - rigs/kenwood/ts480.c | 199 ++++++++++++++++++++++++++++++++++++++++++++++- rigs/kenwood/ts570.c | 2 - rigs/kenwood/ts590.c | 47 ++++++++--- rigs/kenwood/ts850.c | 1 - rigs/kenwood/ts870s.c | 1 - rigs/kenwood/ts930.c | 1 - rigs/yaesu/newcat.c | 8 +- rigs/yaesu/newcat.h | 2 +- src/network.c | 17 +++- src/sprintflst.c | 5 +- tests/rigctl_parse.c | 2 + 34 files changed, 324 insertions(+), 52 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |