software/dump: add JSON dump

This commit is contained in:
Arnaud Durand 2021-05-24 01:21:35 +02:00 committed by Arnaud
parent 72c9930705
commit 1243ab3c81
3 changed files with 28 additions and 0 deletions

View File

@ -168,6 +168,8 @@ class LiteScopeAnalyzerDriver:
dump = CSVDump() dump = CSVDump()
elif ext == ".py": elif ext == ".py":
dump = PythonDump() dump = PythonDump()
elif ext == ".json":
dump = JSONDump()
elif ext == ".sr": elif ext == ".sr":
dump = SigrokDump(samplerate=samplerate) dump = SigrokDump(samplerate=samplerate)
else: else:

View File

@ -1,5 +1,6 @@
from litescope.software.dump.common import DumpData, DumpVariable, Dump from litescope.software.dump.common import DumpData, DumpVariable, Dump
from litescope.software.dump.csv import CSVDump from litescope.software.dump.csv import CSVDump
from litescope.software.dump.python import PythonDump from litescope.software.dump.python import PythonDump
from litescope.software.dump.json import JSONDump
from litescope.software.dump.sigrok import SigrokDump from litescope.software.dump.sigrok import SigrokDump
from litescope.software.dump.vcd import VCDDump from litescope.software.dump.vcd import VCDDump

View File

@ -0,0 +1,25 @@
#
# This file is part of LiteScope.
#
# Copyright (c) 2021 Arnaud Durand <arnaud.durand@unifr.ch>
# SPDX-License-Identifier: BSD-2-Clause
import json
from litescope.software.dump.common import Dump
class JSONDump(Dump):
def __init__(self, dump=None):
Dump.__init__(self)
self.variables = [] if dump is None else dump.variables
def generate_data(self):
return {v.name: v.values for v in self.variables}
def write(self, filename):
with open(filename, "w") as f:
json.dump(self.generate_data(), f)
def read(self, filename):
raise NotImplementedError("Python files can not (yet) be read, please contribute!")