|
|
|
@ -1,14 +1,11 @@ |
|
|
|
|
#!/usr/bin/env python3 |
|
|
|
|
from opendbc.can.parser import CANParser |
|
|
|
|
from cereal import car |
|
|
|
|
from selfdrive.car.toyota.values import NO_DSU_CAR, DBC, TSS2_CAR |
|
|
|
|
from selfdrive.car.toyota.values import DBC, TSS2_CAR |
|
|
|
|
from selfdrive.car.interfaces import RadarInterfaceBase |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _create_radar_can_parser(car_fingerprint): |
|
|
|
|
if DBC[car_fingerprint]['radar'] is None: |
|
|
|
|
return None |
|
|
|
|
|
|
|
|
|
if car_fingerprint in TSS2_CAR: |
|
|
|
|
RADAR_A_MSGS = list(range(0x180, 0x190)) |
|
|
|
|
RADAR_B_MSGS = list(range(0x190, 0x1a0)) |
|
|
|
@ -42,16 +39,12 @@ class RadarInterface(RadarInterfaceBase): |
|
|
|
|
|
|
|
|
|
self.valid_cnt = {key: 0 for key in self.RADAR_A_MSGS} |
|
|
|
|
|
|
|
|
|
self.rcp = _create_radar_can_parser(CP.carFingerprint) |
|
|
|
|
self.rcp = None if CP.radarUnavailable else _create_radar_can_parser(CP.carFingerprint) |
|
|
|
|
self.trigger_msg = self.RADAR_B_MSGS[-1] |
|
|
|
|
self.updated_messages = set() |
|
|
|
|
|
|
|
|
|
# No radar dbc for cars without DSU which are not TSS 2.0 |
|
|
|
|
# TODO: make a adas dbc file for dsu-less models |
|
|
|
|
self.no_radar = CP.carFingerprint in NO_DSU_CAR and CP.carFingerprint not in TSS2_CAR |
|
|
|
|
|
|
|
|
|
def update(self, can_strings): |
|
|
|
|
if self.no_radar or self.rcp is None: |
|
|
|
|
if self.rcp is None: |
|
|
|
|
return super().update(None) |
|
|
|
|
|
|
|
|
|
vls = self.rcp.update_strings(can_strings) |
|
|
|
|