|
|
|
@ -1,9 +1,9 @@ |
|
|
|
|
#!/usr/bin/env python3 |
|
|
|
|
import bisect |
|
|
|
|
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 |
|
|
|
@ -49,12 +49,12 @@ EVENT_NAME = {v: k for k, v in EventName.schema.enumerants.items()} |
|
|
|
|
|
|
|
|
|
class Events: |
|
|
|
|
def __init__(self): |
|
|
|
|
self.events: SortedList[int] = SortedList() |
|
|
|
|
self.static_events: SortedList[int] = SortedList() |
|
|
|
|
self.events: list[int] = [] |
|
|
|
|
self.static_events: list[int] = [] |
|
|
|
|
self.events_prev = dict.fromkeys(EVENTS.keys(), 0) |
|
|
|
|
|
|
|
|
|
@property |
|
|
|
|
def names(self) -> SortedList[int]: |
|
|
|
|
def names(self) -> list[int]: |
|
|
|
|
return self.events |
|
|
|
|
|
|
|
|
|
def __len__(self) -> int: |
|
|
|
@ -62,8 +62,8 @@ class Events: |
|
|
|
|
|
|
|
|
|
def add(self, event_name: int, static: bool=False) -> None: |
|
|
|
|
if static: |
|
|
|
|
self.static_events.add(event_name) |
|
|
|
|
self.events.add(event_name) |
|
|
|
|
bisect.insort(self.static_events, event_name) |
|
|
|
|
bisect.insort(self.events, 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()} |
|
|
|
@ -93,7 +93,7 @@ class Events: |
|
|
|
|
|
|
|
|
|
def add_from_msg(self, events): |
|
|
|
|
for e in events: |
|
|
|
|
self.events.add(e.name.raw) |
|
|
|
|
bisect.insort(self.events, e.name.raw) |
|
|
|
|
|
|
|
|
|
def to_msg(self): |
|
|
|
|
ret = [] |
|
|
|
|