Python

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

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

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

カウンタエラーの通知、キャリー/ボローの通知、タイマーの通知、サンプリング停止の通知、
指定個数サンプリング完了の通知 のコールバック関数については、
ccnt.pyファイル中の記述を参照した上で、プロトタイプ関数を読替え参考にしてください。
 

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

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

カウント一致の通知の場合

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

コールバック関数の作成

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

カウント一致の通知の場合

def count_call_back(dev_id, wparam, lparam, param):
    ・・・・・
    retrun
 
pcount_callback = ccnt.PCNT_MATCH_CALLBACK(count_call_back)
 

コールバック関数の設定

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

カウント一致の通知の場合

lret.value = ccnt.CntCountUpCallbackProc(cnt_id, pcount_callback, "Match Count")