mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-10-01 06:03:43 +08:00
show MADS updates
This commit is contained in:
@@ -194,6 +194,7 @@ struct OnroadEvent @0xc4fa6047f024e718 {
|
|||||||
silentBrakeHold @157;
|
silentBrakeHold @157;
|
||||||
silentWrongGear @158;
|
silentWrongGear @158;
|
||||||
silentReverseGear @159;
|
silentReverseGear @159;
|
||||||
|
madsStatusChanged @160;
|
||||||
|
|
||||||
soundsUnavailableDEPRECATED @47;
|
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)
|
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: dict[int, dict[str, Alert | AlertCallbackType]] = {
|
||||||
# ********** events with no alerts **********
|
# ********** events with no alerts **********
|
||||||
@@ -1045,6 +1052,10 @@ EVENTS: dict[int, dict[str, Alert | AlertCallbackType]] = {
|
|||||||
ET.NO_ENTRY: NoEntryAlert("Reverse Gear"),
|
ET.NO_ENTRY: NoEntryAlert("Reverse Gear"),
|
||||||
},
|
},
|
||||||
|
|
||||||
|
EventName.madsStatusChanged: {
|
||||||
|
ET.WARNING: mads_status_changed_alert,
|
||||||
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+10
-2
@@ -17,10 +17,13 @@ class ModularAssistiveDrivingSystem:
|
|||||||
|
|
||||||
self.enabled = False
|
self.enabled = False
|
||||||
self.active = False
|
self.active = False
|
||||||
|
self.enabled_prev = False
|
||||||
|
self.active_prev = False
|
||||||
self.available = False
|
self.available = False
|
||||||
self.allow_always = False
|
self.allow_always = False
|
||||||
self.selfdrive = selfdrive
|
self.selfdrive = selfdrive
|
||||||
self.selfdrive.enabled_prev = False
|
self.selfdrive.enabled_prev = False
|
||||||
|
self.selfdrive.active_prev = False
|
||||||
self.state_machine = StateMachine(self)
|
self.state_machine = StateMachine(self)
|
||||||
|
|
||||||
if self.selfdrive.CP.carName == "hyundai":
|
if self.selfdrive.CP.carName == "hyundai":
|
||||||
@@ -102,5 +105,10 @@ class ModularAssistiveDrivingSystem:
|
|||||||
if not self.selfdrive.CP.passive and self.selfdrive.initialized:
|
if not self.selfdrive.CP.passive and self.selfdrive.initialized:
|
||||||
self.enabled, self.active = self.state_machine.update(self.selfdrive.events)
|
self.enabled, self.active = self.state_machine.update(self.selfdrive.events)
|
||||||
|
|
||||||
# Copy of previous SelfdriveD states for MADS events handling
|
# update MADS status events
|
||||||
self.selfdrive.enabled_prev = self.selfdrive.enabled
|
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