AioGetAiFilter


機能

アナログ入力値に対してのフィルタ設定を取得します。

書式

Ret = AioGetAiFilter ( Id ,  AiChannelNo , AiChannelNum , FilterType , FilterValueLow , FilterValueHigh , FilterUnit )

引数

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

AiChannelNo [ VB.NET: UShort ] [ C, C++: unsigned short * ] [ C#: ref ushort ] [ Python: ctypes.POINTER(ctypes.c_ushort) ]
チャネル番号を配列に入れて、その配列の先頭アドレスを指定します。

AiChannelNum [ VB.NET: UShort ] [ C, C++: unsigned short ] [ C#: ushort ] [ Python: ctypes.c_ushort ]
AiChannelNoで指定したチャネル数を指定します。

FilterType [ VB.NET: UShort ] [ C, C++: unsigned short * ] [ C#: out ushort ] [ Python: ctypes.PINTER(ctypes.c_ushort) ]
フィルタタイプを格納する配列の先頭アドレスを指定します。

FilterValueLow [ VB.NET: ULong ] [ C, C++: unsigned long long * ] [ C#: out ulong ] [ Python: ctypes.POINTER(ctypes.c_ulonglong) ]
フィルタ下限値の値を格納する配列の先頭アドレスを指定します。

フィルタ無効の場合、本引数は使用しません。

FilterValueHigh [ VB.NET: ULong ] [ C, C++: unsigned long long * ] [ C#: out ulong ] [ Python: ctypes.POINTER(ctypes.c_ulonglong) ]
フィルタ上限値の値を格納する配列の先頭アドレスを指定します。

フィルタ無効の場合、本引数は使用しません。

FilterUnit [ VB.NET: UShort ] [ C, C++: unsigned short * ] [ C#: ref ushort ] [ Python: ctypes.POINTER(ctypes.c_ushort) ]
フィルタ設定値の単位を配列に入れて、その配列の先頭アドレスを指定します。

フィルタ下限値、フィルタ上限値共通の単位になります。
フィルタ無効の場合、本引数は使用しません

フィルタ設定値の単位

マクロ

値[dec]

MHz

AIO_PARAM_AI_FILTER_UNIT_MEGA_HZ

1

kHz

AIO_PARAM_AI_FILTER_UNIT_KIRO_HZ

2

Hz

AIO_PARAM_AI_FILTER_UNIT_HZ

3

mHz

AIO_PARAM_AI_FILTER_UNIT_MIRI_HZ

4

戻り値

Ret [ VB.NET: Integer ] [ C, C++: long ] [ C#: int ] [ Python: ctypes.c_long ]

戻り値

内容

0

正常終了

10001

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

10002

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

12560

FilterTypeのポインタがNULLです

12561

FilterValueLowのポインタがNULLです

12562

FilterValueHighのポインタがNULLです

12563

FilterUnitのポインタがNULLです

20001

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

22560

AiChannelNoの値が使用しているデバイスの範囲外です

初期値

フィルタ無効。(フィルタタイプ=0)

説明

アナログ入力値に対してのフィルタ設定を取得します。

単位(FilterUnit)より、FilterValueLow/FilterValueHighが小さい値だった場合、各値は0で取得されます。

例:

20kHzの時に単位kHzで取得すると値(FilterValueLow/FilterValueHigh)は20となります。
20kHzの時に単位MHzで取得すると値(FilterValueLow/FilterValueHigh)は0となります。

使用例

0チャネルに設定されているフィルタタイプ、およびフィルタ上限/下限値を、MHz単位で取得します。

VB.NET

Dim Ret As Integer
Dim AiChannelNo(0) As UShort
Dim FilterType(0) As USort
Dim FilterValueLow(0) As ULong
Dim FilterValueHigh(0) As ULong
Dim FilterUnit(0) As UShort

AiChannelNo(0) = 0
FilterUnit(0) = AIO_PARAM_AI_FILTER_UNIT_MEGA_HZ

Ret = AioSetAiFilter ( Id , AiChannelNo , 1 , FilterType , FilterValueLow , FilterValueHigh , FilterUnit )
 

C, C++

long Ret;
unsigned short AiChannelNo[0];
unsiged short FilterType[0];
unsigned long long FilterValueLow[0];
unsigned long long FilterValueHigh[0];
unsigned short FilterUnit[0];

 

AiChannelNo[0] = 0;
FilterUnit[0] = AIO_PARAM_AI_FILTER_UNIT_MEGA_HZ;

Ret = AioSetAiFilter ( Id , &AiChannelNo[0] , 1 , &FilterType[0] , &FilterValueLow[0] , &FilterValueHigh[0] , &FilterUnit[0] );
 

C#

int Ret;
ushort[] AiChannelNo = new ushort[1];
ushort[] FilterType = new ushort[1];
ulong[] FilterValueLow = new ulong[1];
ulong[] FilterValueHigh = new ulong[1];
ushort[] FilterUnit = new ushort[1];

 

AiChannelNo[0] = 0;
FilterUnit[0] = AIO_PARAM_AI_FILTER_UNIT_MEGA_HZ;

Ret = aio.SetAiFilter ( Id , ref AiChannelNo , 1 , out FilterType , out FilterValueLow , out FilterValueHigh , ref FilterUnit );
 

Python

Ret = ctypes.c_long()
AiChannelNoType = ctypes.c_ushort() * 1
AiChannelNo = AiChannelNoType()
FilterTypeType = ctypes.c_ushort() * 1
FilterType = FilterTypeType()
FilterValueLowType = ctypes.c_ulong() * 1
FilterValueLow = FilterValueLowType ()
FilterValueHighType = ctypes.c_ulong() * 1
FilterValueHigh = FilterValueHighType()
FilterUnitType = ctypes.c_ushort() * 1
FilterUnit = FilterUnitType()

AiChannelNo[0] = 0
FilterUnit[0] = caio.AIO_PARAM_AI_FILTER_UNIT_MEGA_HZ

Ret.value = caio.AioSetAiFilter ( Id , AiChannelNo , 1 , FilterType , FilterValueLow , FilterValueHigh , FilterUnit  )
 

関連項目

AioSetAiFilter