Toyota: set radarUnavailable (#28707)

toyota: set radarUnavailable
old-commit-hash: 84965525b8
beeps
Shane Smiskol 2 years ago committed by GitHub
parent a597401fc0
commit 1e0217ddf1
  1. 4
      selfdrive/car/toyota/interface.py
  2. 13
      selfdrive/car/toyota/radar_interface.py

@ -207,6 +207,10 @@ class CarInterface(CarInterfaceBase):
if 0x2FF in fingerprint[0]: if 0x2FF in fingerprint[0]:
ret.flags |= ToyotaFlags.SMART_DSU.value ret.flags |= ToyotaFlags.SMART_DSU.value
# No radar dbc for cars without DSU which are not TSS 2.0
# TODO: make an adas dbc file for dsu-less models
ret.radarUnavailable = DBC[candidate]['radar'] is None or candidate in (NO_DSU_CAR - TSS2_CAR)
# In TSS2 cars, the camera does long control # In TSS2 cars, the camera does long control
found_ecus = [fw.ecu for fw in car_fw] found_ecus = [fw.ecu for fw in car_fw]
ret.enableDsu = len(found_ecus) > 0 and Ecu.dsu not in found_ecus and candidate not in (NO_DSU_CAR | UNSUPPORTED_DSU_CAR) and not (ret.flags & ToyotaFlags.SMART_DSU) ret.enableDsu = len(found_ecus) > 0 and Ecu.dsu not in found_ecus and candidate not in (NO_DSU_CAR | UNSUPPORTED_DSU_CAR) and not (ret.flags & ToyotaFlags.SMART_DSU)

@ -1,14 +1,11 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from opendbc.can.parser import CANParser from opendbc.can.parser import CANParser
from cereal import car 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 from selfdrive.car.interfaces import RadarInterfaceBase
def _create_radar_can_parser(car_fingerprint): def _create_radar_can_parser(car_fingerprint):
if DBC[car_fingerprint]['radar'] is None:
return None
if car_fingerprint in TSS2_CAR: if car_fingerprint in TSS2_CAR:
RADAR_A_MSGS = list(range(0x180, 0x190)) RADAR_A_MSGS = list(range(0x180, 0x190))
RADAR_B_MSGS = list(range(0x190, 0x1a0)) 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.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.trigger_msg = self.RADAR_B_MSGS[-1]
self.updated_messages = set() 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): def update(self, can_strings):
if self.no_radar or self.rcp is None: if self.rcp is None:
return super().update(None) return super().update(None)
vls = self.rcp.update_strings(can_strings) vls = self.rcp.update_strings(can_strings)

Loading…
Cancel
Save