From 66e0f462d379b1cb3f42e988eb8ccca614d967d5 Mon Sep 17 00:00:00 2001 From: jaseg Date: Sun, 23 Jun 2024 23:13:34 +0200 Subject: Add test data and working manchester decoder --- downsample_rigol_wfm.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 downsample_rigol_wfm.py (limited to 'downsample_rigol_wfm.py') diff --git a/downsample_rigol_wfm.py b/downsample_rigol_wfm.py new file mode 100644 index 0000000..d700c39 --- /dev/null +++ b/downsample_rigol_wfm.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 + +import json +from pathlib import Path +import lzma + +import click +import RigolWFM.wfm as rigol +import scipy + + +@click.command() +@click.argument('infile', type=click.Path(dir_okay=False, exists=True)) +@click.argument('outfile', type=click.Path(dir_okay=False, path_type=Path), required=False) +@click.option('-f', '--factor', type=int, default=500, help='Downsampling factor') +def cli(infile, outfile, factor): + if outfile is None: + outfile = Path(infile).with_suffix('.lzjson') + wf = rigol.Wfm.from_file(infile, 'DS1054Z') + data = wf.channels[0].volts + + data = scipy.signal.decimate(data, factor, ftype='fir')[::-1] + td = wf.channels[0].seconds_per_point * factor + + outfile.write_bytes(lzma.compress(json.dumps({'sample_interval_s': td, 'samples': list(data)}).encode())) + + +if __name__ == '__main__': + cli() -- cgit