]> sigrok.org Git - libsigrok.git/blobdiff - src/hardware/siglent-sds/api.c
siglent-sds: Fixed timebase problem where NS could not be selected
[libsigrok.git] / src / hardware / siglent-sds / api.c
index 9810aa1b3a3d23aea890deb60fc40c4930c904a5..66f8b2a8fa23a22cb62afa58247720294e8092de 100644 (file)
@@ -527,11 +527,11 @@ static int config_set(uint32_t key, GVariant *data,
        struct dev_context *devc;
        uint64_t p;
        double t_dbl;
-       unsigned int i;
+       int i;
        int ret, idx;
        const char *tmp_str;
        char buffer[16];
-       char *cmd;
+       char *cmd = "";
        char cmd4[4];
 
        devc = sdi->priv;
@@ -588,12 +588,14 @@ static int config_set(uint32_t key, GVariant *data,
                case 1000000:
                        cmd = g_strdup_printf("%" PRIu64 "US", p);
                        break;
-               case 100000000:
+               case 1000000000:
                        cmd = g_strdup_printf("%" PRIu64 "NS", p);
                        break;
                }
                sr_dbg("Setting device timebase: TDIV %s.", cmd);
-               return siglent_sds_config_set(sdi, "TDIV %s", cmd);
+               ret = siglent_sds_config_set(sdi, "TDIV %s", cmd);
+               g_free(cmd);
+               return ret;
        case SR_CONF_TRIGGER_SOURCE:
                if ((idx = std_str_idx(data, ARRAY_AND_SIZE(trigger_sources))) < 0)
                        return SR_ERR_ARG;
@@ -636,7 +638,9 @@ static int config_set(uint32_t key, GVariant *data,
                        cmd = g_strdup_printf("%" PRIu64 "UV", p);
                        break;
                }
-               return siglent_sds_config_set(sdi, "C%d:VDIV %s", i + 1, cmd);
+               ret = siglent_sds_config_set(sdi, "C%d:VDIV %s", i + 1, cmd);
+               g_free(cmd);
+               return ret;
        case SR_CONF_COUPLING:
                if (!cg)
                        return SR_ERR_CHANNEL_GROUP;