Use longActive for car-specific override signals (#26030)

* add override field to cruiseControl

* need to check if long *can* be active

* bump cereal to master

* revert

* better

* fix

* update refs

* rename variable
old-commit-hash: 7418678132
taco
Shane Smiskol 3 years ago committed by GitHub
parent f9b65f9189
commit 4df9e825ae
  1. 2
      cereal
  2. 2
      selfdrive/car/hyundai/carcontroller.py
  3. 6
      selfdrive/car/hyundai/hyundaican.py
  4. 1
      selfdrive/controls/controlsd.py
  5. 2
      selfdrive/test/process_replay/ref_commit

@ -1 +1 @@
Subproject commit b29717c4c328d5cf34d46f682f25267150f82637 Subproject commit b1003dd0128a451439d4fe98d098d90e994f81ed

@ -133,7 +133,7 @@ class CarController:
stopping = actuators.longControlState == LongCtrlState.stopping stopping = actuators.longControlState == LongCtrlState.stopping
set_speed_in_units = hud_control.setSpeed * (CV.MS_TO_MPH if CS.clu11["CF_Clu_SPEED_UNIT"] == 1 else CV.MS_TO_KPH) set_speed_in_units = hud_control.setSpeed * (CV.MS_TO_MPH if CS.clu11["CF_Clu_SPEED_UNIT"] == 1 else CV.MS_TO_KPH)
can_sends.extend(hyundaican.create_acc_commands(self.packer, CC.enabled, accel, jerk, int(self.frame / 2), can_sends.extend(hyundaican.create_acc_commands(self.packer, CC.enabled, accel, jerk, int(self.frame / 2),
hud_control.leadVisible, set_speed_in_units, stopping, CS.out.gasPressed)) hud_control.leadVisible, set_speed_in_units, stopping, CC.cruiseControl.override))
self.accel = accel self.accel = accel
# 20 Hz LFA MFA message # 20 Hz LFA MFA message

@ -94,7 +94,7 @@ def create_lfahda_mfc(packer, enabled, hda_set_speed=0):
} }
return packer.make_can_msg("LFAHDA_MFC", 0, values) return packer.make_can_msg("LFAHDA_MFC", 0, values)
def create_acc_commands(packer, enabled, accel, upper_jerk, idx, lead_visible, set_speed, stopping, gas_pressed): def create_acc_commands(packer, enabled, accel, upper_jerk, idx, lead_visible, set_speed, stopping, long_override):
commands = [] commands = []
scc11_values = { scc11_values = {
@ -111,7 +111,7 @@ def create_acc_commands(packer, enabled, accel, upper_jerk, idx, lead_visible, s
commands.append(packer.make_can_msg("SCC11", 0, scc11_values)) commands.append(packer.make_can_msg("SCC11", 0, scc11_values))
scc12_values = { scc12_values = {
"ACCMode": 2 if enabled and gas_pressed else 1 if enabled else 0, "ACCMode": 2 if enabled and long_override else 1 if enabled else 0,
"StopReq": 1 if stopping else 0, "StopReq": 1 if stopping else 0,
"aReqRaw": accel, "aReqRaw": accel,
"aReqValue": accel, # stock ramps up and down respecting jerk limit until it reaches aReqRaw "aReqValue": accel, # stock ramps up and down respecting jerk limit until it reaches aReqRaw
@ -127,7 +127,7 @@ def create_acc_commands(packer, enabled, accel, upper_jerk, idx, lead_visible, s
"ComfortBandLower": 0.0, # stock usually is 0 but sometimes uses higher values "ComfortBandLower": 0.0, # stock usually is 0 but sometimes uses higher values
"JerkUpperLimit": upper_jerk, # stock usually is 1.0 but sometimes uses higher values "JerkUpperLimit": upper_jerk, # stock usually is 1.0 but sometimes uses higher values
"JerkLowerLimit": 5.0, # stock usually is 0.5 but sometimes uses higher values "JerkLowerLimit": 5.0, # stock usually is 0.5 but sometimes uses higher values
"ACCMode": 2 if enabled and gas_pressed else 1 if enabled else 4, # stock will always be 4 instead of 0 after first disengage "ACCMode": 2 if enabled and long_override else 1 if enabled else 4, # stock will always be 4 instead of 0 after first disengage
"ObjGap": 2 if lead_visible else 0, # 5: >30, m, 4: 25-30 m, 3: 20-25 m, 2: < 20 m, 0: no lead "ObjGap": 2 if lead_visible else 0, # 5: >30, m, 4: 25-30 m, 3: 20-25 m, 2: < 20 m, 0: no lead
} }
commands.append(packer.make_can_msg("SCC14", 0, scc14_values)) commands.append(packer.make_can_msg("SCC14", 0, scc14_values))

@ -705,6 +705,7 @@ class Controls:
if len(angular_rate_value) > 2: if len(angular_rate_value) > 2:
CC.angularVelocity = angular_rate_value CC.angularVelocity = angular_rate_value
CC.cruiseControl.override = self.enabled and not CC.longActive and self.CP.openpilotLongitudinalControl
CC.cruiseControl.cancel = CS.cruiseState.enabled and (not self.enabled or not self.CP.pcmCruise) CC.cruiseControl.cancel = CS.cruiseState.enabled and (not self.enabled or not self.CP.pcmCruise)
if self.joystick_mode and self.sm.rcv_frame['testJoystick'] > 0 and self.sm['testJoystick'].buttons[0]: if self.joystick_mode and self.sm.rcv_frame['testJoystick'] > 0 and self.sm['testJoystick'].buttons[0]:
CC.cruiseControl.cancel = True CC.cruiseControl.cancel = True

@ -1 +1 @@
0f0a9aa8fed425468c488a4f8b7581c48d724e67 02c6922762fef41c8188a5a4f1f3267b76651330
Loading…
Cancel
Save