@@ -134,8 +134,9 @@ def dump(db, f, **options):
134
134
"comment" : signal .comment ,
135
135
"attributes" : attributes ,
136
136
"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
139
140
}
140
141
if signal .multiplex is not None :
141
142
symbolic_signal ["multiplex" ] = signal .multiplex
@@ -156,7 +157,8 @@ def dump(db, f, **options):
156
157
"signals" : symbolic_signals ,
157
158
"attributes" : frame_attributes ,
158
159
"comment" : frame .comment ,
159
- "length" : frame .size })
160
+ "length" : frame .size ,
161
+ "transmitters" : frame .transmitters })
160
162
if sys .version_info > (3 , 0 ):
161
163
import io
162
164
temp = io .TextIOWrapper (f , encoding = 'UTF-8' )
@@ -201,7 +203,8 @@ def load(f, **_options):
201
203
new_frame .size = frame ["length" ]
202
204
203
205
new_frame .arbitration_id .extended = frame .get ("is_extended_frame" , False )
204
-
206
+ if "transmitters" in frame :
207
+ new_frame .transmitters = frame ["transmitters" ]
205
208
for signal in frame ["signals" ]:
206
209
is_little_endian = not signal .get ("is_big_endian" , False )
207
210
is_float = signal .get ("is_float" , False )
@@ -233,10 +236,15 @@ def load(f, **_options):
233
236
if signal .get ("values" , False ):
234
237
for key in signal ["values" ]:
235
238
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 )
236
243
if new_signal .is_little_endian is False :
237
244
new_signal .set_startbit (
238
245
new_signal .start_bit , bitNumbering = 1 , startLittle = True )
239
246
new_frame .add_signal (new_signal )
240
247
db .add_frame (new_frame )
241
248
f .close ()
249
+ db .update_ecu_list ()
242
250
return db
0 commit comments