mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-06-21 22:12:05 +08:00
Events: use sorted container (#32395)
* use SortedList * Update ref_commit
This commit is contained in:
@@ -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 = []
|
||||
|
||||
@@ -1 +1 @@
|
||||
685a2bb9aacdd790e26d14aa49d3792c3ed65125
|
||||
cb76a8e9844becc5024985c61bad4ec3518eebf5
|
||||
|
||||
Reference in New Issue
Block a user