Hi,

I just discovered this great tool, sigrok, Today. And having fun last
couple of hours.  Thank you for creating great software.

While playing with sigrok-cli, I noticed that `sigrok-cli --show`
prints "(NULL)".

        $ ./sigrok-cli --show
        zeroplus-logic-cube - ZEROPLUS LAP-C(322000) with 32 channels: A0 A1 A2 
A3 A4 A5 A6 A7 B0 B1 B2 B3 B4 B5 B6 B7 C0 C1 C2 C3 C4 C5 C6 C7 D0 D1 D2 D3 D4 
D5 D6 D7
        Supported configuration options:
            (null): 
            Maximum number of samples: 2097152
               :
               :

The reason seems to be a mismatch between sigrok-cli and libsigrok
`sr_key_info_config`.  That is, sigrok-cli is printing id when
srci->datatype == SR_T_STRING, but `sr_key_info_config` does not have
id set.

Browsing though the commit histry does not tell me id must be non-NULL
nor sigrok-cli better to print srci->name.  Thus I decide to just
report the fact.

On my system with my device, the following change does not cause any
error and prints nicely.  If it's ok, I can send a patch or pull
request.

best,
-- 
              yashi

diff --git a/show.c b/show.c
index 54b367c..b5e4e0c 100644
--- a/show.c
+++ b/show.c
@@ -405,7 +405,7 @@ void show_dev_detail(void)
 
                } else if (key == SR_CONF_SAMPLERATE) {
                        /* Supported samplerates */
-                       printf("    %s", srci->id);
+                       printf("    %s", srci->name);
                        if (maybe_config_list(driver, sdi, channel_group, 
SR_CONF_SAMPLERATE,
                                        &gvar_dict) != SR_OK) {
                                printf("\n");
@@ -447,7 +447,7 @@ void show_dev_detail(void)
                        g_variant_unref(gvar_dict);
 
                } else if (srci->datatype == SR_T_UINT64) {
-                       printf("    %s: ", srci->id);
+                       printf("    %s: ", srci->name);
                        gvar = NULL;
                        if (maybe_config_get(driver, sdi, channel_group, key,
                                        &gvar) == SR_OK) {
@@ -476,7 +476,7 @@ void show_dev_detail(void)
                        g_variant_unref(gvar_list);
 
                } else if (srci->datatype == SR_T_STRING) {
-                       printf("    %s: ", srci->id);
+                       printf("    %s: ", srci->name);
                        if (maybe_config_get(driver, sdi, channel_group, key,
                                        &gvar) == SR_OK) {
                                tmp_str = g_strdup(g_variant_get_string(gvar, 
NULL));
@@ -509,7 +509,7 @@ void show_dev_detail(void)
                        g_variant_unref(gvar);
 
                } else if (srci->datatype == SR_T_UINT64_RANGE) {
-                       printf("    %s: ", srci->id);
+                       printf("    %s: ", srci->name);
                        if (maybe_config_list(driver, sdi, channel_group, key,
                                        &gvar_list) != SR_OK) {
                                printf("\n");
@@ -539,7 +539,7 @@ void show_dev_detail(void)
                        g_variant_unref(gvar_list);
 
                } else if (srci->datatype == SR_T_BOOL) {
-                       printf("    %s: ", srci->id);
+                       printf("    %s: ", srci->name);
                        if (maybe_config_get(driver, sdi, channel_group, key,
                                        &gvar) == SR_OK) {
                                if (g_variant_get_boolean(gvar))
@@ -551,7 +551,7 @@ void show_dev_detail(void)
                                printf("on, off\n");
 
                } else if (srci->datatype == SR_T_DOUBLE_RANGE) {
-                       printf("    %s: ", srci->id);
+                       printf("    %s: ", srci->name);
                        if (maybe_config_list(driver, sdi, channel_group, key,
                                        &gvar_list) != SR_OK) {
                                printf("\n");
@@ -581,7 +581,7 @@ void show_dev_detail(void)
                        g_variant_unref(gvar_list);
 
                } else if (srci->datatype == SR_T_FLOAT) {
-                       printf("    %s: ", srci->id);
+                       printf("    %s: ", srci->name);
                        if (maybe_config_get(driver, sdi, channel_group, key,
                                        &gvar) == SR_OK) {
                                printf("%f\n", g_variant_get_double(gvar));
@@ -591,7 +591,7 @@ void show_dev_detail(void)
 
                } else if (srci->datatype == SR_T_RATIONAL_PERIOD
                                || srci->datatype == SR_T_RATIONAL_VOLT) {
-                       printf("    %s", srci->id);
+                       printf("    %s", srci->name);
                        if (maybe_config_get(driver, sdi, channel_group, key,
                                        &gvar) == SR_OK) {
                                g_variant_get(gvar, "(tt)", &cur_p, &cur_q);
@@ -622,7 +622,7 @@ void show_dev_detail(void)
                        g_variant_unref(gvar_list);
 
                } else if (srci->datatype == SR_T_MQ) {
-                       printf("    %s: ", srci->id);
+                       printf("    %s: ", srci->name);
                        if (maybe_config_get(driver, sdi, channel_group, key,
                                        &gvar) == SR_OK
                                        && g_variant_is_of_type(gvar, 
G_VARIANT_TYPE_TUPLE)
@@ -664,7 +664,7 @@ void show_dev_detail(void)
                } else {
 
                        /* Everything else */
-                       printf("    %s\n", srci->id);
+                       printf("    %s\n", srci->name);
                }
        }
        g_array_free(opts, TRUE);



------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
sigrok-devel mailing list
sigrok-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sigrok-devel

Reply via email to