コールバックルーチンの関数登録の流れ
・コールバックルーチンの関数プロトタイプ定義の確認
・コールバックルーチンの作成
・コールバックルーチンの設定
以下、受信のコールバック関数の使い方の説明しています。
これらの具体的なコーディング内容につきましては、サンプルプログラムをご参照ください。
コールバック関数の関数プロトタイプ定義の確認
Pythonでコールバック関数を扱うには、関数プロトタイプの定義が必要です。
各コールバックルーチン用の関数プロトタイプ宣言は、ccan.pyファイル中に記述されています。
関数プロトタイプの内容を確認ください。
受信の場合
PCAN_EVENT_CALLBACK = ctypes.WINFUNCTYPE(None,
ctypes.c_short, ctypes.wintypes.WPARAM, ctypes.wintypes.LPARAM,
ctypes.c_void_p)
コールバック関数の作成
コールバック関数は次の書式になります。関数名は任意です。
受信の場合
def CallBackProc(id, wParam, lParam, Param):
・・・・・
retrun
pcan_callback = ccan.PCAN_EVENT_CALLBACK(CallBackProc)
コールバック関数の設定
CanInit関数で取得したidを利用し、作成したコールバックルーチンを以下のように設定します。
受信の場合
lret.value = ccan.CanNotifyEvent(id, channel_no, ccan.CCAN_EVENT_RECEIVE, pcan_callback, ctypes.byref(receive_no))