encapsulate cancel event in method

This commit is contained in:
Jason Wen
2024-07-20 18:32:50 -04:00
parent 5facba229a
commit 93226506fa
4 changed files with 15 additions and 24 deletions
+9
View File
@@ -43,6 +43,15 @@ def create_button_events(cur_btn: int, prev_btn: int, buttons_dict: dict[int, ca
return events
def create_cancel_event(long_enabled: bool, prev_long_enabled: bool) -> list[capnp.lib.capnp._DynamicStructBuilder]:
events: list[capnp.lib.capnp._DynamicStructBuilder] = []
if not long_enabled and prev_long_enabled:
events.append(car.CarState.ButtonEvent(pressed=True,
type=ButtonType.cancel))
return events
def create_mads_event(mads_enabled: bool, prev_mads_enabled: bool,
mads_event_lock: bool) -> tuple[list[capnp.lib.capnp._DynamicStructBuilder], bool]:
events: list[capnp.lib.capnp._DynamicStructBuilder] = []
+2 -8
View File
@@ -1,6 +1,6 @@
from cereal import car
from panda import Panda
from openpilot.selfdrive.car import create_button_events, get_safety_config, create_mads_event
from openpilot.selfdrive.car import create_button_events, get_safety_config, create_mads_event, create_cancel_event
from openpilot.selfdrive.car.interfaces import CarInterfaceBase
from openpilot.selfdrive.car.nissan.values import CAR
@@ -53,15 +53,9 @@ class CarInterface(CarInterfaceBase):
ret, self.CS = self.get_sp_common_state(ret, self.CS, gap_button=bool(self.CS.distance_button))
# CANCEL
if self.CS.out.cruiseState.enabled and not ret.cruiseState.enabled:
be = car.CarState.ButtonEvent.new_message()
be.pressed = True
be.type = ButtonType.cancel
self.CS.button_events.append(be)
ret.buttonEvents = [
*self.CS.button_events,
*create_cancel_event(ret.cruiseState.enabled, self.CS.out.cruiseState.enabled)
*create_mads_event(self.CS.madsEnabled, self.CS.out.madsEnabled, self.mads_event_lock) # MADS BUTTON
]
+2 -8
View File
@@ -1,6 +1,6 @@
from cereal import car
from panda import Panda
from openpilot.selfdrive.car import get_safety_config, create_mads_event
from openpilot.selfdrive.car import get_safety_config, create_mads_event, create_cancel_event
from openpilot.selfdrive.car.disable_ecu import disable_ecu
from openpilot.selfdrive.car.interfaces import CarInterfaceBase
from openpilot.selfdrive.car.subaru.values import CAR, GLOBAL_ES_ADDR, SubaruFlags, SubaruFlagsSP
@@ -143,15 +143,9 @@ class CarInterface(CarInterfaceBase):
ret, self.CS = self.get_sp_common_state(ret, self.CS)
# CANCEL
if self.CS.out.cruiseState.enabled and not ret.cruiseState.enabled:
be = car.CarState.ButtonEvent.new_message()
be.pressed = True
be.type = ButtonType.cancel
self.CS.button_events.append(be)
ret.buttonEvents = [
*self.CS.button_events,
*create_cancel_event(ret.cruiseState.enabled, self.CS.out.cruiseState.enabled),
*create_mads_event(self.CS.madsEnabled, self.CS.out.madsEnabled, self.mads_event_lock) # MADS BUTTON
]
+2 -8
View File
@@ -5,7 +5,7 @@ from panda import Panda
from panda.python import uds
from openpilot.selfdrive.car.toyota.values import Ecu, CAR, DBC, ToyotaFlags, ToyotaFlagsSP, CarControllerParams, TSS2_CAR, RADAR_ACC_CAR, NO_DSU_CAR, \
MIN_ACC_SPEED, EPS_SCALE, UNSUPPORTED_DSU_CAR, NO_STOP_TIMER_CAR, ANGLE_CONTROL_CAR
from openpilot.selfdrive.car import create_button_events, get_safety_config, create_mads_event
from openpilot.selfdrive.car import create_button_events, get_safety_config, create_mads_event, create_cancel_event
from openpilot.selfdrive.car.disable_ecu import disable_ecu
from openpilot.selfdrive.car.interfaces import CarInterfaceBase
@@ -244,15 +244,9 @@ class CarInterface(CarInterfaceBase):
ret, self.CS = self.get_sp_common_state(ret, self.CS, gap_button=bool(distance_button))
# CANCEL
if self.CS.out.cruiseState.enabled and not ret.cruiseState.enabled:
be = car.CarState.ButtonEvent.new_message()
be.pressed = True
be.type = ButtonType.cancel
self.CS.button_events.append(be)
ret.buttonEvents = [
*ret.buttonEvents,
*create_cancel_event(ret.cruiseState.enabled, self.CS.out.cruiseState.enabled)
*create_mads_event(self.CS.madsEnabled, self.CS.out.madsEnabled, self.mads_event_lock) # MADS BUTTON
]