Python

コールバックルーチンの関数登録の流れ

・コールバックルーチンの関数プロトタイプ定義の確認
・コールバックルーチンの作成
・コールバックルーチンの設定
 

以下、受信のコールバック関数の使い方の説明しています。
これらの具体的なコーディング内容につきましては、サンプルプログラムをご参照ください。

 

コールバック関数の関数プロトタイプ定義の確認

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))