diff --git a/sunnypilot/selfdrive/controls/lib/speed_limit_controller/speed_limit_controller.py b/sunnypilot/selfdrive/controls/lib/speed_limit_controller/speed_limit_controller.py index 66d6461eb3..ab94e64ca2 100644 --- a/sunnypilot/selfdrive/controls/lib/speed_limit_controller/speed_limit_controller.py +++ b/sunnypilot/selfdrive/controls/lib/speed_limit_controller/speed_limit_controller.py @@ -211,7 +211,6 @@ class SpeedLimitController: def transition_state_from_pre_active(self) -> None: """ Make state transition from preActive state """ - pass def transition_state_from_adapting(self) -> None: """ Make state transition from adapting state """ diff --git a/sunnypilot/selfdrive/controls/lib/speed_limit_controller/speed_limit_resolver.py b/sunnypilot/selfdrive/controls/lib/speed_limit_controller/speed_limit_resolver.py index 98452699b3..43f78087b2 100644 --- a/sunnypilot/selfdrive/controls/lib/speed_limit_controller/speed_limit_resolver.py +++ b/sunnypilot/selfdrive/controls/lib/speed_limit_controller/speed_limit_resolver.py @@ -63,7 +63,7 @@ class SpeedLimitResolver: gps_data = sm[self._gps_location_service] map_data = sm['liveMapDataSP'] - gps_fix_age = time.time() - gps_data.unixTimestampMillis * 1e-3 + gps_fix_age = time.monotonic() - gps_data.unixTimestampMillis * 1e-3 if gps_fix_age > LIMIT_MAX_MAP_DATA_AGE: debug(f'SL: Ignoring map data as is too old. Age: {gps_fix_age}') return @@ -77,7 +77,7 @@ class SpeedLimitResolver: gps_data = sm[self._gps_location_service] map_data = sm['liveMapDataSP'] - distance_since_fix = self._v_ego * (time.time() - gps_data.unixTimestampMillis * 1e-3) + distance_since_fix = self._v_ego * (time.monotonic() - gps_data.unixTimestampMillis * 1e-3) distance_to_speed_limit_ahead = max(0., map_data.speedLimitAheadDistance - distance_since_fix) self._limit_solutions[Source.map_data] = speed_limit diff --git a/sunnypilot/selfdrive/controls/lib/speed_limit_controller/state.py b/sunnypilot/selfdrive/controls/lib/speed_limit_controller/state.py index 8cf5829010..0f1d489ee8 100644 --- a/sunnypilot/selfdrive/controls/lib/speed_limit_controller/state.py +++ b/sunnypilot/selfdrive/controls/lib/speed_limit_controller/state.py @@ -24,7 +24,7 @@ class StateMachine: if events_sp.has(EventNameSP.speedLimitAdapting): self.state = State.adapting elif events_sp.has(EventNameSP.speedLimitActive): - self.state = State.activ + self.state = State.active # ACTIVE elif self.state == State.active: diff --git a/sunnypilot/selfdrive/controls/lib/speed_limit_controller/tests/test_speed_limit_resolver.py b/sunnypilot/selfdrive/controls/lib/speed_limit_controller/tests/test_speed_limit_resolver.py index 0dc5dd585c..62a9329958 100644 --- a/sunnypilot/selfdrive/controls/lib/speed_limit_controller/tests/test_speed_limit_resolver.py +++ b/sunnypilot/selfdrive/controls/lib/speed_limit_controller/tests/test_speed_limit_resolver.py @@ -38,7 +38,7 @@ def setup_sm_mock(mocker: MockerFixture): 'speedLimitAheadDistance': 0., }, mocker) gps_data = create_mock({ - 'unixTimestampMillis': time.time() * 1e3, + 'unixTimestampMillis': time.monotonic() * 1e3, }, mocker) sm_mock = mocker.MagicMock() sm_mock.__getitem__.side_effect = lambda key: { @@ -124,7 +124,7 @@ class TestSpeedLimitResolverValidation: def test_old_map_data_ignored(self, resolver_class, policy, mocker: MockerFixture): resolver = resolver_class(policy) sm_mock = mocker.MagicMock() - sm_mock['gpsLocation'].unixTimestampMillis = (time.time() - 2 * LIMIT_MAX_MAP_DATA_AGE) * 1e3 + sm_mock['gpsLocation'].unixTimestampMillis = (time.monotonic() - 2 * LIMIT_MAX_MAP_DATA_AGE) * 1e3 resolver._get_from_map_data(sm_mock) assert resolver._limit_solutions[Source.map_data] == 0. assert resolver._distance_solutions[Source.map_data] == 0.