diff --git a/panda/__init__.py b/panda/__init__.py index 74746fa..7f94dae 100644 --- a/panda/__init__.py +++ b/panda/__init__.py @@ -84,7 +84,7 @@ class Panda(object): SAFETY_HONDA = 1 SAFETY_ALLOUTPUT = 0x1337 - REQUEST_TYPE = usb1.TYPE_VENDOR | usb1.RECIPIENT_DEVICE + REQUEST_OUT = usb1.ENDPOINT_OUT | usb1.TYPE_VENDOR | usb1.RECIPIENT_DEVICE def __init__(self, serial=None, claim=True): self._serial = serial @@ -132,7 +132,7 @@ class Panda(object): # ******************* health ******************* def health(self): - dat = self._handle.controlRead(Panda.REQUEST_TYPE, 0xd2, 0, 0, 13) + dat = self._handle.controlRead(Panda.REQUEST_OUT, 0xd2, 0, 0, 13) a = struct.unpack("IIBBBBB", dat) return {"voltage": a[0], "current": a[1], "started": a[2], "controls_allowed": a[3], @@ -144,49 +144,49 @@ class Panda(object): def enter_bootloader(self): try: - self._handle.controlWrite(Panda.REQUEST_TYPE, 0xd1, 0, 0, b'') + self._handle.controlWrite(Panda.REQUEST_OUT, 0xd1, 0, 0, b'') except Exception as e: print(e) pass def get_serial(self): - dat = self._handle.controlRead(Panda.REQUEST_TYPE, 0xd0, 0, 0, 0x20) + dat = self._handle.controlRead(Panda.REQUEST_OUT, 0xd0, 0, 0, 0x20) hashsig, calc_hash = dat[0x1c:], hashlib.sha1(dat[0:0x1c]).digest()[0:4] if hashsig != calc_hash: raise PandaHashMismatchException(calc_hash, hashsig) return [dat[0:0x10], dat[0x10:0x10+10]] def get_secret(self): - return self._handle.controlRead(Panda.REQUEST_TYPE, 0xd0, 1, 0, 0x10) + return self._handle.controlRead(Panda.REQUEST_OUT, 0xd0, 1, 0, 0x10) # ******************* configuration ******************* def set_esp_power(self, on): - self._handle.controlWrite(Panda.REQUEST_TYPE, 0xd9, int(on), 0, b'') + self._handle.controlWrite(Panda.REQUEST_OUT, 0xd9, int(on), 0, b'') def set_safety_mode(self, mode=SAFETY_NOOUTPUT): - self._handle.controlWrite(Panda.REQUEST_TYPE, 0xdc, mode, 0, b'') + self._handle.controlWrite(Panda.REQUEST_OUT, 0xdc, mode, 0, b'') def set_can_forwarding(self, from_bus, to_bus): # TODO: This feature may not work correctly with saturated buses - self._handle.controlWrite(Panda.REQUEST_TYPE, 0xdd, from_bus, to_bus, b'') + self._handle.controlWrite(Panda.REQUEST_OUT, 0xdd, from_bus, to_bus, b'') def set_gmlan(self, on, bus=2): - self._handle.controlWrite(Panda.REQUEST_TYPE, 0xdb, int(on), bus, b'') + self._handle.controlWrite(Panda.REQUEST_OUT, 0xdb, int(on), bus, b'') def set_can_loopback(self, enable): # set can loopback mode for all buses - self._handle.controlWrite(Panda.REQUEST_TYPE, 0xe5, int(enable), 0, b'') + self._handle.controlWrite(Panda.REQUEST_OUT, 0xe5, int(enable), 0, b'') def set_uart_baud(self, uart, rate): - self._handle.controlWrite(Panda.REQUEST_TYPE, 0xe1, uart, rate, b'') + self._handle.controlWrite(Panda.REQUEST_OUT, 0xe1, uart, rate, b'') def set_uart_parity(self, uart, parity): # parity, 0=off, 1=even, 2=odd - self._handle.controlWrite(Panda.REQUEST_TYPE, 0xe2, uart, parity, b'') + self._handle.controlWrite(Panda.REQUEST_OUT, 0xe2, uart, parity, b'') def set_uart_callback(self, uart, install): - self._handle.controlWrite(Panda.REQUEST_TYPE, 0xe3, uart, int(install), b'') + self._handle.controlWrite(Panda.REQUEST_OUT, 0xe3, uart, int(install), b'') # ******************* can ******************* @@ -228,7 +228,7 @@ class Panda(object): # ******************* serial ******************* def serial_read(self, port_number): - return self._handle.controlRead(Panda.REQUEST_TYPE, 0xe0, port_number, 0, 0x40) + return self._handle.controlRead(Panda.REQUEST_OUT, 0xe0, port_number, 0, 0x40) def serial_write(self, port_number, ln): return self._handle.bulkWrite(2, chr(port_number) + ln) @@ -237,13 +237,13 @@ class Panda(object): # pulse low for wakeup def kline_wakeup(self): - self._handle.controlWrite(Panda.REQUEST_TYPE, 0xf0, 0, 0, b'') + self._handle.controlWrite(Panda.REQUEST_OUT, 0xf0, 0, 0, b'') def kline_drain(self, bus=2): # drain buffer bret = bytearray() while True: - ret = self._handle.controlRead(Panda.REQUEST_TYPE, 0xe0, bus, 0, 0x40) + ret = self._handle.controlRead(Panda.REQUEST_OUT, 0xe0, bus, 0, 0x40) if len(ret) == 0: break bret += ret @@ -252,7 +252,7 @@ class Panda(object): def kline_ll_recv(self, cnt, bus=2): echo = bytearray() while len(echo) != cnt: - echo += self._handle.controlRead(Panda.REQUEST_TYPE, 0xe0, bus, 0, cnt-len(echo)) + echo += self._handle.controlRead(Panda.REQUEST_OUT, 0xe0, bus, 0, cnt-len(echo)) return echo def kline_send(self, x, bus=2, checksum=True): @@ -279,3 +279,4 @@ class Panda(object): msg = self.kline_ll_recv(2, bus=bus) msg += self.kline_ll_recv(ord(msg[1])-2, bus=bus) return msg +