# null

# TestWaitForADASGroundTruthObjectDistance

[Valid for](../../../Shared/FeatureAvailability.md): CANoe DE

## Function Syntax

```plaintext
long TestWaitForADASGroundTruthObjectDistance (dword overUnder, float threshold, int64 movingObjectId, long aTimeout); // form 1
long TestWaitForADASGroundTruthObjectDistance (dword overUnder, float threshold, int64 movingObjectId, int64 laneId, long aTimeout); // form 2
```

## Description

Waits for the occurrence of the first Moving Object matching the distance conditions passed as arguments. Should the Moving Object not occur before the expiration of the time `aTimeout`, the wait condition is resolved, nevertheless.

## Parameters

* **overUnder**: Specifies if the distance should be over or under the specified value.
* **threshold**: Specified value that determines the maximum or minimum distance.
* **movingObjectId**: GroundTruthId of the Moving Object. Only a Moving Object with this `groundTruthId` triggers the wait condition. A `movingObjectdId` of -1 triggers for every Moving Object.
* **laneId**: Only a Moving Objects in the lane with this `laneId` can trigger the wait condition.
* **aTimeout**: Maximum time that should be waited \[ms]. Transmission of 0: no timeout controlling.

## Return Values

* **-1**: General error, for example, functionality is not available.
* **0**: Resume due to timeout.
* **1**: Resume due to event occurred.

## Example

```plaintext
enum VWaitThreshold
{
  kUnderThreshold = 0,
  kOverThreshold = 1
};

// form 1
if (TestWaitForADASGroundTruthObjectDistance(kUnderThreshold, 50, -1, 1000))
{
  testStepPass("A Moving Object with speed under 50 m is present ");
}
else
{
  testStepFail("Timeout");
}

// form 2
if (TestWaitForADASGroundTruthObjectDistance(kUnderThreshold, 50, 3, 1 , 1000))
{
  testStepPass("A Moving Object with Id 3 on lane 1 with a distance under 50 m is present ");
}
else
{
  testStepFail("Timeout");
}
```
