Documentation Index
Fetch the complete documentation index at: https://notevil.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Open topic with navigation
vtsSetTransferCycle
CAPL Functions » VT System » vtsSetTransferCycle
Valid for: CANoe DE • CANoe:lite DE
Function Syntax
long vtsSetTransferCycle (char Target[], double CycleTime);
Description
Sets the cycle time for retrieving the measured value of a system variable from the VT System and writing it to the corresponding system variable.
Parameters
- Target: Name of the system variable/namespace that will be affected by this function call.
- CycleTime: Defines the cycle time in seconds. The only available cycle times are 1 ms (= 0.001), 2 ms, 5 ms, 10 ms, 20 ms, 50 ms, 100 ms, 200 ms, 500 ms, 1 s, 2 s, 5 s, and 10 s. Please note that not all cycle times are available for all measurement values. See possible settings in the VT System configuration dialog. If an invalid cycle time is specified, the call will fail with a feedback value of -1.
Return Values
- 0: Successful call
- -1: Call error, i.e. system variable does not belong to a valid VT System read value or cycle time is invalid.
- -4: Invalid system variable
Example
The following example demonstrates how to change the transfer cycle of a VT System system variable during the measurement. Here the transfer cycle is reduced to 1 ms while the function waits for the input signal to change. This allows for a fast reaction. After the event has occurred the transfer cycle is set back to 100 ms.
CAPL
testfunction WaitForECUSignalChange ()
{
// Change transfer cycle to 1ms to allow fast reaction
vtsSetTransferCycle("VTS::ECU_Dout_1::CurBit", 0.001);
// Wait for digital ECU output to rise
while(1)
{
if(@sysvar::VTS::ECU_Dout_1::CurBit == 1) break;
TestWaitForTimeOut(1);
}
// Change transfer cycle back to 100ms
vtsSetTransferCycle("VTS::ECU_Dout_1::CurBit", 0.1);
}
.NET (C#)
public void WaitForECUSignalChange()
{
// Get VTS interface and digital input channel
IVTSystem vts = VTSystem.Instance;
IVT2516Channel ecuDOut1 = vts.GetChannel("ECU_Dout_1") as IVT2516Channel;
// Change transfer cycle to 1ms to allow fast reaction
ecuDOut1.CurBit.TransferCycle = 0.001;
// Wait for digital ECU output to change
bool initialValue = ecuDOut1.CurBit.Value;
while (ecuDOut1.CurBit.Value == initialValue)
Vector.CANoe.Threading.Execution.Wait(1);
// Change transfer cycle back to 100ms
ecuDOut1.CurBit.TransferCycle = 0.1;
}
SetTransferCycle