Python

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

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

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

トリガ監視のコールバック関数については、cdio.pyファイル中の記述を参照した上で、プロトタイプ関数を読替え参考にしてください。
 

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

Pythonでコールバック関数を扱うには、関数プロトタイプの定義が必要です。
各コールバックルーチン用の関数プロトタイプ宣言は、cdio.pyファイル中に記述されています。
関数プロトタイプの内容を確認ください。

割り込み入力の場合

PDIO_INT_CALLBACK = ctypes.WINFUNCTYPE(None,
                                       ctypes.c_short, ctypes.wintypes.WPARAM,
                                       ctypes.wintypes.LPARAM, ctypes.c_void_p)
 

コールバック関数の作成

コールバック関数は次の書式になります。関数名は任意です。

割り込み入力の場合

def int_callback(dev_id, wparam, lparam, param):
    ・・・・・
    retrun
 
pint_callback = cdio.PDIO_INT_CALLBACK(int_callback)
 

コールバック関数の設定

DioInit関数で取得したdio_idを利用し、作成したコールバックルーチンを以下のように設定します。

割り込み入力の場合

lret = cdio.DioSetInterruptCallBackProc(dio_id, pint_callback, 0)