CanNotifyEvent


機能

受信データがある場合に通知します。

書式

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 ]
イベントタイプを指定します。

定義


[Hex]

意味

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 ]

定義

戻り値
[Dec]

内容

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;
Ret = CanNotifyEvent ( Id , 1 , CCAN_EVENT_RECEIVE , CallBackProc , NULL );
 

Python

Ret = ctypes.long()
Ret.value = ccan.CanNotifyEvent ( Id , 1 , CCAN_EVENT_RECEIVE , CallBackProc , 0 )

関連項目

CanStopNotifyEvent


PCAN_EVENT_CALLBACK

機能

イベント通知コールバックの形式です。 

書式

void CallBackProc ( Id , Message , wParam , lParam , Param )

引数

Id [ C: short ] [ Python: ctypes.c_short ]
イベント発生させた対象デバイスのデバイスIDがドライバーから渡されます。

Message [C:  short ] [ Python: ctypes.c_short ]
コールバック関数呼び出しの原因となるメッセージ番号が渡されます。

定義


[Dec]

意味

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が格納されます。

戻り値

なし