Skip to content

Commit 77ab6d2

Browse files
authored
Merge pull request #901 from josefe17/master
Fixed issue with sniffing commands encoding
2 parents e31bea3 + ae01a61 commit 77ab6d2

File tree

3 files changed

+18
-15
lines changed

3 files changed

+18
-15
lines changed

elm.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -581,8 +581,9 @@ def __init__(self, portName, rate, adapter_type="STD", maxspeed="No"):
581581
os.mkdir("./logs")
582582

583583
if len(options.log) > 0:
584-
self.lf = open("./logs/elm_" + options.log, "at")
585-
self.vf = open("./logs/ecu_" + options.log, "at")
584+
self.lf = open("./logs/elm_" + options.log + ".txt", "at", encoding="utf-8")
585+
self.vf = open("./logs/ecu_" + options.log + ".txt", "at", encoding="utf-8")
586+
self.vf.write("Timestamp;ECU_CAN_Address_HEX;Raw_Command_HEX;Raw_Response_HEX_or_STR;Error_message_if_happens\n")
586587

587588
self.lastCMDtime = 0
588589
self.ATCFC0 = options.opt_cfc0
@@ -624,7 +625,7 @@ def __init__(self, portName, rate, adapter_type="STD", maxspeed="No"):
624625

625626
def raise_odb_speed(self, baudrate):
626627
# Software speed switch
627-
res = self.port.write(("ST SBR " + str(baudrate) + "\r").encode('utf8'))
628+
res = self.port.write(("ST SBR " + str(baudrate) + "\r").encode('utf-8'))
628629

629630
# Command echo
630631
res = self.port.expect_carriage_return()
@@ -646,13 +647,13 @@ def raise_odb_speed(self, baudrate):
646647
def raise_elm_speed(self, baudrate):
647648
# Software speed switch to 115Kbps
648649
if baudrate == 57600:
649-
res = self.port.write("ATBRD 45\r".encode("utf8"))
650+
res = self.port.write("ATBRD 45\r".encode("utf-8"))
650651
elif baudrate == 115200:
651-
res = self.port.write("ATBRD 23\r".encode("utf8"))
652+
res = self.port.write("ATBRD 23\r".encode("utf-8"))
652653
elif baudrate == 230400:
653-
res = self.port.write("ATBRD 11\r".encode("utf8"))
654+
res = self.port.write("ATBRD 11\r".encode("utf-8"))
654655
elif baudrate == 500000:
655-
res = self.port.write("ATBRD 8\r".encode("utf8"))
656+
res = self.port.write("ATBRD 8\r".encode("utf-8"))
656657
else:
657658
return
658659

@@ -665,7 +666,7 @@ def raise_elm_speed(self, baudrate):
665666
self.port.change_rate(baudrate)
666667
version = self.port.expect_carriage_return()
667668
if "ELM327" in version:
668-
self.port.write('\r'.encode('utf8'))
669+
self.port.write('\r'.encode('utf-8'))
669670
res = self.port.expect('>')
670671
if "OK" in res:
671672
print("ELM full speed connection OK ")
@@ -681,7 +682,7 @@ def raise_elm_speed(self, baudrate):
681682
def __del__(self):
682683
try:
683684
print("ELM reset...")
684-
self.port.write("ATZ\r".encode("utf8"))
685+
self.port.write("ATZ\r".encode("utf-8"))
685686
except:
686687
pass
687688

@@ -735,9 +736,9 @@ def request(self, req, positive='', cache=True, serviceDelay="0"):
735736
if self.vf != 0:
736737
tmstr = datetime.now().strftime("%H:%M:%S.%f")[:-3]
737738
if self.currentaddress in dnat:
738-
self.vf.write(tmstr + ";" + dnat[self.currentaddress] + ";" + req + ";" + rsp + "\n")
739+
self.vf.write(tmstr + ";" + "0x" + dnat[self.currentaddress] + ";" + "0x" + req + ";" + "0x" + rsp.rstrip().replace(" ", ",0x") + ";" +"\n")
739740
else:
740-
print("Unknown address ", self.currentaddress, req, rsp)
741+
print("Unknown address: ", self.currentaddress, "0x" + req, "0x" + rsp)
741742
self.vf.flush()
742743

743744
return rsp
@@ -912,7 +913,7 @@ def send_can(self, command):
912913
if self.vf != 0:
913914
tmstr = datetime.now().strftime("%H:%M:%S.%f")[:-3]
914915
self.vf.write(
915-
tmstr + ";" + dnat[self.currentaddress] + ";" + command + ";" + result + ";" + errorstr + "\n")
916+
tmstr + ";" + dnat[self.currentaddress] + ";" + "0x" + command + ";" + result + ";" + errorstr + "\n")
916917
self.vf.flush()
917918

918919
# populate L1 cache
@@ -1193,7 +1194,7 @@ def monitor_can_bus(self, callback):
11931194
if options.simulation_mode:
11941195
pass
11951196
else:
1196-
self.port.write("AT MA\r")
1197+
self.port.write("AT MA\r".encode('utf-8'))
11971198
stream = ""
11981199
while not self.monitorstop:
11991200
byte = self.port.read()
@@ -1211,7 +1212,7 @@ def monitor_can_bus(self, callback):
12111212
if byte:
12121213
stream += byte
12131214

1214-
self.port.write("AT\r")
1215+
self.port.write("AT\r".encode('utf-8'))
12151216
self.port.expect('>')
12161217

12171218
def init_can(self):

main.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ def scanselvehicle(self):
163163

164164
def init(self):
165165
self.list.clear()
166+
self.list.setSortingEnabled(True)
166167
self.list.setColumnCount(8)
167168
self.list.model().setHeaderData(0, core.Qt.Horizontal, _('ECU name'))
168169
self.list.model().setHeaderData(1, core.Qt.Horizontal, _('ID'))
@@ -570,6 +571,7 @@ def __init__(self, parent=None):
570571

571572
self.setConnected(True)
572573
self.tabbedview.setCurrentIndex(1)
574+
self.showMaximized()
573575

574576
def setIcon(self):
575577
appIcon = gui.QIcon("icons/obd.png")

parameters.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -793,7 +793,7 @@ def initXML(self):
793793
print(_("XML file not found : ") + self.ddtfile)
794794
return
795795

796-
self.ecurequestsparser = ecu.Ecu_file(xdoc)
796+
self.ecurequestsparser = ecu.Ecu_file(self.ddtfile, True)
797797

798798
target = self.getChildNodesByName(xdoc, u"Target")[0]
799799
if not target:

0 commit comments

Comments
 (0)