C

Qt Quick Ultralite Automotive Cluster Demo

/****************************************************************************** ** ** Copyright (C) 2020 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Quick Ultralite module. ** ** $QT_BEGIN_LICENSE:COMM$ ** ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see http://www.qt.io/terms-conditions. For further ** information use the contact form at http://www.qt.io/contact-us. ** ** $QT_END_LICENSE$ ** ******************************************************************************/
#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