variables
{
int trackingId;
distObjRef ::_ADAS::DataModel::IDetectedMovingObject detObj;
char detObjName [100];
char detObjNameWithAdasPrefix [100];
}
on message SampleFrame1.sampleFrame1
{
radar.BeginUpdate.Call();
trackingId = sampleFrame1.Id;
memcpy(detObjName, radar.GetOrCreateDetectedObject.Call_Phys(trackingId, _ADAS::DataModel::EDetectedObjectType::IDetectedMovingObject), elCount(radar.GetOrCreateDetectedObject.Call_Phys(trackingId, _ADAS::DataModel::EDetectedObjectType:: IDetectedMovingObject)));
snprintf(detObjNameWithAdasPrefix, elcount(detObjNameWithAdasPrefix),"ADAS::%s", detObjName);
detObj = (distObjRef _ADAS::DataModel::IDetectedMovingObject) lookupDistObj(detObjNameWithAdasPrefix);
if(detObj.IsValid)
{
$detObj.moving_object.baseInfo.position.x.impl = sampleFrame1.pos.x;
$detObj.moving_object.baseInfo.position.y.impl = sampleFrame1.pos.y;
$detObj.moving_object.baseInfo.position.z.impl = sampleFrame1.pos.z;
}
}
on message SampleFrame2.sampleFrame2
{
memcpy(detObjName, radar.GetDetectedObjectByTrackingId.Call(trackingId), elCount(radar.GetDetectedObjectByTrackingId.Call(trackingId)));
snprintf(detObjNameWithAdasPrefix, elcount(detObjNameWithAdasPrefix),"ADAS::%s", detObjName);
detObj = (distObjRef _ADAS::DataModel::IDetectedMovingObject) lookupDistObj(detObjNameWithAdasPrefix);
if (detObj.IsValid)
{
$detObj.moving_object.baseInfo.dimension.height.impl = sampleFrame2.dim.height;
$detObj.moving_object.baseInfo.dimension.width.impl = sampleFrame2.dim.width;
$detObj.moving_object.baseInfo.dimension.length.impl = sampleFrame2.dim.length;
}
radar.SetDetectedObjectCompleted.Call(trackingId, true);
// alternative: Set all detected objects for this sensor completed
// radar.SetDetectedObjectsCompleted.Call(true);
radar.Update.Call();
}
on fctCalled ADAS::radar.OnDetectedObjectUpdate
{
if(this.detObj.header.trackingId == trackingId)
{
// Possibility to set values manually
this.detObj.header.existence_probability.PhysValue = 50.0;
}
}