@@ -762,14 +762,14 @@ def add_frame_by_id(new_frame): # type: (canmatrix.Frame) -> None
762762 db .ecus .append (canmatrix .Ecu (ele ))
763763
764764 elif decoded .startswith ("VAL_ " ):
765- regexp = re .compile (r"^VAL_ +(\S+) + (\S+) +(.*) *;" )
765+ regexp = re .compile (r"^VAL_ +(\d+)? * (\S+) +(.*) *;" )
766766 temp = regexp .match (decoded )
767767 if temp :
768768 frame_id = temp .group (1 )
769769 signal_name = temp .group (2 )
770770 temp_list = list (canmatrix .utils .escape_aware_split (temp .group (3 ), '"' ))
771771
772- if frame_id . isnumeric () : # value for Frame
772+ if frame_id : # value for Frame
773773 try :
774774 frame = get_frame_by_id (canmatrix .ArbitrationId .from_compound_integer (int (frame_id )))
775775 sg = frame .signal_by_name (signal_name )
@@ -780,8 +780,15 @@ def add_frame_by_id(new_frame): # type: (canmatrix.Frame) -> None
780780 sg .add_values (temp_list [i * 2 ], val )
781781 except :
782782 logger .error ("Error with Line: " + str (temp_list ))
783- else :
784- logger .info ("Warning: environment variables currently not supported" )
783+ else :
784+ try :
785+ values = db .env_vars [signal_name ]['values' ]
786+ for i in range (math .floor (len (temp_list ) / 2 )):
787+ val = temp_list [i * 2 + 1 ]
788+ val = val .replace ('\\ "' , '"' )
789+ values [temp_list [i * 2 ].strip ()]= val
790+ except :
791+ logger .error ("Error with Line: " + str (temp_list ))
785792
786793 elif decoded .startswith ("VAL_TABLE_ " ):
787794 regexp = re .compile (r"^VAL_TABLE_ +(\S+) +(.*) *;" )
@@ -925,7 +932,7 @@ def add_frame_by_id(new_frame): # type: (canmatrix.Frame) -> None
925932 access_nodes = temp .group (9 ).split ("," )
926933 db .add_env_var (var_name , {"varType" : var_type , "min" : min_value , "max" : max_value , "unit" : unit ,
927934 "initialValue" : initial_value , "evId" : ev_id , "accessType" : access_type ,
928- "accessNodes" : access_nodes })
935+ "accessNodes" : access_nodes , "values" : {} })
929936
930937 # else:
931938 except :
0 commit comments