mirror of
https://github.com/infiniteCable2/panda.git
synced 2026-02-18 09:13:52 +08:00
@@ -181,6 +181,8 @@ class Panda:
|
||||
F4_DEVICES = (HW_TYPE_WHITE_PANDA, HW_TYPE_GREY_PANDA, HW_TYPE_BLACK_PANDA, HW_TYPE_UNO, HW_TYPE_DOS)
|
||||
H7_DEVICES = (HW_TYPE_RED_PANDA, )
|
||||
|
||||
HAS_OBD = (HW_TYPE_BLACK_PANDA, HW_TYPE_UNO, HW_TYPE_DOS, HW_TYPE_RED_PANDA)
|
||||
|
||||
CLOCK_SOURCE_MODE_DISABLED = 0
|
||||
CLOCK_SOURCE_MODE_FREE_RUNNING = 1
|
||||
|
||||
@@ -498,27 +500,6 @@ class Panda:
|
||||
else:
|
||||
return (0, 0)
|
||||
|
||||
def is_white(self):
|
||||
return self.get_type() == Panda.HW_TYPE_WHITE_PANDA
|
||||
|
||||
def is_grey(self):
|
||||
return self.get_type() == Panda.HW_TYPE_GREY_PANDA
|
||||
|
||||
def is_black(self):
|
||||
return self.get_type() == Panda.HW_TYPE_BLACK_PANDA
|
||||
|
||||
def is_pedal(self):
|
||||
return self.get_type() == Panda.HW_TYPE_PEDAL
|
||||
|
||||
def is_uno(self):
|
||||
return self.get_type() == Panda.HW_TYPE_UNO
|
||||
|
||||
def is_dos(self):
|
||||
return self.get_type() == Panda.HW_TYPE_DOS
|
||||
|
||||
def is_red(self):
|
||||
return self.get_type() == Panda.HW_TYPE_RED_PANDA
|
||||
|
||||
def get_mcu_type(self):
|
||||
hw_type = self.get_type()
|
||||
if hw_type in Panda.F2_DEVICES:
|
||||
@@ -530,13 +511,7 @@ class Panda:
|
||||
return None
|
||||
|
||||
def has_obd(self):
|
||||
return (self.is_uno() or self.is_dos() or self.is_black() or self.is_red())
|
||||
|
||||
def has_canfd(self) -> bool:
|
||||
return self.get_type() in Panda.H7_DEVICES
|
||||
|
||||
def is_internal(self) -> bool:
|
||||
return self.get_type() in (Panda.HW_TYPE_UNO, Panda.HW_TYPE_DOS)
|
||||
return self.get_type() in Panda.HAS_OBD
|
||||
|
||||
def get_serial(self):
|
||||
dat = self._handle.controlRead(Panda.REQUEST_IN, 0xd0, 0, 0, 0x20)
|
||||
|
||||
@@ -11,19 +11,19 @@ WHITE_GMLAN_BUS = 3
|
||||
OTHER_GMLAN_BUS = 1
|
||||
|
||||
def set_gmlan(p):
|
||||
if p.is_white():
|
||||
if p.get_type() == Panda.HW_TYPE_WHITE_PANDA:
|
||||
p.set_gmlan(2)
|
||||
else:
|
||||
p.set_obd(True)
|
||||
|
||||
def set_speed_kbps(p, speed):
|
||||
if p.is_white():
|
||||
if p.get_type() == Panda.HW_TYPE_WHITE_PANDA:
|
||||
p.set_can_speed_kbps(WHITE_GMLAN_BUS, speed)
|
||||
else:
|
||||
p.set_can_speed_kbps(OTHER_GMLAN_BUS, speed)
|
||||
|
||||
def send(p, id_, msg):
|
||||
if p.is_white():
|
||||
if p.get_type() == Panda.HW_TYPE_WHITE_PANDA:
|
||||
p.can_send(id_, msg, WHITE_GMLAN_BUS)
|
||||
else:
|
||||
p.can_send(id_, msg, OTHER_GMLAN_BUS)
|
||||
|
||||
@@ -30,10 +30,10 @@ def connect():
|
||||
gps_panda = None
|
||||
|
||||
# find out which one is white (for spamming the CAN buses)
|
||||
if pandas[0].is_white() and not pandas[1].is_white():
|
||||
if pandas[0].get_type() == Panda.HW_TYPE_WHITE_PANDA and pandas[1].get_type() != Panda.HW_TYPE_WHITE_PANDA:
|
||||
white_panda = pandas[0]
|
||||
gps_panda = pandas[1]
|
||||
elif not pandas[0].is_white() and pandas[1].is_white():
|
||||
elif pandas[0].get_type() != Panda.HW_TYPE_WHITE_PANDA and pandas[1].get_type() == Panda.HW_TYPE_WHITE_PANDA:
|
||||
white_panda = pandas[1]
|
||||
gps_panda = pandas[0]
|
||||
else:
|
||||
|
||||
@@ -48,7 +48,7 @@ class TestPedal(unittest.TestCase):
|
||||
self._flash_over_can(PEDAL_BUS, f"{BASEDIR}board/obj/pedal_usb.bin.signed")
|
||||
time.sleep(2)
|
||||
p = Panda(PEDAL_SERIAL)
|
||||
self.assertTrue(p.is_pedal())
|
||||
self.assertTrue(p.get_type() == Panda.HW_TYPE_PEDAL)
|
||||
p.close()
|
||||
self.assertTrue(self._listen_can_frames() > 40)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user