Skip to content

Commit 4ca1c34

Browse files
committed
add basic ecu info to json format
fixes #485
1 parent d892f96 commit 4ca1c34

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

src/canmatrix/formats/json.py

+12-4
Original file line numberDiff line numberDiff line change
@@ -134,8 +134,9 @@ def dump(db, f, **options):
134134
"comment": signal.comment,
135135
"attributes": attributes,
136136
"values": values,
137-
"is_multiplexer" : signal.is_multiplexer,
138-
"mux_value" : signal.mux_val
137+
"is_multiplexer": signal.is_multiplexer,
138+
"mux_value": signal.mux_val,
139+
"receivers": signal.receivers
139140
}
140141
if signal.multiplex is not None:
141142
symbolic_signal["multiplex"] = signal.multiplex
@@ -156,7 +157,8 @@ def dump(db, f, **options):
156157
"signals": symbolic_signals,
157158
"attributes": frame_attributes,
158159
"comment": frame.comment,
159-
"length": frame.size})
160+
"length": frame.size,
161+
"transmitters": frame.transmitters})
160162
if sys.version_info > (3, 0):
161163
import io
162164
temp = io.TextIOWrapper(f, encoding='UTF-8')
@@ -201,7 +203,8 @@ def load(f, **_options):
201203
new_frame.size = frame["length"]
202204

203205
new_frame.arbitration_id.extended = frame.get("is_extended_frame", False)
204-
206+
if "transmitters" in frame:
207+
new_frame.transmitters = frame["transmitters"]
205208
for signal in frame["signals"]:
206209
is_little_endian = not signal.get("is_big_endian", False)
207210
is_float = signal.get("is_float", False)
@@ -233,10 +236,15 @@ def load(f, **_options):
233236
if signal.get("values", False):
234237
for key in signal["values"]:
235238
new_signal.add_values(key, signal["values"][key])
239+
240+
if signal.get("receivers", False):
241+
for ecu in signal["receivers"]:
242+
new_signal.add_receiver(ecu)
236243
if new_signal.is_little_endian is False:
237244
new_signal.set_startbit(
238245
new_signal.start_bit, bitNumbering=1, startLittle=True)
239246
new_frame.add_signal(new_signal)
240247
db.add_frame(new_frame)
241248
f.close()
249+
db.update_ecu_list()
242250
return db

0 commit comments

Comments
 (0)