Repository navigation
Files
This page lists the files openSciLab reads and writes - captures, exports, project files and profiles - and where it keeps them: the project folders, the data folder and the settings directory.
| Format | Open | Write | What it is |
|---|---|---|---|
.lac |
✓ | ✓ | The capture format of openSciLab. The samples are packed (8 per byte, compressed): small files, saved and opened quickly, also for captures recorded to disk that do not fit into memory. |
.lac of the original LogicAnalyzer |
✓ | ✓ | The software of gusmanb stores a number per sample. Such a file keeps that form when it is saved again; Save as... → Captures for the original LogicAnalyzer (*.lac) writes it. Large, but that software can open it. |
.lac up to version 5 |
✓ | - | Older files of the original software (packed UInt128 samples) are unpacked when opened. |
.lac.gz |
✓ | ✓ | A .lac file compressed with gzip. |
.sr |
✓ | ✓ (export) | A sigrok session, for PulseView and sigrok-cli, with logic and analog channels. |
.csv |
- | ✓ (export) | A column per channel: 0/1 for logic channels, volts for analog channels. |
.vcd |
- | ✓ (export) | Value change dump, for GTKWave, PulseView and other viewers; analog channels as real. |
A .lac file holds the capture settings (rate, samples before and after the trigger, trigger,
bursts), every channel with its name, colour and samples, the order of the channels, analog
channels, the times of a state capture, buses with their symbol tables, regions, named markers
and the pinned channels. Written in the form of the original software, a file opens there as
well; that software ignores what it does not know, such as markers and pinned channels.
The protocol decoders are not stored in the capture file: keep them in a profile (below).
examples/demo.lac (I²C, UART and a clock) and examples/c64-demo.lac (see C64 bus)
in the repository are captures to try things with.
-
Project → Open file... (
Ctrl+O), Open in the tool bar of a data view, Open file... on the start page, or Project → Open recent. - A double-click on a capture in the Data part of the sidebar.
- On the command line:
openscilab capture.lacopens it at the start.
Files are read in the background with a small progress dialog, so the window stays usable with large files. A damaged or cut-off file is reported as such. A capture opens in the active data view if that one is empty, otherwise in a new one.
With a data view active:
-
Project → Save (
Ctrl+S) writes the capture to its file, or asks for a name if it has none (or came from a.srfile). -
Project → Save as... (
Ctrl+Shift+S) offers Captures (*.lac), Compressed captures (*.lac.gz) and Captures for the original LogicAnalyzer (*.lac). - Project → Export has Comma separated values (.csv)..., Value change dump (.vcd)..., sigrok session for PulseView (.sr)... and Decoder output (.csv, .json)... (see Protocol decoders).
- A right click on a capture in the Data part of the sidebar offers Export as CSV....
The CSV of Project → Export has no time column; Export as CSV... in the sidebar and
openscilab-cli convert --time add one, with the time relative to the trigger in seconds.
A capture recorded to disk that does not fit into memory can be saved as .lac or exported as
.sr, but not as CSV, VCD or for the original software. Saving and exporting wait until a
capture that is still arriving is complete.
Converting without the window (see Scripting):
openscilab-cli convert capture.lac capture.sr # open it in PulseView
openscilab-cli convert pulseview.sr capture.lac.gz
openscilab-cli convert --time capture.sr capture.csvA project is a folder with a project.yaml (see Getting started for
creating, opening and saving projects):
my-lab/
├── project.yaml devices, settings, simulation wiring, files to open
├── flows/ *.flow.yaml, flows written in Python (*.py)
├── panels/ *.panel.yaml
├── nodes/ node types of your own (*.py)
├── waveforms/ *.wave.yaml, *.sdl
├── data/ captures, tables, logs, reports
└── tests/ flow tests against the simulator
| Ending | Document |
|---|---|
.flow.yaml, .py
|
a flow (a Python file that builds a flow with the flow DSL) |
.panel.yaml |
a panel |
.wave.yaml, .sdl
|
a waveform for a generator output; .sdl is a digital pattern in the Signal Description Language |
.lac, .lac.gz, .sr
|
a capture, opened in a data view |
.csv, .tsv, .log, .txt, .html, .pdf
|
tables, logs and reports written by flows; they open in the application your system has for them |
The data folder of the project is listed in the Data part of the sidebar, newest first. A
right click there offers Open, Compare the two captures (with two captures selected),
Export as CSV... and Refresh. Flows write their files into this folder, for example with the
node data.file (numbered files such as capture-001.lac go on after those already there).
A project opened from the start page or from Templates is a copy in a temporary folder until you save it; the first Save (or Project → Save project as...) asks where to keep it.
Settings → Data → Folder is where Project → Save project as..., Open project... and saving a
flow outside a project start; by default Documents/openSciLab in your home folder. Recent
entries sets how many recent files and projects are kept.
Where a flow writes its files:
- in a project: the project's
datafolder; - a flow file outside a project: the folder of the flow file;
- an unsaved flow: a temporary folder (shown under Data while the flow is open) - save the flow to keep what it wrote.
A stream with Record to disk keeps its samples in temporary files (openscilab-streams in the
temporary folder of your system). They are deleted with the capture; save the capture to keep it.
A profile is capture settings plus protocol decoders (see Data view → Profiles).
-
Your profiles (Save current settings as profile...) are stored in
profiles.jsonin the settings directory. -
The profiles folder (
profilesin the settings directory, Profiles → Open the profiles folder): every JSON profile file in it is loaded without importing it - copy a file there and it appears in the menu. openSciLab puts its standard profiles there, one file each; a standard profile you delete is not copied again. A profile from the folder is edited and deleted in its own file. -
Profiles → Export profiles... writes your profiles to a JSON file, Import profiles... reads
one. Imports understand profile files of openSciLab, the
profiles.jsonof the original LogicAnalyzer 6.5 software (including its decoder tree), single profiles and plain capture settings (named after the file).
A profile file looks like this (the standard profiles in
examples/profiles
are complete examples):
{
"Profiles": [
{
"Name": "UART 9600 baud",
"Notes": "How to connect the probes ...",
"CaptureSettings": {"Frequency": 1000000, "PreTriggerSamples": 1000, "...": "..."},
"DecoderConfiguration": [{"decoder_id": "uart", "options": {"baudrate": 9600}, "...": "..."}]
}
]
}| System | Folder |
|---|---|
| Windows | %APPDATA%\openSciLab |
| macOS | ~/Library/Application Support/openSciLab |
| Linux |
~/.config/openSciLab (or $XDG_CONFIG_HOME/openSciLab) |
The environment variable OPENSCILAB_SETTINGS_DIR points openSciLab to another folder, e.g. for
a second set of settings.
| File or folder | Holds |
|---|---|
preferences.json |
the settings of Project → Settings... |
profiles.json, profiles/
|
your profiles and the profiles folder |
capture-settings-<kind>.json |
the last capture settings of each kind of device (what the quick settings show) |
decoders/ |
protocol decoders of your own (Protocol decoders) |
plugins/ |
device plugins (docs/drivers.md) |
sim/ |
simulator profiles of your own (Simulators) |
templates/ |
your templates: projects saved with Project → Save project as template... (Getting started) |
firmware/ |
further firmware images for the boards (Firmware) |
timing.json |
the latencies measured with a loopback (Time and synchronization) |
known-devices.json |
the multi device sets (Devices → Forget multi device sets...) |
recent.json, shell-state.json, shell-layouts.json, toolbars.json, analyzer-state.json
|
recent files, the last session, saved layouts, the arrangement of the tool bars and of the data view |
driver_debug.log |
the device communication, when started with openscilab --debug-driver
|
crash.log, faults.log
|
errors nobody caught (with their tracebacks) and the stacks of a crash of the application or a device process; Help → Open the log folder (Troubleshooting) |
A settings file that cannot be read is not overwritten: it is kept beside the new one as
<name>.bad.
openSciLab · 0.1 beta
Instruments
Logic analyzer
The lab
More