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 CcntCs.cs file.
Count Match Notification |
PCOUNTUPCALLBACK |
Counter Error Notification |
PCOUNTERERRORCALLBACK |
Carry/Borrow Notification |
PCARRYBORROWCALLBACK |
Timer Notification |
PTIMERCALLBACK |
Sampling Stop Notification |
PSAMPLINGSTOPCALLBACK |
Specified Time Sampling Completion |
PSAMPLINGCOUNTCALLBACK |
Registering Callback Function
Please use the following functions to register callback functions.
Count Match Notification |
|
Counter Error Notification |
|
Carry/Borrow Notification |
|
Timer Notification |
|
Sampling Stop Notification |
|
Specified Time Sampling Completion |
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 CntCountUpCallbackProc 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#.