Receiving Raw Radar Data
The messages sent by the ARS548 radar are:
Message ID Message Structure Description
See the documentation of each message body or the radar technical documentation for more details.
Raw Radar Data Callback
When a radar data packet is received, SDK passes the message body to the callback function registered by the user.
Example callback function code:
void CALLBACK OnRadarMessage(int nMsgId, const Ars548Msg *pMsg)
{
std::cout << "OnRadarMessage() - nMsgId = " << nMsgId << std::endl;
// Currently radar sends the following 4 message types
Ars548DetectionList *pDetectionList = NULL;
Ars548ObjectList *pObjectList = NULL;
Ars548SensorStatus *pSensorStatus = NULL;
Ars548FilterStatus *pFilterStatus = NULL;
// Based on nMsgId, cast the pMsg pointer to the right type and access the message body.
switch (nMsgId)
{
case MSG_ID_DETECTION_LIST:
pDetectionList = (Ars548DetectionList *)pMsg;
// ... related handling code
break;
case MSG_ID_OBJECT_LIST:
pObjectList = (Ars548ObjectList *)pMsg;
// ... related handling code
break;
case MSG_ID_SENSOR_STATUS:
pSensorStatus = (Ars548SensorStatus *)pMsg;
// ... related handling code
break;
case MSG_ID_FILTER_STATUS:
pFilterStatus = (Ars548FilterStatus *)pMsg;
// ... related handling code
break;
default:
break;
}
}
Receiving Parsed Target Data from SDK
The TargetList data provided by the SDK is parsed from Ars548DetectionList and Ars548ObjectList, and contains information like target horizontal/vertical distance and speed relative to the radar, for easier further processing by users.
Example callback function code:
void CALLBACK OnTargetListCallback(const TargetList *pTargetList)
{
// Determine if Detections or Objects based on TargetType
if (pTargetList->TargetType == TARGET_TYPE_DETECTION)
{
std::cout << "Ars548Dll::OnTargetListCallback() - Num Of Detections: " << pTargetList->NumOfTargets << std::endl;
}
else // TARGET_TYPE_OBJECT
{
std::cout << "Ars548Dll::OnTargetListCallback() - Num Of Objects: " << pTargetList->NumOfTargets << std::endl;
}
}