mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-07-21 14:42:07 +08:00
2f33f13f8b
version: sunnypilot v0.9.7.0 release date: 2024-08-11T04:16:15 master commit: c0df551c5bbd296a1e272c1878535dec14b4e7ad
31 lines
830 B
Python
31 lines
830 B
Python
import os
|
|
from cereal import log as capnp_log, messaging
|
|
from cereal.services import SERVICE_LIST
|
|
|
|
from openpilot.tools.lib.logreader import LogIterable, RawLogIterable
|
|
|
|
|
|
ALL_SERVICES = list(SERVICE_LIST.keys())
|
|
|
|
def raw_live_logreader(services: list[str] = ALL_SERVICES, addr: str = '127.0.0.1') -> RawLogIterable:
|
|
if addr != "127.0.0.1":
|
|
os.environ["ZMQ"] = "1"
|
|
messaging.context = messaging.Context()
|
|
|
|
poller = messaging.Poller()
|
|
|
|
for m in services:
|
|
messaging.sub_sock(m, poller, addr=addr)
|
|
|
|
while True:
|
|
polld = poller.poll(100)
|
|
for sock in polld:
|
|
msg = sock.receive()
|
|
yield msg
|
|
|
|
|
|
def live_logreader(services: list[str] = ALL_SERVICES, addr: str = '127.0.0.1') -> LogIterable:
|
|
for m in raw_live_logreader(services, addr):
|
|
with capnp_log.Event.from_bytes(m) as evt:
|
|
yield evt
|