|
|
|
@ -11,6 +11,7 @@ class CarState(CarStateBase): |
|
|
|
|
def __init__(self, CP): |
|
|
|
|
super().__init__(CP) |
|
|
|
|
can_define = CANDefine(DBC[CP.carFingerprint]['pt']) |
|
|
|
|
self.seatbeltUnlatched = True |
|
|
|
|
|
|
|
|
|
self.shifter_values = can_define.dv["GEARBOX"]["GEAR_SHIFTER"] |
|
|
|
|
|
|
|
|
@ -44,20 +45,18 @@ class CarState(CarStateBase): |
|
|
|
|
|
|
|
|
|
ret.cruiseState.enabled = bool(cp_adas.vl["CRUISE_STATE"]["CRUISE_ENABLED"]) |
|
|
|
|
if self.CP.carFingerprint in [CAR.ROGUE, CAR.XTRAIL]: |
|
|
|
|
ret.seatbeltUnlatched = cp.vl["HUD"]["SEATBELT_DRIVER_LATCHED"] == 0 |
|
|
|
|
ret.cruiseState.available = bool(cp_cam.vl["PRO_PILOT"]["CRUISE_ON"]) |
|
|
|
|
elif self.CP.carFingerprint == CAR.LEAF: |
|
|
|
|
ret.seatbeltUnlatched = cp.vl["SEATBELT"]["SEATBELT_DRIVER_LATCHED"] == 0 |
|
|
|
|
ret.cruiseState.available = bool(cp.vl["CRUISE_THROTTLE"]["CRUISE_AVAILABLE"]) |
|
|
|
|
|
|
|
|
|
# TODO: Find mph/kph bit on XTRAIL until then, assume xtrail is kph. |
|
|
|
|
# Unable to change kph to mph on the xtrail, need a rogue to test it on |
|
|
|
|
speed = cp_adas.vl["PROPILOT_HUD"]["SET_SPEED"] |
|
|
|
|
if speed != 255: |
|
|
|
|
if self.CP.carFingerprint == CAR.XTRAIL: |
|
|
|
|
conversion = CV.KPH_TO_MS |
|
|
|
|
elif self.CP.carFingerprint == CAR.ROGUE: |
|
|
|
|
conversion = CV.MPH_TO_MS |
|
|
|
|
else: |
|
|
|
|
if self.CP.carFingerprint == CAR.LEAF: |
|
|
|
|
conversion = CV.MPH_TO_MS if cp.vl["HUD_SETTINGS"]["SPEED_MPH"] else CV.KPH_TO_MS |
|
|
|
|
else: |
|
|
|
|
conversion = CV.MPH_TO_MS if cp.vl["HUD"]["SPEED_MPH"] else CV.KPH_TO_MS |
|
|
|
|
speed -= 1 # Speed on HUD is always 1 lower than actually sent on can bus |
|
|
|
|
ret.cruiseState.speed = speed * conversion |
|
|
|
|
|
|
|
|
@ -74,8 +73,6 @@ class CarState(CarStateBase): |
|
|
|
|
cp.vl["DOORS_LIGHTS"]["DOOR_OPEN_FR"], |
|
|
|
|
cp.vl["DOORS_LIGHTS"]["DOOR_OPEN_FL"]]) |
|
|
|
|
|
|
|
|
|
ret.seatbeltUnlatched = cp.vl["SEATBELT"]["SEATBELT_DRIVER_LATCHED"] == 0 |
|
|
|
|
|
|
|
|
|
ret.espDisabled = bool(cp.vl["ESP"]["ESP_DISABLED"]) |
|
|
|
|
|
|
|
|
|
can_gear = int(cp.vl["GEARBOX"]["GEAR_SHIFTER"]) |
|
|
|
@ -115,8 +112,6 @@ class CarState(CarStateBase): |
|
|
|
|
("RIGHT_BLINKER", "LIGHTS", 0), |
|
|
|
|
("LEFT_BLINKER", "LIGHTS", 0), |
|
|
|
|
|
|
|
|
|
("SEATBELT_DRIVER_LATCHED", "SEATBELT", 0), |
|
|
|
|
|
|
|
|
|
("ESP_DISABLED", "ESP", 0), |
|
|
|
|
|
|
|
|
|
("GEAR_SHIFTER", "GEARBOX", 0), |
|
|
|
@ -137,6 +132,8 @@ class CarState(CarStateBase): |
|
|
|
|
("BRAKE_LIGHT", "DOORS_LIGHTS", 1), |
|
|
|
|
|
|
|
|
|
("GAS_PEDAL", "GAS_PEDAL", 0), |
|
|
|
|
("SEATBELT_DRIVER_LATCHED", "HUD", 0), |
|
|
|
|
("SPEED_MPH", "HUD", 0), |
|
|
|
|
|
|
|
|
|
("PROPILOT_BUTTON", "CRUISE_THROTTLE", 0), |
|
|
|
|
("CANCEL_BUTTON", "CRUISE_THROTTLE", 0), |
|
|
|
@ -165,6 +162,7 @@ class CarState(CarStateBase): |
|
|
|
|
("GAS_PEDAL", "CRUISE_THROTTLE", 0), |
|
|
|
|
("CRUISE_AVAILABLE", "CRUISE_THROTTLE", 0), |
|
|
|
|
("SPEED_MPH", "HUD_SETTINGS", 0), |
|
|
|
|
("SEATBELT_DRIVER_LATCHED", "SEATBELT", 0), |
|
|
|
|
|
|
|
|
|
# Copy other values, we use this to cancel |
|
|
|
|
("CANCEL_SEATBELT", "CANCEL_MSG", 0), |
|
|
|
|