From 07e4084440b231c69b9b534cd063ada524c6d40a Mon Sep 17 00:00:00 2001 From: dekerr Date: Wed, 27 Jun 2018 02:12:44 -0400 Subject: [PATCH 01/12] carstate restructuring --- selfdrive/car/honda/carstate.py | 118 +++++++++++++++----------------- 1 file changed, 56 insertions(+), 62 deletions(-) diff --git a/selfdrive/car/honda/carstate.py b/selfdrive/car/honda/carstate.py index 88cc6d7b328873..f3dccfb6af46a5 100644 --- a/selfdrive/car/honda/carstate.py +++ b/selfdrive/car/honda/carstate.py @@ -104,20 +104,23 @@ def get_can_signals(CP): ("VSA_STATUS", 50), ("SCM_BUTTONS", 25), ] + # Civic is only bosch to use the same brake message as other hondas. + if CP.radarOffCan and (CP.carFingerprint != CAR.CIVIC_HATCH): + signals += [("BRAKE_PRESSED", "BRAKE_MODULE", 0)] + checks += [("BRAKE_MODULE", 50)] + + # Bosch signals if CP.radarOffCan: - # Civic is only bosch to use the same brake message as other hondas. - if CP.carFingerprint != CAR.CIVIC_HATCH: - signals += [("BRAKE_PRESSED", "BRAKE_MODULE", 0)] - checks += [("BRAKE_MODULE", 50)] signals += [("CAR_GAS", "GAS_PEDAL_2", 0), ("MAIN_ON", "SCM_FEEDBACK", 0), ("EPB_STATE", "EPB_STATUS", 0), ("BRAKE_HOLD_ACTIVE", "VSA_STATUS", 0), ("CRUISE_SPEED", "ACC_HUD", 0)] checks += [("GAS_PEDAL_2", 100)] + + # Nidec signals. else: - # Nidec signals. signals += [("CRUISE_SPEED_PCM", "CRUISE", 0), ("CRUISE_SPEED_OFFSET", "CRUISE_PARAMS", 0)] checks += [("CRUISE_PARAMS", 50)] @@ -130,28 +133,23 @@ def get_can_signals(CP): ("DOOR_OPEN_RL", "DOORS_STATUS", 1), ("DOOR_OPEN_RR", "DOORS_STATUS", 1)] checks += [("DOORS_STATUS", 3)] - if CP.carFingerprint == CAR.CIVIC: - signals += [("CAR_GAS", "GAS_PEDAL_2", 0), - ("MAIN_ON", "SCM_FEEDBACK", 0), - ("EPB_STATE", "EPB_STATUS", 0), - ("BRAKE_HOLD_ACTIVE", "VSA_STATUS", 0)] - elif CP.carFingerprint == CAR.ACURA_ILX: - signals += [("CAR_GAS", "GAS_PEDAL_2", 0), - ("MAIN_ON", "SCM_BUTTONS", 0)] - elif CP.carFingerprint == CAR.CRV: - signals += [("MAIN_ON", "SCM_BUTTONS", 0)] - elif CP.carFingerprint == CAR.ACURA_RDX: + + # use same signal from bosch.dbc + if CP.carFingerprint in (CAR.ACURA_ILX, CAR.PILOT, CAR.CIVIC): + signals += [("CAR_GAS", "GAS_PEDAL_2", 0)] + + # use same signal from bosch.dbc + if CP.carFingerprint in (CAR.ACURA_RDX, CAR.ACURA_ILX, CAR.PILOT, CAR.CRV, CAR.RIDGELINE): signals += [("MAIN_ON", "SCM_BUTTONS", 0)] - elif CP.carFingerprint == CAR.ODYSSEY: + + # use same signals from bosch.dbc + if CP.carFingerprint in (CAR.ODYSSEY, CAR.CIVIC): signals += [("MAIN_ON", "SCM_FEEDBACK", 0), ("EPB_STATE", "EPB_STATUS", 0), ("BRAKE_HOLD_ACTIVE", "VSA_STATUS", 0)] + + if CP.carFingerprint == CAR.ODYSSEY: checks += [("EPB_STATUS", 50)] - elif CP.carFingerprint == CAR.PILOT: - signals += [("MAIN_ON", "SCM_BUTTONS", 0), - ("CAR_GAS", "GAS_PEDAL_2", 0)] - elif CP.carFingerprint == CAR.RIDGELINE: - signals += [("MAIN_ON", "SCM_BUTTONS", 0)] # add gas interceptor reading if we are using it if CP.enableGasInterceptor: @@ -212,14 +210,15 @@ def update(self, cp): self.prev_right_blinker_on = self.right_blinker_on # ******************* parse out can ******************* - if self.CP.carFingerprint in (CAR.ACCORD): - self.door_all_closed = not cp.vl["SCM_FEEDBACK"]['DRIVERS_DOOR_OPEN'] - else: - self.door_all_closed = not 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']]) + self.door_all_closed = not any([cp.vl.get("DOORS_STATUS",{"empty" : None}).get('DOOR_OPEN_FL'), + cp.vl.get("DOORS_STATUS",{"empty" : None}).get('DOOR_OPEN_FR'), + cp.vl.get("DOORS_STATUS",{"empty" : None}).get('DOOR_OPEN_RL'), + cp.vl.get("DOORS_STATUS",{"empty" : None}).get('DOOR_OPEN_FR'), + cp.vl.get("SCM_FEEDBACK",{"empty" : None}).get('DRIVERS_DOOR_OPEN')]) #(CAR.ACCORD) + self.seatbelt = not cp.vl["SEATBELT_STATUS"]['SEATBELT_DRIVER_LAMP'] and cp.vl["SEATBELT_STATUS"]['SEATBELT_DRIVER_LATCHED'] - # 2 = temporary 3= TBD 4 = temporary, hit a bump 5 (permanent) 6 = temporary 7 (permanent) + # 2 = temporary; 3 = TBD; 4 = temporary, hit a bump; 5 = (permanent); 6 = temporary; 7 = (permanent) # TODO: Use values from DBC to parse this field self.steer_error = cp.vl["STEER_STATUS"]['STEER_STATUS'] not in [0, 2, 3, 4, 6] self.steer_not_allowed = cp.vl["STEER_STATUS"]['STEER_STATUS'] != 0 @@ -232,7 +231,7 @@ def update(self, cp): self.v_wheel_fr = cp.vl["WHEEL_SPEEDS"]['WHEEL_SPEED_FR'] * CV.KPH_TO_MS self.v_wheel_rl = cp.vl["WHEEL_SPEEDS"]['WHEEL_SPEED_RL'] * CV.KPH_TO_MS self.v_wheel_rr = cp.vl["WHEEL_SPEEDS"]['WHEEL_SPEED_RR'] * CV.KPH_TO_MS - self.v_wheel = (self.v_wheel_fl + self.v_wheel_fr + self.v_wheel_rl + self.v_wheel_rr) / 4. + self.v_wheel = float(np.mean([self.v_wheel_fl, self.v_wheel_fr, self.v_wheel_rl, self.v_wheel_rr])) # blend in transmission speed at low speed, since it has more low speed accuracy self.v_weight = interp(self.v_wheel, v_weight_bp, v_weight_v) @@ -264,59 +263,54 @@ def update(self, cp): self.left_blinker_on = cp.vl["SCM_FEEDBACK"]['LEFT_BLINKER'] self.right_blinker_on = cp.vl["SCM_FEEDBACK"]['RIGHT_BLINKER'] - if self.CP.carFingerprint in (CAR.CIVIC, CAR.ODYSSEY, CAR.CRV_5G, CAR.ACCORD, CAR.CIVIC_HATCH): - self.park_brake = cp.vl["EPB_STATUS"]['EPB_STATE'] != 0 - self.brake_hold = cp.vl["VSA_STATUS"]['BRAKE_HOLD_ACTIVE'] - self.main_on = cp.vl["SCM_FEEDBACK"]['MAIN_ON'] - else: - self.park_brake = 0 # TODO - self.brake_hold = 0 # TODO - self.main_on = cp.vl["SCM_BUTTONS"]['MAIN_ON'] + #if parking brake is not in DBC, default to 0 #TODO:add to DBC + self.park_brake = cp.vl.get("EPB_STATUS",{"empty" : None}).get('EPB_STATE', 0) + self.brake_hold = cp.vl.get("VSA_STATUS",{"empty" : None}).get('BRAKE_HOLD_ACTIVE', 0) + + self.main_on = any([cp.vl.get("SCM_FEEDBACK",{"empty" : None}).get('MAIN_ON'), #Bosch signal + cp.vl.get("SCM_BUTTONS",{"empty" : None}).get('MAIN_ON')]) self.gear_shifter = parse_gear_shifter(can_gear_shifter, self.CP.carFingerprint) self.pedal_gas = cp.vl["POWERTRAIN_DATA"]['PEDAL_GAS'] - # crv doesn't include cruise control - if self.CP.carFingerprint in (CAR.CRV, CAR.ODYSSEY, CAR.ACURA_RDX, CAR.RIDGELINE): - self.car_gas = self.pedal_gas - else: - self.car_gas = cp.vl["GAS_PEDAL_2"]['CAR_GAS'] + + #(CAR.CRV, CAR.ODYSSEY, CAR.ACURA_RDX, CAR.RIDGELINE) do not have this signal, default to pedal_gas + self.car_gas = cp.vl.get("GAS_PEDAL_2",{"empty" : None}).get('CAR_GAS', self.pedal_gas) #rdx has different steer override threshold - if self.CP.carFingerprint in (CAR.ACURA_RDX): - self.steer_override = abs(cp.vl["STEER_STATUS"]['STEER_TORQUE_SENSOR']) > 400 - else: - self.steer_override = abs(cp.vl["STEER_STATUS"]['STEER_TORQUE_SENSOR']) > 1200 + steer_limit = 400 if self.CP.carFingerprint in (CAR.ACURA_RDX) else 1200 + self.steer_override = abs(cp.vl["STEER_STATUS"]['STEER_TORQUE_SENSOR']) > steer_limit + self.steer_torque_driver = cp.vl["STEER_STATUS"]['STEER_TORQUE_SENSOR'] self.brake_switch = cp.vl["POWERTRAIN_DATA"]['BRAKE_SWITCH'] + #Bosch if self.CP.radarOffCan: self.stopped = cp.vl["ACC_HUD"]['CRUISE_SPEED'] == 252. self.cruise_speed_offset = calc_cruise_offset(0, self.v_ego) - if self.CP.carFingerprint == CAR.CIVIC_HATCH: - self.brake_switch = cp.vl["POWERTRAIN_DATA"]['BRAKE_SWITCH'] - self.brake_pressed = cp.vl["POWERTRAIN_DATA"]['BRAKE_PRESSED'] or \ - (self.brake_switch and self.brake_switch_prev and \ - cp.ts["POWERTRAIN_DATA"]['BRAKE_SWITCH'] != self.brake_switch_ts) - self.brake_switch_prev = self.brake_switch - self.brake_switch_ts = cp.ts["POWERTRAIN_DATA"]['BRAKE_SWITCH'] - else: - self.brake_pressed = cp.vl["BRAKE_MODULE"]['BRAKE_PRESSED'] # On set, cruise set speed pulses between 254~255 and the set speed prev is set to avoid this. self.v_cruise_pcm = self.v_cruise_pcm_prev if cp.vl["ACC_HUD"]['CRUISE_SPEED'] > 160.0 else cp.vl["ACC_HUD"]['CRUISE_SPEED'] self.v_cruise_pcm_prev = self.v_cruise_pcm - else: - self.brake_switch = cp.vl["POWERTRAIN_DATA"]['BRAKE_SWITCH'] - self.cruise_speed_offset = calc_cruise_offset(cp.vl["CRUISE_PARAMS"]['CRUISE_SPEED_OFFSET'], self.v_ego) - self.v_cruise_pcm = cp.vl["CRUISE"]['CRUISE_SPEED_PCM'] + + #Bosch and not Civic Hatch + if self.radarOffCan and self.CP.carFingerprint != CAR.CIVIC_HATCH: + self.brake_pressed = cp.vl["BRAKE_MODULE"]['BRAKE_PRESSED'] + + #Nidec or Civic Hatch(Bosch but uses same brake messages) + if not self.radarOffCan or (self.radarOffCan and self.CP.carFingerprint == CAR.CIVIC_HATCH): # brake switch has shown some single time step noise, so only considered when # switch is on for at least 2 consecutive CAN samples self.brake_pressed = cp.vl["POWERTRAIN_DATA"]['BRAKE_PRESSED'] or \ - (self.brake_switch and self.brake_switch_prev and \ - cp.ts["POWERTRAIN_DATA"]['BRAKE_SWITCH'] != self.brake_switch_ts) + (self.brake_switch and self.brake_switch_prev and \ + cp.ts["POWERTRAIN_DATA"]['BRAKE_SWITCH'] != self.brake_switch_ts) self.brake_switch_prev = self.brake_switch - self.brake_switch_ts = cp.ts["POWERTRAIN_DATA"]['BRAKE_SWITCH'] + self.brake_switch_ts = cp.ts["POWERTRAIN_DATA"]['BRAKE_SWITCH'] + + #Nidec + if not self.radarOffCan: + self.cruise_speed_offset = calc_cruise_offset(cp.vl["CRUISE_PARAMS"]['CRUISE_SPEED_OFFSET'], self.v_ego) + self.v_cruise_pcm = cp.vl["CRUISE"]['CRUISE_SPEED_PCM'] self.user_brake = cp.vl["VSA_STATUS"]['USER_BRAKE'] self.standstill = not cp.vl["STANDSTILL"]['WHEELS_MOVING'] From d65070281105c9194e3cf543486ff5a5cb376e89 Mon Sep 17 00:00:00 2001 From: dekerr Date: Wed, 27 Jun 2018 04:39:36 -0400 Subject: [PATCH 02/12] fixed errors --- selfdrive/car/honda/carstate.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/selfdrive/car/honda/carstate.py b/selfdrive/car/honda/carstate.py index f3dccfb6af46a5..9979b3eec4d892 100644 --- a/selfdrive/car/honda/carstate.py +++ b/selfdrive/car/honda/carstate.py @@ -104,6 +104,7 @@ def get_can_signals(CP): ("VSA_STATUS", 50), ("SCM_BUTTONS", 25), ] + # Civic is only bosch to use the same brake message as other hondas. if CP.radarOffCan and (CP.carFingerprint != CAR.CIVIC_HATCH): @@ -294,25 +295,25 @@ def update(self, cp): self.v_cruise_pcm_prev = self.v_cruise_pcm #Bosch and not Civic Hatch - if self.radarOffCan and self.CP.carFingerprint != CAR.CIVIC_HATCH: + if self.CP.radarOffCan and self.CP.carFingerprint != CAR.CIVIC_HATCH: self.brake_pressed = cp.vl["BRAKE_MODULE"]['BRAKE_PRESSED'] #Nidec or Civic Hatch(Bosch but uses same brake messages) - if not self.radarOffCan or (self.radarOffCan and self.CP.carFingerprint == CAR.CIVIC_HATCH): + if (not self.CP.radarOffCan) or (self.CP.radarOffCan and self.CP.carFingerprint == CAR.CIVIC_HATCH): # brake switch has shown some single time step noise, so only considered when # switch is on for at least 2 consecutive CAN samples - self.brake_pressed = cp.vl["POWERTRAIN_DATA"]['BRAKE_PRESSED'] or \ - (self.brake_switch and self.brake_switch_prev and \ - cp.ts["POWERTRAIN_DATA"]['BRAKE_SWITCH'] != self.brake_switch_ts) + self.brake_pressed = (cp.vl["POWERTRAIN_DATA"]['BRAKE_PRESSED'] or \ + (self.brake_switch and self.brake_switch_prev and \ + cp.ts["POWERTRAIN_DATA"]['BRAKE_SWITCH'] != self.brake_switch_ts)) self.brake_switch_prev = self.brake_switch self.brake_switch_ts = cp.ts["POWERTRAIN_DATA"]['BRAKE_SWITCH'] #Nidec - if not self.radarOffCan: + if not self.CP.radarOffCan: self.cruise_speed_offset = calc_cruise_offset(cp.vl["CRUISE_PARAMS"]['CRUISE_SPEED_OFFSET'], self.v_ego) self.v_cruise_pcm = cp.vl["CRUISE"]['CRUISE_SPEED_PCM'] - self.user_brake = cp.vl["VSA_STATUS"]['USER_BRAKE'] + self.user_brake = cp.vl['VSA_STATUS']['USER_BRAKE'] self.standstill = not cp.vl["STANDSTILL"]['WHEELS_MOVING'] self.pcm_acc_status = cp.vl["POWERTRAIN_DATA"]['ACC_STATUS'] self.hud_lead = cp.vl["ACC_HUD"]['HUD_LEAD'] From e28b4031dc129e64ff6c900bbc3a20ce69618081 Mon Sep 17 00:00:00 2001 From: dekerr Date: Wed, 27 Jun 2018 04:56:07 -0400 Subject: [PATCH 03/12] format --- selfdrive/car/honda/carstate.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/selfdrive/car/honda/carstate.py b/selfdrive/car/honda/carstate.py index 9979b3eec4d892..5948f3e23203ea 100644 --- a/selfdrive/car/honda/carstate.py +++ b/selfdrive/car/honda/carstate.py @@ -279,8 +279,8 @@ def update(self, cp): self.car_gas = cp.vl.get("GAS_PEDAL_2",{"empty" : None}).get('CAR_GAS', self.pedal_gas) #rdx has different steer override threshold - steer_limit = 400 if self.CP.carFingerprint in (CAR.ACURA_RDX) else 1200 - self.steer_override = abs(cp.vl["STEER_STATUS"]['STEER_TORQUE_SENSOR']) > steer_limit + steer_thresh = 400 if self.CP.carFingerprint in (CAR.ACURA_RDX) else 1200 + self.steer_override = abs(cp.vl["STEER_STATUS"]['STEER_TORQUE_SENSOR']) > steer_thresh self.steer_torque_driver = cp.vl["STEER_STATUS"]['STEER_TORQUE_SENSOR'] @@ -313,7 +313,7 @@ def update(self, cp): self.cruise_speed_offset = calc_cruise_offset(cp.vl["CRUISE_PARAMS"]['CRUISE_SPEED_OFFSET'], self.v_ego) self.v_cruise_pcm = cp.vl["CRUISE"]['CRUISE_SPEED_PCM'] - self.user_brake = cp.vl['VSA_STATUS']['USER_BRAKE'] + self.user_brake = cp.vl["VSA_STATUS"]['USER_BRAKE'] self.standstill = not cp.vl["STANDSTILL"]['WHEELS_MOVING'] self.pcm_acc_status = cp.vl["POWERTRAIN_DATA"]['ACC_STATUS'] self.hud_lead = cp.vl["ACC_HUD"]['HUD_LEAD'] From b886bd892c93a308bbd89391bf70f86a9b3ee398 Mon Sep 17 00:00:00 2001 From: dekerr Date: Wed, 27 Jun 2018 05:30:04 -0400 Subject: [PATCH 04/12] fix variable --- selfdrive/car/honda/carstate.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/selfdrive/car/honda/carstate.py b/selfdrive/car/honda/carstate.py index 5948f3e23203ea..2c1bde16c702f0 100644 --- a/selfdrive/car/honda/carstate.py +++ b/selfdrive/car/honda/carstate.py @@ -107,7 +107,6 @@ def get_can_signals(CP): # Civic is only bosch to use the same brake message as other hondas. if CP.radarOffCan and (CP.carFingerprint != CAR.CIVIC_HATCH): - signals += [("BRAKE_PRESSED", "BRAKE_MODULE", 0)] checks += [("BRAKE_MODULE", 50)] @@ -214,7 +213,7 @@ def update(self, cp): self.door_all_closed = not any([cp.vl.get("DOORS_STATUS",{"empty" : None}).get('DOOR_OPEN_FL'), cp.vl.get("DOORS_STATUS",{"empty" : None}).get('DOOR_OPEN_FR'), cp.vl.get("DOORS_STATUS",{"empty" : None}).get('DOOR_OPEN_RL'), - cp.vl.get("DOORS_STATUS",{"empty" : None}).get('DOOR_OPEN_FR'), + cp.vl.get("DOORS_STATUS",{"empty" : None}).get('DOOR_OPEN_RR'), cp.vl.get("SCM_FEEDBACK",{"empty" : None}).get('DRIVERS_DOOR_OPEN')]) #(CAR.ACCORD) self.seatbelt = not cp.vl["SEATBELT_STATUS"]['SEATBELT_DRIVER_LAMP'] and cp.vl["SEATBELT_STATUS"]['SEATBELT_DRIVER_LATCHED'] From 80e63bc66b9b1cd175974ed5c8d31b8303553ef5 Mon Sep 17 00:00:00 2001 From: dekerr Date: Wed, 27 Jun 2018 05:36:10 -0400 Subject: [PATCH 05/12] fix conditional --- selfdrive/car/honda/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/selfdrive/car/honda/carstate.py b/selfdrive/car/honda/carstate.py index 2c1bde16c702f0..31cb4181d2a96e 100644 --- a/selfdrive/car/honda/carstate.py +++ b/selfdrive/car/honda/carstate.py @@ -264,7 +264,7 @@ def update(self, cp): self.right_blinker_on = cp.vl["SCM_FEEDBACK"]['RIGHT_BLINKER'] #if parking brake is not in DBC, default to 0 #TODO:add to DBC - self.park_brake = cp.vl.get("EPB_STATUS",{"empty" : None}).get('EPB_STATE', 0) + self.park_brake = cp.vl.get("EPB_STATUS",{"empty" : None}).get('EPB_STATE', 0) != 0 self.brake_hold = cp.vl.get("VSA_STATUS",{"empty" : None}).get('BRAKE_HOLD_ACTIVE', 0) self.main_on = any([cp.vl.get("SCM_FEEDBACK",{"empty" : None}).get('MAIN_ON'), #Bosch signal From 55089d86b5bdc10575c5b609c83c4a35d31b6fcb Mon Sep 17 00:00:00 2001 From: dekerr Date: Thu, 28 Jun 2018 00:36:02 -0400 Subject: [PATCH 06/12] nested ifs --- selfdrive/car/honda/carstate.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/selfdrive/car/honda/carstate.py b/selfdrive/car/honda/carstate.py index 31cb4181d2a96e..ff9c8cae15fce3 100644 --- a/selfdrive/car/honda/carstate.py +++ b/selfdrive/car/honda/carstate.py @@ -105,13 +105,14 @@ def get_can_signals(CP): ("SCM_BUTTONS", 25), ] - # Civic is only bosch to use the same brake message as other hondas. - if CP.radarOffCan and (CP.carFingerprint != CAR.CIVIC_HATCH): - signals += [("BRAKE_PRESSED", "BRAKE_MODULE", 0)] - checks += [("BRAKE_MODULE", 50)] # Bosch signals if CP.radarOffCan: + # Civic is only bosch to use the same brake message as other hondas. + if CP.carFingerprint != CAR.CIVIC_HATCH: + signals += [("BRAKE_PRESSED", "BRAKE_MODULE", 0)] + checks += [("BRAKE_MODULE", 50)] + signals += [("CAR_GAS", "GAS_PEDAL_2", 0), ("MAIN_ON", "SCM_FEEDBACK", 0), ("EPB_STATE", "EPB_STATUS", 0), @@ -293,9 +294,9 @@ def update(self, cp): self.v_cruise_pcm = self.v_cruise_pcm_prev if cp.vl["ACC_HUD"]['CRUISE_SPEED'] > 160.0 else cp.vl["ACC_HUD"]['CRUISE_SPEED'] self.v_cruise_pcm_prev = self.v_cruise_pcm - #Bosch and not Civic Hatch - if self.CP.radarOffCan and self.CP.carFingerprint != CAR.CIVIC_HATCH: - self.brake_pressed = cp.vl["BRAKE_MODULE"]['BRAKE_PRESSED'] + #Bosch and not Civic Hatch + if self.CP.carFingerprint != CAR.CIVIC_HATCH: + self.brake_pressed = cp.vl["BRAKE_MODULE"]['BRAKE_PRESSED'] #Nidec or Civic Hatch(Bosch but uses same brake messages) if (not self.CP.radarOffCan) or (self.CP.radarOffCan and self.CP.carFingerprint == CAR.CIVIC_HATCH): From 18e953fbcc7d3b78d2ff51abc9e69f43d00c37b8 Mon Sep 17 00:00:00 2001 From: dekerr Date: Thu, 28 Jun 2018 01:17:40 -0400 Subject: [PATCH 07/12] condensed IFs --- selfdrive/car/honda/carstate.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/selfdrive/car/honda/carstate.py b/selfdrive/car/honda/carstate.py index ff9c8cae15fce3..81f29ad47469fa 100644 --- a/selfdrive/car/honda/carstate.py +++ b/selfdrive/car/honda/carstate.py @@ -108,7 +108,7 @@ def get_can_signals(CP): # Bosch signals if CP.radarOffCan: - # Civic is only bosch to use the same brake message as other hondas. + # Civic Hatch is only bosch to use the same brake message as nidec hondas. if CP.carFingerprint != CAR.CIVIC_HATCH: signals += [("BRAKE_PRESSED", "BRAKE_MODULE", 0)] checks += [("BRAKE_MODULE", 50)] @@ -143,8 +143,7 @@ def get_can_signals(CP): if CP.carFingerprint in (CAR.ACURA_RDX, CAR.ACURA_ILX, CAR.PILOT, CAR.CRV, CAR.RIDGELINE): signals += [("MAIN_ON", "SCM_BUTTONS", 0)] - # use same signals from bosch.dbc - if CP.carFingerprint in (CAR.ODYSSEY, CAR.CIVIC): + elif CP.carFingerprint in (CAR.ODYSSEY, CAR.CIVIC): signals += [("MAIN_ON", "SCM_FEEDBACK", 0), ("EPB_STATE", "EPB_STATUS", 0), ("BRAKE_HOLD_ACTIVE", "VSA_STATUS", 0)] @@ -294,9 +293,14 @@ def update(self, cp): self.v_cruise_pcm = self.v_cruise_pcm_prev if cp.vl["ACC_HUD"]['CRUISE_SPEED'] > 160.0 else cp.vl["ACC_HUD"]['CRUISE_SPEED'] self.v_cruise_pcm_prev = self.v_cruise_pcm - #Bosch and not Civic Hatch + #All Bosch except Civic Hatch if self.CP.carFingerprint != CAR.CIVIC_HATCH: self.brake_pressed = cp.vl["BRAKE_MODULE"]['BRAKE_PRESSED'] + + #Nidec + else: + self.cruise_speed_offset = calc_cruise_offset(cp.vl["CRUISE_PARAMS"]['CRUISE_SPEED_OFFSET'], self.v_ego) + self.v_cruise_pcm = cp.vl["CRUISE"]['CRUISE_SPEED_PCM'] #Nidec or Civic Hatch(Bosch but uses same brake messages) if (not self.CP.radarOffCan) or (self.CP.radarOffCan and self.CP.carFingerprint == CAR.CIVIC_HATCH): @@ -308,11 +312,6 @@ def update(self, cp): self.brake_switch_prev = self.brake_switch self.brake_switch_ts = cp.ts["POWERTRAIN_DATA"]['BRAKE_SWITCH'] - #Nidec - if not self.CP.radarOffCan: - self.cruise_speed_offset = calc_cruise_offset(cp.vl["CRUISE_PARAMS"]['CRUISE_SPEED_OFFSET'], self.v_ego) - self.v_cruise_pcm = cp.vl["CRUISE"]['CRUISE_SPEED_PCM'] - self.user_brake = cp.vl["VSA_STATUS"]['USER_BRAKE'] self.standstill = not cp.vl["STANDSTILL"]['WHEELS_MOVING'] self.pcm_acc_status = cp.vl["POWERTRAIN_DATA"]['ACC_STATUS'] From ade7e924f861dcc7285fa0da717a09bf3b4bae96 Mon Sep 17 00:00:00 2001 From: dekerr Date: Sun, 1 Jul 2018 02:46:25 -0400 Subject: [PATCH 08/12] signal consolidation --- selfdrive/car/honda/carstate.py | 54 ++++++++++++++------------------- 1 file changed, 22 insertions(+), 32 deletions(-) diff --git a/selfdrive/car/honda/carstate.py b/selfdrive/car/honda/carstate.py index 81f29ad47469fa..c1f45a8ffcff82 100644 --- a/selfdrive/car/honda/carstate.py +++ b/selfdrive/car/honda/carstate.py @@ -105,27 +105,33 @@ def get_can_signals(CP): ("SCM_BUTTONS", 25), ] - # Bosch signals if CP.radarOffCan: - # Civic Hatch is only bosch to use the same brake message as nidec hondas. + signals += [("CRUISE_SPEED", "ACC_HUD", 0)] + # Civic Hatch is only bosch to use the same brake message as nidec hondas if CP.carFingerprint != CAR.CIVIC_HATCH: signals += [("BRAKE_PRESSED", "BRAKE_MODULE", 0)] checks += [("BRAKE_MODULE", 50)] - - signals += [("CAR_GAS", "GAS_PEDAL_2", 0), - ("MAIN_ON", "SCM_FEEDBACK", 0), - ("EPB_STATE", "EPB_STATUS", 0), - ("BRAKE_HOLD_ACTIVE", "VSA_STATUS", 0), - ("CRUISE_SPEED", "ACC_HUD", 0)] - checks += [("GAS_PEDAL_2", 100)] - - # Nidec signals. + # Nidec signals else: signals += [("CRUISE_SPEED_PCM", "CRUISE", 0), ("CRUISE_SPEED_OFFSET", "CRUISE_PARAMS", 0)] checks += [("CRUISE_PARAMS", 50)] + # Bosch or uses signals common to bosch.dbc + if CP.radarOffCan or CP.carFingerprint in (CAR.CIVIC, CAR.ODYSSEY): + signals += [("MAIN_ON", "SCM_FEEDBACK", 0), + ("EPB_STATE", "EPB_STATUS", 0), + ("BRAKE_HOLD_ACTIVE", "VSA_STATUS", 0)] + checks += [("EPB_STATUS", 50)] + else: + signals += [("MAIN_ON", "SCM_BUTTONS", 0)] + + # Bosch or uses signals common to bosch.dbc + if CP.radarOffCan or CP.carFingerprint in (CAR.ACURA_ILX, CAR.CIVIC, CAR.PILOT): + signals += [("CAR_GAS", "GAS_PEDAL_2", 0)] + checks += [("GAS_PEDAL_2", 100)] + if CP.carFingerprint == CAR.ACCORD: signals += [("DRIVERS_DOOR_OPEN", "SCM_FEEDBACK", 1)] else: @@ -135,22 +141,6 @@ def get_can_signals(CP): ("DOOR_OPEN_RR", "DOORS_STATUS", 1)] checks += [("DOORS_STATUS", 3)] - # use same signal from bosch.dbc - if CP.carFingerprint in (CAR.ACURA_ILX, CAR.PILOT, CAR.CIVIC): - signals += [("CAR_GAS", "GAS_PEDAL_2", 0)] - - # use same signal from bosch.dbc - if CP.carFingerprint in (CAR.ACURA_RDX, CAR.ACURA_ILX, CAR.PILOT, CAR.CRV, CAR.RIDGELINE): - signals += [("MAIN_ON", "SCM_BUTTONS", 0)] - - elif CP.carFingerprint in (CAR.ODYSSEY, CAR.CIVIC): - signals += [("MAIN_ON", "SCM_FEEDBACK", 0), - ("EPB_STATE", "EPB_STATUS", 0), - ("BRAKE_HOLD_ACTIVE", "VSA_STATUS", 0)] - - if CP.carFingerprint == CAR.ODYSSEY: - checks += [("EPB_STATUS", 50)] - # add gas interceptor reading if we are using it if CP.enableGasInterceptor: signals.append(("INTERCEPTOR_GAS", "GAS_SENSOR", 0)) @@ -263,12 +253,12 @@ def update(self, cp): self.left_blinker_on = cp.vl["SCM_FEEDBACK"]['LEFT_BLINKER'] self.right_blinker_on = cp.vl["SCM_FEEDBACK"]['RIGHT_BLINKER'] - #if parking brake is not in DBC, default to 0 #TODO:add to DBC + #if parking brake is not in DBC, default to 0 #TODO:add to DBC self.park_brake = cp.vl.get("EPB_STATUS",{"empty" : None}).get('EPB_STATE', 0) != 0 self.brake_hold = cp.vl.get("VSA_STATUS",{"empty" : None}).get('BRAKE_HOLD_ACTIVE', 0) - self.main_on = any([cp.vl.get("SCM_FEEDBACK",{"empty" : None}).get('MAIN_ON'), #Bosch signal - cp.vl.get("SCM_BUTTONS",{"empty" : None}).get('MAIN_ON')]) + self.main_on = any([cp.vl.get("SCM_FEEDBACK",{"empty" : None}).get('MAIN_ON'), #Bosch signal + cp.vl.get("SCM_BUTTONS",{"empty" : None}).get('MAIN_ON')]) self.gear_shifter = parse_gear_shifter(can_gear_shifter, self.CP.carFingerprint) @@ -296,7 +286,7 @@ def update(self, cp): #All Bosch except Civic Hatch if self.CP.carFingerprint != CAR.CIVIC_HATCH: self.brake_pressed = cp.vl["BRAKE_MODULE"]['BRAKE_PRESSED'] - + #Nidec else: self.cruise_speed_offset = calc_cruise_offset(cp.vl["CRUISE_PARAMS"]['CRUISE_SPEED_OFFSET'], self.v_ego) @@ -310,7 +300,7 @@ def update(self, cp): (self.brake_switch and self.brake_switch_prev and \ cp.ts["POWERTRAIN_DATA"]['BRAKE_SWITCH'] != self.brake_switch_ts)) self.brake_switch_prev = self.brake_switch - self.brake_switch_ts = cp.ts["POWERTRAIN_DATA"]['BRAKE_SWITCH'] + self.brake_switch_ts = cp.ts["POWERTRAIN_DATA"]['BRAKE_SWITCH'] self.user_brake = cp.vl["VSA_STATUS"]['USER_BRAKE'] self.standstill = not cp.vl["STANDSTILL"]['WHEELS_MOVING'] From 69de351baed02471cecfd9ff6fbefdb39712b552 Mon Sep 17 00:00:00 2001 From: dekerr Date: Sun, 1 Jul 2018 05:09:00 -0400 Subject: [PATCH 09/12] fix signal order --- selfdrive/car/honda/carstate.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/selfdrive/car/honda/carstate.py b/selfdrive/car/honda/carstate.py index c1f45a8ffcff82..3336ce6e4bf61b 100644 --- a/selfdrive/car/honda/carstate.py +++ b/selfdrive/car/honda/carstate.py @@ -118,20 +118,6 @@ def get_can_signals(CP): ("CRUISE_SPEED_OFFSET", "CRUISE_PARAMS", 0)] checks += [("CRUISE_PARAMS", 50)] - # Bosch or uses signals common to bosch.dbc - if CP.radarOffCan or CP.carFingerprint in (CAR.CIVIC, CAR.ODYSSEY): - signals += [("MAIN_ON", "SCM_FEEDBACK", 0), - ("EPB_STATE", "EPB_STATUS", 0), - ("BRAKE_HOLD_ACTIVE", "VSA_STATUS", 0)] - checks += [("EPB_STATUS", 50)] - else: - signals += [("MAIN_ON", "SCM_BUTTONS", 0)] - - # Bosch or uses signals common to bosch.dbc - if CP.radarOffCan or CP.carFingerprint in (CAR.ACURA_ILX, CAR.CIVIC, CAR.PILOT): - signals += [("CAR_GAS", "GAS_PEDAL_2", 0)] - checks += [("GAS_PEDAL_2", 100)] - if CP.carFingerprint == CAR.ACCORD: signals += [("DRIVERS_DOOR_OPEN", "SCM_FEEDBACK", 1)] else: @@ -141,6 +127,20 @@ def get_can_signals(CP): ("DOOR_OPEN_RR", "DOORS_STATUS", 1)] checks += [("DOORS_STATUS", 3)] + # Bosch or uses signals common to bosch.dbc + if CP.radarOffCan or CP.carFingerprint in (CAR.ACURA_ILX, CAR.CIVIC, CAR.PILOT): + signals += [("CAR_GAS", "GAS_PEDAL_2", 0)] + checks += [("GAS_PEDAL_2", 100)] + + # Bosch or uses signals common to bosch.dbc + if CP.radarOffCan or CP.carFingerprint in (CAR.CIVIC, CAR.ODYSSEY): + signals += [("MAIN_ON", "SCM_FEEDBACK", 0), + ("EPB_STATE", "EPB_STATUS", 0), + ("BRAKE_HOLD_ACTIVE", "VSA_STATUS", 0)] + checks += [("EPB_STATUS", 50)] + else: + signals += [("MAIN_ON", "SCM_BUTTONS", 0)] + # add gas interceptor reading if we are using it if CP.enableGasInterceptor: signals.append(("INTERCEPTOR_GAS", "GAS_SENSOR", 0)) From 5565ad9f5aff69e966e806355eb2867a18eeaa6d Mon Sep 17 00:00:00 2001 From: dekerr Date: Fri, 13 Jul 2018 23:26:06 -0400 Subject: [PATCH 10/12] single responsibility conditions --- selfdrive/car/honda/carstate.py | 79 +++++++++++++++++---------------- 1 file changed, 40 insertions(+), 39 deletions(-) diff --git a/selfdrive/car/honda/carstate.py b/selfdrive/car/honda/carstate.py index d7a7cbce462311..458e1d3f83a705 100644 --- a/selfdrive/car/honda/carstate.py +++ b/selfdrive/car/honda/carstate.py @@ -102,19 +102,6 @@ def get_can_signals(CP): ("SCM_BUTTONS", 25), ] - # Bosch signals - if CP.radarOffCan: - signals += [("CRUISE_SPEED", "ACC_HUD", 0)] - # Civic Hatch is only bosch to use the same brake message as nidec hondas - if CP.carFingerprint != CAR.CIVIC_HATCH: - signals += [("BRAKE_PRESSED", "BRAKE_MODULE", 0)] - checks += [("BRAKE_MODULE", 50)] - # Nidec signals - else: - signals += [("CRUISE_SPEED_PCM", "CRUISE", 0), - ("CRUISE_SPEED_OFFSET", "CRUISE_PARAMS", 0)] - checks += [("CRUISE_PARAMS", 50)] - if CP.carFingerprint == CAR.ACCORD: signals += [("DRIVERS_DOOR_OPEN", "SCM_FEEDBACK", 1)] else: @@ -125,12 +112,7 @@ def get_can_signals(CP): ("WHEELS_MOVING", "STANDSTILL", 1)] checks += [("DOORS_STATUS", 3)] - # Bosch or uses signals common to bosch.dbc - if CP.radarOffCan or CP.carFingerprint in (CAR.ACURA_ILX, CAR.CIVIC, CAR.PILOT): - signals += [("CAR_GAS", "GAS_PEDAL_2", 0)] - checks += [("GAS_PEDAL_2", 100)] - - # Bosch or uses signals common to bosch.dbc + # use main on and parking brake signals common to bosch dbc if CP.radarOffCan or CP.carFingerprint in (CAR.CIVIC, CAR.ODYSSEY): signals += [("MAIN_ON", "SCM_FEEDBACK", 0), ("EPB_STATE", "EPB_STATUS", 0), @@ -139,6 +121,24 @@ def get_can_signals(CP): else: signals += [("MAIN_ON", "SCM_BUTTONS", 0)] + # use gas signals common to bosch dbc + if CP.radarOffCan or CP.carFingerprint in (CAR.ACURA_ILX, CAR.CIVIC, CAR.PILOT): + signals += [("CAR_GAS", "GAS_PEDAL_2", 0)] + checks += [("GAS_PEDAL_2", 100)] + + # bosch cruise signals + if CP.radarOffCan: + signals += [("CRUISE_SPEED", "ACC_HUD", 0)] + else: + signals += [("CRUISE_SPEED_PCM", "CRUISE", 0), + ("CRUISE_SPEED_OFFSET", "CRUISE_PARAMS", 0)] + checks += [("CRUISE_PARAMS", 50)] + + # bosch brake signals + if self.CP.radarOffCan and self.CP.carFingerprint != CAR.CIVIC_HATCH: + signals += [("BRAKE_PRESSED", "BRAKE_MODULE", 0)] + checks += [("BRAKE_MODULE", 50)] + # add gas interceptor reading if we are using it if CP.enableGasInterceptor: signals.append(("INTERCEPTOR_GAS", "GAS_SENSOR", 0)) @@ -222,7 +222,7 @@ def update(self, cp): self.v_wheel_rl = cp.vl["WHEEL_SPEEDS"]['WHEEL_SPEED_RL'] * CV.KPH_TO_MS self.v_wheel_rr = cp.vl["WHEEL_SPEEDS"]['WHEEL_SPEED_RR'] * CV.KPH_TO_MS - self.v_wheel = float(np.mean([self.v_wheel_fl, self.v_wheel_fr, self.v_wheel_rl, self.v_wheel_rr])) + self.v_wheel = (self.v_wheel_fl + self.v_wheel_fr + self.v_wheel_rl + self.v_wheel_rr) / 4. # blend in transmission speed at low speed, since it has more low speed accuracy self.v_weight = interp(self.v_wheel, v_weight_bp, v_weight_v) @@ -242,7 +242,6 @@ def update(self, cp): self.user_gas = cp.vl["GAS_SENSOR"]['INTERCEPTOR_GAS'] self.user_gas_pressed = self.user_gas > 0 # this works because interceptor read < 0 when pedal position is 0. Once calibrated, this will change - can_gear_shifter = cp.vl["GEARBOX"]['GEAR_SHIFTER'] self.gear = 0 if self.CP.carFingerprint == CAR.CIVIC else cp.vl["GEARBOX"]['GEAR'] self.angle_steers = cp.vl["STEERING_SENSORS"]['STEER_ANGLE'] self.angle_steers_rate = cp.vl["STEERING_SENSORS"]['STEER_ANGLE_RATE'] @@ -254,47 +253,49 @@ def update(self, cp): self.left_blinker_on = cp.vl["SCM_FEEDBACK"]['LEFT_BLINKER'] self.right_blinker_on = cp.vl["SCM_FEEDBACK"]['RIGHT_BLINKER'] - #if parking brake is not in DBC, default to 0 #TODO:add to DBC - self.park_brake = cp.vl.get("EPB_STATUS",{"empty" : None}).get('EPB_STATE', 0) != 0 - self.brake_hold = cp.vl.get("VSA_STATUS",{"empty" : None}).get('BRAKE_HOLD_ACTIVE', 0) - - self.main_on = any([cp.vl.get("SCM_FEEDBACK",{"empty" : None}).get('MAIN_ON'), #Bosch signal - cp.vl.get("SCM_BUTTONS",{"empty" : None}).get('MAIN_ON')]) + if CP.radarOffCan or CP.carFingerprint in (CAR.CIVIC, CAR.ODYSSEY): + self.main_on = cp.vl["SCM_FEEDBACK"]['MAIN_ON'] + self.park_brake = cp.vl["EPB_STATUS"]['EPB_STATE'] != 0 + self.brake_hold = cp.vl["VSA_STATUS"]['BRAKE_HOLD_ACTIVE'] + else: + self.main_on = cp.vl["SCM_BUTTONS"]['MAIN_ON'] + self.park_brake = 0 # TODO + self.brake_hold = 0 # TODO + can_gear_shifter = cp.vl["GEARBOX"]['GEAR_SHIFTER'] self.gear_shifter = parse_gear_shifter(can_gear_shifter, self.CP.carFingerprint) self.pedal_gas = cp.vl["POWERTRAIN_DATA"]['PEDAL_GAS'] - #(CAR.CRV, CAR.ODYSSEY, CAR.ACURA_RDX, CAR.RIDGELINE) do not have this signal, default to pedal_gas - self.car_gas = cp.vl.get("GAS_PEDAL_2",{"empty" : None}).get('CAR_GAS', self.pedal_gas) + if CP.radarOffCan or CP.carFingerprint in (CAR.ACURA_ILX, CAR.CIVIC, CAR.PILOT): + self.car_gas = cp.vl["GAS_PEDAL_2"]['CAR_GAS'] + else: + self.car_gas = self.pedal_gas #rdx has different steer override threshold steer_thrsld = 400 if self.CP.carFingerprint == CAR.ACURA_RDX else 1200 self.steer_override = abs(cp.vl["STEER_STATUS"]['STEER_TORQUE_SENSOR']) > steer_thrsld - self.steer_torque_driver = cp.vl["STEER_STATUS"]['STEER_TORQUE_SENSOR'] self.brake_switch = cp.vl["POWERTRAIN_DATA"]['BRAKE_SWITCH'] - #Bosch + #Bosch cruise if self.CP.radarOffCan: self.stopped = cp.vl["ACC_HUD"]['CRUISE_SPEED'] == 252. self.cruise_speed_offset = calc_cruise_offset(0, self.v_ego) # On set, cruise set speed pulses between 254~255 and the set speed prev is set to avoid this. self.v_cruise_pcm = self.v_cruise_pcm_prev if cp.vl["ACC_HUD"]['CRUISE_SPEED'] > 160.0 else cp.vl["ACC_HUD"]['CRUISE_SPEED'] self.v_cruise_pcm_prev = self.v_cruise_pcm - - #All Bosch except Civic Hatch - if self.CP.carFingerprint != CAR.CIVIC_HATCH: - self.brake_pressed = cp.vl["BRAKE_MODULE"]['BRAKE_PRESSED'] - - #Nidec + #Nidec cruise else: self.cruise_speed_offset = calc_cruise_offset(cp.vl["CRUISE_PARAMS"]['CRUISE_SPEED_OFFSET'], self.v_ego) self.v_cruise_pcm = cp.vl["CRUISE"]['CRUISE_SPEED_PCM'] - #Nidec or Civic Hatch(Bosch but uses same brake messages) - if (not self.CP.radarOffCan) or (self.CP.radarOffCan and self.CP.carFingerprint == CAR.CIVIC_HATCH): + #Bosch brake: all Bosch except Civic Hatch + if self.CP.radarOffCan and self.CP.carFingerprint != CAR.CIVIC_HATCH: + self.brake_pressed = cp.vl["BRAKE_MODULE"]['BRAKE_PRESSED'] + #Nidec brake: all Nidec and Civic Hatch + else: # brake switch has shown some single time step noise, so only considered when # switch is on for at least 2 consecutive CAN samples self.brake_pressed = (cp.vl["POWERTRAIN_DATA"]['BRAKE_PRESSED'] or \ From a81eab1063fdfcb2e706f6408f982397bc7fd270 Mon Sep 17 00:00:00 2001 From: dekerr Date: Fri, 13 Jul 2018 23:38:04 -0400 Subject: [PATCH 11/12] spacing/comments --- selfdrive/car/honda/carstate.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/selfdrive/car/honda/carstate.py b/selfdrive/car/honda/carstate.py index 458e1d3f83a705..01b75770cb2d55 100644 --- a/selfdrive/car/honda/carstate.py +++ b/selfdrive/car/honda/carstate.py @@ -198,6 +198,7 @@ def update(self, cp): self.prev_right_blinker_on = self.right_blinker_on # ******************* parse out can ******************* + if self.CP.carFingerprint == CAR.ACCORD: # TODO: find wheels moving bit in dbc self.standstill = cp.vl["ENGINE_DATA"]['XMISSION_SPEED'] < 0.1 self.door_all_closed = not cp.vl["SCM_FEEDBACK"]['DRIVERS_DOOR_OPEN'] @@ -221,7 +222,6 @@ def update(self, cp): self.v_wheel_fr = cp.vl["WHEEL_SPEEDS"]['WHEEL_SPEED_FR'] * CV.KPH_TO_MS self.v_wheel_rl = cp.vl["WHEEL_SPEEDS"]['WHEEL_SPEED_RL'] * CV.KPH_TO_MS self.v_wheel_rr = cp.vl["WHEEL_SPEEDS"]['WHEEL_SPEED_RR'] * CV.KPH_TO_MS - self.v_wheel = (self.v_wheel_fl + self.v_wheel_fr + self.v_wheel_rl + self.v_wheel_rr) / 4. # blend in transmission speed at low speed, since it has more low speed accuracy @@ -286,15 +286,13 @@ def update(self, cp): # On set, cruise set speed pulses between 254~255 and the set speed prev is set to avoid this. self.v_cruise_pcm = self.v_cruise_pcm_prev if cp.vl["ACC_HUD"]['CRUISE_SPEED'] > 160.0 else cp.vl["ACC_HUD"]['CRUISE_SPEED'] self.v_cruise_pcm_prev = self.v_cruise_pcm - #Nidec cruise else: self.cruise_speed_offset = calc_cruise_offset(cp.vl["CRUISE_PARAMS"]['CRUISE_SPEED_OFFSET'], self.v_ego) self.v_cruise_pcm = cp.vl["CRUISE"]['CRUISE_SPEED_PCM'] - #Bosch brake: all Bosch except Civic Hatch + #Bosch brake: exclude Civic Hatch if self.CP.radarOffCan and self.CP.carFingerprint != CAR.CIVIC_HATCH: self.brake_pressed = cp.vl["BRAKE_MODULE"]['BRAKE_PRESSED'] - #Nidec brake: all Nidec and Civic Hatch else: # brake switch has shown some single time step noise, so only considered when # switch is on for at least 2 consecutive CAN samples From e8747d1f69ea09bde7fec1f1dd0126463486b716 Mon Sep 17 00:00:00 2001 From: dekerr Date: Sat, 14 Jul 2018 22:17:08 -0400 Subject: [PATCH 12/12] fixed naming --- selfdrive/car/honda/carstate.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/selfdrive/car/honda/carstate.py b/selfdrive/car/honda/carstate.py index 01b75770cb2d55..1d4ade57bcc74f 100644 --- a/selfdrive/car/honda/carstate.py +++ b/selfdrive/car/honda/carstate.py @@ -135,7 +135,7 @@ def get_can_signals(CP): checks += [("CRUISE_PARAMS", 50)] # bosch brake signals - if self.CP.radarOffCan and self.CP.carFingerprint != CAR.CIVIC_HATCH: + if CP.radarOffCan and CP.carFingerprint != CAR.CIVIC_HATCH: signals += [("BRAKE_PRESSED", "BRAKE_MODULE", 0)] checks += [("BRAKE_MODULE", 50)] @@ -253,7 +253,7 @@ def update(self, cp): self.left_blinker_on = cp.vl["SCM_FEEDBACK"]['LEFT_BLINKER'] self.right_blinker_on = cp.vl["SCM_FEEDBACK"]['RIGHT_BLINKER'] - if CP.radarOffCan or CP.carFingerprint in (CAR.CIVIC, CAR.ODYSSEY): + if self.CP.radarOffCan or self.CP.carFingerprint in (CAR.CIVIC, CAR.ODYSSEY): self.main_on = cp.vl["SCM_FEEDBACK"]['MAIN_ON'] self.park_brake = cp.vl["EPB_STATUS"]['EPB_STATE'] != 0 self.brake_hold = cp.vl["VSA_STATUS"]['BRAKE_HOLD_ACTIVE'] @@ -267,7 +267,7 @@ def update(self, cp): self.pedal_gas = cp.vl["POWERTRAIN_DATA"]['PEDAL_GAS'] - if CP.radarOffCan or CP.carFingerprint in (CAR.ACURA_ILX, CAR.CIVIC, CAR.PILOT): + if self.CP.radarOffCan or self.CP.carFingerprint in (CAR.ACURA_ILX, CAR.CIVIC, CAR.PILOT): self.car_gas = cp.vl["GAS_PEDAL_2"]['CAR_GAS'] else: self.car_gas = self.pedal_gas