interessiert ist. Für Werte, an denen kein Interesse besteht, kann der jeweilige
Parameter auf NULL zeigen.
Über den Parameter pnAvailMsgs liefert die Funktion die Anzahl der nach dem Aufruf
noch in der Queue verfügbaren Telegramme. Falls die Queue kein Telegramm enthält,
das zurück geliefert werden könnte, wird dieser Wert auf -1 gesetzt. In diesem Fall
sind alle Telegramm-Parameter ungültig.
Im folgenden ein Programmier-Beispiel, das ein Telegramm aus dem Empfangspuffer
ausliest.
#include <AnaGateDllCan.h>
int main()
{
AnaInt32 hHandle;
AnaInt32 nRC = CANOpenDevice(&hHandle, TRUE, TRUE, 0, "192.168.1.254", 5000);
if ( nRC == 0 )
{
nRC = CANSetMaxSizePerQueue( hHandle, 1000 );
// wait so a received telegram can be queued
Sleep( 5 );
AnaUInt32 nAvailMsgs;
AnaInt32 nID;
char acData[8];
AnaUInt8 nDataLen;
AnaInt32 nFlags;
AnaInt32 nSeconds, nMicroseconds;
nRC = CANGetMessage( hHandle, &nAvailMsgs, &nID, acData, &nDataLen,
if( nAvailMsgs != (AnaUInt32)(-1) && nAvailMsgs > 0 )
{
// ... now do something
}
CANCloseDevice(hHandle);
}
return 0;
}
Bemerkung
Empfangene Telegramme werden nur gepuffert, wenn keine Callback-Funktion
mittels CANSetCallback oder CANSetCallbackEx eingerichtet wurde. Sobald eine
Callback-Funktion aktiviert ist, können zuvor gepufferte Telegramme weiterhin
mit CANGetMessage ausgelesen werden. Danach eintreffende Telegramme werden
jedoch nicht mehr gepuffert.
Siehe auch
CANSetCallback, CANSetCallbackEx
CANSetMaxSizePerQueue
CAN API Funktionen
&nFlags, &nSeconds, &nMicroseconds );
33
© 2007-2015 Analytica GmbH