diff --git a/selfdrive/controls/lib/events.py b/selfdrive/controls/lib/events.py index 40796dd8ff..bb1a54f232 100755 --- a/selfdrive/controls/lib/events.py +++ b/selfdrive/controls/lib/events.py @@ -3,6 +3,7 @@ import math import os from enum import IntEnum from collections.abc import Callable +from sortedcontainers import SortedList from cereal import log, car import cereal.messaging as messaging @@ -48,12 +49,12 @@ EVENT_NAME = {v: k for k, v in EventName.schema.enumerants.items()} class Events: def __init__(self): - self.events: list[int] = [] - self.static_events: list[int] = [] + self.events: SortedList[int] = SortedList() + self.static_events: SortedList[int] = SortedList() self.events_prev = dict.fromkeys(EVENTS.keys(), 0) @property - def names(self) -> list[int]: + def names(self) -> SortedList[int]: return self.events def __len__(self) -> int: @@ -61,8 +62,8 @@ class Events: def add(self, event_name: int, static: bool=False) -> None: if static: - self.static_events.append(event_name) - self.events.append(event_name) + self.static_events.add(event_name) + self.events.add(event_name) def clear(self) -> None: self.events_prev = {k: (v + 1 if k in self.events else 0) for k, v in self.events_prev.items()} @@ -92,7 +93,7 @@ class Events: def add_from_msg(self, events): for e in events: - self.events.append(e.name.raw) + self.events.add(e.name.raw) def to_msg(self): ret = [] diff --git a/selfdrive/test/process_replay/ref_commit b/selfdrive/test/process_replay/ref_commit index a0d3cc6bb2..51e85b1350 100644 --- a/selfdrive/test/process_replay/ref_commit +++ b/selfdrive/test/process_replay/ref_commit @@ -1 +1 @@ -685a2bb9aacdd790e26d14aa49d3792c3ed65125 \ No newline at end of file +cb76a8e9844becc5024985c61bad4ec3518eebf5