C
Qt Safe Monitor: Qt Quick Ultralite Example on Bare-Metal Traveo II
// Copyright (C) 2025 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial
#ifndef SIMULATOR_H
#define SIMULATOR_H
#include <QtSafeRenderer/qsafeglobal.h>
struct SimulationStep
{
SafeRenderer::qint duration;
SafeRenderer::qint targetSpeed;
bool beamsOn;
bool engineOn;
bool batteryOn;
bool oilOn;
bool screenFailureOn;
};
class Simulator
{
public:
Simulator()
: steps()
, timestamp(0)
, previousValueUpdate(0)
, previousStepUpdate(0)
, currentStep(0)
, currentSpeed(0)
, stepIndex(0)
, updatePeriod(100)
, stepCount(sizeof(steps) / sizeof(steps[0]))
, beamsState(true)
, engineState(true)
, batteryState(true)
, oilState(true)
, screenFailureState(false)
{
steps[0].duration = 3000;
steps[0].targetSpeed = 0;
steps[0].engineOn = true;
steps[0].beamsOn = true;
steps[0].batteryOn = true;
steps[0].oilOn = true;
steps[1].duration = 2000;
steps[1].targetSpeed = 0;
steps[2].duration = 5000;
steps[2].targetSpeed = 60;
steps[2].beamsOn = true;
steps[3].duration = 4000;
steps[3].targetSpeed = 70;
steps[3].beamsOn = true;
steps[3].batteryOn = true;
steps[3].screenFailureOn = true;
steps[4].duration = 6000;
steps[4].targetSpeed = 95;
steps[5].duration = 12000;
steps[5].targetSpeed = 0;
steps[5].batteryOn = true;
steps[5].engineOn = true;
steps[5].oilOn = true;
steps[6].duration = 3000;
steps[6].targetSpeed = 0;
}
void tick(SafeRenderer::qint delta);
bool getBeamsState() const { return beamsState; }
bool getEngineState() const { return engineState; }
bool getBatteryState() const { return batteryState; }
bool getOilState() const { return oilState; }
private:
SimulationStep steps[7];
SafeRenderer::qint64 timestamp;
SafeRenderer::qint64 previousValueUpdate;
SafeRenderer::qint64 previousStepUpdate;
SafeRenderer::qint64 currentStep;
SafeRenderer::qint currentSpeed;
SafeRenderer::qint stepIndex;
const SafeRenderer::qint updatePeriod;
const SafeRenderer::qint stepCount;
bool beamsState;
bool engineState;
bool batteryState;
bool oilState;
bool screenFailureState;
};
#endif // SIMULATOR_H