機能
拡張イベントコールバック関数を設定します。
書式
Ret = SmcWIrqEvent( Id , AxisNo , CallBack , EventMode , EventType , Parameter )
引数
Id [ C, C++: short ] [ Python: ctypes.c_short ]
SmcWInit 関数で取得したデバイスIDを指定します。
AxisNo [ C, C++: short ] [ Python: ctypes.c_short ]
軸番号を指定します。
CallBack [ C, C++: PSMC_IRQ_CALLBACK ] [ Python: PSMC_IRQ_CALLBACK ]
コールバック関数のアドレスを指定します。
NULLを指定するとコールバックによる通知設定をクリアします。
EventMode [ C, C++: short ] [ Python: ctypes.c_short ]
イベントの有効/無効を設定してください。
0 |
イベントを無効 |
1 |
イベントを有効 |
EventType [ C, C++: short ] [ Python: ctypes.c_short ]
イベントを発行する拡張イベントを設定してください。
0 |
LTC入力によるカウントのラッチ時にイベント発生(LTC入力イベント) |
Parameter [ C, C++: void * ] [ Python: ctypes.c_void_p ]
コールバックに渡すパラメータのアドレスを指定します。
パラメータが必要ない場合は、NULLを指定してください。
戻り値
Ret [ C, C++: long ] [ Python: ctypes.c_long ]
0 |
正常終了 |
0以外 |
異常終了 |
参照:エラーコード詳細
説明
EventTypeに指定した要因が発生した場合にイベントが発行されます。
イベント発生関数は1度実行すれば、その後要因が発生する度にイベントが発生します。
イベントを停止させる目的以外で、複数回実行する必要はありません。
EventTypeに指定した要因が発生したとき、コールバックを通じてアプリケーションに通知します。
コールバック設定を行った後、EventTypeに指定した要因が発生すると、設定したコールバック関数が呼び出されます。
SMC-2/4/8DL シリーズ使用時、LTC入力イベント発生には、SmcWSetCounterModeでラッチするカウンタを設定する必要があります。(LtcMode=0以外)
使用例
軸番号1に対してLTC入力イベントコールバック関数を設定します。
C, C++
long Ret;
Ret = SmcWIrqEvent( Id , 1 , CallBack , 1 , 0 , this );
Python
Ret = ctypes.c_long()
Ret.value = csmc.SmcWIrqEvent( Id , 1 , CallBack , 1 , 0 , 0 )
関連項目
コールバック関数
書式
CallBack( Id , AxisNo , Message , Parameter )
引数
Id [ C, C++: short ] [ Python: ctypes.c_short ]
SmcWInit 関数で取得したIDが渡されます。
AxisNo [ C, C++: short ] [ Python: ctypes.c_short ]
ドライバからイベントが発生した軸番号が渡されます。
Message [ C, C++: int ] [ Python: ctypes.c_int ]
コールバック関数呼び出しの原因となるメッセージ番号が渡されます。
Parameter [ C, C++: void * ] [ Python: ctypes.c_void_p ]
SmcWIrqEvent関数に指定したパラメータが渡されます。
戻り値
なし [ void ]