@ -181,18 +181,14 @@ class CarState(CarStateBase):
self . prev_cruise_setting = self . cruise_setting
self . prev_cruise_setting = self . cruise_setting
# ******************* parse out can *******************
# ******************* parse out can *******************
# TODO: find wheels moving bit in dbc
# STANDSTILL->WHEELS_MOVING bit can be noisy around zero, so use XMISSION_SPEED
# panda checks if the signal is non-zero
ret . standstill = cp . vl [ " ENGINE_DATA " ] [ " XMISSION_SPEED " ] < 1e-5
if self . CP . carFingerprint in ( CAR . ACCORD , CAR . ACCORDH , CAR . CIVIC_BOSCH , CAR . CIVIC_BOSCH_DIESEL , CAR . CRV_HYBRID , CAR . INSIGHT , CAR . ACURA_RDX_3G , CAR . HONDA_E ) :
if self . CP . carFingerprint in ( CAR . ACCORD , CAR . ACCORDH , CAR . CIVIC_BOSCH , CAR . CIVIC_BOSCH_DIESEL , CAR . CRV_HYBRID , CAR . INSIGHT , CAR . ACURA_RDX_3G , CAR . HONDA_E ) :
ret . standstill = cp . vl [ " ENGINE_DATA " ] [ " XMISSION_SPEED " ] < 0.1
ret . doorOpen = bool ( cp . vl [ " SCM_FEEDBACK " ] [ " DRIVERS_DOOR_OPEN " ] )
ret . doorOpen = bool ( cp . vl [ " SCM_FEEDBACK " ] [ " DRIVERS_DOOR_OPEN " ] )
elif self . CP . carFingerprint == CAR . ODYSSEY_CHN :
elif self . CP . carFingerprint in ( CAR . ODYSSEY_CHN , CAR . FREED , CAR . HRV ) :
ret . standstill = cp . vl [ " ENGINE_DATA " ] [ " XMISSION_SPEED " ] < 0.1
ret . doorOpen = bool ( cp . vl [ " SCM_BUTTONS " ] [ " DRIVERS_DOOR_OPEN " ] )
elif self . CP . carFingerprint in ( CAR . FREED , CAR . HRV ) :
ret . standstill = not cp . vl [ " STANDSTILL " ] [ " WHEELS_MOVING " ]
ret . doorOpen = bool ( cp . vl [ " SCM_BUTTONS " ] [ " DRIVERS_DOOR_OPEN " ] )
ret . doorOpen = bool ( cp . vl [ " SCM_BUTTONS " ] [ " DRIVERS_DOOR_OPEN " ] )
else :
else :
ret . standstill = not cp . vl [ " STANDSTILL " ] [ " WHEELS_MOVING " ]
ret . doorOpen = any ( [ cp . vl [ " DOORS_STATUS " ] [ " DOOR_OPEN_FL " ] , cp . vl [ " DOORS_STATUS " ] [ " DOOR_OPEN_FR " ] ,
ret . doorOpen = any ( [ cp . vl [ " DOORS_STATUS " ] [ " DOOR_OPEN_FL " ] , cp . vl [ " DOORS_STATUS " ] [ " DOOR_OPEN_FR " ] ,
cp . vl [ " DOORS_STATUS " ] [ " DOOR_OPEN_RL " ] , cp . vl [ " DOORS_STATUS " ] [ " DOOR_OPEN_RR " ] ] )
cp . vl [ " DOORS_STATUS " ] [ " DOOR_OPEN_RL " ] , cp . vl [ " DOORS_STATUS " ] [ " DOOR_OPEN_RR " ] ] )
ret . seatbeltUnlatched = bool ( cp . vl [ " SEATBELT_STATUS " ] [ " SEATBELT_DRIVER_LAMP " ] or not cp . vl [ " SEATBELT_STATUS " ] [ " SEATBELT_DRIVER_LATCHED " ] )
ret . seatbeltUnlatched = bool ( cp . vl [ " SEATBELT_STATUS " ] [ " SEATBELT_DRIVER_LAMP " ] or not cp . vl [ " SEATBELT_STATUS " ] [ " SEATBELT_DRIVER_LATCHED " ] )