Herunterladen Diese Seite drucken

Optelec ClearNote HD Bedienungsanleitung Seite 38

Vorschau ausblenden Andere Handbücher für ClearNote HD:

Werbung

Abarbeiten des Callback-Codes der Heap-Speicher der API-DLL und nicht
der Heap-Speicher des Anwendungsprogrammes aktiv. Aufgrund dieser
Arbeitsweise ist Programmcode innerhalb der Callback zu vermeiden, der
Heap-Speicher freigibt oder anfordert (z.B. new, delete, malloc oder
free).
Im folgenden ein Programmier-Beispiel, das eine Empfangs-Callback verwendet.
#include <AnaGateDllCan.h>
// Definition of a callback which writes incoming CAN data with timestamp to console
void WINAPI MyCallbackEx(AnaInt32 nIdentifier, const char * pcBuffer, AnaInt32 nBufferLen,
{
std::cout << "CAN-ID=" << nIdentifier << ", Data=";
for ( AnaInt32 i = 0; i < nBufferLen; ++i )
{
std::cout << " 0x" << std::hex << int((unsigned char)(pcBuffer[i]));
}
time_t tTime = nSeconds;
struct tm * psLocalTime = localtime(&tTime );
std::cout << " " << std::setw(19) << asctime( psLocalTime ) << " ms(" << std::dec
<< std::setw(3) << nMicroseconds/1000 << "." << nMicroseconds%1000 << ")" << std::endl;
}
int main()
{
AnaInt32 hHandle = 0;
AnaInt32 nRC = 0;
AnaInt32 nRC = CANOpenDevice(&hHandle, TRUE, TRUE, 0, "192.168.1.254", 5000);
if ( nRC == 0 )
{
// deactivate callback
nRC = CANSetCallbackEx( hHandle, MyCallbackEx );
getch();
// deactivate callback
nRC = CANSetCallbackEx( hHandle, 0 );
CANCloseDevice(hHandle);
}
return 0;
}
Bemerkung
Die beiden unterschiedlichen Callback-Funktionen können je nachdem, wie die
aktuelle globalen Zeitstempel-Einstellung (CANSetGlobals) auf dem AnaGate-Gerät
ist, verwendet werden. Es ist zu beachten, dass nur eine der beiden Callback-
Funktionen aktiviert werden kann.
Siehe auch
CANWrite, CANWriteEx
CAN API Funktionen
AnaInt32 nFlags, AnaInt32 hHandle,
AnaInt32 nSeconds, AnaInt32 nMicroseconds)
// wait for keyboard input
29
© 2007-2015 Analytica GmbH

Werbung

loading