AioGetCntStatus


機能

カウンタのステータスを取得します。

書式

Ret = AioGetCntStatus ( Id , CntChannel , CntStatus )

引数

Id [ C, C++: short ] [ Python: ctypes.c_short ]
AioInit 関数で取得したデバイスIDを指定します。

CntChannel [ C, C++: short ] [ Python: ctypes.c_short ]
カウンタのチャネルを設定します。

CntStatus [ C, C++: long * ] [ Python: ctypes.POINTER(ctypes.c_long) ]
ステータスを格納する変数のアドレスを指定します。
CntStatusはビット単位で以下のような意味を持ちます。

ステータス

マクロ

カウンタ動作中

CNTS_BUSY

00000001H

比較カウント一致

CNTS_DATA_NUM

00000010H

オーバーラン

CNTS_ORERR

00010000H

カウンタ動作エラー

CNTS_ERR

00020000H

戻り値

Ret [ C, C++: long ] [ Python: ctypes.c_long ]

戻り値

内容

0

正常終了

7

スタンバイモードから復帰したため、AioResetDevice関数を実行してください

10001

無効なIDが指定されました
関数に指定するIDは、AioInitで取得したIDを使用してください。

10002

ドライバを呼び出せません
始めにAioInit関数を実行しください。

15200

CntChannelの値が関数の指定範囲外です

15201

CntStatusのポインタがNULLです
パラメータには変数のアドレスを指定してください。

20001

使用しているデバイスではこの関数を使用することができません

20003

他のプロセスがデバイスを使用しているため、実行できません
他のプロセスがデバイスを使用しているときは、マルチプロセス対応関数以外実行できません。

25200

CntChannelの値がデバイスの指定範囲外です

初期値

全てのデバイスでCntStatus = 0

説明

カウンタの動作開始後に比較カウント一致が発生すると、比較カウント一致ステータスがON状態になります。
このステータスはAioResetCntStatus関数を実行する事によりOFFされます。

比較カウント一致ステータスがONの状態で再度比較カウント一致が発生すると、オーバーランステータスがON状態になります。
このステータスはAioResetCntStatus関数を実行する事によりOFFされます。
オーバーランステータスがONになっても、カウンタの動作は停止しません。

短い時間内に比較カウント一致が連続で発生する場合、ドライバでの処理が間に合わない事があります。
この場合、カウンタ動作エラーステータスがON状態になり、カウンタ動作は停止します。

カウンタ機能を持たないデバイスでは使用できません。
デバイス動作中での実行が可能です。

使用例

チャネル0のカウンタステータスを取得します。

C, C++

long Ret;
long CntStatus;
Ret = AioGetCntStatus ( Id , 0 , &CntStatus );
 

Python

Ret = ctypes.c_long()
CntStatus = ctypes.c_long()
Ret.value = caio.AioGetCntStatus ( Id , 0 , ctypes.byref(CntStatus) )
 

関連項目

AioResetCntStatus