• 検索結果がありません。

CanGetFifoTrigger

ドキュメント内 GPC-4851 (ページ 51-56)

第4章 リファレンス

6. CanGetFifoTrigger

●Visual C# .NET(x86 専用)

[DllImport(“IFCan.dll”)]

public static extern uint CanGetFifoTrigger(

uint DeviceHandle, uint FifoKind, out uint TriggerValue, out uint FifoTimeout );

●Visual Basic .NET(x86、x64 共用)

Declare Function CanGetFifoTrigger Lib "IFCan.DLL"( _ ByVal DeviceHandle As IntPtr, _

ByVal FifoKind As Integer, _ ByRef TriggerValue As Integer, _ ByRef FifoTimeout As Integer _ ) As Integer

●Visual Basic .NET(x86 専用)

Declare Function CanGetFifoTrigger Lib "IFCan.DLL"( _ ByVal DeviceHandle As Integer, _

ByVal FifoKind As Integer, _ ByRef TriggerValue As Integer, _ ByRef FifoTimeout As Integer _ ) As Integer

【パラメータ】

hDeviceHandle

CanOpenPort 関数で取得したデバイスハンドルを指定してください。

dwFifoKind

設定する FIFO を選択します。下記の中から選択してください。

識別子 値 内容

CAN_RECEIVE_FIFO 0 受信 FIFO(※1) CAN_ERROR_FIFO 1 エラーFIFO

CAN_SEND_FIFO 2 送信 FIFO(※1, 2)

※1 高機能版、CAN FD 版 CAN 製品のみ有効です。

※2 FIFO 送信モードに設定していない場合はエラーとなります。

dwTriggerValue

取得するトリガ値が下記の値で格納されます。デフォルトは 0 です。

識別子 値 内容

CAN_TRIGGER_1 0 受信/エラーFIFO 内のデータ数が 0→1 で割り込み発生。

送信 FIFO の場合、FIFO 内のデータ数が 1→0 で割り込み発生。

CAN_TRIGGER_16 1 受信/エラーFIFO 内のデータ数が 15→16 で割り込み発生。

送信 FIFO の場合、FIFO 内のデータ数が 16→15 で割り込み発生。

CAN_TRIGGER_32 2 受信/エラーFIFO 内のデータ数が 31→32 で割り込み発生。

送信 FIFO の場合、FIFO 内のデータ数が 32→31 で割り込み発生。

CAN_TRIGGER_48 3 受信/エラーFIFO 内のデータ数が 47→48 で割り込み発生。

送信 FIFO の場合、FIFO 内のデータ数が 48→47 で割り込み発生。

dwFifoTimeout

取得する FIFO 内のタイムアウト時間が格納されます。単位は 100μs です。

新しく FIFO 内にデータが挿入されてから、dwFifoTimeout 時間の間にトリガが発生しない 場合、割り込みが発生するようになります。

例 え ば 、 dwFifoKind に CAN_RECEIVE_FIFO 、 dwTriggerValue に CAN_TRIGGER_48 、 dwFifoTimeout に 5 を設定した場合、受信 FIFO 内のデータ数が 48 になれば、トリガ条件 が満たされたことになり、割り込みが発生しますが、受信 FIFO 内のデータ数が 48 より少 ない場合、受信データが受信 FIFO に挿入されてから、次のデータが受信 FIFO に挿入され る前に、500μs(5×100μs)が経過すると、タイムアウトとみなされ、割り込みが発生 します。

デフォルトは、エラーFIFO、受信 FIFO いずれも 4 です。

送信 FIFO 設定時は、0 が返されます。

【戻り値】

正常終了した場合は、IFCAN_ERROR_SUCCESSが返されます。

IFCAN_ERROR_SUCCESS以外の値が返された場合については、『4.4 戻り値一覧』をご参照くださ い。

【備考】

本関数は、スタンダード版 CAN 製品では使用することはできません。

【使用例】

●C 言語 INT nRet;

HANDLE hDeviceHandle;

DWORD dwTrigger;

DWORD dwTimeout;

hDeviceHandle = CanOpenPort(“IFCAN1”);

: :

// 受信 FIFO トリガを取得します

nRet = CanGetFifoTrigger(hDeviceHandle, CAN_RECEIVE_FIFO, &dwTrigger, &dwTimeout);

●Visual Basic

Dim lpszName As String Dim hDeviceHandle As Long Dim nRet As Long

Dim dwTrigger As Long Dim dwTimeout As Long

lpszName = "IFCAN1" & Chr( 0 )

hDeviceHandle = CanOpenPort(lpszName) :

‘ 受信 FIFO トリガを取得します

nRet = CanGetFifoTrigger(hDeviceHandle, CAN_RECEIVE_FIFO, dwTrigger, dwTimeout)

●Delphi var

lpszName: String;

hDeviceHandle: THandle;

nRet: Integer;

dwTrigger: DWORD;

dwTimeout: DWORD;

lpszName := ‘IFCAN1’;

hDeviceHandle := CanOpenPort(lpszName);

: :

// 受信 FIFO トリガを取得します

nRet := CanGetFifoTrigger(hDeviceHandle, CAN_RECEIVE_FIFO, dwTrigger, dwTimeout);

●Visual C# .NET uint Ret;

IntPtr DeviceHandle;

uint Trigger;

uint Timeout;

DeviceHandle = IFCCAN_ANY.CanOpenPort(“IFCAN1”);

// 受信 FIFO トリガを取得します

●Visual Basic .NET

Dim DeviceHandle As Integer Dim Ret As Integer

Dim Trigger As Integer Dim Timeout As Integer

DeviceHandle = IFCCAN_ANY.CanOpenPort(“IFCAN1”) :

‘ 受信 FIFO トリガを取得します

Ret = IFCCAN_ANY.CanGetFifoTrigger(DeviceHandle, IFCCAN_ANY.CAN_RECEIVE_FIFO, _ Trigger, Timeout)

●Visual C++ CLR プロジェクト unsigned int Ret;

IntPtr DeviceHandle;

unsigned int Trigger;

unsigned int Timeout;

DeviceHandle = IFCCAN_ANY::CanOpenPort(“IFCAN1”);

// 受信 FIFO トリガを取得します

Ret = IFCCAN_ANY::CanGetFifoTrigger(DeviceHandle, IFCCAN_ANY::CAN_RECEIVE_FIFO, Trigger, Timeout);

デバイス名「IFCAN1」の CAN インタフェースの受信 FIFO トリガを取得します。

ドキュメント内 GPC-4851 (ページ 51-56)