Karl Palsson [Tue, 29 Nov 2016 16:21:30 +0000 (16:21 +0000)]
Show annotations based on decoder ID
Originally, decoder ID was equal to decoder instance ID, so it didn't
matter what you were comparing with. However, with distinct decoder
instances, this assumption fails. Because instance IDs can't be known
in advance, and because it would make the CLI arguments even more
complex, we simply let the -A option continue to be per decoder, not per
instance. This maintains compatibility with prior behaviour, but
doesn't allow the full flexibility possible with the library.
Behaviour preserved:
Single PD, no -A flag => all annotations from PD
Single PD, -A pdid => all annotations from PD
Single PD, -A pdid=annX => annX from PD
Behaviour now added:
Duplicate PDs, no -A flag => all annotations from all PDs
Duplicate PDs, -A pdid => all annotations from all PDs of type pdid
Duplicate PDs, -A pdid=annX => all annX from all PDs of type pdid
Karl Palsson [Tue, 29 Nov 2016 13:19:46 +0000 (13:19 +0000)]
Include decoder instance ID in normal outputs
Without this, it's nigh impossible to determine what lines of output are
from what decoder. While -l 4 and above will include this information,
this feels like something that is essential even at the basic level.
Old:
System Realtime: active sensing
System Realtime: active sensing
System Realtime: active sensing
UNHANDLED DATA: 0x00
Channel 1: note on (note = 51 'D#3', velocity = 70)
System Realtime: active sensing
System Realtime: active sensing
System Realtime: active sensing
System Realtime: active sensing
UNHANDLED DATA: 0x00
Channel 1: note on (note = 51 'D#3', velocity = 70)
System Realtime: active sensing
New:
midi1: System Realtime: active sensing
midi1: System Realtime: active sensing
midi1: System Realtime: active sensing
midi1: UNHANDLED DATA: 0x00
midi1: Channel 1: note on (note = 51 'D#3', velocity = 70)
midi1: System Realtime: active sensing
midi2: System Realtime: active sensing
midi2: System Realtime: active sensing
midi2: System Realtime: active sensing
midi2: UNHANDLED DATA: 0x00
midi2: Channel 1: note on (note = 51 'D#3', velocity = 70)
midi2: System Realtime: active sensing
Karl Palsson [Fri, 25 Nov 2016 16:28:17 +0000 (16:28 +0000)]
Support multiple protocol decoder stacks
Requires libsigrokdecode changes to actually work.
This allows multiple -P options to be specified, each of which is
registered as a full stack with libsigrokdecode.
At this point, there's no way to specify annotations per instance, the
annotations are simply global per decoder (as before) rather than per
instance.
Karl Palsson [Thu, 24 Nov 2016 12:29:09 +0000 (12:29 +0000)]
Drop -S stack option
The -P option already stacks. The -S option was only used for changing the
stacking order. Simply require the correct order with -P. This reduces
the confusion in stacking.
Uwe Hermann [Fri, 17 Feb 2017 08:24:18 +0000 (09:24 +0100)]
sigrok-cli_cross.nsi.in: Use Python 3.4 (Windows XP support).
The last Python version to officially support Windows XP was 3.4.x.
We'll keep the Windows installers at that version for the time being,
until Windows XP support is no longer feasible (e.g. because important
sigrok requirements such as Qt, glib, or libusb drop XP suppport).
Gerhard Sittig [Sun, 16 Oct 2016 16:25:30 +0000 (18:25 +0200)]
show: print binary classes as well in protocol decoder details
The output of `sigrok -P <decoder> --show` omitted the binary classes,
users could not learn which specs are available for the -B option. Add
a "Binary classes:" section after the list of annotations.
Daniel Elstner [Fri, 9 Oct 2015 16:33:14 +0000 (18:33 +0200)]
build: Require GLib 2.32.0
This is needed for the G_SOURCE_REMOVE symbolic constant. Although
it would be trivial to make do without it, there is no reason not to
bump the requirement since libsigrok depends on GLib 2.32.0 anyway.
Daniel Elstner [Fri, 9 Oct 2015 16:26:00 +0000 (18:26 +0200)]
anykey: Use GLib I/O channel watch
Watch for input on a GLib I/O channel using the standard GLib main
loop API instead of injecting an FD event source into the sigrok
session loop.
Also run the session in a main loop created by sigrok-cli instead
of using sr_session_run(). This is mainly for demonstration; the
GLib I/O watch change would work even with sr_session_run() since
it is using the same main context in this case.
Daniel Elstner [Sun, 13 Sep 2015 20:42:51 +0000 (22:42 +0200)]
Build: Include <config.h> first in all source files
Since Autoconf places some important feature flags only into the
configuration header, it is necessary to include it globally to
guarantee a consistent build.
Aurelien Jacobs [Thu, 12 Feb 2015 16:08:33 +0000 (17:08 +0100)]
show: pass NULL parameter to config_key_has_cap() instead of uninitialized cg.
It doesn't make sense to pass a cg to this config_key_has_cap() call
as it is trying to retrieve the device's global SR_CONF_LIMIT_SAMPLES.
This fixes the following warning:
show.c: In function ‘show_dev_detail’:
show.c:392:8: warning: ‘cg’ may be used uninitialized in this function [-Wmaybe-uninitialized]
&& config_key_has_cap(driver, sdi, cg, key, SR_CONF_LIST)) {
^
opt_to_gvar: print an error message for unsupported data types
Unsupported data types are silently ignored in opt_to_gvar() switch
statement. This leads to confusion as sigrok-cli just exits without
giving the user any hint on what's the reason for not setting the option
properly.
Uwe Hermann [Fri, 19 Sep 2014 10:39:33 +0000 (12:39 +0200)]
Fix a compiler warning.
input.c: In function ‘load_input_file’:
input.c:123:7: warning: ‘fd’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
len = read(fd, buf->str, BUFSIZE);
^
input.c:42:6: note: ‘fd’ was declared here
int fd;
^