need to make sure this is right

pull/25489/head
Shane Smiskol 3 years ago
parent 085fcfec88
commit 6fa60d1cd4
  1. 2
      opendbc
  2. 35
      selfdrive/car/toyota/carstate.py

@ -1 +1 @@
Subproject commit 3f722780c3af70a1c244ea762d61edd8c002ed9c Subproject commit 1619c9a40f46d1976a1d4a55f7cf1e3367eea170

@ -94,12 +94,11 @@ class CarState(CarStateBase):
ret.cruiseState.available = cp.vl["PCM_CRUISE_2"]["MAIN_ON"] != 0 ret.cruiseState.available = cp.vl["PCM_CRUISE_2"]["MAIN_ON"] != 0
ret.cruiseState.speed = cp.vl["PCM_CRUISE_2"]["SET_SPEED"] * CV.KPH_TO_MS ret.cruiseState.speed = cp.vl["PCM_CRUISE_2"]["SET_SPEED"] * CV.KPH_TO_MS
if self.CP.carFingerprint in RADAR_ACC_CAR: cp_cruise = cp_cam if self.CP.carFingerprint in (TSS2_CAR - RADAR_ACC_CAR) else cp
self.acc_type = cp.vl["ACC_CONTROL"]["ACC_TYPE"]
ret.stockFcw = bool(cp.vl["ACC_HUD"]["FCW"]) if self.CP.carFingerprint in (TSS2_CAR | RADAR_ACC_CAR):
elif self.CP.carFingerprint in TSS2_CAR: self.acc_type = cp_cruise.vl["ACC_CONTROL"]["ACC_TYPE"]
self.acc_type = cp_cam.vl["ACC_CONTROL"]["ACC_TYPE"] ret.stockFcw = bool(cp_cruise.vl["ACC_HUD"]["FCW"])
ret.stockFcw = bool(cp_cam.vl["ACC_HUD"]["FCW"])
# some TSS2 cars have low speed lockout permanently set, so ignore on those cars # some TSS2 cars have low speed lockout permanently set, so ignore on those cars
# these cars are identified by an ACC_TYPE value of 2. # these cars are identified by an ACC_TYPE value of 2.
@ -120,8 +119,8 @@ class CarState(CarStateBase):
ret.cruiseState.nonAdaptive = cp.vl["PCM_CRUISE"]["CRUISE_STATE"] in (1, 2, 3, 4, 5, 6) ret.cruiseState.nonAdaptive = cp.vl["PCM_CRUISE"]["CRUISE_STATE"] in (1, 2, 3, 4, 5, 6)
ret.genericToggle = bool(cp.vl["LIGHT_STALK"]["AUTO_HIGH_BEAM"]) ret.genericToggle = bool(cp.vl["LIGHT_STALK"]["AUTO_HIGH_BEAM"])
ret.stockAeb = bool(cp_cam.vl["PRE_COLLISION"]["PRECOLLISION_ACTIVE"] and cp_cam.vl["PRE_COLLISION"]["FORCE"] < -1e-5)
ret.stockAeb = bool(cp_cruise.vl["PRE_COLLISION"]["PRECOLLISION_ACTIVE"] and cp_cruise.vl["PRE_COLLISION"]["FORCE"] < -1e-5)
ret.espDisabled = cp.vl["ESP_CONTROL"]["TC_DISABLED"] != 0 ret.espDisabled = cp.vl["ESP_CONTROL"]["TC_DISABLED"] != 0
if self.CP.enableBsm: if self.CP.enableBsm:
@ -219,27 +218,33 @@ class CarState(CarStateBase):
("ACC_HUD", 1), ("ACC_HUD", 1),
] ]
return CANParser(DBC[CP.carFingerprint]["pt"], signals, checks, 0) if CP.carFingerprint not in (TSS2_CAR - RADAR_ACC_CAR):
signals += [
@staticmethod
def get_cam_can_parser(CP):
signals = [
("FORCE", "PRE_COLLISION"), ("FORCE", "PRE_COLLISION"),
("PRECOLLISION_ACTIVE", "PRE_COLLISION"), ("PRECOLLISION_ACTIVE", "PRE_COLLISION"),
] ]
checks += [
("PRE_COLLISION", 33),
]
return CANParser(DBC[CP.carFingerprint]["pt"], signals, checks, 0)
# use steering message to check if panda is connected to frc @staticmethod
def get_cam_can_parser(CP):
signals = []
checks = [ checks = [
("STEERING_LKA", 42), ("STEERING_LKA", 42) # use steering message to check if panda is connected to frc
("PRE_COLLISION", 33), # TODO: figure out why freq is inconsistent
] ]
if CP.carFingerprint in (TSS2_CAR - RADAR_ACC_CAR): if CP.carFingerprint in (TSS2_CAR - RADAR_ACC_CAR):
signals += [ signals += [
("PRECOLLISION_ACTIVE", "PRE_COLLISION"),
("FORCE", "PRE_COLLISION"),
("ACC_TYPE", "ACC_CONTROL"), ("ACC_TYPE", "ACC_CONTROL"),
("FCW", "ACC_HUD"), ("FCW", "ACC_HUD"),
] ]
checks += [ checks += [
("PRE_COLLISION", 33),
("ACC_CONTROL", 33), ("ACC_CONTROL", 33),
("ACC_HUD", 1), ("ACC_HUD", 1),
] ]

Loading…
Cancel
Save