X-Git-Url: https://sigrok.org/gitweb/?p=sigrok-cli.git;a=blobdiff_plain;f=options.c;h=af6a7fe962032675b99d770d3ce458af278194ca;hp=cba1e630028ff23be5300cb11ae2a4969a5876e6;hb=c45dd41c508bd84b3886eebfa0ca4b2230b2630b;hpb=96d0921142060606933323f6bc37b02ee1225c3d diff --git a/options.c b/options.c index cba1e63..af6a7fe 100644 --- a/options.c +++ b/options.c @@ -22,6 +22,8 @@ #include "sigrok-cli.h" gboolean opt_version = FALSE; +gboolean opt_list_supported = FALSE; +gboolean opt_list_supported_wiki = FALSE; gint opt_loglevel = SR_LOG_WARN; /* Show errors+warnings by default. */ gboolean opt_scan_devs = FALSE; gboolean opt_wait_trigger = FALSE; @@ -32,12 +34,12 @@ gchar *opt_config = NULL; gchar *opt_channels = NULL; gchar *opt_channel_group = NULL; gchar *opt_triggers = NULL; -gchar *opt_pds = NULL; +gchar **opt_pds = NULL; #ifdef HAVE_SRD -gchar *opt_pd_stack = NULL; gchar *opt_pd_annotations = NULL; gchar *opt_pd_meta = NULL; gchar *opt_pd_binary = NULL; +gboolean opt_pd_samplenum = FALSE; #endif gchar *opt_input_format = NULL; gchar *opt_output_format = NULL; @@ -82,8 +84,6 @@ CHECK_ONCE(opt_channels) CHECK_ONCE(opt_channel_group) CHECK_ONCE(opt_triggers) #ifdef HAVE_SRD -CHECK_ONCE(opt_pds) -CHECK_ONCE(opt_pd_stack) CHECK_ONCE(opt_pd_annotations) CHECK_ONCE(opt_pd_meta) CHECK_ONCE(opt_pd_binary) @@ -100,7 +100,11 @@ static gchar **output_file_array = NULL; static const GOptionEntry optargs[] = { {"version", 'V', 0, G_OPTION_ARG_NONE, &opt_version, - "Show version and support list", NULL}, + "Show version", NULL}, + {"list-supported", 'L', 0, G_OPTION_ARG_NONE, &opt_list_supported, + "List supported devices/modules/decoders", NULL}, + {"list-supported-wiki", 0, 0, G_OPTION_ARG_NONE, &opt_list_supported_wiki, + "List supported decoders (MediaWiki)", NULL}, {"loglevel", 'l', 0, G_OPTION_ARG_INT, &opt_loglevel, "Set loglevel (5 is most verbose)", NULL}, {"driver", 'd', 0, G_OPTION_ARG_CALLBACK, &check_opt_drv, @@ -126,16 +130,16 @@ static const GOptionEntry optargs[] = { {"wait-trigger", 'w', 0, G_OPTION_ARG_NONE, &opt_wait_trigger, "Wait for trigger", NULL}, #ifdef HAVE_SRD - {"protocol-decoders", 'P', 0, G_OPTION_ARG_CALLBACK, &check_opt_pds, + {"protocol-decoders", 'P', 0, G_OPTION_ARG_STRING_ARRAY, &opt_pds, "Protocol decoders to run", NULL}, - {"protocol-decoder-stack", 'S', 0, G_OPTION_ARG_CALLBACK, &check_opt_pd_stack, - "Protocol decoder stack", NULL}, {"protocol-decoder-annotations", 'A', 0, G_OPTION_ARG_CALLBACK, &check_opt_pd_annotations, "Protocol decoder annotation(s) to show", NULL}, {"protocol-decoder-meta", 'M', 0, G_OPTION_ARG_CALLBACK, &check_opt_pd_meta, "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-samplenum", 0, 0, G_OPTION_ARG_NONE, &opt_pd_samplenum, + "Show sample numbers in decoder output", NULL}, #endif {"scan", 0, 0, G_OPTION_ARG_NONE, &opt_scan_devs, "Scan for devices", NULL}, @@ -149,7 +153,7 @@ static const GOptionEntry optargs[] = { "Number of frames to acquire", NULL}, {"continuous", 0, 0, G_OPTION_ARG_NONE, &opt_continuous, "Sample continuously", NULL}, - {"get", 0, 0, G_OPTION_ARG_CALLBACK, &check_opt_get, "Get device option only", NULL}, + {"get", 0, 0, G_OPTION_ARG_CALLBACK, &check_opt_get, "Get device options only", NULL}, {"set", 0, 0, G_OPTION_ARG_NONE, &opt_set, "Set device options only", NULL}, {NULL, 0, 0, 0, NULL, NULL, NULL} }; @@ -220,4 +224,16 @@ void show_help(void) g_free(help); g_option_context_free(context); + +#ifdef HAVE_SRD +#define SHOW_DECODER_TEXT "| -P " +#else +#define SHOW_DECODER_TEXT "" +#endif + printf("Example use, typical options:\n"); + printf(" -d --scan\n"); + printf(" -d { --samples N | --frames N | --time T | --continuous }\n"); + printf(" { -d | -I | -O %s} --show\n", SHOW_DECODER_TEXT); + printf(" See the manpage or the wiki for more details.\n"); + printf(" Note: --samples/--frames/--time/--continuous is required for acquisition.\n"); }