From 6b1f28f574b8ddb0feb50a4fb3c38e85bc7cd1be Mon Sep 17 00:00:00 2001 From: rbiasini Date: Tue, 15 Oct 2019 12:05:33 -0700 Subject: [PATCH] fix more encoding and some bytes cleanup (#300) --- python/__init__.py | 2 +- python/isotp.py | 6 +++--- python/serial.py | 5 +---- tests/elm_wifi.py | 2 +- tests/gps_stability_test.py | 42 +++++++++++++++++-------------------- tests/location_listener.py | 2 +- tests/loopback_test.py | 2 +- tests/tucan_loopback.py | 2 +- 8 files changed, 28 insertions(+), 35 deletions(-) diff --git a/python/__init__.py b/python/__init__.py index cd2fe876..33e5a814 100644 --- a/python/__init__.py +++ b/python/__init__.py @@ -578,7 +578,7 @@ class Panda(object): ts = x[i:i+0xf] if DEBUG: print("kline send: " + binascii.hexlify(ts)) - self._handle.bulkWrite(2, chr(bus).encode()+ts) + self._handle.bulkWrite(2, bytes([bus]) + ts) echo = self.kline_ll_recv(len(ts), bus=bus) if echo != ts: print("**** ECHO ERROR %d ****" % i) diff --git a/python/isotp.py b/python/isotp.py index ca518a06..69cddc4e 100644 --- a/python/isotp.py +++ b/python/isotp.py @@ -71,16 +71,16 @@ def isotp_send(panda, x, addr, bus=0, recvaddr=None, subaddr=None): panda.can_send(addr, bytes([subaddr]) + msg(x)[0:7], bus) else: if subaddr: - ss = bytes([subaddr]) + bytes([0x10 + (len(x) >> 8)]) + bytes([len(x) & 0xFF]) + x[0:5] + ss = bytes([subaddr, 0x10 + (len(x) >> 8), len(x) & 0xFF]) + x[0:5] x = x[5:] else: - ss = bytes([0x10 + (len(x) >> 8)]) + bytes([len(x) & 0xFF]) + x[0:6] + ss = bytes([0x10 + (len(x) >> 8), len(x) & 0xFF]) + x[0:6] x = x[6:] idx = 1 sends = [] while len(x) > 0: if subaddr: - sends.append(((bytes([subaddr]) + bytes([0x20 + (idx & 0xF)]) + x[0:6]).ljust(8, b"\x00"))) + sends.append(((bytes([subaddr, 0x20 + (idx & 0xF)]) + x[0:6]).ljust(8, b"\x00"))) x = x[6:] else: sends.append(((bytes([0x20 + (idx & 0xF)]) + x[0:7]).ljust(8, b"\x00"))) diff --git a/python/serial.py b/python/serial.py index 72ab3de9..4d900cf2 100644 --- a/python/serial.py +++ b/python/serial.py @@ -19,10 +19,7 @@ class PandaSerial(object): def write(self, dat): #print "W: ", dat.encode("hex") #print ' pigeon_send("' + ''.join(map(lambda x: "\\x%02X" % ord(x), dat)) + '");' - if(isinstance(dat, bytes)): - return self.panda.serial_write(self.port, dat) - else: - return self.panda.serial_write(self.port, str.encode(dat)) + return self.panda.serial_write(self.port, dat) def close(self): pass diff --git a/tests/elm_wifi.py b/tests/elm_wifi.py index 6c4a334b..0d7c2683 100644 --- a/tests/elm_wifi.py +++ b/tests/elm_wifi.py @@ -322,7 +322,7 @@ def test_elm_panda_safety_mode_KWPFast(): def kline_send(p, x, bus=2): p.kline_drain(bus=bus) - p._handle.bulkWrite(2, chr(bus).encode()+x) + p._handle.bulkWrite(2, bytes([bus]) + x) return timed_recv_check(p, bus, x) def did_send(priority, toaddr, fromaddr, dat, bus=2, checkbyte=None): diff --git a/tests/gps_stability_test.py b/tests/gps_stability_test.py index c96aaf12..529970e0 100755 --- a/tests/gps_stability_test.py +++ b/tests/gps_stability_test.py @@ -77,7 +77,7 @@ def init_gps(panda): # Upping baud rate print("Upping GPS baud rate") - msg = add_nmea_checksum("$PUBX,41,1,0007,0003,%d,0" % GPS_BAUD)+"\r\n" + msg = str.encode(add_nmea_checksum("$PUBX,41,1,0007,0003,%d,0" % GPS_BAUD)+"\r\n") ser.write(msg) time.sleep(1) # needs a wait for it to actually send @@ -86,24 +86,24 @@ def init_gps(panda): # Sending all config messages boardd sends print("Sending config") - ser.write("\xB5\x62\x06\x00\x14\x00\x03\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00\x00\x1E\x7F") - ser.write("\xB5\x62\x06\x3E\x00\x00\x44\xD2") - ser.write("\xB5\x62\x06\x00\x14\x00\x00\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x35") - ser.write("\xB5\x62\x06\x00\x14\x00\x01\x00\x00\x00\xC0\x08\x00\x00\x00\x08\x07\x00\x01\x00\x01\x00\x00\x00\x00\x00\xF4\x80") - ser.write("\xB5\x62\x06\x00\x14\x00\x04\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1D\x85") - ser.write("\xB5\x62\x06\x00\x00\x00\x06\x18") - ser.write("\xB5\x62\x06\x00\x01\x00\x01\x08\x22") - ser.write("\xB5\x62\x06\x00\x01\x00\x02\x09\x23") - ser.write("\xB5\x62\x06\x00\x01\x00\x03\x0A\x24") - ser.write("\xB5\x62\x06\x08\x06\x00\x64\x00\x01\x00\x00\x00\x79\x10") - ser.write("\xB5\x62\x06\x24\x24\x00\x05\x00\x04\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5A\x63") - ser.write("\xB5\x62\x06\x1E\x14\x00\x00\x00\x00\x00\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3C\x37") - ser.write("\xB5\x62\x06\x24\x00\x00\x2A\x84") - ser.write("\xB5\x62\x06\x23\x00\x00\x29\x81") - ser.write("\xB5\x62\x06\x1E\x00\x00\x24\x72") - ser.write("\xB5\x62\x06\x01\x03\x00\x01\x07\x01\x13\x51") - ser.write("\xB5\x62\x06\x01\x03\x00\x02\x15\x01\x22\x70") - ser.write("\xB5\x62\x06\x01\x03\x00\x02\x13\x01\x20\x6C") + ser.write(b"\xB5\x62\x06\x00\x14\x00\x03\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00\x00\x1E\x7F") + ser.write(b"\xB5\x62\x06\x3E\x00\x00\x44\xD2") + ser.write(b"\xB5\x62\x06\x00\x14\x00\x00\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x35") + ser.write(b"\xB5\x62\x06\x00\x14\x00\x01\x00\x00\x00\xC0\x08\x00\x00\x00\x08\x07\x00\x01\x00\x01\x00\x00\x00\x00\x00\xF4\x80") + ser.write(b"\xB5\x62\x06\x00\x14\x00\x04\xFF\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1D\x85") + ser.write(b"\xB5\x62\x06\x00\x00\x00\x06\x18") + ser.write(b"\xB5\x62\x06\x00\x01\x00\x01\x08\x22") + ser.write(b"\xB5\x62\x06\x00\x01\x00\x02\x09\x23") + ser.write(b"\xB5\x62\x06\x00\x01\x00\x03\x0A\x24") + ser.write(b"\xB5\x62\x06\x08\x06\x00\x64\x00\x01\x00\x00\x00\x79\x10") + ser.write(b"\xB5\x62\x06\x24\x24\x00\x05\x00\x04\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5A\x63") + ser.write(b"\xB5\x62\x06\x1E\x14\x00\x00\x00\x00\x00\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3C\x37") + ser.write(b"\xB5\x62\x06\x24\x00\x00\x2A\x84") + ser.write(b"\xB5\x62\x06\x23\x00\x00\x29\x81") + ser.write(b"\xB5\x62\x06\x1E\x00\x00\x24\x72") + ser.write(b"\xB5\x62\x06\x01\x03\x00\x01\x07\x01\x13\x51") + ser.write(b"\xB5\x62\x06\x01\x03\x00\x02\x15\x01\x22\x70") + ser.write(b"\xB5\x62\x06\x01\x03\x00\x02\x13\x01\x20\x6C") print("Initialized GPS") @@ -163,7 +163,3 @@ if __name__ == "__main__": print("Total max failures: ", max_failures) received_messages = 0 received_bytes = 0 - - - - \ No newline at end of file diff --git a/tests/location_listener.py b/tests/location_listener.py index 62ade10f..1a784bab 100755 --- a/tests/location_listener.py +++ b/tests/location_listener.py @@ -30,7 +30,7 @@ if __name__ == "__main__": baudrate = 460800 print("upping baud rate") - msg = add_nmea_checksum("$PUBX,41,1,0007,0003,%d,0" % baudrate)+"\r\n" + msg = str.encode(add_nmea_checksum("$PUBX,41,1,0007,0003,%d,0" % baudrate)+"\r\n") print(msg) ser.write(msg) time.sleep(0.1) # needs a wait for it to actually send diff --git a/tests/loopback_test.py b/tests/loopback_test.py index 02c8d2cd..60009fae 100755 --- a/tests/loopback_test.py +++ b/tests/loopback_test.py @@ -55,7 +55,7 @@ def run_test_w_pandas(pandas, sleep_duration): # send the characters st = get_test_string() - st = b"\xaa"+chr(len(st)+3).encode()+st + st = bytes([0xaa, len(st) + 3]) + st h[ho[0]].kline_send(st, bus=bus, checksum=False) # check for receive diff --git a/tests/tucan_loopback.py b/tests/tucan_loopback.py index 1b5ed016..8b54f904 100755 --- a/tests/tucan_loopback.py +++ b/tests/tucan_loopback.py @@ -55,7 +55,7 @@ def run_test_w_pandas(pandas, sleep_duration): # send the characters st = get_test_string() - st = b"\xaa"+chr(len(st)+3).encode()+st + st = bytes([0xaa, len(st) + 3]) + st h[ho[0]].kline_send(st, bus=bus, checksum=False) # check for receive