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