[Hamlib-commits] Hamlib -- Ham radio control libraries branch master updated. 15d1fab7e889db8594ca0
Library to control radio transceivers and receivers
                
                Brought to you by:
                
                    n0nb
                    
                
            
            
        
        
        
    | 
      
      
      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
 |