Difference between revisions of "Input output formats"

From sigrok
Jump to navigation Jump to search
Line 300: Line 300:


TODO.
TODO.
[[Category:APIs]]

Revision as of 20:48, 4 February 2014

Input formats

Input format Status Comments
Logic analyzer 100% Getting samples directly from the logic analyzer hardware.
sigrok session 100% Getting samples from existing sigrok session files (*.sr).
ChronoVu LA8 80% ChronoVu LA8 software file format (usually with .kdt file extension).
Binary 100% Raw, binary data input without any metadata attached.

Logic analyzer

Getting data directly from a logic analyzer device.

sigrok session

The sigrok session file format (*.sr).

See Input output formats/sigrok session for the file format specification.

ChronoVu LA8

See below.

Binary

Raw, binary input format without any metadata.

Output formats

Output format Status Comments
sigrok session 100% The sigrok session file format (*.sr). This is the default (and recommended) format to save dumps to file.
ASCII bits 100%
ASCII hexdump 100%
Binary 100% Raw, binary data output without any metadata attached.
Gnuplot 100% Gnuplot data file format (tab-separated columns of '1' and '0' characters). You need another gnuplot input file such as this one in addition.
VCD 100% The Value Change Dump format can be visualized in gtkwave, for instance.
OLS 100% The file format used by the "Alternative" Java client for the Openbench Logic Sniffer.
ChronoVu LA8 80% ChronoVu LA8 software file format (usually with .kdt file extension).
CSV 80% Comma-separated values.

sigrok session

The sigrok session file format (*.sr). This is the default (and recommended) format to save dumps to file.

Bits

$ sigrok-cli --output-format bits --samples 1000
Acquisition with 8/8 probes at 200 KHz
1:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 
2:00000000 00011111 11111111 11100000 00000000 00011111 11111111 11110000 
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:01111000 01001100 01111100 01100000 00011100 01101100 00011100 00100011 
7:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 
8:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 
1:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111 
2:00000000 00001111 11111111 11110000 00000000 00000111 11111111 11111000 
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 
[...]

ASCII

$ sigrok-cli --config samplerate=1M --probes 1,2 --output-format ascii --time 10
Acquisition with 2/16 probes at 1 MHz
1:/""""""""\.........../""""""""\.........../""""""""\.........../""""""""\.
2 :........../"""""""""""""""""""\...................../"""""""""""""""""""\.
1:........./"""""""""\........../"""""""""\........../"""""""""\........../"
2:..................../"""""""""""""""""""\..................../""""""""""""
1:""""""""\........../""""""""\.........../""""""""\.........../""""""""\...
2:"""""""\...................../"""""""""""""""""""\...................../""
1:......../""""""""\........../"""""""""\........../"""""""""\........../"""
2:"""""""""""""""""\...................../"""""""""""""""""""\..............
1:""""""\........../"""""""""\........../""""""""\.........../""""""""\.....
2:....../"""""""""""""""""""\...................../"""""""""""""""""""\.....

Hex

$ sigrok-cli --output-format hex --samples 1000
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 
[...]

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.

$ sigrok-cli --output-format binary --samples 1000 > 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  |................|
[...]

VCD (Value Change Dump)

sigrok VCD output viewed in gtkwave

$ sigrok-cli --output-format vcd --samples 1000
$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

Gnuplot

sigrok gnuplot output format, PNG format

$ sigrok-cli --output-format gnuplot --samples 1000
# 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 
[...]

OLS

The OLS file format, as supported by jawi's "Alternative" OLS client (>= 0.9.4-rc1).

sigrok OLS output format in jawi's OLS client

$ sigrok-cli --driver demo --config pattern=random \
  --output-format ols --samples 1000
;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
[...]

ChronoVu LA8

This is the file format understood by the ChronoVu LA8 software. The usual file name extension is .kdt.

sigrok chronovu-la8 output format in the ChronoVu LA8 software

$ sigrok-cli --output-format chronovu-la8 \
  --output-file foo.kdt --samples 1000


Limitations:

  • The file size must be exactly 8388613 bytes (8 MB samples + 5 bytes metadata).

Comma-separated values (CSV)

TODO.