mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-02-19 03:03:57 +08:00
show MADS updates
This commit is contained in:
@@ -194,6 +194,7 @@ struct OnroadEvent @0xc4fa6047f024e718 {
|
||||
silentBrakeHold @157;
|
||||
silentWrongGear @158;
|
||||
silentReverseGear @159;
|
||||
madsStatusChanged @160;
|
||||
|
||||
soundsUnavailableDEPRECATED @47;
|
||||
}
|
||||
|
||||
@@ -356,6 +356,13 @@ def personality_changed_alert(CP: car.CarParams, CS: car.CarState, sm: messaging
|
||||
return NormalPermanentAlert(f"Driving Personality: {personality}", duration=1.5)
|
||||
|
||||
|
||||
def mads_status_changed_alert(CP: car.CarParams, CS: car.CarState, sm: messaging.SubMaster, metric: bool, soft_disable_time: int, personality) -> Alert:
|
||||
ss = sm["selfdriveState"]
|
||||
mads = sm["selfdriveStateSP"].mads
|
||||
lat_active_str = "ON" if mads.active else "OFF"
|
||||
long_active_str = "ON" if ss.active else "OFF"
|
||||
return NormalPermanentAlert(f"Lateral: {lat_active_str} | Longitudinal: {long_active_str}", duration=1.5)
|
||||
|
||||
|
||||
EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = {
|
||||
# ********** events with no alerts **********
|
||||
@@ -1045,6 +1052,10 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = {
|
||||
ET.NO_ENTRY: NoEntryAlert("Reverse Gear"),
|
||||
},
|
||||
|
||||
EventName.madsStatusChanged: {
|
||||
ET.WARNING: mads_status_changed_alert,
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -17,10 +17,13 @@ class ModularAssistiveDrivingSystem:
|
||||
|
||||
self.enabled = False
|
||||
self.active = False
|
||||
self.enabled_prev = False
|
||||
self.active_prev = False
|
||||
self.available = False
|
||||
self.allow_always = False
|
||||
self.selfdrive = selfdrive
|
||||
self.selfdrive.enabled_prev = False
|
||||
self.selfdrive.active_prev = False
|
||||
self.state_machine = StateMachine(self)
|
||||
|
||||
if self.selfdrive.CP.carName == "hyundai":
|
||||
@@ -102,5 +105,10 @@ class ModularAssistiveDrivingSystem:
|
||||
if not self.selfdrive.CP.passive and self.selfdrive.initialized:
|
||||
self.enabled, self.active = self.state_machine.update(self.selfdrive.events)
|
||||
|
||||
# Copy of previous SelfdriveD states for MADS events handling
|
||||
self.selfdrive.enabled_prev = self.selfdrive.enabled
|
||||
# update MADS status events
|
||||
if self.selfdrive.active != self.selfdrive.active_prev or self.active != self.active_prev:
|
||||
self.selfdrive.events.add(EventName.madsStatusChanged)
|
||||
|
||||
# Copy of previous SelfdriveD and MADS states for MADS events handling
|
||||
self.selfdrive.enabled_prev, self.selfdrive.active_prev = self.selfdrive.enabled, self.selfdrive.active
|
||||
self.enabled_prev, self.active_prev = self.enabled, self.active
|
||||
|
||||
Reference in New Issue
Block a user