/******************************************************************************** * 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); }; }; };