remove CAN capnp conversion from car interfaces (#33218)

remove pandad from interfaces
old-commit-hash: ba7a60c5a2
pull/33302/head
Shane Smiskol 9 months ago committed by GitHub
parent dbccf5c922
commit 54d10c2aa3
  1. 1
      .importlinter
  2. 4
      selfdrive/car/card.py
  3. 6
      selfdrive/car/interfaces.py
  4. 8
      selfdrive/car/tests/test_models.py

@ -38,7 +38,6 @@ ignore_imports =
openpilot.selfdrive.car.ecu_addrs -> openpilot.common.params openpilot.selfdrive.car.ecu_addrs -> openpilot.common.params
# requires generic CAN send/receive functions # requires generic CAN send/receive functions
openpilot.selfdrive.car.ecu_addrs -> openpilot.selfdrive.pandad openpilot.selfdrive.car.ecu_addrs -> openpilot.selfdrive.pandad
openpilot.selfdrive.car.interfaces -> openpilot.selfdrive.pandad
openpilot.selfdrive.car.isotp_parallel_query -> openpilot.selfdrive.pandad openpilot.selfdrive.car.isotp_parallel_query -> openpilot.selfdrive.pandad
openpilot.selfdrive.car.tests.test_fw_fingerprint -> openpilot.selfdrive.pandad openpilot.selfdrive.car.tests.test_fw_fingerprint -> openpilot.selfdrive.pandad

@ -12,7 +12,7 @@ from openpilot.common.params import Params
from openpilot.common.realtime import config_realtime_process, Priority, Ratekeeper from openpilot.common.realtime import config_realtime_process, Priority, Ratekeeper
from openpilot.common.swaglog import cloudlog, ForwardingHandler from openpilot.common.swaglog import cloudlog, ForwardingHandler
from openpilot.selfdrive.pandad import can_list_to_can_capnp from openpilot.selfdrive.pandad import can_capnp_to_list, can_list_to_can_capnp
from openpilot.selfdrive.car import DT_CTRL, carlog from openpilot.selfdrive.car import DT_CTRL, carlog
from openpilot.selfdrive.car.car_helpers import get_car, get_one_can from openpilot.selfdrive.car.car_helpers import get_car, get_one_can
from openpilot.selfdrive.car.interfaces import CarInterfaceBase from openpilot.selfdrive.car.interfaces import CarInterfaceBase
@ -108,7 +108,7 @@ class Car:
# Update carState from CAN # Update carState from CAN
can_strs = messaging.drain_sock_raw(self.can_sock, wait_for_one=True) can_strs = messaging.drain_sock_raw(self.can_sock, wait_for_one=True)
CS = self.CI.update(self.CC_prev, can_strs) CS = self.CI.update(self.CC_prev, can_capnp_to_list(can_strs))
self.sm.update(0) self.sm.update(0)

@ -16,7 +16,6 @@ from openpilot.selfdrive.car.conversions import Conversions as CV
from openpilot.selfdrive.car.helpers import clip from openpilot.selfdrive.car.helpers import clip
from openpilot.selfdrive.car.values import PLATFORMS from openpilot.selfdrive.car.values import PLATFORMS
from openpilot.selfdrive.controls.lib.events import Events from openpilot.selfdrive.controls.lib.events import Events
from openpilot.selfdrive.pandad import can_capnp_to_list
ButtonType = car.CarState.ButtonEvent.Type ButtonType = car.CarState.ButtonEvent.Type
GearShifter = car.CarState.GearShifter GearShifter = car.CarState.GearShifter
@ -229,12 +228,11 @@ class CarInterfaceBase(ABC):
def _update(self, c: car.CarControl) -> car.CarState: def _update(self, c: car.CarControl) -> car.CarState:
pass pass
def update(self, c: car.CarControl, can_strings: list[bytes]) -> car.CarState: def update(self, c: car.CarControl, can_packets: list[int, list[int, bytes, int]]) -> car.CarState:
# parse can # parse can
can_list = can_capnp_to_list(can_strings)
for cp in self.can_parsers: for cp in self.can_parsers:
if cp is not None: if cp is not None:
cp.update_strings(can_list) cp.update_strings(can_packets)
# get CarState # get CarState
ret = self._update(c) ret = self._update(c)

@ -217,7 +217,7 @@ class TestCarModelBase(unittest.TestCase):
CC = car.CarControl.new_message().as_reader() CC = car.CarControl.new_message().as_reader()
for i, msg in enumerate(self.can_msgs): for i, msg in enumerate(self.can_msgs):
CS = self.CI.update(CC, (msg.as_builder().to_bytes(),)) CS = self.CI.update(CC, can_capnp_to_list((msg.as_builder().to_bytes(),)))
self.CI.apply(CC, msg.logMonoTime) self.CI.apply(CC, msg.logMonoTime)
if CS.canValid: if CS.canValid:
@ -358,7 +358,7 @@ class TestCarModelBase(unittest.TestCase):
can = messaging.new_message('can', 1) can = messaging.new_message('can', 1)
can.can = [log.CanData(address=address, dat=dat, src=bus)] can.can = [log.CanData(address=address, dat=dat, src=bus)]
CS = self.CI.update(CC, (can.to_bytes(),)) CS = self.CI.update(CC, can_capnp_to_list((can.to_bytes(),)))
if self.safety.get_gas_pressed_prev() != prev_panda_gas: if self.safety.get_gas_pressed_prev() != prev_panda_gas:
self.assertEqual(CS.gasPressed, self.safety.get_gas_pressed_prev()) self.assertEqual(CS.gasPressed, self.safety.get_gas_pressed_prev())
@ -397,7 +397,7 @@ class TestCarModelBase(unittest.TestCase):
# warm up pass, as initial states may be different # warm up pass, as initial states may be different
for can in self.can_msgs[:300]: for can in self.can_msgs[:300]:
self.CI.update(CC, (can.as_builder().to_bytes(), )) self.CI.update(CC, can_capnp_to_list((can.as_builder().to_bytes(), )))
for msg in filter(lambda m: m.src in range(64), can.can): for msg in filter(lambda m: m.src in range(64), can.can):
to_send = libpanda_py.make_CANPacket(msg.address, msg.src % 4, msg.dat) to_send = libpanda_py.make_CANPacket(msg.address, msg.src % 4, msg.dat)
self.safety.safety_rx_hook(to_send) self.safety.safety_rx_hook(to_send)
@ -407,7 +407,7 @@ class TestCarModelBase(unittest.TestCase):
checks = defaultdict(int) checks = defaultdict(int)
card = Car(CI=self.CI) card = Car(CI=self.CI)
for idx, can in enumerate(self.can_msgs): for idx, can in enumerate(self.can_msgs):
CS = self.CI.update(CC, (can.as_builder().to_bytes(), )) CS = self.CI.update(CC, can_capnp_to_list((can.as_builder().to_bytes(), )))
for msg in filter(lambda m: m.src in range(64), can.can): for msg in filter(lambda m: m.src in range(64), can.can):
to_send = libpanda_py.make_CANPacket(msg.address, msg.src % 4, msg.dat) to_send = libpanda_py.make_CANPacket(msg.address, msg.src % 4, msg.dat)
ret = self.safety.safety_rx_hook(to_send) ret = self.safety.safety_rx_hook(to_send)

Loading…
Cancel
Save