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))
|
||||
|
||||
for vf in ecufiles:
|
||||
vf = vf[:-4] + vf[-4:].lower()
|
||||
print "Processing file ", vf
|
||||
f = open (vf, "r")
|
||||
data = f.read ()
|
||||
|
@ -75,7 +75,7 @@ def find_DBs():
|
||||
mod_globals.opt_ddt = True
|
||||
|
||||
#check cache version
|
||||
verfilename = "./cache/version09r.txt"
|
||||
verfilename = "./cache/version09r_fix#1.txt"
|
||||
if not os.path.isfile(verfilename):
|
||||
#if the cache has old version then we should clear it
|
||||
for root, dirs, files in os.walk("./cache"):
|
||||
|
@ -348,7 +348,34 @@ class ECU:
|
||||
|
||||
|
||||
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
|
||||
for dr in datarefs:
|
||||
if dr.type=='Command':
|
||||
@ -363,10 +390,10 @@ class ECU:
|
||||
nparams = 0
|
||||
for dr in datarefs:
|
||||
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
|
||||
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
|
||||
if mod_globals.opt_usrkey: csvline += ";User events"
|
||||
csvline = pyren_encode(csvline)
|
||||
@ -406,10 +433,10 @@ class ECU:
|
||||
|
||||
if mod_globals.opt_csv and csvf!=0:
|
||||
csvline = csvline + "\n"
|
||||
csvline = csvline.replace('.',',')
|
||||
#csvline = csvline.replace('.',',')
|
||||
#csvline = csvline.replace(',','.')
|
||||
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':
|
||||
# csvf.write(pyren_decode(csvline).encode('cp1251') if mod_globals.opt_csv_human else csvline)
|
||||
#else:
|
||||
|
@ -382,6 +382,7 @@ class ecu_command:
|
||||
agcdRef = ""
|
||||
codeMR = ""
|
||||
type = ""
|
||||
mask = ""
|
||||
label = ""
|
||||
prerequisite = ""
|
||||
datarefs = []
|
||||
@ -398,6 +399,10 @@ class ecu_command:
|
||||
if not self.codeMR:
|
||||
self.codeMR = self.name
|
||||
self.type = co.getAttribute("type")
|
||||
|
||||
Mask = co.getElementsByTagName("Mask")
|
||||
if Mask:
|
||||
self.mask = Mask.item(0).getAttribute("value")
|
||||
|
||||
Label = co.getElementsByTagName("Label")
|
||||
codetext = Label.item(0).getAttribute("codetext")
|
||||
|
@ -347,6 +347,7 @@ class ecu_default:
|
||||
code = ""
|
||||
agcdRef = ""
|
||||
codeMR = ""
|
||||
mask = ""
|
||||
label = ""
|
||||
status = 0
|
||||
datarefs = []
|
||||
@ -365,6 +366,10 @@ class ecu_default:
|
||||
self.name = df.getAttribute("name")
|
||||
self.agcdRef = df.getAttribute("agcdRef")
|
||||
self.codeMR = df.getAttribute("codeMR")
|
||||
|
||||
Mask = df.getElementsByTagName("Mask")
|
||||
if Mask:
|
||||
self.mask = Mask.item(0).getAttribute("value")
|
||||
|
||||
Label = df.getElementsByTagName("Label")
|
||||
codetext = Label.item(0).getAttribute("codetext")
|
||||
|
@ -30,6 +30,7 @@ class ecu_identification:
|
||||
name = ""
|
||||
agcdRef = ""
|
||||
codeMR = ""
|
||||
mask = ""
|
||||
label = ""
|
||||
value = ""
|
||||
type = ""
|
||||
@ -42,6 +43,10 @@ class ecu_identification:
|
||||
self.name = st.getAttribute("name")
|
||||
self.agcdRef = st.getAttribute("agcdRef")
|
||||
self.codeMR = st.getAttribute("codeMR")
|
||||
|
||||
Mask = st.getElementsByTagName("Mask")
|
||||
if Mask:
|
||||
self.mask = Mask.item(0).getAttribute("value")
|
||||
|
||||
Label = st.getElementsByTagName("Label")
|
||||
codetext = Label.item(0).getAttribute("codetext")
|
||||
|
@ -52,6 +52,7 @@ class ecu_parameter:
|
||||
name = ""
|
||||
agcdRef = ""
|
||||
codeMR = ""
|
||||
mask = ""
|
||||
label = ""
|
||||
unit = ""
|
||||
type = ""
|
||||
@ -72,6 +73,7 @@ class ecu_parameter:
|
||||
name = %s
|
||||
agcdRef = %s
|
||||
codeMR = %s
|
||||
mask = %s
|
||||
label = %s
|
||||
unit = %s
|
||||
type = %s
|
||||
@ -83,7 +85,7 @@ class ecu_parameter:
|
||||
helps = %s
|
||||
computation = %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.computation, str(self.mnemolist))
|
||||
return pyren_encode(out)
|
||||
@ -92,6 +94,10 @@ class ecu_parameter:
|
||||
self.name = pr.getAttribute("name")
|
||||
self.agcdRef = pr.getAttribute("agcdRef")
|
||||
self.codeMR = pr.getAttribute("codeMR")
|
||||
|
||||
Mask = pr.getElementsByTagName("Mask")
|
||||
if Mask:
|
||||
self.mask = Mask.item(0).getAttribute("value")
|
||||
|
||||
Label = pr.getElementsByTagName("Label")
|
||||
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():
|
||||
st.value = st.caracter[str(tmp_val).encode("utf-8")]
|
||||
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
|
||||
if mod_globals.os=='android':
|
||||
@ -36,6 +36,7 @@ class ecu_state:
|
||||
name = ""
|
||||
agcdRef = ""
|
||||
codeMR = ""
|
||||
mask = ""
|
||||
label = ""
|
||||
value = ""
|
||||
type = ""
|
||||
@ -57,6 +58,7 @@ class ecu_state:
|
||||
name = %s
|
||||
agcdRef = %s
|
||||
codeMR = %s
|
||||
mask = %s
|
||||
label = %s
|
||||
value = %s
|
||||
type = %s
|
||||
@ -65,7 +67,7 @@ class ecu_state:
|
||||
computation = %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)
|
||||
return pyren_encode(out)
|
||||
|
||||
@ -73,6 +75,10 @@ class ecu_state:
|
||||
self.name = st.getAttribute("name")
|
||||
self.agcdRef = st.getAttribute("agcdRef")
|
||||
self.codeMR = st.getAttribute("codeMR")
|
||||
|
||||
Mask = st.getElementsByTagName("Mask")
|
||||
if Mask:
|
||||
self.mask = Mask.item(0).getAttribute("value")
|
||||
|
||||
Label = st.getElementsByTagName("Label")
|
||||
codetext = Label.item(0).getAttribute("codetext")
|
||||
@ -148,4 +154,18 @@ class ecu_states:
|
||||
for st in States:
|
||||
state = ecu_state( st, opt, tran )
|
||||
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