Bugfixes:

* no negative or non-integer offsets where possible
* colons were missing in function Sym2Code
This commit is contained in:
Christian Sueltrop 2014-02-21 16:02:26 +01:00
parent 8766ff9d96
commit c4c166ce74

View file

@ -26,6 +26,7 @@ def readSym(symfile):
for line in sym:
line = line.split("//")[0].strip()
#print line
if line == "":
if ignore:
@ -69,11 +70,11 @@ def readSym(symfile):
enums_bool = True
ignore = False
elif modus == "SEND":
ignore = True
ignore = False
elif modus == "RECEIVE":
ignore = False
elif modus == "SENDRECEIVE":
ignore = True
ignore = False
elif modus == "VIRTUALVARS":
ignore = True
@ -129,7 +130,7 @@ def readSym(symfile):
elif a[0] == "/f":
signal["factor"] = float(a[1])
elif a[0] == "/o":
signal["offset"] = int(a[1])
signal["offset"] = float(a[1])
elif a[0] == "/d":
signal["data"] = float(a[1])
elif a[0] == "/e":
@ -148,10 +149,10 @@ def Sym2Code(symfile, adapter):
if i == "ENUMS":
print { i : mes[i] }
continue
print "%s.addMessage(CanMessage(%s, %s, %s, %s)" % (adapter, hex(mes[i]["ID"]), mes[i]["DLC"], mes[i]["CycleTime"], i)
print "%s.addMessage(CanMessage(%s, %s, %s, \'%s\')" % (adapter, hex(mes[i]["ID"]), mes[i]["DLC"], mes[i]["CycleTime"], i)
for sig in mes[i]:
if isinstance(mes[i].get(sig), dict):
print "%s.Messages[%s].addSignal(CanSignal(%s, %s, %s, %s, %s, %s)" % (adapter, i, mes[i][sig]["begin"], mes[i][sig]["length"], mes[i][sig]["offset"], mes[i][sig]["factor"], mes[i][sig]["data"], sig)
print "%s.Messages[\'%s\'].addSignal(CanSignal(%s, %s, %s, %s, %s, \'%s\')" % (adapter, i, mes[i][sig]["begin"], mes[i][sig]["length"], mes[i][sig]["offset"], mes[i][sig]["factor"], mes[i][sig]["data"], sig)
if "enum" in mes[i][sig].keys():
pprint({ "enum" : mes[i][sig]["enum"]})
print ""
@ -197,4 +198,4 @@ def _get_easy_Dict_(mes):
Sym2Code("H:\umzug desktop\Symboldatei_multiport.sym", "pcan")
Sym2Code("Test.sym", "pcan")