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
#include "simulator.h"
#include "DemoStatus.h"
void Simulator::tick(SafeRenderer::qint delta)
{
timestamp += delta;
SimulationStep *step = &steps[stepIndex];
if (timestamp > previousValueUpdate + updatePeriod) {
if (currentSpeed < step->targetSpeed) {
currentSpeed += 2;
} else if (currentSpeed > step->targetSpeed) {
currentSpeed--;
}
qul_application_set_speed(currentSpeed);
qul_application_send_value_change_event();
previousValueUpdate = timestamp;
}
if (timestamp > (previousStepUpdate + step->duration)) {
stepIndex = (stepIndex + 1) % stepCount;
const SimulationStep &newStep = steps[stepIndex];
beamsState = newStep.beamsOn;
engineState = newStep.engineOn;
batteryState = newStep.batteryOn;
oilState = newStep.oilOn;
screenFailureState = newStep.screenFailureOn;
qul_application_set_safe_beams_state(beamsState);
qul_application_set_safe_engine_state(engineState);
qul_application_set_safe_battery_state(batteryState);
qul_application_set_safe_oil_state(oilState);
qul_application_set_screen_failure_state(screenFailureState);
qul_application_send_value_change_event();
previousStepUpdate = timestamp;
}
}