Library to read and create Riscure Inspector trace set files (.trs)
Project description
Inspector Trace Set .trs file support in Python
Riscure Inspector uses the .trs file format to save and read traces from disk. To better assist reading and writing trace set files from third parties, Riscure published this Python library.
Quick start
This library supports reading and writing of .trs files, but it does not (yet) support modifying existing .trs files. Both the TrcFile and the Trace class emulate all the functionality of a list, so slice to your heart's content!
Installation
This library is available on PyPi for Python 3 and up. Just add trsfile to your requirements.txt or install it via the command line:
pip install trsfile
Reading .trs files
import trsfile
with trsfile.open('new.trs') as trs_file:
# Show all headers
for header, value in trs_file.headers.items():
print(header, '=', value)
print()
# Iterate over the first 25 traces
for i, trace in enumerate(trs_file[0:25]):
print('Trace {0:d} contains {1:d} samples'.format(i, len(trace)))
print(' - minimum value in trace: {0:f}'.format(min(trace)))
print(' - maximum value in trace: {0:f}'.format(max(trace)))
Creating .trs files
import random, os
from trsfile import trs_create, Trace, SampleCoding, TracePadding, Header
with trs_create('new.trs', TracePadding.PAD, force_overwrite = True) as trs_file:
# Extend the trace file with 100 traces with each 1000 samples
trs_file.extend([
Trace(
SampleCoding.FLOAT,
[random.uniform(-255, 255) for _ in range(0, 1000)],
data = os.urandom(16)
)
for _ in range(0, 100)]
)
# Replace 5 traces (the slice [0:10:2]) with random length traces.
# Because we are creating using the TracePadding.PAD mode, all traces
# will be padded to the trace with the biggest length.
trs_file[0:10:2] = [
Trace(
SampleCoding.FLOAT,
[random.uniform(0, 255) for _ in range(0, random.randrange(1000))],
data = os.urandom(16),
title = 'Clipped trace'
)
for _ in range(0, 5)
]
# Lets delete 10 traces as they are supposedly malformed :)
del trs_file[40:50]
# Finally, change some headers, all available headers are defined in the Header class
trs_file.headers[Header.LABEL_X] = 'Time'
trs_file.headers[Header.LABEL_Y] = 'Voltage'
trs_file.headers[Header.DESCRIPTION] = 'Traces created for some purpose!'
print('Total length of new trace set: {0:d}'.format(len(trs_file)))
Documentation
The full documentation is available in the doc folder with a readable version on readthedocs.
Testing
The library supports Python unittest module and the tests can be executed with the following command:
python -m unittest
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file trsfile-0.1.2.tar.gz.
File metadata
- Download URL: trsfile-0.1.2.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51bc42dcfdf5daa2372cfebd63b8ff4fdbc376ce87781c1d9884abc8acd56138
|
|
| MD5 |
38ab1fc7d7d1d7eb68247678e1bfb700
|
|
| BLAKE2b-256 |
18d85bac1415c9054019a47a1f1e6f6b972f9fba2a864754507b2c72055313ce
|
File details
Details for the file trsfile-0.1.2-py3-none-any.whl.
File metadata
- Download URL: trsfile-0.1.2-py3-none-any.whl
- Upload date:
- Size: 13.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
628125ebac8db1fb0b711e3b481f16dd8a912aba855dca516a55f9fd48beef6a
|
|
| MD5 |
b0210ff0de4dc5b3d4e156c0d8e5ce61
|
|
| BLAKE2b-256 |
e8e96fb63a807833ce2c55635fc24204b96ebe8a4cc1a47fffa567805fe651b7
|