受信データがある場合に通知します。
Ret = CanNotifyEvent ( Id , ChannelNo , EventType , CallBackProc , Param)
Id
[ C: short ] [ Python: ctypes.c_short ]
CanInitで取得したデバイスIDを指定します。
ChannelNo
[ C: unsigned short ] [ Python: ctypes.c_ushort ]
チャネル番号を指定します。
EventType
[ C: unsigned short ] [ Python: ctypes.c_ushort ]
イベントタイプを指定します。
定義 |
値 |
意味 |
CCAN_EVENT_RECEIVE |
0x01 |
受信イベント |
CallBackProc
[ C : PCAN_EVENT_CALLBACK ] [ Python: PCAN_EVENT_CALLBACK ]
コールバック関数ポインタを指定します。
コールバック関数は関数ポインタで指定しますが、指定方法は言語により 異なりますので、注意してください。
Param [
C: void * ] [ Python: ctypes.c_void_p ]
コールバック用追加パラメータを指定します。
Ret [ C: long ] [ Python: ctypes.c_long ]
定義 |
戻り値 |
内容 |
CAN_ERR_SUCCESS |
0 |
正常終了 |
CAN_ERR_DLL_INVALID_ID |
10001 |
無効なIDが指定されました。 |
CAN_ERR_DLL_CALL_DRIVER |
10002 |
ドライバを呼び出せません(ioctlに失敗)。 |
CAN_ERR_DLL_EVENT_TYPE |
10300 |
イベントタイプが指定可能範囲外です。 |
CAN_ERR_SYS_CH_NO |
20101 |
チャネル番号が設定可能範囲外です |
その他のエラー(参照:エラーコード詳細)
なし
この関数を使用してコールバック関数の登録を行うことで、イベントが発生した際にコールバック関数が呼び出されます。
ChannelNo = 1に、メッセージ受信(CCAN_EVENT_RECEIVE)した際、呼び出されるコールバック関数を登録します。
C |
long Ret; |
Python |
Ret = ctypes.long() |
イベント通知コールバックの形式です。
void CallBackProc ( Id , Message , wParam , lParam , Param )
Id
[ C: short ] [ Python: ctypes.c_short ]
イベント発生させた対象デバイスのデバイスIDがドライバーから渡されます。
Message
[C: short ] [ Python: ctypes.c_short ]
コールバック関数呼び出しの原因となるメッセージ番号が渡されます。
定義 |
値 |
意味 |
CCAN_EVENT_RECEIVE |
0x01 |
受信イベント |
wParam [C:
int] [Python: ctypes.c_int]
ドライバからパラメータが渡されます。現在は使用しません。
lParam [C:
int] [Python: ctypes.c_int]
受信データあるチャネル番号が渡されます。
Param [C:
void *] [Python: ctypes.c_void_p]
CanNotifyEvent 関数で指定したパラメータが渡されます。
パラメータにNULLが指定された場合、ここにはNULLが格納されます。
なし