SmcWIrqEvent


機能

拡張イベントコールバック関数を設定します。

 

書式

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 ]