]> sigrok.org Git - libsigrok.git/commit
input/protocoldata: add input module for "protocol values" files
authorGerhard Sittig <redacted>
Tue, 14 May 2019 19:27:18 +0000 (21:27 +0200)
committerGerhard Sittig <redacted>
Wed, 12 Jul 2023 18:42:48 +0000 (20:42 +0200)
commitff7f7f730557fdea2bf381d61c41f8d9862475e9
tree14ef30c637c6128819de905624488d9ee5ad47be
parentec55714181b0c60e293a5ff6b838b7c99dcabde3
input/protocoldata: add input module for "protocol values" files

Implement an input module which accepts data values that may have been
gotten by arbitrary means (external capture utility, synthesized data),
and creates logic traces which mimic the respective protocol's format.
This pretends that a logic capture had been taken by sigrok means, which
can be fed to protocol decoders. The motivation is neither to perfectly
simulate a given protocol, nor to inject arbitrary error conditions and
edge cases, but instead to make externally provided data available to
sigrok protocol decoders.

The input module supports several user servicable options to describe
raw files which exclusively contain data bytes. Optional automatic file
format detection is also supported, as is an optional file header to
embed protocol properties with the bytes stream. Text formatted input
is supported as a strict alternative to raw data bytes, also supporting
comments as well as pseudo comments. The latter carry instructions to
control some aspects that are outside of the mere stream of data bytes.
Some protocols may exclusively be useful in combination with text input.

Protocol specific handlers can generate up to eight logic channels, an
arbitrary number of bits per protocol frame, including varying bit times
within a frame, and several quanta per bit time. It is assumed that this
implementation provides enough infrastructure to mimic an arbitrary set
of protocols beyond the initially supported set of UART, SPI, and I2C.
Makefile.am
src/input/input.c
src/input/protocoldata.c [new file with mode: 0644]