mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-06-26 22:42:06 +08:00
fixed missing internal panda
This commit is contained in:
@@ -124,15 +124,15 @@ def main() -> None:
|
||||
no_internal_panda_count += 1
|
||||
continue
|
||||
|
||||
# flash and filter out Rivian longitudinal before stock logic
|
||||
panda_serials = flash_rivian_long(panda_serials)
|
||||
|
||||
cloudlog.info(f"{len(panda_serials)} panda(s) found, connecting - {panda_serials}")
|
||||
|
||||
# Flash the first panda
|
||||
panda_serial = panda_serials[0]
|
||||
panda = flash_panda(panda_serial)
|
||||
|
||||
# flash Rivian longitudinal upgrade panda
|
||||
flash_rivian_long(panda)
|
||||
|
||||
# Ensure internal panda is present if expected
|
||||
if HARDWARE.has_internal_panda() and not panda.is_internal():
|
||||
cloudlog.error("Internal panda is missing, trying again")
|
||||
|
||||
@@ -74,22 +74,30 @@ def _flash_panda(panda: Panda) -> None:
|
||||
panda.reconnect()
|
||||
|
||||
|
||||
def flash_rivian_long(panda: Panda) -> None:
|
||||
def flash_rivian_long(panda_serials: list[str]) -> list[str]:
|
||||
if not os.path.isfile(FW_PATH):
|
||||
cloudlog.error(f"Rivian longitudinal upgrade firmware not found at {FW_PATH}")
|
||||
return
|
||||
return panda_serials
|
||||
|
||||
if not _is_rivian():
|
||||
cloudlog.info("Not a Rivian, skipping longitudinal upgrade...")
|
||||
return
|
||||
return panda_serials
|
||||
|
||||
# only flash external black pandas (HW_TYPE_BLACK = 0x03)
|
||||
if panda.get_type() == b'\x03' and not panda.is_internal():
|
||||
try:
|
||||
_flash_panda(panda)
|
||||
except Exception:
|
||||
cloudlog.exception(f"Failed to flash F4 panda {panda.get_usb_serial()}")
|
||||
remaining_pandas = []
|
||||
for serial in panda_serials:
|
||||
panda = Panda(serial)
|
||||
# only flash external black pandas (HW_TYPE_BLACK = 0x03)
|
||||
if panda.get_type() == b'\x03' and not panda.is_internal():
|
||||
try:
|
||||
_flash_panda(panda)
|
||||
except Exception:
|
||||
cloudlog.exception(f"Failed to flash F4 panda {serial}")
|
||||
else:
|
||||
remaining_pandas.append(serial)
|
||||
panda.close()
|
||||
|
||||
return remaining_pandas
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
flash_rivian_long(Panda())
|
||||
flash_rivian_long(Panda.list())
|
||||
|
||||
Reference in New Issue
Block a user