Creating Callback Routine
Creating Callback Function
The callback function has the following format. You can specify any name for this function.
public void CallBackProc(short Id, int wParam, int lParam, void *Param);
Unsafe context is required for any operation involving pointers.
Add the unsafe keyword to the created callback routine.
unsafe public void CallBackProc(short Id, int wParam, int lParam, void *Param)
{
.
.
.
Using Delegate
In Visual C#, please use delegate to handle a function pointer.
The delegate declarations for each callback routine are written in the CdioCs.cs file.
Trigger Monitor |
PTRGCALLBACK |
Interrupt Input |
PINTCALLBACK |
Registering Callback Function
Please use the following functions to register callback functions.
Trigger Monitor |
DioSetTrgCallBackProc |
Interrupt Input |
DioSetInterruptCallBackProc |
Flow of Registering Callback Function
.Initializing delegate
.To prevent the garbage collector from moving the delegate used for interrupt processing, get the GCHandle
.Get a stable pointer to the delegate used for interrupt processing
.Register the retrieved stable pointer by using functions such as DioSetInterruptCallBackProc function
.Release the GCHandle for the delegate used for interrupt processing, when it become unnecessary (for example, when the application terminates)
For the details of coding, please refer to sample programs and Note of Using Visual C#.