diff --git a/common/params.cc b/common/params.cc index 6722dbb3eb..9212a6edfc 100644 --- a/common/params.cc +++ b/common/params.cc @@ -181,7 +181,6 @@ std::unordered_map keys = { {"Offroad_UpdateFailed", CLEAR_ON_MANAGER_START}, {"OpenpilotEnabledToggle", PERSISTENT}, {"PandaHeartbeatLost", CLEAR_ON_MANAGER_START | CLEAR_ON_OFFROAD_TRANSITION}, - {"PandaLogState", PERSISTENT}, {"PandaSignatures", CLEAR_ON_MANAGER_START}, {"Passive", PERSISTENT}, {"PrimeType", PERSISTENT}, diff --git a/panda b/panda index 62db60595b..6bf6ba773e 160000 --- a/panda +++ b/panda @@ -1 +1 @@ -Subproject commit 62db60595bb5129cc2f295fdc42f2cda473777fd +Subproject commit 6bf6ba773ea4174c702ac9c4af4e8a6fd3cef655 diff --git a/selfdrive/boardd/pandad.py b/selfdrive/boardd/pandad.py index 7f84e44da6..433de70d43 100755 --- a/selfdrive/boardd/pandad.py +++ b/selfdrive/boardd/pandad.py @@ -3,7 +3,6 @@ import os import usb1 import time -import json import subprocess from typing import List, NoReturn from functools import cmp_to_key @@ -24,51 +23,6 @@ def get_expected_signature(panda: Panda) -> bytes: cloudlog.exception("Error computing expected signature") return b"" -def read_panda_logs(panda: Panda) -> None: - """ - Forward panda logs to the cloud - """ - - params = Params() - serial = panda.get_usb_serial() - - log_state = {} - try: - ls = params.get("PandaLogState") - if ls is not None: - l = json.loads(ls) - for k, v in l.items(): - if isinstance(k, str) and isinstance(v, int): - log_state[k] = v - except (TypeError, json.JSONDecodeError): - cloudlog.exception("failed to parse PandaLogState") - - try: - if serial in log_state: - logs = panda.get_logs(last_id=log_state[serial]) - else: - logs = panda.get_logs(get_all=True) - - # truncate logs to 100 entries if needed - MAX_LOGS = 100 - if len(logs) > MAX_LOGS: - cloudlog.warning(f"Panda {serial} has {len(logs)} logs, truncating to {MAX_LOGS}") - logs = logs[-MAX_LOGS:] - - # update log state - if len(logs) > 0: - log_state[serial] = logs[-1]["id"] - - for log in logs: - if log['timestamp'] is not None: - log['timestamp'] = log['timestamp'].isoformat() - cloudlog.event("panda_log", **log, serial=serial) - - params.put("PandaLogState", json.dumps(log_state)) - except Exception: - cloudlog.exception(f"Error getting logs for panda {serial}") - - def flash_panda(panda_serial: str) -> Panda: try: panda = Panda(panda_serial) @@ -191,8 +145,6 @@ def main() -> NoReturn: params.put_bool("PandaHeartbeatLost", True) cloudlog.event("heartbeat lost", deviceState=health, serial=panda.get_usb_serial()) - read_panda_logs(panda) - if first_run: if panda.is_internal(): # update time from RTC diff --git a/selfdrive/boardd/tests/test_pandad.py b/selfdrive/boardd/tests/test_pandad.py index 30a4a9b868..68747e1008 100755 --- a/selfdrive/boardd/tests/test_pandad.py +++ b/selfdrive/boardd/tests/test_pandad.py @@ -6,7 +6,6 @@ import unittest import cereal.messaging as messaging from cereal import log from openpilot.common.gpio import gpio_set, gpio_init -from openpilot.common.params import Params from panda import Panda, PandaDFU, PandaProtocolMismatch from openpilot.selfdrive.test.helpers import phone_only from openpilot.selfdrive.manager.process_config import managed_processes @@ -18,10 +17,6 @@ HERE = os.path.dirname(os.path.realpath(__file__)) class TestPandad(unittest.TestCase): - def setUp(self): - self.params = Params() - self.start_log_state = self.params.get("PandaLogState") - def tearDown(self): managed_processes['pandad'].stop() @@ -39,10 +34,6 @@ class TestPandad(unittest.TestCase): if sm['peripheralState'].pandaType == log.PandaState.PandaType.unknown: raise Exception("boardd failed to start") - # simple check that we did something with the panda logs - cur_log_state = self.params.get("PandaLogState") - assert cur_log_state != self.start_log_state - def _go_to_dfu(self): HARDWARE.recover_internal_panda() assert Panda.wait_for_dfu(None, 10)