tests: add overriding to state machine test (#24131)

* add overriding to state machine test

* overriding should consider soft disable too
pull/24138/head
Shane Smiskol 3 years ago committed by GitHub
parent a953d8222d
commit d7a708d6da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      selfdrive/controls/controlsd.py
  2. 7
      selfdrive/controls/tests/test_state_machine.py

@ -479,7 +479,11 @@ class Controls:
# OVERRIDING # OVERRIDING
elif self.state == State.overriding: elif self.state == State.overriding:
if not self.events.any(ET.OVERRIDE): if self.events.any(ET.SOFT_DISABLE):
self.state = State.softDisabling
self.soft_disable_timer = int(SOFT_DISABLE_TIME / DT_CTRL)
self.current_alert_types.append(ET.SOFT_DISABLE)
elif not self.events.any(ET.OVERRIDE):
self.state = State.enabled self.state = State.enabled
else: else:
self.current_alert_types.append(ET.OVERRIDE) self.current_alert_types.append(ET.OVERRIDE)

@ -12,11 +12,10 @@ State = log.ControlsState.OpenpilotState
# The event types that maintain the current state # The event types that maintain the current state
MAINTAIN_STATES = {State.enabled: None, State.disabled: None, State.softDisabling: ET.SOFT_DISABLE, MAINTAIN_STATES = {State.enabled: None, State.disabled: None, State.softDisabling: ET.SOFT_DISABLE,
State.preEnabled: ET.PRE_ENABLE} State.preEnabled: ET.PRE_ENABLE, State.overriding: ET.OVERRIDE}
ALL_STATES = tuple((state for state in State.schema.enumerants.values() if ALL_STATES = tuple(State.schema.enumerants.values())
state != State.overriding)) # TODO: remove overriding exception
# The event types checked in DISABLED section of state machine # The event types checked in DISABLED section of state machine
ENABLE_EVENT_TYPES = (ET.ENABLE, ET.PRE_ENABLE) ENABLE_EVENT_TYPES = (ET.ENABLE, ET.PRE_ENABLE, ET.OVERRIDE)
def make_event(event_types): def make_event(event_types):

Loading…
Cancel
Save