Use mask on datarefs
This commit is contained in:
parent
21b7116116
commit
e05ace7dfe
@ -56,6 +56,7 @@ if __name__ == "__main__":
|
|||||||
zf.writestr(os.path.join("Vehicles", "DFG", os.path.basename(vf)), str(data))
|
zf.writestr(os.path.join("Vehicles", "DFG", os.path.basename(vf)), str(data))
|
||||||
|
|
||||||
for vf in ecufiles:
|
for vf in ecufiles:
|
||||||
|
vf = vf[:-4] + vf[-4:].lower()
|
||||||
print "Processing file ", vf
|
print "Processing file ", vf
|
||||||
f = open (vf, "r")
|
f = open (vf, "r")
|
||||||
data = f.read ()
|
data = f.read ()
|
||||||
|
@ -75,7 +75,7 @@ def find_DBs():
|
|||||||
mod_globals.opt_ddt = True
|
mod_globals.opt_ddt = True
|
||||||
|
|
||||||
#check cache version
|
#check cache version
|
||||||
verfilename = "./cache/version09r.txt"
|
verfilename = "./cache/version09r_fix#1.txt"
|
||||||
if not os.path.isfile(verfilename):
|
if not os.path.isfile(verfilename):
|
||||||
#if the cache has old version then we should clear it
|
#if the cache has old version then we should clear it
|
||||||
for root, dirs, files in os.walk("./cache"):
|
for root, dirs, files in os.walk("./cache"):
|
||||||
|
@ -348,7 +348,34 @@ class ECU:
|
|||||||
|
|
||||||
|
|
||||||
csvf = 0
|
csvf = 0
|
||||||
|
mask = False
|
||||||
|
masks = []
|
||||||
|
datarefsToRemove = []
|
||||||
|
|
||||||
|
for st in self.States:
|
||||||
|
if st.startswith('MAS'):
|
||||||
|
mask = True
|
||||||
|
get_state( self.States[st], self.Mnemonics, self.Services, self.elm, self.calc )
|
||||||
|
if int(self.States[st].value):
|
||||||
|
masks.append(self.States[st].name)
|
||||||
|
|
||||||
|
if mask:
|
||||||
|
for dr in datarefs:
|
||||||
|
if dr.type=='State':
|
||||||
|
if self.States[dr.name].mask and self.States[dr.name].mask not in masks:
|
||||||
|
datarefsToRemove.append(dr)
|
||||||
|
if dr.type=='Parameter':
|
||||||
|
if self.Parameters[dr.name].mask and self.Parameters[dr.name].mask not in masks:
|
||||||
|
datarefsToRemove.append(dr)
|
||||||
|
if dr.type=='Identification':
|
||||||
|
if self.Identifications[dr.name].mask and self.Identifications[dr.name].mask not in masks:
|
||||||
|
datarefsToRemove.append(dr)
|
||||||
|
if dr.type=='Command':
|
||||||
|
if self.Commands[dr.name].mask and self.Commands[dr.name].mask not in masks:
|
||||||
|
datarefsToRemove.append(dr)
|
||||||
|
for dr in datarefsToRemove:
|
||||||
|
datarefs.remove(dr)
|
||||||
|
|
||||||
#Check if datarefs contains any commands
|
#Check if datarefs contains any commands
|
||||||
for dr in datarefs:
|
for dr in datarefs:
|
||||||
if dr.type=='Command':
|
if dr.type=='Command':
|
||||||
@ -363,10 +390,10 @@ class ECU:
|
|||||||
nparams = 0
|
nparams = 0
|
||||||
for dr in datarefs:
|
for dr in datarefs:
|
||||||
if dr.type=='State':
|
if dr.type=='State':
|
||||||
csvline += ";" + (self.States[dr.name].label + ":" if mod_globals.opt_csv_human else "") + self.States[dr.name].codeMR
|
csvline += ";" + self.States[dr.name].codeMR + (":" + self.States[dr.name].label if mod_globals.opt_csv_human else "")
|
||||||
nparams += 1
|
nparams += 1
|
||||||
if dr.type=='Parameter':
|
if dr.type=='Parameter':
|
||||||
csvline += ";" + (self.Parameters[dr.name].label + ":" if mod_globals.opt_csv_human else "") + self.Parameters[dr.name].codeMR
|
csvline += ";" + self.Parameters[dr.name].codeMR + (":" +self.Parameters[dr.name].label if mod_globals.opt_csv_human else "")
|
||||||
nparams += 1
|
nparams += 1
|
||||||
if mod_globals.opt_usrkey: csvline += ";User events"
|
if mod_globals.opt_usrkey: csvline += ";User events"
|
||||||
csvline = pyren_encode(csvline)
|
csvline = pyren_encode(csvline)
|
||||||
@ -406,10 +433,10 @@ class ECU:
|
|||||||
|
|
||||||
if mod_globals.opt_csv and csvf!=0:
|
if mod_globals.opt_csv and csvf!=0:
|
||||||
csvline = csvline + "\n"
|
csvline = csvline + "\n"
|
||||||
csvline = csvline.replace('.',',')
|
#csvline = csvline.replace('.',',')
|
||||||
#csvline = csvline.replace(',','.')
|
#csvline = csvline.replace(',','.')
|
||||||
csvline = csvline.replace(';','\t')
|
csvline = csvline.replace(';','\t')
|
||||||
csvf.write(pyren_decode(csvline).encode('cp1251') if mod_globals.opt_csv_human else csvline)
|
csvf.write(pyren_decode(csvline).encode('utf8') if mod_globals.opt_csv_human else csvline)
|
||||||
#if mod_globals.os == 'nt' or mod_globals.os == 'android':
|
#if mod_globals.os == 'nt' or mod_globals.os == 'android':
|
||||||
# csvf.write(pyren_decode(csvline).encode('cp1251') if mod_globals.opt_csv_human else csvline)
|
# csvf.write(pyren_decode(csvline).encode('cp1251') if mod_globals.opt_csv_human else csvline)
|
||||||
#else:
|
#else:
|
||||||
|
@ -382,6 +382,7 @@ class ecu_command:
|
|||||||
agcdRef = ""
|
agcdRef = ""
|
||||||
codeMR = ""
|
codeMR = ""
|
||||||
type = ""
|
type = ""
|
||||||
|
mask = ""
|
||||||
label = ""
|
label = ""
|
||||||
prerequisite = ""
|
prerequisite = ""
|
||||||
datarefs = []
|
datarefs = []
|
||||||
@ -398,6 +399,10 @@ class ecu_command:
|
|||||||
if not self.codeMR:
|
if not self.codeMR:
|
||||||
self.codeMR = self.name
|
self.codeMR = self.name
|
||||||
self.type = co.getAttribute("type")
|
self.type = co.getAttribute("type")
|
||||||
|
|
||||||
|
Mask = co.getElementsByTagName("Mask")
|
||||||
|
if Mask:
|
||||||
|
self.mask = Mask.item(0).getAttribute("value")
|
||||||
|
|
||||||
Label = co.getElementsByTagName("Label")
|
Label = co.getElementsByTagName("Label")
|
||||||
codetext = Label.item(0).getAttribute("codetext")
|
codetext = Label.item(0).getAttribute("codetext")
|
||||||
|
@ -347,6 +347,7 @@ class ecu_default:
|
|||||||
code = ""
|
code = ""
|
||||||
agcdRef = ""
|
agcdRef = ""
|
||||||
codeMR = ""
|
codeMR = ""
|
||||||
|
mask = ""
|
||||||
label = ""
|
label = ""
|
||||||
status = 0
|
status = 0
|
||||||
datarefs = []
|
datarefs = []
|
||||||
@ -365,6 +366,10 @@ class ecu_default:
|
|||||||
self.name = df.getAttribute("name")
|
self.name = df.getAttribute("name")
|
||||||
self.agcdRef = df.getAttribute("agcdRef")
|
self.agcdRef = df.getAttribute("agcdRef")
|
||||||
self.codeMR = df.getAttribute("codeMR")
|
self.codeMR = df.getAttribute("codeMR")
|
||||||
|
|
||||||
|
Mask = df.getElementsByTagName("Mask")
|
||||||
|
if Mask:
|
||||||
|
self.mask = Mask.item(0).getAttribute("value")
|
||||||
|
|
||||||
Label = df.getElementsByTagName("Label")
|
Label = df.getElementsByTagName("Label")
|
||||||
codetext = Label.item(0).getAttribute("codetext")
|
codetext = Label.item(0).getAttribute("codetext")
|
||||||
|
@ -30,6 +30,7 @@ class ecu_identification:
|
|||||||
name = ""
|
name = ""
|
||||||
agcdRef = ""
|
agcdRef = ""
|
||||||
codeMR = ""
|
codeMR = ""
|
||||||
|
mask = ""
|
||||||
label = ""
|
label = ""
|
||||||
value = ""
|
value = ""
|
||||||
type = ""
|
type = ""
|
||||||
@ -42,6 +43,10 @@ class ecu_identification:
|
|||||||
self.name = st.getAttribute("name")
|
self.name = st.getAttribute("name")
|
||||||
self.agcdRef = st.getAttribute("agcdRef")
|
self.agcdRef = st.getAttribute("agcdRef")
|
||||||
self.codeMR = st.getAttribute("codeMR")
|
self.codeMR = st.getAttribute("codeMR")
|
||||||
|
|
||||||
|
Mask = st.getElementsByTagName("Mask")
|
||||||
|
if Mask:
|
||||||
|
self.mask = Mask.item(0).getAttribute("value")
|
||||||
|
|
||||||
Label = st.getElementsByTagName("Label")
|
Label = st.getElementsByTagName("Label")
|
||||||
codetext = Label.item(0).getAttribute("codetext")
|
codetext = Label.item(0).getAttribute("codetext")
|
||||||
|
@ -52,6 +52,7 @@ class ecu_parameter:
|
|||||||
name = ""
|
name = ""
|
||||||
agcdRef = ""
|
agcdRef = ""
|
||||||
codeMR = ""
|
codeMR = ""
|
||||||
|
mask = ""
|
||||||
label = ""
|
label = ""
|
||||||
unit = ""
|
unit = ""
|
||||||
type = ""
|
type = ""
|
||||||
@ -72,6 +73,7 @@ class ecu_parameter:
|
|||||||
name = %s
|
name = %s
|
||||||
agcdRef = %s
|
agcdRef = %s
|
||||||
codeMR = %s
|
codeMR = %s
|
||||||
|
mask = %s
|
||||||
label = %s
|
label = %s
|
||||||
unit = %s
|
unit = %s
|
||||||
type = %s
|
type = %s
|
||||||
@ -83,7 +85,7 @@ class ecu_parameter:
|
|||||||
helps = %s
|
helps = %s
|
||||||
computation = %s
|
computation = %s
|
||||||
mnemolist = %s
|
mnemolist = %s
|
||||||
''' % (self.name, self.agcdRef, self.codeMR, self.label, self.unit, self.type,
|
''' % (self.name, self.agcdRef, self.codeMR, self.mask, self.label, self.unit, self.type,
|
||||||
self.min, self.value, self.max, self.format, str(self.domains), hlps,
|
self.min, self.value, self.max, self.format, str(self.domains), hlps,
|
||||||
self.computation, str(self.mnemolist))
|
self.computation, str(self.mnemolist))
|
||||||
return pyren_encode(out)
|
return pyren_encode(out)
|
||||||
@ -92,6 +94,10 @@ class ecu_parameter:
|
|||||||
self.name = pr.getAttribute("name")
|
self.name = pr.getAttribute("name")
|
||||||
self.agcdRef = pr.getAttribute("agcdRef")
|
self.agcdRef = pr.getAttribute("agcdRef")
|
||||||
self.codeMR = pr.getAttribute("codeMR")
|
self.codeMR = pr.getAttribute("codeMR")
|
||||||
|
|
||||||
|
Mask = pr.getElementsByTagName("Mask")
|
||||||
|
if Mask:
|
||||||
|
self.mask = Mask.item(0).getAttribute("value")
|
||||||
|
|
||||||
Label = pr.getElementsByTagName("Label")
|
Label = pr.getElementsByTagName("Label")
|
||||||
codetext = Label.item(0).getAttribute("codetext")
|
codetext = Label.item(0).getAttribute("codetext")
|
||||||
|
@ -21,7 +21,7 @@ def get_state( st, mn, se, elm, calc, dataids = {} ):
|
|||||||
if str(tmp_val).encode("utf-8") in st.caracter.keys():
|
if str(tmp_val).encode("utf-8") in st.caracter.keys():
|
||||||
st.value = st.caracter[str(tmp_val).encode("utf-8")]
|
st.value = st.caracter[str(tmp_val).encode("utf-8")]
|
||||||
else:
|
else:
|
||||||
st.value = ""
|
st.value = str(tmp_val).encode("utf-8")
|
||||||
|
|
||||||
csv_val = unicode(st.value) if mod_globals.opt_csv_human else tmp_val
|
csv_val = unicode(st.value) if mod_globals.opt_csv_human else tmp_val
|
||||||
if mod_globals.os=='android':
|
if mod_globals.os=='android':
|
||||||
@ -36,6 +36,7 @@ class ecu_state:
|
|||||||
name = ""
|
name = ""
|
||||||
agcdRef = ""
|
agcdRef = ""
|
||||||
codeMR = ""
|
codeMR = ""
|
||||||
|
mask = ""
|
||||||
label = ""
|
label = ""
|
||||||
value = ""
|
value = ""
|
||||||
type = ""
|
type = ""
|
||||||
@ -57,6 +58,7 @@ class ecu_state:
|
|||||||
name = %s
|
name = %s
|
||||||
agcdRef = %s
|
agcdRef = %s
|
||||||
codeMR = %s
|
codeMR = %s
|
||||||
|
mask = %s
|
||||||
label = %s
|
label = %s
|
||||||
value = %s
|
value = %s
|
||||||
type = %s
|
type = %s
|
||||||
@ -65,7 +67,7 @@ class ecu_state:
|
|||||||
computation = %s
|
computation = %s
|
||||||
mnemolist = %s
|
mnemolist = %s
|
||||||
''' % (
|
''' % (
|
||||||
self.name, self.agcdRef, self.codeMR, self.label, self.value, self.type,
|
self.name, self.agcdRef, self.codeMR, self.mask, self.label, self.value, self.type,
|
||||||
hlps, chrc, self.computation, self.mnemolist)
|
hlps, chrc, self.computation, self.mnemolist)
|
||||||
return pyren_encode(out)
|
return pyren_encode(out)
|
||||||
|
|
||||||
@ -73,6 +75,10 @@ class ecu_state:
|
|||||||
self.name = st.getAttribute("name")
|
self.name = st.getAttribute("name")
|
||||||
self.agcdRef = st.getAttribute("agcdRef")
|
self.agcdRef = st.getAttribute("agcdRef")
|
||||||
self.codeMR = st.getAttribute("codeMR")
|
self.codeMR = st.getAttribute("codeMR")
|
||||||
|
|
||||||
|
Mask = st.getElementsByTagName("Mask")
|
||||||
|
if Mask:
|
||||||
|
self.mask = Mask.item(0).getAttribute("value")
|
||||||
|
|
||||||
Label = st.getElementsByTagName("Label")
|
Label = st.getElementsByTagName("Label")
|
||||||
codetext = Label.item(0).getAttribute("codetext")
|
codetext = Label.item(0).getAttribute("codetext")
|
||||||
@ -148,4 +154,18 @@ class ecu_states:
|
|||||||
for st in States:
|
for st in States:
|
||||||
state = ecu_state( st, opt, tran )
|
state = ecu_state( st, opt, tran )
|
||||||
state_list[state.name] = state
|
state_list[state.name] = state
|
||||||
|
|
||||||
|
Masks = mdoc.getElementsByTagName("MaskList")
|
||||||
|
if Masks:
|
||||||
|
for ms in Masks:
|
||||||
|
DataRef = ms.getElementsByTagName("DataRef")
|
||||||
|
for dr in DataRef:
|
||||||
|
if dr.getAttribute("type") == 'State':
|
||||||
|
name = dr.getAttribute("name")
|
||||||
|
tempStateXml = """<State name="{}" agcdRef="{}" codeMR="{}">
|
||||||
|
<Label codetext="51354" defaultText="FAULT FINDING VERSION"/></State>""".format(name, name, name)
|
||||||
|
mdom = xml.dom.minidom.parseString(tempStateXml)
|
||||||
|
mdocElem = mdom.documentElement
|
||||||
|
state = ecu_state( mdocElem, opt, tran )
|
||||||
|
state_list[state.name] = state
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user