software/dump: add JSON dump
This commit is contained in:
parent
72c9930705
commit
1243ab3c81
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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!")
|
Loading…
Reference in New Issue