Files
openvehicle-api/export/interfaces/timer.idl
2026-03-27 14:12:49 +01:00

66 lines
2.2 KiB
Plaintext

/********************************************************************************
* Copyright (c) 2025-2026 ZF Friedrichshafen AG
*
* This program and the accompanying materials are made available under the
* terms of the Apache License Version 2.0 which is available at
* https://www.apache.org/licenses/LICENSE-2.0
*
* SPDX-License-Identifier: Apache-2.0
*
* Contributors:
* Erik Verhoeven - initial API and implementation
********************************************************************************/
#include "core.idl"
/**
* @brief Software Defined Vehicle framework.
*/
module sdv
{
/**
* @brief Core features.
*/
module core
{
/**
* @brief Interface to be implemented by user-defined tasks so that the core::ITaskTimer interface can periodically execute the
* task
*/
interface ITaskExecute
{
/**
* @brief Execute a task. This function is triggered by the task timer service.
*/
void Execute();
};
/**
* @brief Interface to execute tasks periodically
*/
interface ITaskTimer
{
/**
* @brief Method to execute the user-defined task periodically.
* @param[in] uiPeriod The time period in milliseconds in which the task should executed.
* @param[in] pTask Interface to the task object exposing the ITaskExecute interface. The object must be kept alive
* until the timer has been destroyed.
* @return Returns an interface to the task timer object. Use sdv::IObjectDestroy to terminate the timer.
*/
IInterfaceAccess CreateTimer(in uint32 uiPeriod, in IInterfaceAccess pTask);
};
/**
* @brief Interface to set the simulation time between 2 simulation steps.
*/
interface ITimerSimulationStep
{
/**
* @brief Method to set the time which has past from the last simulation step.
* @param[in] uiSimulationStep the time in microseconds which has past from the last simulation step.
*/
void SimulationStep(in uint64 uiSimulationStep);
};
};
};