CntGetSamplingStatus


機能

サンプリングステータスを取得します。

書式

Ret = CntGetSamplingStatus ( Id , Status , Err )

引数

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

Status [ C: unsigned int * ] [ Python: ctypes.POINTER(ctypes.c_uint) ]
ステータス情報(ステータス、警告)を返します。

いずれの条件も満たしていない場合は「0」となります。
例えば、一度もサンプリングスタートしていない場合や、開始条件でソフトウェアスタート以外を設定して開始条件が満たされない場合など。

定義

意味

CNTS_STATUS_BMSTOP

01H

サンプリングバッファへのデータの転送が完了したことを示します。

転送完了の判断に使用します。

CNTS_STATUS_CNTSTART

02H

カウンタサンプリングが開始したことを示します。

CNTS_STATUS_CNTSTOP

04H

カウンタサンプリングが終了したことを示します。

CNTS_STATUS_TRGIN

08H

外部スタートでスタート信号が入ったことを示します。

CNTS_STATUS_OVERRUN

10H

外部スタートでスタート信号が2回以上はいったことを示します。

外部接続信号の仕様上問題がなければ無視してください。

Err [ C: unsigned int * ] [ Python: ctypes.POINTER(ctypes.c_uint) ]
エラー情報を返します。

定義

意味

CNTS_STATUS_FIFOFULL

02H

FIFOがいっぱいになったことを示します。

主原因は、システムの負荷が高くサンプリングが間に合わないためです。

転送レートを下げる、システムの負荷を下げる等の対策が必要です。

CNTS_STATUS_SGOVERIN

04H

バッファがオーバーフローしたことを示します。

転送しようとしたデータ数がバッファのサイズを超えています。

バッファサイズを大きくしてください。

CNTS_STATUS_TRGERR

08H

外部スタートで、スタート信号とストップ信号が同時に入ったことを示します。

このステータスが立った場合、転送は行われません。

外部スタート信号と外部ストップ信号の入り方を確認してください。

CNTS_STATUS_CLKERR

10H

外部クロックで入力中に次のクロックが入ったことを示します。

このステータスが立った場合、指定のサンプリングクロックではサンプリングできません。

外部クロックの周期を下げることを検討してください。

なお、サンプリング開始時に一度サンプリングが行われることに注意してください。

このサンプリング時に外部クロックが入った場合にもこのエラーが発生します。

戻り値

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

定義

意味

CNT_ERR_SUCCESS

0

正常終了

CNT_ERR_DLL_INVALID_ID

10001

無効なIDが指定されました

CNT_ERR_DLL_CALL_DRIVER

10002

ドライバを呼び出せません。(ioctlに失敗)

CNT_ERR_DLL_BUFF_ADDRESS

10101

データバッファアドレスが不正です

CNT_ERR_SYS_MEMORY

20000

メモリの確保に失敗しました

CNT_ERR_SYS_USING_OTHER_PROCESS

20003

他のプロセスがデバイスを使用しているため、実行できません

その他のエラー(参照:エラーコード詳細

説明

転送完了後は、必ずステータスをチェックするようにしてください。

通常、転送完了の確認にはCntNotifySamplingStop関数を使用しますが、この関数を使用してサンプリングの完了を確認する場合は CNTS_STATUS_BMSTOP のステータスを監視します。

使用例

C

Ret = CntGetSamplingStatus(Id, &Status, &Err);
 

Python

Ret = ccnt.CntGetSamplingStatus(Id, ctypes.byref(Status), ctypes.byref(Err))