From 9810b10c49d66a163f0e3ce082dcfc086b877d8f Mon Sep 17 00:00:00 2001 From: DevTekVE Date: Wed, 31 Jul 2024 16:31:51 +0200 Subject: [PATCH 1/4] [SL] Enable sunnylink by default (#366) Enable Sunnylink by default Sunnylink was previously conditionally enabled based on build metadata. This change ensures that Sunnylink is enabled by default, facilitating immediate access for all builds. --- system/manager/manager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/manager/manager.py b/system/manager/manager.py index 0f34a5e57f..8169617302 100755 --- a/system/manager/manager.py +++ b/system/manager/manager.py @@ -111,7 +111,7 @@ def manager_init() -> None: ("OsmDownloadedDate", "0"), ("OSMDownloadProgress", "{}"), ("SidebarTemperatureOptions", "0"), - ("SunnylinkEnabled", "0" if (build_metadata.release_channel or build_metadata.release_sp_channel) else "1"), + ("SunnylinkEnabled", "1"), ("SunnylinkDongleId", f"{UNREGISTERED_SUNNYLINK_DONGLE_ID}"), ("CustomDrivingModel", "0"), ("DrivingModelGeneration", "4"), From b3926faebb00a8c571338aedec081191a8e28cfb Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Wed, 31 Jul 2024 14:41:17 -0800 Subject: [PATCH 2/4] Revert "MADS: Map cruise main and lateral buttons to button events" (#372) Revert "MADS: Map cruise main and lateral buttons to button events (#361)" This reverts commit 4d7afe3a7bbcd4f31ee309a6aa2f5db93367daae. --- selfdrive/car/chrysler/interface.py | 3 +-- selfdrive/car/ford/interface.py | 3 +-- selfdrive/car/gm/interface.py | 4 +--- selfdrive/car/honda/interface.py | 2 +- selfdrive/car/hyundai/interface.py | 14 ++++++++------ selfdrive/car/mazda/interface.py | 8 +++++--- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/selfdrive/car/chrysler/interface.py b/selfdrive/car/chrysler/interface.py index f4881dd363..d4911375e7 100755 --- a/selfdrive/car/chrysler/interface.py +++ b/selfdrive/car/chrysler/interface.py @@ -94,7 +94,6 @@ class CarInterface(CarInterfaceBase): self.sp_update_params() self.CS.button_events.extend(create_button_events(self.CS.distance_button, self.CS.prev_distance_button, {1: ButtonType.gapAdjustCruise})) - self.CS.button_events.extend(create_button_events(self.CS.lkas_enabled, self.CS.prev_lkas_enabled, {1: ButtonType.altButton1})) self.CS.mads_enabled = self.get_sp_cruise_main_state(ret, self.CS) @@ -109,7 +108,7 @@ class CarInterface(CarInterfaceBase): if self.enable_mads: if not self.CS.prev_mads_enabled and self.CS.mads_enabled: self.CS.madsEnabled = True - if any(b.type == ButtonType.altButton1 and b.pressed for b in self.CS.button_events): + if self.CS.prev_lkas_enabled != 1 and self.CS.lkas_enabled == 1: self.CS.madsEnabled = not self.CS.madsEnabled self.CS.lkas_disabled = not self.CS.lkas_disabled self.CS.madsEnabled = self.get_acc_mads(ret.cruiseState.enabled, self.CS.accEnabled, self.CS.madsEnabled) diff --git a/selfdrive/car/ford/interface.py b/selfdrive/car/ford/interface.py index b0a1c15f34..18dd7b4fa3 100644 --- a/selfdrive/car/ford/interface.py +++ b/selfdrive/car/ford/interface.py @@ -75,7 +75,6 @@ class CarInterface(CarInterfaceBase): self.sp_update_params() self.CS.button_events.extend(create_button_events(self.CS.distance_button, self.CS.prev_distance_button, {1: ButtonType.gapAdjustCruise})) - self.CS.button_events.extend(create_button_events(self.CS.lkas_enabled, self.CS.prev_lkas_enabled, {1: ButtonType.altButton1})) self.CS.mads_enabled = self.get_sp_cruise_main_state(ret, self.CS) @@ -86,7 +85,7 @@ class CarInterface(CarInterfaceBase): if self.enable_mads: if not self.CS.prev_mads_enabled and self.CS.mads_enabled: self.CS.madsEnabled = True - if any(b.type == ButtonType.altButton1 and b.pressed for b in self.CS.button_events): + if not self.CS.prev_lkas_enabled and self.CS.lkas_enabled: self.CS.madsEnabled = not self.CS.madsEnabled self.CS.madsEnabled = self.get_acc_mads(ret.cruiseState.enabled, self.CS.accEnabled, self.CS.madsEnabled) else: diff --git a/selfdrive/car/gm/interface.py b/selfdrive/car/gm/interface.py index 4a1e459722..0e428bc13b 100755 --- a/selfdrive/car/gm/interface.py +++ b/selfdrive/car/gm/interface.py @@ -218,8 +218,6 @@ class CarInterface(CarInterfaceBase): ] distance_button = self.CS.distance_button - self.CS.button_events.extend(create_button_events(self.CS.lkas_enabled, self.CS.prev_lkas_enabled, {1: ButtonType.altButton1})) - self.CS.mads_enabled = self.get_sp_cruise_main_state(ret, self.CS) if not self.CP.pcmCruise: @@ -233,7 +231,7 @@ class CarInterface(CarInterfaceBase): if self.enable_mads: if not self.CS.prev_mads_enabled and self.CS.mads_enabled: self.CS.madsEnabled = True - if any(b.type == ButtonType.altButton1 and b.pressed for b in self.CS.button_events): + if self.CS.prev_lkas_enabled != 1 and self.CS.lkas_enabled == 1: self.CS.madsEnabled = not self.CS.madsEnabled self.CS.madsEnabled = self.get_acc_mads(ret.cruiseState.enabled, self.CS.accEnabled, self.CS.madsEnabled) else: diff --git a/selfdrive/car/honda/interface.py b/selfdrive/car/honda/interface.py index af294a63a7..72ab68647f 100755 --- a/selfdrive/car/honda/interface.py +++ b/selfdrive/car/honda/interface.py @@ -282,7 +282,7 @@ class CarInterface(CarInterfaceBase): if self.enable_mads: if not self.CS.prev_mads_enabled and self.CS.mads_enabled: self.CS.madsEnabled = True - if any(b.type == ButtonType.altButton1 and b.pressed for b in self.CS.button_events): + if self.CS.prev_cruise_setting != 1 and self.CS.cruise_setting == 1: self.CS.madsEnabled = not self.CS.madsEnabled self.CS.madsEnabled = self.get_acc_mads(ret.cruiseState.enabled, self.CS.accEnabled, self.CS.madsEnabled) else: diff --git a/selfdrive/car/hyundai/interface.py b/selfdrive/car/hyundai/interface.py index 72a12b0ba8..dbe0b62895 100644 --- a/selfdrive/car/hyundai/interface.py +++ b/selfdrive/car/hyundai/interface.py @@ -205,9 +205,7 @@ class CarInterface(CarInterfaceBase): ret = self.CS.update(self.cp, self.cp_cam) self.sp_update_params() - self.CS.button_events.extend(create_button_events(self.CS.cruise_buttons[-1], self.CS.prev_cruise_buttons, BUTTONS_DICT)) - self.CS.button_events.extend(create_button_events(self.CS.lfa_enabled, self.CS.prev_lfa_enabled, {1: ButtonType.altButton1})) - self.CS.button_events.extend(create_button_events(self.CS.main_buttons[-1], self.CS.prev_main_buttons, {1: ButtonType.altButton3})) + self.CS.button_events = create_button_events(self.CS.cruise_buttons[-1], self.CS.prev_cruise_buttons, BUTTONS_DICT) self.CS.accEnabled = self.get_sp_v_cruise_non_pcm_state(ret, self.CS.accEnabled, self.CS.button_events, c.vCruise) @@ -216,12 +214,16 @@ class CarInterface(CarInterfaceBase): if ret.cruiseState.available: if not self.CP.pcmCruiseSpeed: - if any(b.type in (ButtonType.altButton3, ButtonType.cancel) and not b.pressed for b in self.CS.button_events): - self.CS.accEnabled = True + if self.CS.prev_main_buttons == 1: + if self.CS.main_buttons[-1] != 1: + self.CS.accEnabled = True + elif self.CS.prev_cruise_buttons == 4: + if self.CS.cruise_buttons[-1] != 4: + self.accEnabled = True if self.enable_mads: if not self.CS.prev_mads_enabled and self.CS.mads_enabled: self.CS.madsEnabled = True - if any(b.type == ButtonType.altButton1 and b.pressed for b in self.CS.button_events): + if self.CS.prev_lfa_enabled != 1 and self.CS.lfa_enabled == 1: self.CS.madsEnabled = not self.CS.madsEnabled self.CS.madsEnabled = self.get_acc_mads(ret.cruiseState.enabled, self.CS.accEnabled, self.CS.madsEnabled) else: diff --git a/selfdrive/car/mazda/interface.py b/selfdrive/car/mazda/interface.py index 2bd4f71c78..9447803ae6 100755 --- a/selfdrive/car/mazda/interface.py +++ b/selfdrive/car/mazda/interface.py @@ -40,8 +40,10 @@ class CarInterface(CarInterfaceBase): self.sp_update_params() # TODO: add button types for inc and dec - self.CS.button_events.extend(create_button_events(self.CS.distance_button, self.CS.prev_distance_button, {1: ButtonType.gapAdjustCruise})) - self.CS.button_events.extend(create_button_events(self.CS.lkas_enabled, self.CS.prev_lkas_enabled, {1: ButtonType.altButton1})) + self.CS.button_events = [ + *self.CS.button_events, + *create_button_events(self.CS.distance_button, self.CS.prev_distance_button, {1: ButtonType.gapAdjustCruise}) + ] self.CS.mads_enabled = self.get_sp_cruise_main_state(ret, self.CS) @@ -52,7 +54,7 @@ class CarInterface(CarInterfaceBase): if self.enable_mads: if not self.CS.prev_mads_enabled and self.CS.mads_enabled: self.CS.madsEnabled = True - if any(b.type == ButtonType.altButton1 and b.pressed for b in self.CS.button_events): + if self.CS.prev_lkas_enabled != self.CS.lkas_enabled: self.CS.madsEnabled = not self.CS.madsEnabled self.CS.madsEnabled = self.get_acc_mads(ret.cruiseState.enabled, self.CS.accEnabled, self.CS.madsEnabled) else: From fa3a0ba747041b1b2a6d43fa61bdeef1ba9ba5df Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Wed, 31 Jul 2024 15:47:34 -0800 Subject: [PATCH 3/4] CI: Update prebuilt repository URL (#374) --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2704a7bb28..f1fe0226cc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -202,7 +202,7 @@ check no source code sent: publish to private gitlab prebuilt: extends: ".publish_base" variables: - GIT_ORIGIN: git@gitlab.com:sunnypilot/public/sunnypilot.git + GIT_ORIGIN: git@gitlab.com:sunnypilot/public/sunnypilot-prebuilts.git rules: - if: $NEW_BRANCH when: on_success From 54d52810642af9eea69e640360ea64993b395c05 Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Thu, 1 Aug 2024 06:26:27 -0800 Subject: [PATCH 4/4] MADS: Map cruise main and lateral buttons to button events (#373) * MADS: Map cruise main and lateral buttons to button events * MADS: Map cruise main and lateral buttons to button events * different style * nah (cherry picked from commit 4d7afe3a7bbcd4f31ee309a6aa2f5db93367daae) * reimplement --- selfdrive/car/chrysler/interface.py | 8 ++++++-- selfdrive/car/ford/interface.py | 8 ++++++-- selfdrive/car/gm/interface.py | 7 ++++++- selfdrive/car/honda/interface.py | 2 +- selfdrive/car/hyundai/interface.py | 16 ++++++++-------- selfdrive/car/mazda/interface.py | 5 +++-- 6 files changed, 30 insertions(+), 16 deletions(-) diff --git a/selfdrive/car/chrysler/interface.py b/selfdrive/car/chrysler/interface.py index d4911375e7..38d7cf0828 100755 --- a/selfdrive/car/chrysler/interface.py +++ b/selfdrive/car/chrysler/interface.py @@ -93,7 +93,11 @@ class CarInterface(CarInterfaceBase): ret = self.CS.update(self.cp, self.cp_cam) self.sp_update_params() - self.CS.button_events.extend(create_button_events(self.CS.distance_button, self.CS.prev_distance_button, {1: ButtonType.gapAdjustCruise})) + self.CS.button_events = [ + *self.CS.button_events, + *create_button_events(self.CS.distance_button, self.CS.prev_distance_button, {1: ButtonType.gapAdjustCruise}), + *create_button_events(self.CS.lkas_enabled, self.CS.prev_lkas_enabled, {1: ButtonType.altButton1}), + ] self.CS.mads_enabled = self.get_sp_cruise_main_state(ret, self.CS) @@ -108,7 +112,7 @@ class CarInterface(CarInterfaceBase): if self.enable_mads: if not self.CS.prev_mads_enabled and self.CS.mads_enabled: self.CS.madsEnabled = True - if self.CS.prev_lkas_enabled != 1 and self.CS.lkas_enabled == 1: + if any(b.type == ButtonType.altButton1 and b.pressed for b in self.CS.button_events): self.CS.madsEnabled = not self.CS.madsEnabled self.CS.lkas_disabled = not self.CS.lkas_disabled self.CS.madsEnabled = self.get_acc_mads(ret.cruiseState.enabled, self.CS.accEnabled, self.CS.madsEnabled) diff --git a/selfdrive/car/ford/interface.py b/selfdrive/car/ford/interface.py index 18dd7b4fa3..080663c9cf 100644 --- a/selfdrive/car/ford/interface.py +++ b/selfdrive/car/ford/interface.py @@ -74,7 +74,11 @@ class CarInterface(CarInterfaceBase): ret = self.CS.update(self.cp, self.cp_cam) self.sp_update_params() - self.CS.button_events.extend(create_button_events(self.CS.distance_button, self.CS.prev_distance_button, {1: ButtonType.gapAdjustCruise})) + self.CS.button_events = [ + *self.CS.button_events, + *create_button_events(self.CS.distance_button, self.CS.prev_distance_button, {1: ButtonType.gapAdjustCruise}), + *create_button_events(self.CS.lkas_enabled, self.CS.prev_lkas_enabled, {1: ButtonType.altButton1}), + ] self.CS.mads_enabled = self.get_sp_cruise_main_state(ret, self.CS) @@ -85,7 +89,7 @@ class CarInterface(CarInterfaceBase): if self.enable_mads: if not self.CS.prev_mads_enabled and self.CS.mads_enabled: self.CS.madsEnabled = True - if not self.CS.prev_lkas_enabled and self.CS.lkas_enabled: + if any(b.type == ButtonType.altButton1 and b.pressed for b in self.CS.button_events): self.CS.madsEnabled = not self.CS.madsEnabled self.CS.madsEnabled = self.get_acc_mads(ret.cruiseState.enabled, self.CS.accEnabled, self.CS.madsEnabled) else: diff --git a/selfdrive/car/gm/interface.py b/selfdrive/car/gm/interface.py index 0e428bc13b..726af2afac 100755 --- a/selfdrive/car/gm/interface.py +++ b/selfdrive/car/gm/interface.py @@ -218,6 +218,11 @@ class CarInterface(CarInterfaceBase): ] distance_button = self.CS.distance_button + self.CS.button_events = [ + *self.CS.button_events, + *create_button_events(self.CS.lkas_enabled, self.CS.prev_lkas_enabled, {1: ButtonType.altButton1}), + ] + self.CS.mads_enabled = self.get_sp_cruise_main_state(ret, self.CS) if not self.CP.pcmCruise: @@ -231,7 +236,7 @@ class CarInterface(CarInterfaceBase): if self.enable_mads: if not self.CS.prev_mads_enabled and self.CS.mads_enabled: self.CS.madsEnabled = True - if self.CS.prev_lkas_enabled != 1 and self.CS.lkas_enabled == 1: + if any(b.type == ButtonType.altButton1 and b.pressed for b in self.CS.button_events): self.CS.madsEnabled = not self.CS.madsEnabled self.CS.madsEnabled = self.get_acc_mads(ret.cruiseState.enabled, self.CS.accEnabled, self.CS.madsEnabled) else: diff --git a/selfdrive/car/honda/interface.py b/selfdrive/car/honda/interface.py index 72ab68647f..af294a63a7 100755 --- a/selfdrive/car/honda/interface.py +++ b/selfdrive/car/honda/interface.py @@ -282,7 +282,7 @@ class CarInterface(CarInterfaceBase): if self.enable_mads: if not self.CS.prev_mads_enabled and self.CS.mads_enabled: self.CS.madsEnabled = True - if self.CS.prev_cruise_setting != 1 and self.CS.cruise_setting == 1: + if any(b.type == ButtonType.altButton1 and b.pressed for b in self.CS.button_events): self.CS.madsEnabled = not self.CS.madsEnabled self.CS.madsEnabled = self.get_acc_mads(ret.cruiseState.enabled, self.CS.accEnabled, self.CS.madsEnabled) else: diff --git a/selfdrive/car/hyundai/interface.py b/selfdrive/car/hyundai/interface.py index dbe0b62895..e2ad23a7b6 100644 --- a/selfdrive/car/hyundai/interface.py +++ b/selfdrive/car/hyundai/interface.py @@ -205,7 +205,11 @@ class CarInterface(CarInterfaceBase): ret = self.CS.update(self.cp, self.cp_cam) self.sp_update_params() - self.CS.button_events = create_button_events(self.CS.cruise_buttons[-1], self.CS.prev_cruise_buttons, BUTTONS_DICT) + self.CS.button_events = [ + *create_button_events(self.CS.cruise_buttons[-1], self.CS.prev_cruise_buttons, BUTTONS_DICT), + *create_button_events(self.CS.lfa_enabled, self.CS.prev_lfa_enabled, {1: ButtonType.altButton1}), + *create_button_events(self.CS.main_buttons[-1], self.CS.prev_main_buttons, {1: ButtonType.altButton3}), + ] self.CS.accEnabled = self.get_sp_v_cruise_non_pcm_state(ret, self.CS.accEnabled, self.CS.button_events, c.vCruise) @@ -214,16 +218,12 @@ class CarInterface(CarInterfaceBase): if ret.cruiseState.available: if not self.CP.pcmCruiseSpeed: - if self.CS.prev_main_buttons == 1: - if self.CS.main_buttons[-1] != 1: - self.CS.accEnabled = True - elif self.CS.prev_cruise_buttons == 4: - if self.CS.cruise_buttons[-1] != 4: - self.accEnabled = True + if any(b.type in (ButtonType.altButton3, ButtonType.cancel) and not b.pressed for b in self.CS.button_events): + self.CS.accEnabled = True if self.enable_mads: if not self.CS.prev_mads_enabled and self.CS.mads_enabled: self.CS.madsEnabled = True - if self.CS.prev_lfa_enabled != 1 and self.CS.lfa_enabled == 1: + if any(b.type == ButtonType.altButton1 and b.pressed for b in self.CS.button_events): self.CS.madsEnabled = not self.CS.madsEnabled self.CS.madsEnabled = self.get_acc_mads(ret.cruiseState.enabled, self.CS.accEnabled, self.CS.madsEnabled) else: diff --git a/selfdrive/car/mazda/interface.py b/selfdrive/car/mazda/interface.py index 9447803ae6..8b113cf4db 100755 --- a/selfdrive/car/mazda/interface.py +++ b/selfdrive/car/mazda/interface.py @@ -42,7 +42,8 @@ class CarInterface(CarInterfaceBase): # TODO: add button types for inc and dec self.CS.button_events = [ *self.CS.button_events, - *create_button_events(self.CS.distance_button, self.CS.prev_distance_button, {1: ButtonType.gapAdjustCruise}) + *create_button_events(self.CS.distance_button, self.CS.prev_distance_button, {1: ButtonType.gapAdjustCruise}), + *create_button_events(self.CS.lkas_enabled, self.CS.prev_lkas_enabled, {1: ButtonType.altButton1}), ] self.CS.mads_enabled = self.get_sp_cruise_main_state(ret, self.CS) @@ -54,7 +55,7 @@ class CarInterface(CarInterfaceBase): if self.enable_mads: if not self.CS.prev_mads_enabled and self.CS.mads_enabled: self.CS.madsEnabled = True - if self.CS.prev_lkas_enabled != self.CS.lkas_enabled: + if any(b.type == ButtonType.altButton1 and b.pressed for b in self.CS.button_events): self.CS.madsEnabled = not self.CS.madsEnabled self.CS.madsEnabled = self.get_acc_mads(ret.cruiseState.enabled, self.CS.accEnabled, self.CS.madsEnabled) else: