|
|
|
@ -1,7 +1,7 @@ |
|
|
|
|
#!/usr/bin/env python3 |
|
|
|
|
from cereal import car |
|
|
|
|
from selfdrive.config import Conversions as CV |
|
|
|
|
from selfdrive.car.toyota.values import Ecu, ECU_FINGERPRINT, CAR, TSS2_CAR, FINGERPRINTS, CarControllerParams |
|
|
|
|
from selfdrive.car.toyota.values import Ecu, ECU_FINGERPRINT, CAR, TSS2_CAR, NO_DSU_CAR, FINGERPRINTS, CarControllerParams |
|
|
|
|
from selfdrive.car import STD_CARGO_KG, scale_rot_inertia, scale_tire_stiffness, is_ecu_disconnected, gen_empty_fingerprint |
|
|
|
|
from selfdrive.swaglog import cloudlog |
|
|
|
|
from selfdrive.car.interfaces import CarInterfaceBase |
|
|
|
@ -313,8 +313,9 @@ class CarInterface(CarInterfaceBase): |
|
|
|
|
ret.enableCamera = True |
|
|
|
|
# Detect smartDSU, which intercepts ACC_CMD from the DSU allowing openpilot to send it |
|
|
|
|
smartDsu = 0x2FF in fingerprint[0] |
|
|
|
|
# TODO: use FW query for the enableDsu flag |
|
|
|
|
# In TSS2 cars the camera does long control |
|
|
|
|
ret.enableDsu = is_ecu_disconnected(fingerprint[0], FINGERPRINTS, ECU_FINGERPRINT, candidate, Ecu.dsu) and candidate not in TSS2_CAR |
|
|
|
|
ret.enableDsu = is_ecu_disconnected(fingerprint[0], FINGERPRINTS, ECU_FINGERPRINT, candidate, Ecu.dsu) and candidate not in NO_DSU_CAR |
|
|
|
|
ret.enableGasInterceptor = 0x201 in fingerprint[0] |
|
|
|
|
# if the smartDSU is detected, openpilot can send ACC_CMD (and the smartDSU will block it from the DSU) or not (the DSU is "connected") |
|
|
|
|
ret.openpilotLongitudinalControl = ret.enableCamera and (smartDsu or ret.enableDsu or candidate in TSS2_CAR) |
|
|
|
|