C
Qt Quick Ultralite instrument_cluster Example
// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial
#include "simulator.h"
#include "VehicleStatus.h"
void Simulator::tick(int delta)
{
timestamp += delta;
SimulationStep *step = &steps[stepIndex];
tripMeter += currentSpeed * delta / 3600000.0;
if (timestamp > (previousValueUpdate + updatePeriod)) {
if (currentSpeed < step->targetSpeed) {
currentSpeed += 3;
} else if (currentSpeed > step->targetSpeed) {
currentSpeed--;
}
if (step->leftBlinkerOn) {
leftBlinkerState = !leftBlinkerState;
} else {
leftBlinkerState = false;
}
if (step->rightBlinkerOn) {
rightBlinkerState = !rightBlinkerState;
} else {
rightBlinkerState = false;
}
qul_application_set_speed(currentSpeed);
qul_application_set_left_blinker_state(leftBlinkerState);
qul_application_set_right_blinker_state(rightBlinkerState);
qul_application_set_trip_meter(tripMeter);
qul_application_send_value_change_event();
previousValueUpdate = timestamp;
}
if (timestamp > (previousStepUpdate + step->duration)) {
stepIndex++;
stepIndex %= stepCount;
previousStepUpdate = timestamp;
}
}