From: n0nb <n0...@us...> - 2025-09-19 17:10:21
|
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 15d1fab7e889db8594ca07ee34607e3c97372727 (commit) via d13b041131b9211dea24134fdac89f508c413676 (commit) via 48dbe7e80a7a0190d7b88cb08f9581d55c868444 (commit) via 2e548f7de4e1198d73faafaec570a2ad49b00441 (commit) via e1dc6ee59a29f1f0da4857a31526c4927459159d (commit) via fcbd504b595a1f5070541a60c3652041d1bba76d (commit) via 39e7138469c3c7a9964f8f4cdfbc23e287f93085 (commit) via 2953d0f2c313a035563bd4144219716f47ccd05c (commit) via dead86d2906ea6295bb5db629114dd51ca67ea2d (commit) via a647c90c9e308d687b94e24b8debc6c5b2855678 (commit) via c367b2c138cf2e6e6d65b9907802603bc0b460fe (commit) from 95cd7391a22cf9963bfc984d8ad2fbec9659d3f8 (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 15d1fab7e889db8594ca07ee34607e3c97372727 Merge: 95cd7391a d13b04113 Author: Nate Bargmann <n0...@n0...> Date: Fri Sep 19 08:52:40 2025 -0500 Merge GitHub PR #1919 commit d13b041131b9211dea24134fdac89f508c413676 Merge: 48dbe7e80 d4401112d Author: markjfine <mar...@fi...> Date: Thu Sep 18 21:11:37 2025 -0400 Merge branch 'Hamlib:master' into test_gpredict commit 48dbe7e80a7a0190d7b88cb08f9581d55c868444 Merge: 2e548f7de 2a01ecdc5 Author: markjfine <mar...@fi...> Date: Tue Sep 16 16:18:54 2025 -0400 Merge branch 'Hamlib:master' into test_gpredict commit 2e548f7de4e1198d73faafaec570a2ad49b00441 Merge: e1dc6ee59 410c172ed Author: markjfine <mar...@fi...> Date: Sat Sep 13 09:18:22 2025 -0400 Merge branch 'Hamlib:master' into test_gpredict commit e1dc6ee59a29f1f0da4857a31526c4927459159d Merge: fcbd504b5 bae995413 Author: markjfine <mar...@fi...> Date: Thu Sep 11 06:41:58 2025 -0400 Merge branch 'Hamlib:master' into test_gpredict commit fcbd504b595a1f5070541a60c3652041d1bba76d Merge: 39e713846 8f33228a1 Author: markjfine <mar...@fi...> Date: Mon Sep 8 16:01:58 2025 -0400 Merge branch 'Hamlib:master' into test_gpredict commit 39e7138469c3c7a9964f8f4cdfbc23e287f93085 Merge: 2953d0f2c 0a06af1dd Author: markjfine <mar...@fi...> Date: Thu Aug 28 06:41:04 2025 -0400 Merge branch 'Hamlib:master' into test_gpredict commit 2953d0f2c313a035563bd4144219716f47ccd05c Merge: dead86d29 989623ec5 Author: markjfine <mar...@fi...> Date: Sat Aug 2 05:53:16 2025 -0400 Merge branch 'Hamlib:master' into test_gpredict commit dead86d2906ea6295bb5db629114dd51ca67ea2d Merge: a647c90c9 a9ecd5032 Author: markjfine <mar...@fi...> Date: Fri Aug 1 11:15:47 2025 -0400 Merge branch 'Hamlib:master' into test_gpredict commit a647c90c9e308d687b94e24b8debc6c5b2855678 Merge: c367b2c13 b4f0a3b4b Author: Mark J. Fine <mar...@fi...> Date: Thu Jul 31 14:35:31 2025 -0400 Merge branch 'test_gpredict' of https://github.com/markjfine/Hamlib into test_gpredict commit c367b2c138cf2e6e6d65b9907802603bc0b460fe Author: Mark J. Fine <mar...@fi...> Date: Thu Jul 31 14:32:01 2025 -0400 Initial rework of sdr#/gpredict backend diff --git a/rigs/dummy/sdrsharp.c b/rigs/dummy/sdrsharp.c index 19c6057de..1d7acf4b9 100644 --- a/rigs/dummy/sdrsharp.c +++ b/rigs/dummy/sdrsharp.c @@ -22,13 +22,15 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <math.h> +#include <stdbool.h> #include "hamlib/rig.h" #include "iofunc.h" #include "misc.h" -#define DEBUG 1 -#define DEBUG_TRACE DEBUG_VERBOSE +#define BACKEND_VER "20230127.0" + #define TRUE 1 #define FALSE 0 @@ -41,31 +43,15 @@ #define DEFAULTPATH "127.0.0.1:4532" #define SDRSHARP_VFOS (RIG_VFO_A) - +#define SDRSHARP_ANTS (RIG_ANT_1) #define SDRSHARP_MODES (RIG_MODE_NONE) struct sdrsharp_priv_data { - vfo_t curr_vfo; - char bandwidths[MAXBANDWIDTHLEN]; /* pipe delimited set */ - int nbandwidths; - char info[8192]; - ptt_t ptt; - split_t split; - rmode_t curr_modeA; - rmode_t curr_modeB; - freq_t curr_freqA; - freq_t curr_freqB; - pbwidth_t curr_widthA; - pbwidth_t curr_widthB; - int has_get_modeA; /* True if this function is available */ - int has_get_bwA; /* True if this function is available */ - int has_set_bwA; /* True if this function is available */ - float powermeter_scale; /* So we can scale power meter to 0-1 */ - value_t parms[RIG_SETTING_MAX]; - struct ext_list *ext_parms; + freq_t curr_freq; }; + /* * check_vfo * No assumptions @@ -91,6 +77,7 @@ static int check_vfo(vfo_t vfo) return (TRUE); } + /* * read_transaction * Assumes rig!=NULL, xml!=NULL, xml_len>=MAXXMLLEN @@ -151,7 +138,6 @@ static int read_transaction(RIG *rig, char *xml, int xml_len) if (strstr(xml, terminator)) { -// rig_debug(RIG_DEBUG_TRACE, "%s: got %s\n", __func__, terminator); retval = RIG_OK; } else @@ -163,6 +149,7 @@ static int read_transaction(RIG *rig, char *xml, int xml_len) RETURNFUNC(retval); } + /* * write_transaction * Assumes rig!=NULL, xml!=NULL, xml_len=total size of xml for response @@ -203,6 +190,7 @@ static int write_transaction(RIG *rig, char *xml, int xml_len) RETURNFUNC(retval); } + static int sdrsharp_transaction(RIG *rig, char *cmd, char *value, int value_len) { @@ -236,7 +224,10 @@ static int sdrsharp_transaction(RIG *rig, char *cmd, char *value, // if we get RIG_EIO the socket has probably disappeared // so bubble up the error so port can re re-opened - if (retval == -RIG_EIO) { set_transaction_inactive(rig); RETURNFUNC(retval); } + if (retval == -RIG_EIO) + { + set_transaction_inactive(rig); RETURNFUNC(retval); + } hl_usleep(50 * 1000); // 50ms sleep if error } @@ -254,7 +245,10 @@ static int sdrsharp_transaction(RIG *rig, char *cmd, char *value, if (value && strlen(value) == 0) { rig_debug(RIG_DEBUG_ERR, "%s: no value returned\n", __func__); - set_transaction_inactive(rig); RETURNFUNC(-RIG_EPROTO); + + set_transaction_inactive(rig); + + RETURNFUNC(-RIG_EPROTO); } ELAPSED2; @@ -262,6 +256,7 @@ static int sdrsharp_transaction(RIG *rig, char *cmd, char *value, RETURNFUNC(RIG_OK); } + /* * sdrsharp_init * Assumes rig!=NULL @@ -274,8 +269,7 @@ static int sdrsharp_init(RIG *rig) ENTERFUNC; rig_debug(RIG_DEBUG_TRACE, "%s version %s\n", __func__, rig->caps->version); - STATE(rig)->priv = (struct sdrsharp_priv_data *)calloc(1, sizeof( - struct sdrsharp_priv_data)); + STATE(rig)->priv = (struct sdrsharp_priv_data *)calloc(1, sizeof(struct sdrsharp_priv_data)); if (!STATE(rig)->priv) { @@ -285,18 +279,12 @@ static int sdrsharp_init(RIG *rig) priv = STATE(rig)->priv; memset(priv, 0, sizeof(struct sdrsharp_priv_data)); - memset(priv->parms, 0, RIG_SETTING_MAX * sizeof(value_t)); /* * set arbitrary initial status */ STATE(rig)->current_vfo = RIG_VFO_A; - priv->split = 0; - priv->ptt = 0; - priv->curr_modeA = -1; - priv->curr_modeB = -1; - priv->curr_widthA = -1; - priv->curr_widthB = -1; + priv->curr_freq = 0.0; if (!rig->caps) { @@ -305,9 +293,12 @@ static int sdrsharp_init(RIG *rig) strncpy(rp->pathname, DEFAULTPATH, sizeof(rp->pathname)); + rig_debug(RIG_DEBUG_TRACE, "%s pathanme %s\n", __func__, rp->pathname); + RETURNFUNC(RIG_OK); } + /* * sdrsharp_get_freq * Assumes rig!=NULL, STATE(rig)->priv!=NULL, freq!=NULL @@ -315,14 +306,12 @@ static int sdrsharp_init(RIG *rig) static int sdrsharp_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) { char value[MAXARGLEN]; - struct sdrsharp_priv_data *priv = (struct sdrsharp_priv_data *) STATE( - rig)->priv; + struct sdrsharp_priv_data *priv = (struct sdrsharp_priv_data *) STATE(rig)->priv; ENTERFUNC; rig_debug(RIG_DEBUG_TRACE, "%s: vfo=%s\n", __func__, rig_strvfo(vfo)); - if (check_vfo(vfo) == FALSE) { rig_debug(RIG_DEBUG_ERR, "%s: unsupported VFO %s\n", @@ -333,7 +322,7 @@ static int sdrsharp_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) if (vfo == RIG_VFO_CURR) { vfo = STATE(rig)->current_vfo; - rig_debug(RIG_DEBUG_TRACE, "%s: get_freq2 vfo=%s\n", + rig_debug(RIG_DEBUG_TRACE, "%s: get_freq vfo=%s\n", __func__, rig_strvfo(vfo)); } @@ -366,11 +355,7 @@ static int sdrsharp_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) if (vfo == RIG_VFO_A) { - priv->curr_freqA = *freq; - } - else // future support in SDRSHARP maybe? - { - priv->curr_freqB = *freq; + priv->curr_freq = *freq; } RETURNFUNC(RIG_OK); @@ -378,7 +363,7 @@ static int sdrsharp_get_freq(RIG *rig, vfo_t vfo, freq_t *freq) /* * sdrsharp_open -* Assumes rig!=NULL, STATE(rig)->priv!=NULL +* Assumes rig!=NULL */ static int sdrsharp_open(RIG *rig) { @@ -405,6 +390,7 @@ static int sdrsharp_open(RIG *rig) RETURNFUNC(retval); } + /* * sdrsharp_close * Assumes rig!=NULL @@ -416,14 +402,14 @@ static int sdrsharp_close(RIG *rig) RETURNFUNC(RIG_OK); } + /* * sdrsharp_cleanup * Assumes rig!=NULL, STATE(rig)->priv!=NULL */ static int sdrsharp_cleanup(RIG *rig) { - struct sdrsharp_priv_data *priv; - + ENTERFUNC; rig_debug(RIG_DEBUG_TRACE, "%s\n", __func__); if (!rig) @@ -431,9 +417,6 @@ static int sdrsharp_cleanup(RIG *rig) RETURNFUNC2(-RIG_EINVAL); } - priv = (struct sdrsharp_priv_data *)STATE(rig)->priv; - - free(priv->ext_parms); free(STATE(rig)->priv); STATE(rig)->priv = NULL; @@ -462,6 +445,20 @@ static int sdrsharp_cleanup(RIG *rig) } +/* +* sdrsharp_get_vfo +* assumes rig!=NULL, vfo != NULL +*/ +static int sdrsharp_get_vfo(RIG *rig, vfo_t *vfo) +{ + ENTERFUNC; + + *vfo = RIG_VFO_A; + + RETURNFUNC(RIG_OK); +} + + /* * sdrsharp_set_freq * assumes rig!=NULL, STATE(rig)->priv!=NULL @@ -472,8 +469,7 @@ static int sdrsharp_set_freq(RIG *rig, vfo_t vfo, freq_t freq) char cmd[MAXARGLEN]; char value[1024]; - //struct sdrsharp_priv_data *priv = (struct sdrsharp_priv_data *) STATE(rig)->priv; - + ENTERFUNC; rig_debug(RIG_DEBUG_TRACE, "%s\n", __func__); rig_debug(RIG_DEBUG_TRACE, "%s: vfo=%s freq=%.0f\n", __func__, rig_strvfo(vfo), freq); @@ -485,16 +481,14 @@ static int sdrsharp_set_freq(RIG *rig, vfo_t vfo, freq_t freq) RETURNFUNC2(-RIG_EINVAL); } -#if 0 - if (vfo == RIG_VFO_CURR) { vfo = STATE(rig)->current_vfo; + rig_debug(RIG_DEBUG_TRACE, "%s: set_freq vfo=%s\n", + __func__, rig_strvfo(vfo)); } -#endif - - SNPRINTF(cmd, sizeof(cmd), "F %.0lf\n", freq); + SNPRINTF(cmd, sizeof(cmd), "F %lf\n", freq); retval = sdrsharp_transaction(rig, cmd, value, sizeof(value)); @@ -508,65 +502,73 @@ static int sdrsharp_set_freq(RIG *rig, vfo_t vfo, freq_t freq) RETURNFUNC2(retval); } -/* -* sdrsharp_get_vfo -* assumes rig!=NULL, vfo != NULL -*/ -static int sdrsharp_get_vfo(RIG *rig, vfo_t *vfo) -{ - ENTERFUNC; - - *vfo = RIG_VFO_A; - - RETURNFUNC(RIG_OK); -} struct rig_caps sdrsharp_caps = { RIG_MODEL(RIG_MODEL_SDRSHARP), .model_name = "SDR#/gpredict", .mfg_name = "Airspy", - .version = "20230127.0", + .version = BACKEND_VER, .copyright = "LGPL", .status = RIG_STATUS_STABLE, .rig_type = RIG_TYPE_RECEIVER, - //.targetable_vfo = RIG_TARGETABLE_FREQ | RIG_TARGETABLE_MODE, - .ptt_type = RIG_PTT_RIG, + .ptt_type = RIG_PTT_NONE, + .dcd_type = RIG_DCD_NONE, .port_type = RIG_PORT_NETWORK, - .write_delay = 0, - .post_write_delay = 0, + .write_delay = 1, + .post_write_delay = 100, .timeout = 1000, .retry = 2, - .filters = { - {RIG_MODE_ALL, RIG_FLT_ANY}, - RIG_FLT_END - }, - - .rx_range_list1 = {{ - .startf = kHz(1), .endf = GHz(10), .modes = SDRSHARP_MODES, - .low_power = -1, .high_power = -1, SDRSHARP_VFOS, RIG_ANT_1 - }, + .has_get_func = false, + .has_set_func = false, + .has_get_level = false, + .has_set_level = false, + .has_get_parm = false, + .has_set_parm = false, + .level_gran = {}, + .parm_gran = {}, + .ctcss_list = NULL, + .dcs_list = NULL, + .max_rit = Hz(0), + .max_xit = Hz(0), + .max_ifshift = Hz(0), + .targetable_vfo = 0, + .transceive = RIG_TRN_OFF, + .vfo_ops = 0, + .scan_ops = 0, + .bank_qty = 0, + .chan_desc_sz = 0, + .priv = NULL, + + .chan_list = {RIG_CHAN_END,}, + + .rx_range_list1 = { + { Hz(1), GHz(10), SDRSHARP_MODES, -1, -1, SDRSHARP_VFOS, SDRSHARP_ANTS}, RIG_FRNG_END, }, .tx_range_list1 = {RIG_FRNG_END,}, - .rx_range_list2 = {{ - .startf = kHz(1), .endf = GHz(10), .modes = SDRSHARP_MODES, - .low_power = -1, .high_power = -1, SDRSHARP_VFOS, RIG_ANT_1 - }, + .rx_range_list2 = { + { Hz(1), GHz(10), SDRSHARP_MODES, -1, -1, SDRSHARP_VFOS, SDRSHARP_ANTS}, RIG_FRNG_END, }, .tx_range_list2 = {RIG_FRNG_END,}, - .tuning_steps = { {SDRSHARP_MODES, 1}, {SDRSHARP_MODES, RIG_TS_ANY}, RIG_TS_END, }, - .priv = NULL, /* priv */ + .tuning_steps = { + {SDRSHARP_MODES, 1}, + {SDRSHARP_MODES, RIG_TS_ANY}, + RIG_TS_END, }, + .filters = { + {RIG_MODE_ALL, RIG_FLT_ANY}, + RIG_FLT_END + }, .rig_init = sdrsharp_init, .rig_open = sdrsharp_open, .rig_close = sdrsharp_close, .rig_cleanup = sdrsharp_cleanup, - .get_vfo = sdrsharp_get_vfo, - .set_freq = sdrsharp_set_freq, - .get_freq = sdrsharp_get_freq, + .get_vfo = sdrsharp_get_vfo, //always RIG_VFO_A + .set_freq = sdrsharp_set_freq, //F <frequency Hz>\n + .get_freq = sdrsharp_get_freq, //f\n .hamlib_check_rig_caps = HAMLIB_CHECK_RIG_CAPS }; ----------------------------------------------------------------------- Summary of changes: rigs/dummy/sdrsharp.c | 182 +++++++++++++++++++++++++------------------------- 1 file changed, 92 insertions(+), 90 deletions(-) hooks/post-receive -- Hamlib -- Ham radio control libraries |