decode: Optionally print annotation class with PD annotations master
authorSergey Spivak <sespivak@yandex.ru>
Fri, 12 Aug 2022 11:53:43 +0000 (15:53 +0400)
committerSoeren Apel <soeren@apelpie.net>
Sat, 8 Oct 2022 20:00:40 +0000 (22:00 +0200)
Introduce the "--protocol-decoder-ann-class" command line option
(no short form available), which emits annotation class names
with textual output from protocol decoder annotations, regardless
of a log level value.

Based on commit 08e9378bf68a by Gerhard Sittig <gerhard.sittig@gmx.net>

decode.c
doc/sigrok-cli.1
options.c
parsers.c
sigrok-cli.h

index 4ddf34afbbaf00db414a041f4ef2e61ddc27bc0f..ac0e3e17cc283e51d16a0aa8e7c21be846faf657 100644 (file)
--- a/decode.c
+++ b/decode.c
@@ -684,6 +684,8 @@ void show_pd_annotations(struct srd_proto_data *pdata, void *cb_data)
                show_class = TRUE;
                show_abbrev = TRUE;
        }
+       if (opt_pd_ann_class)
+               show_class = TRUE;
 
        /*
         * Display the annotation's fields after the layout was
index b333bee93de02f34357a80cc0929d6a1a5db58e9..b48992847e65ffc29c47b6709bc3d8293866cf9f 100644 (file)
@@ -426,6 +426,9 @@ Not every decoder generates binary output.
 When given, decoder annotations will include sample numbers, too.
 This allows consumers to receive machine readable timing information.
 .TP
+.BR "\-\-protocol\-decoder\-ann\-class
+When given, decoder annotations will include annotation class names.
+.TP
 .BR "\-l, \-\-loglevel " <level>
 Set the libsigrok and libsigrokdecode loglevel. At the moment \fBsigrok\-cli\fP
 doesn't support setting the two loglevels independently. The higher the
index 2573bd4c17b6cb861be37239070ff6e7bc8e07ef..e47b6804e96eb7635f9874b3090cb02110526dae 100644 (file)
--- a/options.c
+++ b/options.c
@@ -40,6 +40,7 @@ gchar **opt_pds = NULL;
 gchar *opt_pd_annotations = NULL;
 gchar *opt_pd_meta = NULL;
 gchar *opt_pd_binary = NULL;
+gboolean opt_pd_ann_class = FALSE;
 gboolean opt_pd_samplenum = FALSE;
 gboolean opt_pd_jsontrace = FALSE;
 #endif
@@ -139,6 +140,8 @@ static const GOptionEntry optargs[] = {
                        "Protocol decoder meta output to show", NULL},
        {"protocol-decoder-binary", 'B', 0, G_OPTION_ARG_CALLBACK, &check_opt_pd_binary,
                        "Protocol decoder binary output to show", NULL},
+       {"protocol-decoder-ann-class", 0, 0, G_OPTION_ARG_NONE, &opt_pd_ann_class,
+                       "Show annotation class in decoder output", NULL},
        {"protocol-decoder-samplenum", 0, 0, G_OPTION_ARG_NONE, &opt_pd_samplenum,
                        "Show sample numbers in decoder output", NULL},
        {"protocol-decoder-jsontrace", 0, 0, G_OPTION_ARG_NONE, &opt_pd_jsontrace,
index b74d74fe98792ac314094be4bf927b1e11b51fb3..59a7a91830220f573d7dd9abb85789fc0b038884 100644 (file)
--- a/parsers.c
+++ b/parsers.c
@@ -364,6 +364,8 @@ GHashTable *parse_generic_arg(const char *arg,
                i++;
        }
        for (; elements[i]; i++) {
+               if (!elements[i][0])
+                       continue;
                split_key_value(elements[i], &k, &v);
                k = g_strdup(k);
                v = v ? g_strdup(v) : NULL;
index 2c0fbdcf57d2358b9864cce8676b39e1e7bba1f0..684aed99a8bd302da3ae8d88f6ff9e9be94ee867 100644 (file)
@@ -140,6 +140,7 @@ extern gchar **opt_pds;
 extern gchar *opt_pd_annotations;
 extern gchar *opt_pd_meta;
 extern gchar *opt_pd_binary;
+extern gboolean opt_pd_ann_class;
 extern gboolean opt_pd_samplenum;
 extern gboolean opt_pd_jsontrace;
 #endif