clear no entry alerts if engaged (#23559)
* clear no entry alerts if engaged * fix testpull/23562/head
parent
3f89834e4e
commit
59894a6666
|
@ -611,10 +611,15 @@ class Controls:
|
|||
if hudControl.rightLaneDepart or hudControl.leftLaneDepart:
|
||||
self.events.add(EventName.ldw)
|
||||
|
||||
clear_event = ET.WARNING if ET.WARNING not in self.current_alert_types else None
|
||||
clear_event_types = set()
|
||||
if ET.WARNING not in self.current_alert_types:
|
||||
clear_event_types.add(ET.WARNING)
|
||||
if self.enabled:
|
||||
clear_event_types.add(ET.NO_ENTRY)
|
||||
|
||||
alerts = self.events.create_alerts(self.current_alert_types, [self.CP, self.sm, self.is_metric, self.soft_disable_timer])
|
||||
self.AM.add_many(self.sm.frame, alerts)
|
||||
current_alert = self.AM.process_alerts(self.sm.frame, clear_event)
|
||||
current_alert = self.AM.process_alerts(self.sm.frame, clear_event_types)
|
||||
if current_alert:
|
||||
hudControl.visualAlert = current_alert.visual_alert
|
||||
|
||||
|
|
|
@ -47,13 +47,13 @@ class AlertManager:
|
|||
min_end_frame = entry.start_frame + alert.duration
|
||||
entry.end_frame = max(frame + 1, min_end_frame)
|
||||
|
||||
def process_alerts(self, frame: int, clear_event_type=None) -> Optional[Alert]:
|
||||
def process_alerts(self, frame: int, clear_event_types: set) -> Optional[Alert]:
|
||||
current_alert = AlertEntry()
|
||||
for v in self.alerts.values():
|
||||
if not v.alert:
|
||||
continue
|
||||
|
||||
if clear_event_type and v.alert.event_type == clear_event_type:
|
||||
if v.alert.event_type in clear_event_types:
|
||||
v.end_frame = -1
|
||||
|
||||
# sort by priority first and then by start_frame
|
||||
|
|
|
@ -34,7 +34,7 @@ class TestAlertManager(unittest.TestCase):
|
|||
for frame in range(duration+10):
|
||||
if frame < add_duration:
|
||||
AM.add_many(frame, [alert, ])
|
||||
current_alert = AM.process_alerts(frame)
|
||||
current_alert = AM.process_alerts(frame, {})
|
||||
|
||||
shown = current_alert is not None
|
||||
should_show = frame <= show_duration
|
||||
|
|
Loading…
Reference in New Issue