E
Hallo
zunächst vielen Dank für Eure Hilfe. Das Problem ist gelöst.
// Um eine Methode aus einer Klasse als CallBack-Funktion zu definieren
// muss eine Hilfesfunktion generiert werden.
static int __stdcall _isrHelper(Void* pArgs, Void* pContext );
// CallBack-Funktion
Error userCallBack(TStatus_und_Eingabe_IOPort* pContext);
Die Funktionen haben nachstehende Funktionalität:
int __stdcall TStatus_und_Eingabe_IOPort::_isrHelper(
Void* pArgs, Void* pContext )
{
TStatus_und_Eingabe_IOPort* pInterruptHandler = (TStatus_und_Eingabe_IOPort*)pArgs;
TStatus_und_Eingabe_IOPort* pInterruptContext = (TStatus_und_Eingabe_IOPort*)pContext;
return pInterruptHandler->userCallBack( pInterruptContext );
}
// CallBack-Funktion
Error TStatus_und_Eingabe_IOPort::userCallBack(
TStatus_und_Eingabe_IOPort* pContext )
{
if (OnKIT_Timer) // Ist das Ereignis belegt
OnKIT_Timer(this); // Wer erzeugt das Ereignis
return 0;
}
Der CallBack-Handler wie folgt generiert:
error = KS_createCallBack(
&hCallBack, // Objekthandle
// Zeiger auf CallBack-Funktion
&TStatus_und_Eingabe_IOPort::_isrHelper,
this, // Zeiger auf Referenzdaten
0, // Flags
26 ); // Prio, für Kernel-Ebene nicht notwendig
Evi48