25
25
# (https://github.com/ericevenchick/CANard)
26
26
27
27
from builtins import *
28
- from . canmatrix import *
28
+ import canmatrix
29
29
import codecs
30
30
import json
31
31
import sys
32
32
33
33
34
-
35
34
extension = 'json'
36
35
37
36
def dump (db , f , ** options ):
@@ -137,12 +136,14 @@ def dump(db, f, **options):
137
136
"bit_length" : signal .size ,
138
137
"factor" : str (signal .factor ),
139
138
"offset" : str (signal .offset ),
139
+ "min" : str (signal .min ),
140
+ "max" : str (signal .max ),
140
141
"is_big_endian" : signal .is_little_endian == 0 ,
141
142
"is_signed" : signal .is_signed ,
142
143
"is_float" : signal .is_float ,
143
144
"comment" : signal .comment ,
144
145
"attributes" : attribs ,
145
- "values" : values
146
+ "values" : values
146
147
}
147
148
if signal .multiplex is not None :
148
149
signalDict ["multiplex" ] = signal .multiplex
@@ -176,7 +177,7 @@ def dump(db, f, **options):
176
177
177
178
178
179
def load (f , ** options ):
179
- db = CanMatrix ()
180
+ db = canmatrix . CanMatrix ()
180
181
181
182
if (sys .version_info > (3 , 0 )):
182
183
import io
@@ -187,7 +188,7 @@ def load(f, **options):
187
188
if "messages" in jsonData :
188
189
for frame in jsonData ["messages" ]:
189
190
# newframe = Frame(frame["id"],frame["name"],8,None)
190
- newframe = Frame (frame ["name" ],
191
+ newframe = canmatrix . Frame (frame ["name" ],
191
192
id = frame ["id" ],
192
193
size = 8 )
193
194
if "length" in frame :
@@ -199,36 +200,42 @@ def load(f, **options):
199
200
newframe .extended = 0
200
201
201
202
for signal in frame ["signals" ]:
202
- if "is_big_endian" in signal and signal ["is_big_endian" ]:
203
- is_little_endian = False
204
- else :
205
- is_little_endian = True
206
- if "is_float" in signal and signal ["is_float" ]:
203
+ is_little_endian = not signal .get ("is_big_endian" , False )
204
+
205
+ if signal .get ("is_float" , False ):
207
206
is_float = True
208
207
else :
209
208
is_float = False
210
- if "is_signed" in signal and signal ["is_signed" ]:
209
+
210
+ if signal .get ("is_signed" , False ):
211
211
is_signed = True
212
212
else :
213
213
is_signed = False
214
- newsignal = Signal (signal ["name" ],
214
+ newsignal = canmatrix . Signal (signal ["name" ],
215
215
startBit = signal ["start_bit" ],
216
216
size = signal ["bit_length" ],
217
217
is_little_endian = is_little_endian ,
218
218
is_signed = is_signed ,
219
+ is_float = is_float ,
219
220
factor = signal ["factor" ],
220
221
offset = signal ["offset" ])
221
- if "unit" in signal and signal ["unit" ]:
222
+
223
+ if signal .get ("min" ) is not None :
224
+ newsignal .min = newsignal .float_factory (signal ["min" ])
225
+
226
+ if signal .get ("max" , False ):
227
+ newsignal .max = newsignal .float_factory (signal ["max" ])
228
+
229
+ if signal .get ("unit" , False ):
222
230
newsignal .unit = signal ["unit" ]
223
231
224
- if "multiplex" in signal and signal [ "multiplex" ] :
232
+ if signal . get ( "multiplex" , False ) :
225
233
newsignal .unit = signal ["multiplex" ]
226
234
227
- if "values" in signal and signal [ "values" ] :
235
+ if signal . get ( "values" , False ) :
228
236
for key in signal ["values" ]:
229
237
newsignal .addValues (key , signal ["values" ][key ])
230
238
if newsignal .is_little_endian == False :
231
-
232
239
newsignal .setStartbit (
233
240
newsignal .startBit , bitNumbering = 1 , startLittle = True )
234
241
newframe .addSignal (newsignal )
0 commit comments