[Hamlib-commits] Hamlib -- Ham radio control libraries branch master updated. ec68495bd31f0b4525c8b
Library to control radio transceivers and receivers
Brought to you by:
n0nb
From: Michael B. <mdb...@us...> - 2021-04-25 13:35:20
|
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 ec68495bd31f0b4525c8b4624b5bd751da03c839 (commit) via 1cfa4c205c96498a4b6c55c8880eb5b195def1ab (commit) via 60f861bfd5970290edd7483bce3ccbbe317e4655 (commit) via 9231c2f7e59402dec3d860434ec1323641e2840b (commit) from e0a3f8deac300a080de1bc5bff83b0a65a9949f8 (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 ec68495bd31f0b4525c8b4624b5bd751da03c839 Author: Mike Black W9MDB <mdb...@ya...> Date: Sun Apr 25 08:33:14 2021 -0500 Change WSAStartup logic in network.c to better allow for errors. WSAStartup should now get called once only and should be restarted if needed. https://github.com/Hamlib/Hamlib/issues/679 diff --git a/src/network.c b/src/network.c index 98a49c15..bd458412 100644 --- a/src/network.c +++ b/src/network.c @@ -143,11 +143,23 @@ int network_open(hamlib_port_t *rp, int default_port) #ifdef __MINGW32__ WSADATA wsadata; + int ret; - if (!(wsstarted++) && WSAStartup(MAKEWORD(1, 1), &wsadata) == SOCKET_ERROR) + if (wsstarted == 0) { - rig_debug(RIG_DEBUG_ERR, "%s: error creating socket\n", __func__); - RETURNFUNC(-RIG_EIO); + ret = WSAStartup(MAKEWORD(1, 1), &wsadata); + + if (ret == 0) + { + wsstarted = 1; + rig_debug(RIG_DEBUG_VERBOSE, "%s: WSAStartup OK\n", __func__); + } + else + { + rig_debug(RIG_DEBUG_ERR, "%s: error creating socket, WSAStartup ret=%d\n", + __func__, ret); + RETURNFUNC(-RIG_EIO); + } } #endif @@ -347,20 +359,30 @@ void network_flush(hamlib_port_t *rp) //! @cond Doxygen_Suppress int network_close(hamlib_port_t *rp) { - int ret; + int ret = 0; ENTERFUNC; + if (rp->fd > 0) + { +#ifdef __MINGW32__ + ret = closesocket(rp->fd); +#else + ret = close(rp->fd); +#endif + rig_debug(RIG_DEBUG_VERBOSE, "%s: close socket ret=%d\n", __func__, ret); + rp->fd = 0; + } + #ifdef __MINGW32__ - ret = closesocket(rp->fd); - if (--wsstarted) + if (wsstarted) { - WSACleanup(); + ret = WSACleanup(); + rig_debug(RIG_DEBUG_VERBOSE, "%s: WSACleanup ret=%d\n", __func__, ret); + wsstarted = 0; } -#else - ret = close(rp->fd); #endif RETURNFUNC(ret); } commit 1cfa4c205c96498a4b6c55c8880eb5b195def1ab Author: Mike Black W9MDB <mdb...@ya...> Date: Sat Apr 24 09:17:53 2021 -0500 Remove SQLSTAT deprecated level diff --git a/include/hamlib/rig.h b/include/hamlib/rig.h index 12fdcae0..ec4e668d 100644 --- a/include/hamlib/rig.h +++ b/include/hamlib/rig.h @@ -903,7 +903,7 @@ typedef uint64_t rig_level_e; /*!< These are not settable */ #define RIG_LEVEL_RAWSTR CONSTANT_64BIT_FLAG(26) /*!< \c RAWSTR -- Raw (A/D) value for signal strength, specific to each rig, arg int */ -#define RIG_LEVEL_SQLSTAT CONSTANT_64BIT_FLAG(27) /*!< \c SQLSTAT -- SQL status, arg int (open=1/closed=0). Deprecated, use get_dcd instead */ +//#define RIG_LEVEL_SQLSTAT CONSTANT_64BIT_FLAG(27) /*!< \c SQLSTAT -- SQL status, arg int (open=1/closed=0). Deprecated, use get_dcd instead */ #define RIG_LEVEL_SWR CONSTANT_64BIT_FLAG(28) /*!< \c SWR -- SWR, arg float [0.0 ... infinite] */ #define RIG_LEVEL_ALC CONSTANT_64BIT_FLAG(29) /*!< \c ALC -- ALC, arg float */ #define RIG_LEVEL_STRENGTH CONSTANT_64BIT_FLAG(30) /*!< \c STRENGTH -- Effective (calibrated) signal strength relative to S9, arg int (dB) */ @@ -945,7 +945,7 @@ typedef uint64_t rig_level_e; //! @cond Doxygen_Suppress #define RIG_LEVEL_FLOAT_LIST (RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_SQL|RIG_LEVEL_APF|RIG_LEVEL_NR|RIG_LEVEL_PBT_IN|RIG_LEVEL_PBT_OUT|RIG_LEVEL_RFPOWER|RIG_LEVEL_MICGAIN|RIG_LEVEL_COMP|RIG_LEVEL_BALANCE|RIG_LEVEL_SWR|RIG_LEVEL_ALC|RIG_LEVEL_VOXGAIN|RIG_LEVEL_ANTIVOX|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_RFPOWER_METER_WATTS|RIG_LEVEL_COMP_METER|RIG_LEVEL_VD_METER|RIG_LEVEL_ID_METER|RIG_LEVEL_NOTCHF_RAW|RIG_LEVEL_MONITOR_GAIN|RIG_LEVEL_NB) -#define RIG_LEVEL_READONLY_LIST (RIG_LEVEL_SQLSTAT|RIG_LEVEL_SWR|RIG_LEVEL_ALC|RIG_LEVEL_STRENGTH|RIG_LEVEL_RAWSTR|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_COMP_METER|RIG_LEVEL_VD_METER|RIG_LEVEL_ID_METER) +#define RIG_LEVEL_READONLY_LIST (RIG_LEVEL_SWR|RIG_LEVEL_ALC|RIG_LEVEL_STRENGTH|RIG_LEVEL_RAWSTR|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_COMP_METER|RIG_LEVEL_VD_METER|RIG_LEVEL_ID_METER) #define RIG_LEVEL_IS_FLOAT(l) ((l)&RIG_LEVEL_FLOAT_LIST) #define RIG_LEVEL_SET(l) ((l)&~RIG_LEVEL_READONLY_LIST) diff --git a/src/misc.c b/src/misc.c index 792b0a84..86d9c376 100644 --- a/src/misc.c +++ b/src/misc.c @@ -847,7 +847,6 @@ static struct { RIG_LEVEL_SLOPE_HIGH, "SLOPE_HIGH" }, { RIG_LEVEL_BKIN_DLYMS, "BKIN_DLYMS" }, { RIG_LEVEL_RAWSTR, "RAWSTR" }, - { RIG_LEVEL_SQLSTAT, "SQLSTAT" }, { RIG_LEVEL_SWR, "SWR" }, { RIG_LEVEL_ALC, "ALC" }, { RIG_LEVEL_STRENGTH, "STRENGTH" }, diff --git a/tests/dumpcaps.c b/tests/dumpcaps.c index 33720155..de312174 100644 --- a/tests/dumpcaps.c +++ b/tests/dumpcaps.c @@ -344,12 +344,6 @@ int dumpcaps(RIG *rig, FILE *fout) caps->level_gran); fprintf(fout, "Get level: %s\n", prntbuf); - if ((caps->has_get_level & RIG_LEVEL_SQLSTAT)) - { - fprintf(fout, "Warning--backend uses deprecated SQLSTAT level!\n"); - backend_warnings++; - } - if ((caps->has_get_level & RIG_LEVEL_RAWSTR) && caps->str_cal.size == 0 && !(caps->has_get_level & RIG_LEVEL_STRENGTH)) diff --git a/tests/dumpcaps_rot.c b/tests/dumpcaps_rot.c index 52dadda0..b75c01e2 100644 --- a/tests/dumpcaps_rot.c +++ b/tests/dumpcaps_rot.c @@ -170,12 +170,6 @@ int dumpcaps_rot(ROT *rot, FILE *fout) caps->level_gran); fprintf(fout, "Get level: %s\n", prntbuf); - if ((caps->has_get_level & RIG_LEVEL_SQLSTAT)) - { - fprintf(fout, "Warning--backend uses deprecated SQLSTAT level!\n"); - backend_warnings++; - } - rot_sprintf_level_gran(prntbuf, sizeof(prntbuf), caps->has_set_level, caps->level_gran); fprintf(fout, "Set level: %s\n", prntbuf); commit 60f861bfd5970290edd7483bce3ccbbe317e4655 Author: Mike Black W9MDB <mdb...@ya...> Date: Sat Apr 24 09:16:40 2021 -0500 More changes to bring rigctld dump_caps into line with rigctl dump_caps https://github.com/Hamlib/Hamlib/issues/659 diff --git a/rigs/dummy/netrigctl.c b/rigs/dummy/netrigctl.c index b51a5600..6afc37b2 100644 --- a/rigs/dummy/netrigctl.c +++ b/rigs/dummy/netrigctl.c @@ -492,7 +492,7 @@ static int netrigctl_open(RIG *rig) return (ret < 0) ? ret : -RIG_EPROTO; } - rs->has_get_func = strtoll(buf, NULL, 0); + rig->caps->has_get_func = rs->has_get_func = strtoll(buf, NULL, 0); ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1); @@ -501,7 +501,7 @@ static int netrigctl_open(RIG *rig) return (ret < 0) ? ret : -RIG_EPROTO; } - rs->has_set_func = strtoll(buf, NULL, 0); + rig->caps->has_set_func = rs->has_set_func = strtoll(buf, NULL, 0); ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1); @@ -510,7 +510,7 @@ static int netrigctl_open(RIG *rig) return (ret < 0) ? ret : -RIG_EPROTO; } - rs->has_get_level = strtoll(buf, NULL, 0); + rig->caps->has_get_level = rs->has_get_level = strtoll(buf, NULL, 0); if (rs->has_get_level & RIG_LEVEL_RAWSTR) { @@ -518,6 +518,7 @@ static int netrigctl_open(RIG *rig) provide a front end emulation, if it can't then an -RIG_EINVAL will be returned */ rs->has_get_level |= RIG_LEVEL_STRENGTH; + rig->caps->has_get_level |= RIG_LEVEL_STRENGTH; } ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1); @@ -527,7 +528,7 @@ static int netrigctl_open(RIG *rig) return (ret < 0) ? ret : -RIG_EPROTO; } - rs->has_set_level = strtoll(buf, NULL, 0); + rig->caps->has_set_level = rs->has_set_level = strtoll(buf, NULL, 0); ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1); @@ -545,7 +546,7 @@ static int netrigctl_open(RIG *rig) return (ret < 0) ? ret : -RIG_EPROTO; } - rs->has_set_parm = strtoll(buf, NULL, 0); + rig->caps->has_set_parm = rs->has_set_parm = strtoll(buf, NULL, 0); #if 0 gran_t level_gran[RIG_SETTING_MAX]; /*!< level granularity */ commit 9231c2f7e59402dec3d860434ec1323641e2840b Author: Mike Black W9MDB <mdb...@ya...> Date: Sat Apr 24 08:47:01 2021 -0500 Some more change to bring rigctld dump_caps into line with rigctl dump_caps https://github.com/Hamlib/Hamlib/issues/659 diff --git a/rigs/dummy/netrigctl.c b/rigs/dummy/netrigctl.c index bac1c202..b51a5600 100644 --- a/rigs/dummy/netrigctl.c +++ b/rigs/dummy/netrigctl.c @@ -402,7 +402,7 @@ static int netrigctl_open(RIG *rig) return (ret < 0) ? ret : -RIG_EPROTO; } - rs->max_rit = atol(buf); + rig->caps->max_rit = rs->max_rit = atol(buf); ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1); @@ -411,7 +411,7 @@ static int netrigctl_open(RIG *rig) return (ret < 0) ? ret : -RIG_EPROTO; } - rs->max_xit = atol(buf); + rig->caps->max_xit = rs->max_xit = atol(buf); ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1); @@ -420,7 +420,7 @@ static int netrigctl_open(RIG *rig) return (ret < 0) ? ret : -RIG_EPROTO; } - rs->max_ifshift = atol(buf); + rig->caps->max_ifshift = rs->max_ifshift = atol(buf); ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1); @@ -443,13 +443,20 @@ static int netrigctl_open(RIG *rig) &rs->preamp[2], &rs->preamp[3], &rs->preamp[4], &rs->preamp[5], &rs->preamp[6]); + rig->caps->preamp[0] = rs->preamp[0]; + rig->caps->preamp[1] = rs->preamp[1]; + rig->caps->preamp[2] = rs->preamp[2]; + rig->caps->preamp[3] = rs->preamp[3]; + rig->caps->preamp[4] = rs->preamp[4]; + rig->caps->preamp[5] = rs->preamp[5]; + rig->caps->preamp[6] = rs->preamp[6]; if (ret < 0 || ret >= HAMLIB_MAXDBLSTSIZ) { ret = 0; } - rs->preamp[ret] = RIG_DBLST_END; + rig->caps->preamp[ret] = rs->preamp[ret] = RIG_DBLST_END; ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1); @@ -463,13 +470,20 @@ static int netrigctl_open(RIG *rig) &rs->attenuator[2], &rs->attenuator[3], &rs->attenuator[4], &rs->attenuator[5], &rs->attenuator[6]); + rig->caps->attenuator[0] = rs->attenuator[0]; + rig->caps->attenuator[1] = rs->attenuator[1]; + rig->caps->attenuator[2] = rs->attenuator[2]; + rig->caps->attenuator[3] = rs->attenuator[3]; + rig->caps->attenuator[4] = rs->attenuator[4]; + rig->caps->attenuator[5] = rs->attenuator[5]; + rig->caps->attenuator[6] = rs->attenuator[6]; if (ret < 0 || ret >= HAMLIB_MAXDBLSTSIZ) { ret = 0; } - rs->attenuator[ret] = RIG_DBLST_END; + rig->caps->attenuator[ret] = rs->attenuator[ret] = RIG_DBLST_END; ret = read_string(&rig->state.rigport, buf, BUF_MAX, "\n", 1); diff --git a/tests/rigctl.c b/tests/rigctl.c index 9a57316a..d3777f56 100644 --- a/tests/rigctl.c +++ b/tests/rigctl.c @@ -522,6 +522,19 @@ int main(int argc, char *argv[]) */ if (dump_caps_opt) { + + // if rigctld then we need to open to get the rig caps + if (my_model == RIG_MODEL_NETRIGCTL) { + int ret; + rig_set_debug(verbose); + my_rig = rig_init(my_model); + if((ret=rig_open(my_rig)) != RIG_OK) + { + fprintf(stderr,"Unable to open rigctld: %s\n", rigerror(ret)); + exit(1); + } + rig_close(my_rig); + } dumpcaps(my_rig, stdout); rig_cleanup(my_rig); /* if you care about memory */ exit(0); ----------------------------------------------------------------------- Summary of changes: include/hamlib/rig.h | 4 ++-- rigs/dummy/netrigctl.c | 35 +++++++++++++++++++++++++---------- src/misc.c | 1 - src/network.c | 40 +++++++++++++++++++++++++++++++--------- tests/dumpcaps.c | 6 ------ tests/dumpcaps_rot.c | 6 ------ tests/rigctl.c | 13 +++++++++++++ 7 files changed, 71 insertions(+), 34 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |