Difference between revisions of "Input output formats"

From sigrok
Jump to navigation Jump to search
m
(gnuplot has been removed, the csv output module can be used for that as well.)
(21 intermediate revisions by 6 users not shown)
Line 1: Line 1:
== Input formats ==
[[libsigrok]] supports a number of different input modules (a.k.a. file formats) and output modules, and has a generic API which allows easily adding more input/output modules.


=== Logic analyzer ===
== Supported input/output formats ==


Getting data directly from a logic analyzer device.
{| border="0" style="font-size: smaller" class="alternategrey sortable sigroktable"
|-
! style="width: 8em;" | Name
!Input
!Output
!Description
|-
| [[File format:analog|Analog]]
| bgcolor="yellow" | —
| bgcolor="lime" | supported
| Text output of analog data and types.
|-
| [[File format:ascii|ASCII]]
| bgcolor="yellow" | —
| bgcolor="lime" | supported
| ASCII art.
|-
| [[File format:binary|Binary]]
| bgcolor="lime" | supported
| bgcolor="lime" | supported
| Raw binary data output without any metadata attached.
|-
| [[File format:bits|Bits]]
| bgcolor="yellow" | —
| bgcolor="lime" | supported
| 0/1 digits.
|-
| style="white-space: nowrap;" | [[File format:chronovu_la8|ChronoVu LA8]]
| bgcolor="lime" | supported
| bgcolor="lime" | supported
| [[ChronoVu LA8]] software file format (usually with .kdt file extension).
|-
| [[File format:csv|CSV]]
| bgcolor="lime" | supported
| bgcolor="lime" | supported
| Comma-separated values (also usable for generating data and config files for gnuplot).
|-
| [[File format:hex|hex]]
| bgcolor="yellow" | —
| bgcolor="lime" | supported
| Hexadecimal digits.
|-
| [[File format:ols|ols]]
| bgcolor="yellow" | —
| bgcolor="lime" | supported
| The file format used by the [http://www.lxtreme.nl/ols/ "Alternative" Java client] for the [[Openbench Logic Sniffer]].
|-
| [[File format:srzip|srzip]]
| bgcolor="lime" | supported
| bgcolor="lime" | supported
| The current (v2) sigrok session file format (*.sr).
|-
| [[File format:vcd|VCD]]
| bgcolor="lime" | supported
| bgcolor="lime" | supported
| The [http://en.wikipedia.org/wiki/Value_change_dump Value Change Dump] format (can also be visualized in [http://gtkwave.sourceforge.net/ gtkwave], for instance).
|-
| [[File format:wav|WAV]]
| bgcolor="lime" | supported
| bgcolor="lime" | supported
| The [http://en.wikipedia.org/wiki/WAV waveform audio] (WAV) file format.
|-
| [[File format:raw_analog|Raw analog]]
| bgcolor="lime" | supported
| bgcolor="yellow" | —
| Analog signals without header (configurable sample size, format, and endianness).


=== sigrok session ===
|-
| [[File format:trace32_ad|Lauterbach Trace32]]
| bgcolor="lime" | supported
| bgcolor="yellow" | —
| The Lauterbach Trace32 logic analyzer data file format.


The sigrok session file format (*.sr).
|}


See [[Input output formats/sigrok session]] for the file format specification.
== Supported transform modules ==


=== ChronoVu LA8 ===
{| border="0" style="font-size: smaller" class="alternategrey sortable sigroktable"
|-
! style="width: 8em;" | Name
!Description
|-
| nop
| Do nothing.
|-
| scale
| Scale analog values by a specified factor.
|-
| invert
| Invert values.
|}


See [[Input output formats#ChronoVu_LA8_2|below]].
== Possible candidates for future input/output formats ==


=== Binary ===
{| border="0" style="font-size: smaller" class="alternategrey sortable sigroktable"
 
|-
Raw, binary input format without any metadata.
!Name
 
!Description
== Output formats ==
|-
 
| Scanalogic
=== sigrok session ===
| Used by the [[IKALOGIC Scanalogic-2]] and [[IKALOGIC ScanaPLUS]] logic analyzers.
 
|-
The sigrok session file format (*.sr). This is the default (and recommended) format to save dumps to file.  
| [[File format:rigol_rof|Rigol ROF]]
 
| Used by the [[Rigol DP800 series]] power supplies.
=== Bits ===
|-
 
| [[File format:rigol_raf|Rigol RAF]]
<small>
| Used by the Rigol DG1000Z, DG4000, and DG5000 series signal generators. See [http://www.batronix.com/pdf/Rigol/UserGuide/DG1000Z_UserGuide_EN.pdf DG1000Z User Guide] page 2-75, also [http://www.eevblog.com/forum/testgear/rigol-dg4000-series-raf-file-format/msg559443/ this post] at eevblog.
$ '''sigrok-cli --samples 1000 -O bits'''
|-
Acquisition with 8/8 probes at 200 KHz
| Vector MDF (v3.3) / ASAM MDF (v4.x)
1:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
| Automotive industry standard format. Docs can be found [http://vector.com/vi_mdf_de.html here] and [http://vector.com/downloads/mdf_specification.pdf here]. Validator is [http://vector.com/downloads/MDFValidator2.1.8.zip here]. Some code is [https://code.google.com/p/mdfreader/ here] and [http://sourceforge.net/p/mdfdatafile/code/HEAD/tree/ here].
2:00000000 00011111 11111111 11100000 00000000 00011111 11111111 11110000
|-
3:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
| [http://en.wikipedia.org/wiki/Comtrade COMTRADE]
4:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
| File format used by devices in power engineering (e.g. protective relays, fault recorders). Can contain digital and analog data with constant or variable sample rate.
5:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
|-
6:01111000 01001100 01111100 01100000 00011100 01101100 00011100 00100011
| [[File format:pwl|PWL]]
7:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
| Trivial file format that can be used to define the signal of voltage/current sources in a SPICE simulation.
8:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
|-
1:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
| [[File format:tektronix_wfm|Tektronix WFM]]
2:00000000 00001111 11111111 11110000 00000000 00000111 11111111 11111000
| Used by the Tektronix TDS series oscilloscopes. A parser for Matlab can be found [http://www.mathworks.com/matlabcentral/fileexchange/5873-tektronix-binary-file-readers/content/wfmread.m here].
3:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
|}
4:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
5:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
6:00011110 00100111 00001110 00110000 01001110 00110010 01101110 00010000
7:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
8:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
[...]
</small>
 
=== ASCII ===
 
<small>
$ '''sigrok-cli -d 0:samplerate=1M --time 10 -p 1,2 -O ascii'''
Acquisition with 2/16 probes at 1 MHz
1:/""""""""\.........../""""""""\.........../""""""""\.........../""""""""\.
2 :........../"""""""""""""""""""\...................../"""""""""""""""""""\.
1:........./"""""""""\........../"""""""""\........../"""""""""\........../"
2:..................../"""""""""""""""""""\..................../""""""""""""
1:""""""""\........../""""""""\.........../""""""""\.........../""""""""\...
2:"""""""\...................../"""""""""""""""""""\...................../""
1:......../""""""""\........../"""""""""\........../"""""""""\........../"""
2:"""""""""""""""""\...................../"""""""""""""""""""\..............
1:""""""\........../"""""""""\........../""""""""\.........../""""""""\.....
2:....../"""""""""""""""""""\...................../"""""""""""""""""""\.....
</small>
 
=== Hex ===
 
<small>
$ '''sigrok-cli --samples 1000 -O hex'''
Acquisition with 8/8 probes at 200 KHz
1:ff ff ff ff ff ff ff ff
2:00 7f ff c0 00 3f ff c0
3:ff ff ff ff ff ff ff ff
4:ff ff ff ff ff ff ff ff
5:ff ff ff ff ff ff ff ff
6:71 b2 71 8f 70 9f 78 c0
7:ff ff ff ff ff ff ff ff
8:ff ff ff ff ff ff ff ff
1:ff ff ff ff ff ff ff ff
2:00 3f ff e0 00 1f ff e0
3:ff ff ff ff ff ff ff ff
4:ff ff ff ff ff ff ff ff
5:ff ff ff ff ff ff ff ff
6:f8 d8 f8 c0 3c 4c 1c 63
7:ff ff ff ff ff ff ff ff
8:ff ff ff ff ff ff ff ff
[...]
</small>
 
=== Binary ===
 
Raw, binary output format without any metadata. In the example below every byte contains one sample consisting of 8 probe values (each bit denotes the high or low value of one probe; bit 0 corresponds to probe 0, and so on). In the example, probe 6 is tied to GND (i.e., low), all others are high.
 
<small>
$ '''sigrok-cli --samples 1000 -O binary > somefile.dat'''
$ '''hexdump -Cv somefile.dat'''
00000000  bf bf bf bf bf bf bf bf  bf bf bf bf bf bf bf bf  |................|
00000010  bf bf bf bf bf bf bf bf  bf bf bf bf bf bf bf bf  |................|
00000020  bf bf bf bf bf bf bf bf  bf bf bf bf bf bf bf bf  |................|
00000030  bf bf bf bf bf bf bf bf  bf bf bf bf bf bf bf bf  |................|
[...]
</small>
 
=== VCD (Value Change Dump) ===
 
[[File:Sigrok vcd output in gtkwave.png|thumb|320px|right|sigrok VCD output viewed in gtkwave]]
 
<small>
$ '''sigrok-cli --samples 1000 -O vcd'''
$date Wed Apr  2 00:01:40 2011 $end
$version sigrok 0.2 $end
$comment
  Acquisition with 8/8 probes at 200 kHz
$end
$timescale 1 ns $end
$scope module sigrok $end
$var wire 1 ! channel1 $end
$var wire 1 " channel2 $end
$var wire 1 # channel3 $end
$var wire 1 $ channel4 $end
$var wire 1 % channel5 $end
$var wire 1 & channel6 $end
$var wire 1 ' channel7 $end
$var wire 1 ( channel8 $end
$upscope $end
$enddefinitions $end
$dumpvars
#0
1!
#0
0"
#0
1#
#0
1$
#0
1%
#0
0&
#0
1'
#0
1(
#3
1&
[...]
$dumpoff
$end
</small>
 
=== Gnuplot ===
 
[[File:Sigrok gnuplot output.png|thumb|right|320px|sigrok gnuplot output format, PNG format]]
 
<small>
$ '''sigrok-cli --samples 1000 -O gnuplot'''
# Sample data in space-separated columns format usable by gnuplot
#
# Generated by: sigrok 0.2 on Fri Apr 15 20:25:58 2011
# Comment: Acquisition with 8/8 probes at 500 kHz
# Period: 500 ms
#
# Column        Probe
# -----------------------------------------------------------------------------
# 0            Sample counter (for internal gnuplot purposes)
# 1            1
# 2            2
# 3            3
# 4            4
# 5            5
# 6            6
# 7            7
# 8            8
0              1 0 1 1 1 0 1 1
6              1 0 1 1 1 1 1 1
11              1 0 1 1 1 0 1 1
14              1 0 1 1 1 1 1 1
[...]
</small>
 
=== OLS ===
 
[[File:Ols output in jawis client.png|thumb|right|320px|sigrok OLS output format in jawi's OLS client]]
 
The [https://github.com/jawi/ols/wiki/OLS-data-file-format OLS file format], as supported by [http://www.lxtreme.nl/ols/ jawi's "Alternative" OLS client] (>= 0.9.4-rc1).
 
<small>
$ '''sigrok-cli -d demo:pattern=random --samples 1000 -O ols'''
;Rate: 200000
;Channels: 8
;EnabledChannels: -1
;Compressed: true
;CursorEnabled: false
00000067@0
000000c6@1
00000069@2
00000073@3
00000051@4
000000ff@5
0000004a@6
000000ec@7
00000029@8
000000cd@9
000000ba@10
000000ab@11
000000f2@12
000000fb@13
000000e3@14
00000046@15
0000007c@16
[...]
</small>
 
=== ChronoVu LA8 ===
 
[[File:Chronovu la8 software.png|thumb|right|320px|sigrok chronovu-la8 output format in the [[ChronoVu LA8]] software]]
 
This is the file format understood by the [[ChronoVu LA8]] software. The usual file name extension is '''.kdt'''.
 
<small>
$ '''sigrok-cli -d 0 --samples 1000 -O chronovu-la8 -o foo.kdt'''
</small>
 
'''Limitations:'''
* The file size must be exactly 8388613 bytes (8 MB samples + 5 bytes metadata).

Revision as of 01:05, 5 September 2016

libsigrok supports a number of different input modules (a.k.a. file formats) and output modules, and has a generic API which allows easily adding more input/output modules.

Supported input/output formats

Name Input Output Description
Analog supported Text output of analog data and types.
ASCII supported ASCII art.
Binary supported supported Raw binary data output without any metadata attached.
Bits supported 0/1 digits.
ChronoVu LA8 supported supported ChronoVu LA8 software file format (usually with .kdt file extension).
CSV supported supported Comma-separated values (also usable for generating data and config files for gnuplot).
hex supported Hexadecimal digits.
ols supported The file format used by the "Alternative" Java client for the Openbench Logic Sniffer.
srzip supported supported The current (v2) sigrok session file format (*.sr).
VCD supported supported The Value Change Dump format (can also be visualized in gtkwave, for instance).
WAV supported supported The waveform audio (WAV) file format.
Raw analog supported Analog signals without header (configurable sample size, format, and endianness).
Lauterbach Trace32 supported The Lauterbach Trace32 logic analyzer data file format.

Supported transform modules

Name Description
nop Do nothing.
scale Scale analog values by a specified factor.
invert Invert values.

Possible candidates for future input/output formats

Name Description
Scanalogic Used by the IKALOGIC Scanalogic-2 and IKALOGIC ScanaPLUS logic analyzers.
Rigol ROF Used by the Rigol DP800 series power supplies.
Rigol RAF Used by the Rigol DG1000Z, DG4000, and DG5000 series signal generators. See DG1000Z User Guide page 2-75, also this post at eevblog.
Vector MDF (v3.3) / ASAM MDF (v4.x) Automotive industry standard format. Docs can be found here and here. Validator is here. Some code is here and here.
COMTRADE File format used by devices in power engineering (e.g. protective relays, fault recorders). Can contain digital and analog data with constant or variable sample rate.
PWL Trivial file format that can be used to define the signal of voltage/current sources in a SPICE simulation.
Tektronix WFM Used by the Tektronix TDS series oscilloscopes. A parser for Matlab can be found here.