C
Qt Quick Ultralite Automotive Cluster Demo
// Copyright (C) 2024 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial #ifndef SPEEDLIMITS_H #define SPEEDLIMITS_H #include <stdint.h> #include "Automotive/SpeedLimitValues.h" namespace Simulation { class SpeedLimits { public: SpeedLimits(uint32_t updatePeriod, uint32_t updatePeriodVariation); void update(uint32_t tick); float getCurrentSpeedLimitInKmh() const; Automotive::SpeedLimitValues::Limit getCurrentSpeedLimit() const; void reset(Automotive::SpeedLimitValues::Limit limit = Automotive::SpeedLimitValues::None); private: void calculateNewChangeTime(int32_t variation); void changeSpeedLimit(); const uint32_t _updatePeriod; const uint32_t _updatePeriodVariation; uint32_t _timer; uint32_t _timeToChange; Automotive::SpeedLimitValues::Limit _limit; }; } // namespace Simulation #endif // SPEEDLIMITS_H