gpc-4116 -...

204
HDLC(PCI/C-PCI) © 1999 Interface Corporation. 1 GPC-4116 HDLC 通信インタフェースモジュール用 Windows ドライバ Help for Windows

Upload: others

Post on 04-Jun-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

HDLC(PCI/C-PCI)

© 1999 Interface Corporation.

1

GPC-4116 HDLC 通信インタフェースモジュール用 Windows ドライバ

Help for Windows

Page 2: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

目 次

第 1 章 はじめに 3

1.1 概要 ...........................................................................3

1.2 特長 ...........................................................................3

第 2 章 製品仕様 4

2.1 基本仕様 .......................................................................4

2.2 製品構成 .......................................................................5

第 3 章 導入方法 6

3.1 インストール手順 ...............................................................6

3.2 実行手順(HDLC 通信部)...........................................................6

3.3 実行手順(汎用 DIO 部) ..........................................................26

3.4 クラスライブラリの参照方法 ....................................................30

3.5 注意事項 ......................................................................31

第 4 章 リファレンス(HDLC 通信部) 32

4.1 関数一覧 ......................................................................32

4.2 関数個別説明 ..................................................................33

4.3 構造体 .......................................................................119

4.4 戻り値一覧 ...................................................................130

第 5 章 リファレンス(汎用 DIO 部) 132

5.1 関数一覧 .....................................................................132

5.2 関数個別説明 .................................................................133

5.3 戻り値一覧 ...................................................................195

第 6 章 サンプルプログラム 196

6.1 実行手順 .....................................................................196

6.2 サンプルプログラム一覧 .......................................................197

第 7 章 ユーティリティ 198

7.1 通信ユーティリティプログラム .................................................198

7.2 自己診断プログラム ...........................................................198

7.3 RS-485 終端設定ユーティリティプログラム.......................................200

7.4 CardBus ID 設定ユーティリティ.................................................201

7.5 DI 入力ユーティリティ.........................................................202

7.6 DO 出力ユーティリティ.........................................................202

第 8 章 重要な情報 203

Page 3: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

第1章 はじめに

1.1 概要 GPC-4116 は、Windows 上のアプリケーションから、弊社 HDLC 通信製品を制御する為のソフトウ

ェアです。

自由な HDLC フォーマットで使用できるため、上位のプロトコルを自作することにより、HDLC フ

ォーマットで動作する様々な機器と接続することが可能です。

本ドキュメントは、Windows 上で GPC-4116 を使用するための情報を掲載しています。

1.2 特長 ●自由なフォーマットで HDLC フレームの送受信が行えます。

●FCS 付加、チェックを自動的に行います。

●一つのフレームで 大 16384 バイトのデータ送受信を行えます。

●インタフェースモジュール上に送信バッファを用意してあるため、連続してデータ送信が行え

ます。

●インタフェースモジュール上に受信バッファを用意してあるため、アプリケーションプログラ

ムが他の処理を実行していても、データ取りこぼしが発生しません。

●インタフェースモジュールからのイベント発生時にて、ユ-ザアプリケーションにイベントを

通知できます。

●インタフェースモジュールからのイベント発生時にて、ユーザが登録した処理(コールバック

ルーチン)を実行することができます。

●インタフェースモジュールからのイベント発生時にて、指定されたウィンドウへメッセージを

送ることができます。

●HDLC モジュール製品に対応しています。下記のような特長があります。

・CPU を搭載しており、通信の際のパソコンや CPU ボード負荷を軽減することが出来ます。

・ 大 8チャンネルの通信を制御することが可能です。

※PCI/CTP/CPZ-423108Q,PCI/CTP/CPZ-423208Q のみ 大 8チャンネル可能です。

・ 大 48 点のデジタル入出力を制御することが可能です。

※PCI/CTP/CPZ-423108Q,PCI/CTP/CPZ-423208Q のみ 大 48 点可能です。

Page 4: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

第2章 製品仕様

2.1 基本仕様 208 デバイス

ただし、以下のグループごとに 大 16 枚まで。

CSI-467201, CSI-467301, CSI-467401, PCI-4116, PCI-4171,

PCI-4171S, LPC-467101, PEX-467101, CBI-4171, CBI-4171A,

CBI-4171B, CBI-467101, CBI-467101WA, CBI-467101WB,

PCI-4171FM, CSI-467201FM, CSI-467301FM, CSI-467401FM,

LPC-467101FM, PCI-467101FM

CPZ-467120, CSI-467120, PCI-467120, CTP-4158, PCI-4158,

LPC-467120, PEX-467120, PCI-467120P, CTP-467120P,

CPZ-467120P, PEX-H467120, PEX-H467120P

CSI-467202, CSI-467302, CSI-467402, PCI-4159, CTP-4159,

PCI-4172, PCI-4172FM, CTP-4172, CPZ-4172, LPC-467102,

PEX-467102, PCI-467102P, CTP-467102P, CPZ-467102P,

CPZ-4172FM, PEX-467102FM, PCI-467102FM, PEX-H467102,

PEX-H467102P

CPZ-423104Q, CPZ-423108Q, CPZ-423204Q, CPZ-423208Q

PCI-423104Q, PCI-423108Q, PCI-423204Q, PCI-423208Q

CTP-423104Q, CTP-423108Q, CTP-423204Q, CTP-423208Q

※下記デバイスのみ 1枚まで。

大デバイス数

PCI-4172FMU

PCI-4172, PCI-4172FM, PCI-4172FMU, CBI-4171,

CBI-4171A, CBI-4171B, CBI-467101, CBI-467101WA,

CBI-467101WB, CTP/CPZ-4172, PCI-4171S, CSI-467201,

CSI-467301, CSI-467401, CSI-467202, CSI-467302,

CSI-467402, LPC-467101, LPC-467102,PEX-467101,

PEX-467102, PCI/CTP/CPZ-467102P

PCI/CTP/CPZ-423204Q, PCI/CTP/CPZ-423208Q

CPZ-4172FM, PEX-467102FM, PCI-4171FM, CSI-467201FM,

CSI-467301FM, CSI-467401FM, LPC-467101FM,

PCI-467101FM, PCI-467102FM, PEX-H467102, PEX-H467102P

4Mbps※1

PCI/CTP-4159 2Mbps

PCI/CPZ/CSI-467120, PCI/CTP-4158, LPC-467120,

PEX-467120, PCI/CTP/CPZ-423104Q, PCI/CTP/CPZ-423108Q

PCI/CTP/CPZ-467120P, PEX-H467120, PEX-H467120P

1Mbps

RS-232C 1Mbps PCI-4116

RS-485 2Mbps

RS-232C 1Mbps

大転送速度

PCI-4171

RS-485 4Mbps※1

送信バッファサイズ 2kB × 128 本(合計 256kB)

受信バッファサイズ 4kB × 128 本(合計 512kB)

Page 5: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

イベント機能 各イベントが発生した場合に、アプリケーションにイベント通知する

ことができます。

フレーム送信完了は、各フレームごとにイベントを設定することがで

きます。

1. HDLC フレーム受信時

2. 制御信号の変化時

3. HDLC フレームの送信完了時

4. アイドル検出時(※)

5. エラーフレーム受信時(※)

6. オーバーフローエラー発生時(※1)

7. オーバーランエラー発生時(※1)

8. HDLC モジュール異常発生時(※2)

※1 PCI-4116, PCI/CTP-4158, PCI/CTP-4159 では使用できません。

また、対応型式でも製品のバージョンにより使用できません。

※2 HDLC モジュール製品のみ使用できます。

イベントマスク機能 イベント要因ごとにマスク設定/マスク解除することができます。

※1 FM0、FM1 符号化フォーマットの場合、内部クロックを使用する場合は 2Mbps まで

2.2 製品構成 README.HTM のファイル構成を参照して下さい。

Page 6: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

第3章 導入方法

3.1 インストール手順

README.HTM のインストール方法を参照してください。

3.2 実行手順(HDLC 通信部) 3.2.1 初期化

インタフェースモジュール初期化情報構造体の各メンバに適切な値を設定し、HdlcOpen 関数にて

HDLC インタフェースモジュールを初期化します。

第 1引数には、型式・チャンネル・RSW1 設定値により一意に定まるデバイス名を指定します。

デバイス名は RSW1 で決定されます。新たにインタフェースモジュールを追加しても、RSW1 の設

定を変更しない限り変わることはありません。

※同一デバイス名となるインタフェースモジュールを使用することはできません。RSW1 の値を設

定し、それぞれが一意なデバイス名となるように設定してください。

※タフコン/マザコン Classembly Devices に搭載されている PCI-467102FM の RSW1 の設定値は 0

で固定となっています。デバイス名としては「FBIHDLC49」、「FBIHDLC50」となります。

インタフェースモジュールを拡張される場合は、デバイス名が重複しないように注意してくだ

さい。

※エコ 2CD に搭載されている LPC-467101FM の RSW1 の設定値は 0で固定となっています。

型式・チャンネル・RSW1 設定とデバイス名の対応は以下のとおりになります。

型式 RSW1

設定値 チャンネル デバイス名

0 1 FBIHDLC1

1 1 FBIHDLC2

… … …

PCI-4116, PCI-4171, PCI-4171S,

CBI-4171, CBI-4171A, CBI-4171B,

CBI-467101, CBI-467101WA, CBI-467101WB,

CSI-467201, CSI-467301, CSI-467401,

LPC-467101, PEX-467101,LPC-467101FM,

PCI-4171FM, PCI-467101FM F 1 FBIHDLC16

1 FBIHDLC17 0

2 FBIHDLC18

1 FBIHDLC19 1

2 FBIHDLC20

… … …

1 FBIHDLC47

PCI-4158, PCI-467120,

CTP-4158,

CPZ-467120,

CSI-467120,

LPC-467120, PEX-467120

PCI-467120P, CTP-467120P, CPZ-467120P F 2 FBIHDLC48

1 FBIHDLC49 0

2 FBIHDLC50

1 FBIHDLC51 1

2 FBIHDLC52

… … …

1 FBIHDLC79

PCI-4159, PCI-4172, PCI-4172FM,

CTP-4159, CTP-4172,

CPZ-4172, CPZ-4172FM,

CSI-467202, CSI-467302, CSI-467402,

CSI-467202FM, CSI-467302FM, CSI-467402FM,

LPC-467102, PEX-467102, PEX-467102FM,

PCI-467102P, CTP-467102P, CPZ-467102P,

PCI-467102FM, PEX-H467102, PEX-H467102P F

2 FBIHDLC80

1 FBIHDLC49 PCI-4172FMU 0

2 FBIHDLC50

Page 7: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

1 FBIHDLC81

2 FBIHDLC82

… … 0

8 FBIHDLC88

1 FBIHDLC89

2 FBIHDLC90

… … 1

8 FBIHDLC96

… … …

1 FBIHDLC201

2 FBIHDLC202

… …

CPZ-423104Q, CPZ-423108Q,

CPZ-423204Q, CPZ-423208Q,

PCI-423104Q, PCI-423108Q,

PCI-423204Q, PCI-423208Q

CTP-423104Q, CTP-423108Q,

CTP-423204Q, CTP-423208Q,

※CPZ-423104Q, CPZ-423204Q,

PCI-423104Q,PCI-423204Q ,

CTP-423104Q, CTP-423204Q には、

チャンネル 5~8は存在しません。 F

8 FBIHDLC208

デバイスマネージャに「FbiHdlc」が追加され認識された通信ポートが一覧表示されます。一覧の

製品型式の横にインタフェースモジュール上のロータリスイッチの値とデバイス名が表示されま

す。診断プログラム(DIAGHDLC.EXE)でも確認できます。

初期化が正常終了すると、戻り値としてデバイスハンドルが返されます。複数のポートを使用す

る場合は、各ポートに対して HdlcOpen 関数をコールし、初期化します。初期化したポートはアプ

リケーション終了の際には必ず終了処理(HdlcClose 関数)をコールしてください。

※初期化パラメータについて補足

◆半二重ディレイ時間について(PCI-4116, PCI/CTP-4158, PCI/CTP-4159 は除く)

半二重ディレイ時間(インタフェースモジュール初期化情報構造体の uSendTiming, uCloseTiming

メンバ)は、1ビット時間の整数倍(1~255)にしか設定できません。

そのため、所望の時間と異なるディレイ時間が設定される場合があります。

例) ビットレート 1Mbps の場合

1 ビット時間 = 1 / 1000000 = 1 us

(半二重ディレイ時間) = 1 us × (1 ~ 255)

実際に設定されたディレイ時間は HdlcOpen 関数呼出し後、インタフェースモジュール初期化情報

構造体の uSendTiming もしくは uCloseTiming を参照することで確認できます。

◆アドレスの扱いについて

uAddressMode メンバにより受信フレームのフィルタリングを行うことができます。

uAddressMode メンバにより、受信フレームのどの部分をアドレスとして処理するかを指定し、

uAddress メンバにより、扱うアドレスの個数、および扱うアドレスを指定します(uAddress[0]

に扱うアドレスの個数を指定し、uAddress[1]から扱うアドレスを指定します)。

Page 8: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

設定例) アドレス 01h、アドレス 02h、アドレス FFh を受信する場合

●C言語

HDLCNPORTINITDATA PortInit;

PortInit.uAddressMode = HDLC_ADDRESS_AUTO1;

PortInit.uAddress[0] = 3; /* 扱うアドレスの個数は 3 */

PortInit.uAddress[1] = 0x01; /* アドレス 01h、アドレス 02h、アドレス FFh を受信する */

PortInit.uAddress[2] = 0x02;

PortInit.uAddress[3] = 0xFF;

●Visual Basic

Dim PortInit As HDLCNPORTINITDATA

PortInit.uAddressMode = HDLC_ADDRESS_AUTO1

PortInit.uAddress(0) = 3 ‘ 扱うアドレスの個数は 3

PortInit.uAddress(1) = &H01 ‘ アドレス 01h、アドレス 02h、アドレス FFh を受信する

PortInit.uAddress(2) = &H02

PortInit.uAddress(3) = &HFF

構造体に値を設定した後に、HdlcOpen 関数を呼び、HDLC インタフェースモジュールの初期化を

行います。

初期化に成功したときデバイスハンドルが返されます。

指定のデバイスが見つからない、または初期化パラメータに誤りがあるとき、関数戻り値として

INVALID_HANDLE_VALUE が返されます。

◆受信について 受信クロックをDPLLに設定している場合、同期ずれで正常に受信できない場合があります。

その場合、送信データのフレームの先頭に 2つ以上フラグを挿入するようにしてください。

3.2.2 送信 HDLC フレームを送信する際には、HdlcSendFrame 関数を使用します。HdlcSendFrame 関数では、

FCS 自動付加以外のデータ編集は行われず、アプリケーションプログラムから渡されたデータ以

外の送信は一切行いません。

アプリケーションはフレーム送信の完了まで待たず、関数から即制御が戻ります。フレーム送信

の完了は HdlcGetStatus 関数や、イベントで確認することが出来ます。

◆HdlcGetStatus 関数でフレーム送信状況を確認する場合

HdlcGetStatus 関数をコールすることにより、ポートステータス構造体(HDLCNPORTSTATUS 構造体)

に、現在の送受信状況が示されます。

ポートステータス構造体の uSendFrame メンバが 0 の場合、または uSendFreeblock メンバが 128

の場合は、全てのフレームを送信したことになります。下記のようにすれば、全てのフレーム送

信が完了するまで待つことができます。

Page 9: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●C 言語

HDLCNPORTSTATUS PortStatus;

LONG Ret;

/* フレームを送信します */

Ret = HdlcSendFrame(hDevice, “1234567890”, 10, 1, NULL); do {

/* 送受信ステータスを取得します */

Ret = HdlcGetStatus(hDevice, &PortStatus);

} while(PortStatus.uSendFrame);

●Visual Basic

Dim PortStatus As HDLCNPORTSTATUS

Dim Ret As LONG

‘ フレームを送信します

Ret = HdlcSendFrameString(hDevice, “1234567890”, 10, 1, ByVal 0) do

‘ 送受信ステータスを取得します

Ret = HdlcGetStatus(hDevice, PortStatus)

Loop While PortStatus.uSendFrame > 0

Page 10: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

◆イベントでフレーム送信完了を検出する場合

HdlcSendFrame 関数呼び出し時、OVERLAPPED 構造体を指定することにより、送信完了時イベント

がシグナル状態になります。

●C 言語

long Ret;

DWORD dwRet;

OVERLAPPED sOverlapped;

ZeroMemory(&sOverlapped, sizeof(OVERLAPPED));

sOverlapped.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);

/* フレームを送信します */

Ret = HdlcSendFrame(hDevice, “1234567890”, 10, 1, &sOverlapped); if(Ret == FBIHDLC_ERROR_IO_PENDING) {

dwRet = WaitForSingleObject(sOverlapped.hEvent, 10000);

if(dwRet == WAIT_TIMEOUT) {

printf(“送信完了のイベント待ちがタイムアウトしました”); }

else if(dwRet == WAIT_OBJECT_0) {

printf(“送信完了イベントが発生しました”); }

}

CloseHandle(sOverlapped.hEvent);

●Visual Basic

Dim Ret As Long

Dim sOverlapped As OVERLAPPED

sOverlapped.Internal = 0

sOverlapped.InternalHigh = 0

sOverlapped.Offset = 0

sOverlapped.OffsetHigh = 0

sOverlapped.hEvent = CreateEvent(0, TRUE, FALSE, 0)

‘ フレームを送信します

Ret = HdlcSendFrameString(hDevice, “1234567890”, 10, 1, sOverlapped) If Ret = FBIHDLC_ERROR_IO_PENDING Then

Ret = WaitForSingleObject(sOverlapped.hEvent, 10000)

If Ret = WAIT_TIMEOUT Then

MsgBox “送信完了のイベント待ちがタイムアウトしました” ElseIf dwRet = WAIT_OBJECT_0 Then

MsgBox “送信完了イベントが発生しました” End If

End If

CloseHandle sOverlapped.hEvent

Page 11: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

◆フラグ数指定

送信前に HdlcSetFlag 関数を実行することで、フレームに任意の数だけリーディングフラグ/ト

レーリングフラグを付加して送信することができます。

初期設定ではリーディングフラグ/トレーリングフラグは付加しません(0個)。

リーディング

フラグ×n個 フラグ データ FCS フラグ

トレーリング

フラグ×n個

n:0~255

フラグ数の設定は送信バッファが空の状態で行ってください。また、フレーム間にはマーク送信

を指定(HDLCNPORTINTIDATA 構造体の uLineMode に HDLC_TFIL_MARK を OR)してください。フラ

グ送信を指定した場合、フレーム間にフラグが挿入されるため、必ずしも指定のフラグ数とはな

りません。

設定変更後、リーディングフラグ/トレーリングフラグを付加しない状態に戻すには、再度

HdlcSetFlag 関数でフラグ数を 0に設定します。

※ フラグ数指定機能は FM 符号化対応製品でのみ使用できます。

PCI-4172FM, PCI-4172FMU, CPZ-4172FM, PEX-467102FM, PCI-4171FM, CSI-467202FM,

CSI-467302FM, CSI-467402FM, LPC-467101FM, PCI-467101FM, PCI-467102FM

Page 12: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

3.2.3 受信 受信バッファ内に格納されているフレーム数を取得するには、HdlcGetFrameCount関数を使用し、

受信バッファの先頭に格納されているフレームの長さを知るには、HdlcGetFrameLength 関数を使

用します。受信できる 1フレームの 大サイズは 16384 バイトですので、HdlcGetFrameLength 関

数の第 2引数に格納される値は、0~16384 となります。

●C 言語

ULONG ulFrameCount;

ULONG ulFrameLength;

LONG Ret;

/* 受信フレーム数を取得します */

Ret = HdlcGetFrameCount(hDevice, &ulFrameCount);

/* 受信フレーム長を取得します */

Ret = HdlcGetFrameLength(hDevice, &ulFrameLength);

●Visual Basic

Dim ulFrameCount As Long

Dim ulFrameLength As Long

Dim Ret As Long

‘ 受信フレーム数を取得します

Ret = HdlcGetFrameCount(hDevice, ulFrameCount)

‘ 受信フレーム長を取得します

Ret = HdlcGetFrameLength(hDevice, ulFrameLength)

HdlcReceiveFrame 関数を使用して受信バッファのデータを取り出します。受信データを格納する

変数は HdlcGetFrameLength 関数で得られたサイズ以上のバッファを用意してください。

取り出されたデータは受信バッファから削除されます。FCS の自動検査によるデータの編集およ

びエラー等によるデータ削除を除き、受信された全てのフレームが受信バッファへ保持されます。

Page 13: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

◆エラーフレームの受信

ポ ー ト 初 期 化 情 報 構 造 体 ( HDLCNPORTINITDATA 構 造 体 ) の uLineMode で

HDLC_ACCEPT_ERRORFRAME を指定することで、エラーフレームを受信することができます。

(PCI-4116, PCI/CTP-4158, PCI/CTP-4159 はエラーフレームは全て破棄されます。)

エラーフレームは以下のフレームが該当します。

エラーフレーム 内容

FCS エラーフレーム FCS が不正なフレーム

ショートフレーム 1 バイトのフレーム(フラグ,FCS 除く)

ロングフレーム 16385 バイト以上のフレーム(フラグ,FCS 除く)

アボートフレーム 7 ビット以上”1”が連続したフレーム

アドレス不一致フレーム 指定したアドレスが検出されなかったフレーム

HdlcReceiveFrame 関数で取り出したフレームがエラーフレームの場合、戻り値として以下の値が

返されます。

エラーフレーム 戻り値

FCS エラーフレーム FBIHDLC_ERROR_FCSERRORFRAME

ショートフレーム FBIHDLC_ERROR_SHORTFRAME

ロングフレーム FBIHDLC_ERROR_LONGFRAME

アボートフレーム FBIHDLC_ERROR_ABORTFRAME

アドレス不一致フレーム FBIHDLC_ERROR_NOADDRESSFRAME

●C 言語

BYTE Buffer[16384];

ULONG ulFrameCount, ulFrameLength;

LONG Ret;

/* 受信フレーム数を取得します */

Ret = HdlcGetFrameCount(hDevice, &ulFrameCount);

if(ulFrameCount > 0) {

/* 受信フレームを取り出します */

Ret = HdlcReceiveFrame(hDevice, Buffer, &ulFrameLength);

switch(Ret) {

case FBIHDLC_ERROR_FCSERRORFRAME:

printf(“FCS error frame:\n”); break; case FBIHDLC_ERROR_SHORTFRAME:

printf(“short frame:\n”); break; case FBIHDLC_ERROR_LONGFRAME:

printf(“long frame:\n”); break; case FBIHDLC_ERROR_ABORTFRAME:

printf(“abort frame:\n”); break; case FBIHDLC_ERROR_NOADDRESSFRAME:

printf(“no address frame:\n”); break; case FBIHDLC_ERROR_SUCCESS:

printf(“normal frame:\n”); break; }

}

Page 14: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic

Dim Buffer(16384) As Byte

Dim ulFrameCount, ulFrameLength As Long

Dim Ret As Long

‘ 受信フレーム数を取得し、受信フレームを取り出します

Ret = HdlcGetFrameCount(hDevice, ulFrameCount)

If ulFrameCount > 0 Then

Ret = HdlcReceiveFrame(hDevice, Buffer(0), ulFrameLength)

Select Case Ret

Case FBIHDLC_ERROR_FCSERRORFRAME

MsgBox “FCS error frame” Case FBIHDLC_ERROR_SHORTFRAME

MsgBox “short frame” Case FBIHDLC_ERROR_LONGFRAME

MsgBox “long frame” Case FBIHDLC_ERROR_ABORTFRAME

MsgBox “abort frame” Case FBIHDLC_ERROR_NOADDRESSFRAME

MsgBox “no address frame” Case FBIHDLC_ERROR_SUCCESS

MsgBox “normal frame” End Select

End If

Page 15: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

3.2.4 制御信号出力状態の設定と取得 HdlcSetControlLine 関数を使用して制御信号の ON/OFF、HdlcGetControlLine 関数を使用して制

御信号の入力状態を取得することができます。0が OFF、1 が ON となっています。

RS-232C での制御信号操作の例を示します。

インクルードファイル fbihdlc.h で各信号の値が定義されているので、それを使用すると便利で

す。

識別子 値 内容

HDLC_SSIG_ER 00000001h ER 信号

HDLC_SSIG_RS 00000002h RS 信号/C 信号

HDLC_SSIG_DR 00000010h DR 信号

HDLC_SSIG_CD 00000020h CD 信号

HDLC_SSIG_CS 00000040h CS 信号/I 信号

HDLC_SSIG_CI 00000080h CI 信号

●C 言語

ULONG ulControlLine, ulDeltaLine;

LONG Ret;

/* RS-232C の場合 RS 信号と ER 信号を ON にします */

Ret = HdlcSetControlLine(hDevice, HDLC_SSIG_RS | HDLC_SSIG_ER);

/* 制御信号情報を取得します */

Ret = HdlcGetControlLine(hDevice, &ulControlLine, &ulDeltaLine);

●Visual Basic

Dim ulControlLine As Long

Dim ulDeltaLine As Long

Dim Ret As Long

‘ RS-232C の場合 RS 信号と ER 信号を ON にします

Ret = HdlcSetControlLine(hDevice, HDLC_SSIG_RS Or HDLC_SSIG_ER)

‘ 制御信号情報を取得します

Ret = HdlcGetControlLine(hDevice, ulControlLine, ulDeltaLine)

Page 16: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

3.2.5 半二重制御 半二重の設定は、ポート初期化情報構造体(HDLCNPORTINITDATA 構造体)の uLineMode メンバに

より行います。

半二重通信時は半二重ディレイ時間(インタフェースモジュール初期化情報構造体のuSendTiming,

uCloseTiming メンバ)を設定する必要があります。

RS-232C RS-485

送信前切り替え時間

(uSendTiming)

RS 信号を ON にしてからフレーム送

信開始までの時間

ラインを送信に切り替えてからフレ

ーム送信開始までの時間(※)

送信後切り替え時間

(uCloseTiming)

フレーム送信終了後RS信号をOFFに

するまでの時間

フレーム送信終了後ラインを受信に

切り替えるまでの時間(※)

※HDLC_LINE_HALF2 の場合はラインの切り替えと同時に、C信号の制御も行います。

◆RS-232C の半二重制御

uLineMode メンバに HDLC_LINE_HALF2 を指定します。

フレーム送信時に RS 信号を ON にし、フレーム送信後に RS 信号を OFF にします。

但し、PCI-4171 ではリビジョン ID が 3以上、PCI-467120、CPZ-467120 ではリビジョン ID が 2以

上の製品で RS 信号が自動的に制御されます。リビジョン ID は HdlcCommonGetPciDeviceInfo 関数

で取得できます。

◆RS-485 の半二重制御(PCI-4116, PCI/CTP-4158, PCI/CTP-4159)

RS-485 では 2 種類の半二重処理があります。それぞれ uLineMode メンバに HDLC_LINE_HALF、

HDLC_LINE_HALF2 を指定します。

HDLC_LINE_HALF を指定した場合、アイドル検出と送受信ラインの切り替えを自動的に行います。

ただし、C信号の制御は行いません。送信クロックラインは uTxcMode メンバにて設定します。

HDLC_LINE_HALF2 を指定した場合も、アイドル検出と送受信ラインの切り替えを自動的に行いま

す。また、フレーム送信前に C信号を ON にし、フレーム送信後に C信号を OFF にします。送信ク

ロックラインは uTxcMode メンバにて設定します。

設定例) 半二重通信(C 信号の制御あり)に設定

●C言語

HDLCNPORTINITDATA PortInit;

PortInit.uLineMode = HDLC_LINE_HALF2;

PortInit.uTxcMode = HDLC_STOUT_NONE; /* 送信クロック:出力しない */

PortInit.uSendTiming = 2; /* 送信前切り替え時間:20ms */

PortInit.uCloseTiming = 10; /* 送信後切り替え時間:100ms */

●Visual Basic

Dim PortInit As HDLCNPORTINITDATA

PortInit.uLineMode = HDLC_LINE_HALF2

PortInit.uTxcMode = HDLC_STOUT_NONE ‘ 送信クロック:出力しない

PortInit.uSendTiming = 2 ‘ 送信前切り替え時間:20ms

PortInit.uCloseTiming = 10 ‘ 送信後切り替え時間:100ms

Page 17: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

半二重通信時の注意点として、受信クロックを外部で、半二重通信する時(相手の送信クロック

を使い受信する時)には、常に受信クロックが供給されるよう、システムを設計してください。

受信クロックが停止すると、アイドル検出が出来ないため、送信が行えなくなります。受信クロ

ックを DPLL にしたときには問題ありません。

◆RS-485 の半二重制御(PCI-4116, PCI/CTP-4158, PCI/CTP-4159 以外)

RS-485 では 2 種類の半二重処理があります。それぞれ uLineMode メンバに HDLC_LINE_HALF、

HDLC_LINE_HALF2 を指定します。

HDLC_LINE_HALF を指定した場合、送受信ラインの切り替えを自動的に行います。ただし、C 信号

の制御は行いません。送信クロックラインは uTxcMode メンバにて設定します。

HDLC_LINE_HALF2 を指定した場合も、送受信ラインの切り替えを自動的に行います。また、フレ

ーム送信前に C信号を ON にし、フレーム送信後に C信号を OFF にします。送信クロックラインは

uTxcMode メンバにて設定します。

設定例) 半二重通信(C 信号の制御あり)に設定

●C言語

HDLCNPORTINITDATA PortInit;

PortInit.uLineMode = HDLC_LINE_HALF2;

PortInit.uTxcMode = HDLC_STOUT_NONE; /* 送信クロック:出力しない */

PortInit.uSendTiming = 100 | HDLC_TIME_MICRO_SEC; /* 送信前切り替え時間:100us */

PortInit.uCloseTiming = 200 | HDLC_TIME_MICRO_SEC; /* 送信後切り替え時間:200us */

●Visual Basic

Dim PortInit As HDLCNPORTINITDATA

PortInit.uLineMode = HDLC_LINE_HALF2

PortInit.uTxcMode = HDLC_STOUT_NONE ‘ 送信クロック:出力しない

PortInit.uSendTiming = 100 Or HDLC_TIME_MICRO_SEC ‘ 送信前切り替え時間:100us

PortInit.uCloseTiming = 200 Or HDLC_TIME_MICRO_SEC ‘ 送信後切り替え時間:200us

Page 18: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

3.2.6 イベント処理 以下のイベント要因が発生したとき、アプリケーションに通知することができます。

・ HDLC フレームを受信したとき

・ 制御信号が変化したとき

・ HDLC フレームが送信完了したとき

・ アイドルを検出したとき(※1)

・ エラーフレームを受信したとき(※1)

・ オーバーフロー、オーバーランエラーが発生したとき(※1)

・ HDLC モジュールに異常が発生したとき(※2)

※1 PCI-4116, PCI/CTP-4158, PCI/CTP-4159 は使用できません

※2 HDLC モジュール製品でのみ使用できます

要因により使用できるイベント処理が異なります。

シグナルイベント コールバック メッセージ

フレーム受信 ○ ○ ○

制御信号変化 ○ ○ ○

フレーム送信完了 ○ × ×

アイドル検出 ○ ○ ○

エラーフレーム受信 ○ ○ ○

オーバーフロー、

オーバーラン ○ ○ ○

HDLC モジュール異常 ○ ○ ○

◆シグナルイベント(HdlcEventRequestPending 関数を使用)での処理

シグナルイベントを使用する場合、以下のように処理を行います。 ポートオープン(HdlcOpen)

割り込みマスクの設定

(HdlcSetEventMask)

イベント待ちの開始

(HdlcEventRequestPending)

ポートクローズ(HdlcClose)

割り込みマスクの解除

(HdlcSetEventMask)

© 1999 Interface Corporation.

Page 19: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

処理例) フレーム受信イベントを待ちます

●C 言語

int main(void)

{

HANDLE hDevice;

LONG Ret;

DWORD EventBuffer, dwRet;

OVERLAPPED sOverlapped;

HDLCNPORTINITDATA PortInit;

/* ポート初期化

構造体メンバへの代入処理省略 */

hDevice = HdlcOpen(“FBIHDLC1”, &PortInit);

/* 割り込みマスク設定 */

Ret = HdlcSetEventMask(hDevice, HDLC_RECEIVED_FRAME, 0);

/* イベント待ち開始 */

ZeroMemory(&sOverlapped, sizeof(OVERLAPPED));

sOverlapped.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);

Ret = HdlcEventRequestPending(hDevice, HDLC_RECEIVED_FRAME,

&EventBuffer, &sOverlapped);

if(Ret == FBIHDLC_ERROR_IO_PENDING) {

dwRet = WaitForSingleObject(sOverlapped.hEvent, 10000);

if(dwRet == WAIT_OBJECT_0) {

/* フレーム受信処理 */

}

}

/* 割り込みマスク解除 */

Ret = HdlcSetEventMask(hDevice, 0, 0);

Ret = HdlcClose(hDevice);

CloseHandle(sOverlapped.hEvent);

}

Page 20: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic

Dim hDevice As Long

Dim Ret As Long

Dim EventBuffer As Long

Dim sOverlapped As OVERLAPPED

Dim PortInit As HDLCNPORTINITDATA

‘ ポート初期化 構造体メンバへの代入処理省略

hDevice = HdlcOpen(“FBIHDLC1”, PortInit)

‘ 割り込みマスク設定

Ret = HdlcSetEventMask(hDevice, HDLC_RECEIVED_FRAME, 0)

‘ イベント待ち開始

sOverlapped.Internal = 0

sOverlapped.InternalHigh = 0

sOverlapped.Offset = 0

sOverlapped.OffsetHigh = 0

sOverlapped.hEvent = CreateEvent(0, TRUE, FALSE, 0)

Ret = HdlcEventRequestPending(hDevice, HDLC_RECEIVED_FRAME, EventBuffer, sOverlapped)

If Ret = FBIHDLC_ERROR_IO_PENDING Then

Ret = WaitForSingleObject(sOverlapped.hEvent, 10000)

If Ret = WAIT_OBJECT_0 Then

‘ フレーム受信処理

End If

End If

‘ 割り込みマスク解除

Ret = HdlcSetEventMask(hDevice, 0, 0)

Ret = HdlcClose(hDevice)

CloseHandle sOverlapped.hEvent

Page 21: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

◆Window メッセージでの処理

Window メッセージを使用する場合、以下のように処理を行います。 ポートオープン(HdlcOpen)

割り込みマスクの設定

(HdlcSetEventMask)

イベント待ち

(イベントが発生するとメッセー

ジハンドラが呼び出されます)

ポートクローズ(HdlcClose)

割り込みマスクの解除

(HdlcSetEventMask)

処理例) フレーム受信イベントを待ちます

●C言語(MFC での処理例)

// メッセージハンドラの定義 BEGIN_MESSAGE_MAP(ChdlcPort, ClistView) ON_MESSAGE(WM_USER, OnMessage) END_MESSAGE_MAP() LRESULT ChdlcPort::OnMessage(WPARAM wParam, LPARAM lParam) { if(wParam == HDLC_RECEIVED_FRAME) { /* フレーム受信処理 */ } return 0; } void ChdlcPort::PortOpen(void) { HDLCNPORTINITDATA PortInit; LONG Ret; /* ポート初期化 構造体メンバへの代入処理一部省略 */ PortInit.hWindowHandle = this->m_hWnd; /* ウィンドウハンドル */ PortInit.uWindowMessage = WM_USER; /* ウィンドウメッセージ */ hDevice = HdlcOpen(“FBIHDLC1”, &PortInit); /* 割り込みマスク設定 */ Ret = HdlcSetEventMask(hDevice, HDLC_RECEIVED_FRAME, 0); } void ChdlcPort::PortClose(void) { LONG Ret; /* 割り込みマスク解除 */ Ret = HdlcSetEventMask(hDevice, 0, 0); Ret = HdlcClose(hDevice); }

© 1999 Interface Corporation.

Page 22: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic

’ Win32 API declare

Declare Function CallWindowProc Lib ”user32” Alias ”CallWindowProcA” (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As

Long) As Long

Declare Function SetWindowLong Lib ”user32” Alias ”SetWindowLongA” (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

’ constant declare

Public Const GWL_WNDPROC = (-4)

Public Const WM_USER = &H400

Public lpPrevWndProc As Long ’ Address of revious window procedure

Public gHW As Long ’ Window handle

Public hDevice As Long ’ Device handle

Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal

lParam As Long) As Long

Dim nSize As Long

Dim szData As String * 16384

Dim nRet As Long

If uMsg = WM_USER Then

Select Case wParam

Case HDLC_RECEIVED_FRAME

’ Receive data

nReceivedFrame = 0

nSize = 0

nRet = HdlcReceiveFrameString(hHdlcPort, szData, nSize)

End If

WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)

End Function

Private Sub Form_Load()

gHW = Me.hwnd

’ Hook window procedure

lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, AddressOf WindowProc)

End Sub

Private Sub Form_Unload(Cancel As Integer)

’ Unhook window procedure

nRet = SetWindowLong(gHW, GWL_WNDPROC, lpPrevWndProc)

End Sub

Private Sub PortOpen()

Page 23: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

Dim Ret As Long

Dim EventBuffer As Long

Dim sOverlapped As OVERLAPPED

Dim PortInit As HDLCNPORTINITDATA

PortInit.hWindowHandle = gHW

PortInit.uWindowMessage = WM_USER

‘ ポート初期化 構造体メンバへの代入処理省略

hDevice = HdlcOpen(“FBIHDLC1”, PortInit)

‘ 割り込みマスク設定

Ret = HdlcSetEventMask(hDevice, HDLC_RECEIVED_FRAME, 0)

End Sub

Private Sub PortClose()

Dim Ret As Long

‘ 割り込みマスク解除

Ret = HdlcSetEventMask(hDevice, 0, 0)

Ret = HdlcClose(hDevice)

End Sub

Page 24: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

◆コールバックでの処理

コールバックを使用する場合、以下のように処理を行います。 ポートオープン(HdlcOpen)

割り込みマスクの設定

(HdlcSetEventMask)

イベント待ち

(イベントが発生するとコールバッ

クルーチンが呼び出されます)

ポートクローズ(HdlcClose)

割り込みマスクの解除

(HdlcSetEventMask)

処理例) フレーム受信イベントを待ちます

●C言語

HANDLE hDevice; /* デバイスハンドル */

/* コールバックルーチン */

void EventHandler(ULONG EventFactor, ULONG Device)

{

if(EventFactor == HDLC_RECEIVED_FRAME) {

/* フレーム受信処理 */

}

}

int main(void)

{

HDLCNPORTINITDATA PortInit;

LONG Ret;

/* ポート初期化 構造体メンバへの代入処理一部省略 */

PortInit.lpCallBackProc = (LPHDLCCALLBACK)EventHandler; /* コールバックルーチン */

hDevice = HdlcOpen(“FBIHDLC1”, &PortInit);

/* 割り込みマスク設定 */

Ret = HdlcSetEventMask(hDevice, HDLC_RECEIVED_FRAME, 0);

/* 割り込みマスク解除 */

Ret = HdlcSetEventMask(hDevice, 0, 0);

Ret = HdlcClose(hDevice);

return 0;

}

© 1999 Interface Corporation.

Page 25: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic

‘ コールバックルーチン(標準モジュールで定義します)

Public Sub EventHandler(ByVal EventFactor As Long, ByVal Device As Long)

If EventFactor = HDLC_RECEIVED_FRAME Then

‘ フレーム受信処理

End If

End Sub

Function ChangeAddressOf(ByVal Address As Long) As Long

ChangeAddressOf = Address

End Function

Sub MainRoutine()

Dim PortInit As HDLCNPORTINITDATA

Dim Ret As Long

‘ ポート初期化

‘ 構造体メンバへの代入処理一部省略

PortInit.lpCallBackProc = ChangeAddressOf(AddressOf EventHandler)

hDevice = HdlcOpen(“FBIHDLC1”, PortInit)

‘ 割り込みマスク設定

Ret = HdlcSetEventMask(hDevice, HDLC_RECEIVED_FRAME, 0)

‘ 割り込みマスク解除

Ret = HdlcSetEventMask(hDevice, 0, 0)

Ret = HdlcClose(hDevice)

End Sub

3.2.7 終了処理 HdlcClose 関数でポートの終了処理を行います。

ポートの使用を終了する際は必ず HdlcClose 関数を実行してください。

Page 26: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

3.3 実行手順(汎用 DIO 部)

基本的な制御の手順は以下の通りです。(記述例は C言語です。)

3.3.1 初期化 デバイスをオープンし、デバイスハンドルを得ます。

hDeviceHandle = SdioOpen("IFSDIO1");

デバイス名 "IFSDIO1" は、IFSDIO1、IFSDIO2... と、システムが PCI バス上にデバイスが発見

された順番に割り付けられます。

インタフェースモジュールが挿入されているスロット位置やパソコン本体が変わると、検出順序が

変わるため、デバイス名が変わることがあります。

「デバイス マネージャ」 に 「FbiSDio」 が追加され認識された弊社 HDLC モジュールのデジタル

入出力デバイスが一覧表示されます。一覧の製品型式の横にインタフェースモジュール上のロータ

リスイッチの値とデバイス名が表示されますので、ドライバインストール後、デバイス名を確認し

てからご使用ください。

(付属の、DI 入力ユーティリティ(SdiUtil.exe)、DO 出力ユーティリティ(SdoUtil.exe) でも確認

することができます。)

プログラム中では、SdioCommonGetDeviceInfo 関数を用いて、デバイス名と ボード ID(RSW1 設定)

を確認することが出来ます。

hDeviceHandle = SdioOpen("IFSDIO1");

nRet = SdioCommonGetDeviceInfo(

hDeviceHandle,

&DeviceID,

&VendorID,

&RevisionID,

&SubsystemID,

&SubsystemVendorID,

&BoardID,

&TerminalNo );

DeviceID、BoardID、TermilanNo に返される デバイス ID、ボード ID、端子台番号を確認すること

で、"IFSDIO1" がどのHDLCモジュール上の汎用DIOデバイスであるかを確認することが出来ます。

Page 27: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

3.3.2 入力方法 SdioOpen 関数で得たデバイスハンドルを用いて、指定した接点の状態を読み出します。

// IN1~IN8 の 8 点の接点状態を入力します。

nRet = SdioInputByte( hDeviceHandle, IFSDIO_IN1_8, &Value );

// IN1~IN16 の 16 点の接点状態を入力します。

Ret = SdioInputWord( hDeviceHandle, IFSDIO_IN1_16, &Value );

// IN1~IN32 の 32 点の接点状態を入力します。

nRet = SdioInputDword( hDeviceHandle, IFSDIO_IN1_32, &Value );

上記方法では、8 / 16 / 32 点ごとに、区切られた範囲の接点状態を入力しますが、以下のように、

入力する接点の範囲を指定して入力することも出来ます。

// IN5~IN7 の 3 点の接点状態を入力します。

nRet = SdioInputPoint( hDeviceHandle, &nBuffer[0], 5, 3 );

配列 nBuffer は、3つ以上の要素が用意されていなければなりません。

3.3.3 出力方法 SdioOpen 関数で得たデバイスハンドルを用いて、出力を変化させます。

// OUT1~OUT8 の 8 点の出力を変化させします。

nRet = SdioOutputByte( hDeviceHandle, IFSDIO_OUT1_8, Value );

// OUT1~OUT16 の 16 点の出力を変化させます。

nRet = SdioOutputWord( hDeviceHandle, IFSDIO_OUT1_16, Value );

// OUT1~OUT32 の 32 点の出力を変化させします。

nRet = SdioOutputDword( hDeviceHandle, IFSDIO_OUT1_32, Value );

上記方法では、8 / 16 / 32 点ごとに、区切られた範囲の出力状態を変化させますが、以下のよう

に、出力する範囲を指定することも出来ます。

// OUT5~OUT7 の 3 点の出力を変化させます。

nRet = SdioOutputPoint( hDeviceHandle, &nBuffer[0], 5, 3 );

配列 nBuffer は、3つ以上の要素が用意され、予め nBuffer[0]~[2]へ、 OUT3~5 へ出力させ

る値がセットされていなければなりません。

Page 28: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

3.3.4 STB 入力時のデータを取り込む 1) STB 入力によるラッチ機能を有効にします。

// STB の立下りエッジでデータをラッチする。

nRet = SdioSetLatchLogic( hDeviceHandle, IFSDIO_FALL_EDGE );

2) STB 入力割り込み時の動作を登録します。

// コールバック関数 CallBackProc を登録

nRet = SdioSetEvent( hDeviceHandle, NULL, 0, NULL, CallBackProc, 0);

上記はコールバックを用いた例です。

SdioSetEvent 関数では、以下の 3 種類の同期処理を登録させることが出来ます。

・コールバック

GPC-4116 が持つコールバック機能を用いて同期させる方法です。

STB 入力時に、SdioSetEvent 関数で指定したコールバック関数が呼び出されます。

コールバック関数の仕様は、CallBackProc を参照してください。

・イベント

Windows のイベントを用いて同期させる方法です。

Windows のイベント機能については、Windows の技術資料等を参照してください。

・メッセージ

Windows のメッセージ 機能を用いて同期させる方法です。

Windows のメッセージ機能については、Windows の技術資料等を参照してください。

3) STB 入力時の割り込みを有効にします。

// STB の立下りエッジで割り込みを発生させる

nRet = SdioSetEventLogic( hDeviceHandle, IFSDIO_FALL_EDGE );

4) CallBackProc 関数の中で、STB 入力によってラッチされた接点状態を読み出します。

// IN1~IN8 の 8 点の接点状態を入力します。 nRet = SdioInputLatchByte( hDeviceHandle, IFSDIO_IN1_8, &Value ); // IN1~IN16 の 16 点の接点状態を入力します。 nRet = SdioInputLatchWord( hDeviceHandle, IFSDIO_IN1_16, &Value ); // IN1~IN32 の 32 点の接点状態を入力します。 nRet = SdioInputLatchDword( hDeviceHandle, IFSDIO_IN1_32, &Value );

上記方法では、8 / 16 / 32 点ごとに、区切られた範囲の接点状態を入力しますが、以下のように、

入力する接点の範囲を指定して入力することも出来ます。

// IN5~IN7 の 3 点の接点状態を入力します。

nRet = SdioInputLatchPoint( hDeviceHandle, &nBuffer[0], 5, 3 );

配列 nBuffer は、3つ以上の要素が用意されていなければなりません。

Page 29: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

3.3.5 終了方法 1) STB 入力割り込み処理を登録している場合、割り込みを無効にしてから、登録している処理を

解除します。

// STB 入力割り込みを解除

nRet = SdioSetEventLogic( hDeviceHandle, 0);

// STB 入力割り込み時の処理を解除

nRet = SdioSetEvent( hDeviceHandle, NULL, 0, NULL, NULL, 0);

2) SdioOpen 関数で得たデバイスハンドルを用いてデバイスをクローズします。

nRet = SdioClose( hDeviceHandle );

Page 30: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

3.4 クラスライブラリの参照方法

本製品では、クラスライブラリのソースファイルを用意しています。

ソースコードをビルドしてクラスライブライリを生成し、参照することで、DLL 関数の定義を容易に

することができます。

(DLL 関数の呼び出しをカスタマイズしたい場合は、クラスライブラリのソースを参照してくださ

い)

IFCHDLC クラス、IFCSDIO クラスは x86 専用の定義です。以前のバージョンとの互換性のために残さ

れています。

新たにアプリケーションを作成される場合には、IFCHDLC_ANY クラス、IFCSDIO_ANY クラス(x86、x64

共用)の定義をご使用下さい。

1. クラスライブラリの作成方法 .NET において DLL 関数を呼び出すには、まずクラスライブラリを用意する必要があります。

Visual C# .NET の場合

Visual Studio を起動し、以下のプロジェクトファイルを開きます。

<インストール先>\interface\GPC4116\samples\CS_NET\IFCHDLC\IFCHDLC.csproj

このプロジェクトをビルドすると、binフォルダにクラスライブラリIFCHDLC.dllが作成されます。

Visual Basic .NET の場合

Visual Studio を起動し、以下のプロジェクトファイルを開きます。

<インストール先>\interface\GPC4116\samples\VB_NET\IFCHCLC\IFCHDLC.vbproj

このプロジェクトをビルドすると、binフォルダにクラスライブラリIFCHDLC.dllが作成されます。

2. クラスライブラリの参照 Visual C# .NET, Visual Basic .NET の場合

Visual Studio のメニューの「プロジェクト」の「参照の追加」を選択してください。

「参照」ボタンをクリックして参照したいクラスライブラリ DLL を指定します。

例)

<インストール先>\interface\GPC4116\samples\CS_NET\IFCHDLC\bin\Release\ifchdlc.dll

<インストール先>\interface\GPC4116\samples\VB_NET\IFCHDLC\bin\Relaase\ifchdlc.dll

「選択されたコンポーネント」に指定した DLL が表示されます。

「OK」ボタンをクリックすると設定は完了です。

次にソースのヘッダで各言語毎に下記のように InterfaceCorpDllWrap の名前空間を追加すれば

DLL 関数を次章の「使用例」の方法で呼び出すことができるようになります。

Visual C# .NET の場合

using InterfaceCorpDllWrap;

Visual Basic .NET の場合

Imports InterfaceCorpDllWrap

Page 31: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

3.5 注意事項 ■非同期処理で参照渡しする変数について

各関数はアンマネージ関数です。

非同期処理を使用する際は、ガーベジコレクションによりメモリの開放・移動があるタイミング

で発生します。それにより関数内で保持しているポインタと、アプリケーション内での変数のポ

インタでずれが発生し、メモリ破壊が発生する可能性があります。

下記の対策例のように対策してください。

□対象となる関数

HdlcSendFrame関数、HdlcEventRequestPending関数、SdioSetEvent関数

□対策例

1. HdlcSendFrame 関数

サンプルプログラム SendAsync を参照してください。

2. HdlcEventRequestPending関数

サンプルプログラム ReceiveAsync を参照してください。

3. SdioSetEvent関数

サンプルプログラム DioEvent を参照してください。

■構造体について

StructLayout クラスのオプションに「LayoutKind.Sequential」を指定しています

Page 32: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

第4章 リファレンス(HDLC 通信部)

4.1 関数一覧

No 関数名 機能

1 HdlcOpen ポートのオープンを行い、以後ポートへのアクセスを行えるよ

うにします。

2 HdlcClose ポートのクローズを行い、ポートアクセスのために使用されて

いた各種リソースの解放を行い、以後ポートへのアクセスを禁

止します。

3 HdlcSendFrame フレームの送信を行います。

4 HdlcGetFrameCount 受信しているフレームの数を取得します。

5 HdlcGetFrameLength 受信バッファの先頭のフレームの長さを取得します。

6 HdlcReceiveFrame 受信バッファの先頭のフレームを取得します。

7 HdlcGetStatus 受信フレームの有無、送信中フレームの有無等を取得します。

8 HdlcSetControlLine 制御信号の状態を変更します。

9 HdlcGetControlLine 制御信号の状態を取得します。

10 HdlcClearBuffer 送信バッファ、受信バッファをクリアします。

11 HdlcSetEventMask イベントマスクの設定を行います。

12 HdlcGetEventMask イベントマスクの取得を行います。

13 HdlcEventRequestPending HDLC インタフェースモジュールからのイベントを待ちます。

14 HdlcCheckIdle アイドル状態であるかチェックします。

15 HdlcSetIdleTimer アイドル検出の検出時間を設定します。

16 HdlcGetIdleTimer アイドル検出の検出時間を取得します。

17 HdlcSetCableTermination 終端抵抗の設定します。

18 HdlcGetCableTermination 終端抵抗設定を取得します。

19 HdlcGetTmoduleStatus HDLC モジュールの接続状態を取得します。

20 HdlcSetTmodulePower HDLC モジュールの電源を制御します。

21 HdlcSetFlag リーディングフラグ/トレーリングフラグの数を設定します。

22 HdlcGetFlag リーディングフラグ/トレーリングフラグの数を取得します。

23 HdlcCommonGetPciDeviceInfo HDLC インタフェースモジュールのリソース情報を取得します。

24 CallBackProc イベント発生によってコールされるコールバック関数のプレー

スホルダです。

Page 33: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

4.2 関数個別説明

1. HdlcOpen 【機能】

HDLC インタフェースモジュールのオープンを行い、以後のインタフェースモジュールへのアク

セスを行えるようにします。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語(x86 専用)

HANDLE HdlcOpen(

LPCTSTR lpszName,

PHDLCNPORTINITDATA pInitData

);

●C 言語(x64 専用)

HANDLE HdlcOpen(

LPCSTR lpszName,

PHDLCNPORTINITDATA pInitData

);

●Visual Basic

Declare Function HdlcOpen Lib "FbiHdlc.DLL"( _

ByVal lpszName As String, _

ByRef pInitData As HDLCNPORTINITDATA _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern IntPtr HdlcOpen(

string Name, // デバイス名

ref HDLCPORTINITDATA InitData // 初期化構造体

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcOpen(

string Name, // デバイス名

ref HDLCPORTINITDATA InitData // 初期化構造体

);

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

Declare Function HdlcOpen Lib "fbihdlc.dll"(

ByVal Name As String, _ ‘ デバイス名

ByRef InitData As HDLCPORTINITDATA _ ‘ 初期化構造体

)As IntPtr

Page 34: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET(x86 専用)

Declare Function HdlcOpen Lib "fbihdlc.dll"(

ByVal Name As String, _ ‘ デバイス名

ByRef InitData As HDLCPORTINITDATA _ ‘ 初期化構造体

)As Integer

【パラメータ】

lpszName オープンするデバイス名を指定します。

pInitData ポート初期化情報構造体(HDLCNPORTINTIDATA構造体)へのポインタを指定します。

【戻り値】

関数が正常に終了した場合には、有効なハンドルが返されます。

他の関数は、本関数により取得したハンドルを使用してデバイスの制御を行います。

オープンに失敗した場合には、INVALID_HANDLE_VALUE(-1)が返されます。

【備考】

●UNICODE 文字列について

C 言語(x86 専用)で、HdlcOpen の引数 lpszName に指定する文字列は LPCTSTR 型として定義して

いますが、UNICODE 文字列には対応しておりません。

x86 環境でご使用になる場合、使用例に沿って記述してください。

Page 35: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【使用例】

●C言語(x86 専用)

HDLCNPORTINITDATA PortInit;

HANDLE hDevice;

/* ポート初期化 */

ZeroMemory(&PortInit, sizeof(HDLCNPORTINITDATA));

PortInit.uLineMode = HDLC_LINE_HALF; /* 半二重 */

PortInit.uTxc = HDLC_SCLK_PTC; /* 送信内部クロック */

PortInit.uRxc = HDLC_RCLK_DPLL; /* 受信 DPLL */

PortInit.uSourceClock = HDLC_CLOCK_32000000; /* 内部クロック 32MHz */

PortInit.uBaudRate = 250000; /* 250kbps */

PortInit.uInterface = HDLC_INTERFACE_485; /* RS-485 */

PortInit.uFormat = HDLC_FORMAT_NRZI; /* 符号化フォーマット NRZI */

PortInit.uFcs = HDLC_FCS_16; /* FCS 生成多項式 ITUT FCS16 */

PortInit.uAddressMode = HDLC_ADDRESS_NONE; /* アドレス検出を行わない */

PortInit.uTxcMode = HDLC_STOUT_NONE; /* クロックを出力しない */

PortInit.uSendTiming = 100 | HDLC_TIME_MICRO_SEC; /* 送信前切り替え時間 100us */

PortInit.uCloseTiming = 100 | HDLC_TIME_MICRO_SEC; /* 送信後切り替え時間 100us */

hDevice = HdlcOpen((LPCTSTR)"FBIHDLC1", &PortInit);

if(hDevice == INVALID_HANDLE_VALUE){

/* オープンに失敗 */

printf("Fail to open the port\n");

}

else {

/* 実際に設定された送信前切り替え時間を表示 */

if(PortInit.uSendTiming & HDLC_TIME_MICRO_SEC) {

printf("SendTiming = %ld us", (PortInit.uSendTiming & ~HDLC_TIME_MICRO_SEC));

}

else {

printf("SendTiming = %ld ms", PortInit.uSendTiming * 10);

}

}

Page 36: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●C 言語(x64 専用)

HDLCNPORTINITDATA PortInit;

HANDLE hDevice;

/* ポート初期化 */

ZeroMemory(&PortInit, sizeof(HDLCNPORTINITDATA));

PortInit.uLineMode = HDLC_LINE_HALF; /* 半二重 */

PortInit.uTxc = HDLC_SCLK_PTC; /* 送信内部クロック */

PortInit.uRxc = HDLC_RCLK_DPLL; /* 受信 DPLL */

PortInit.uSourceClock = HDLC_CLOCK_32000000; /* 内部クロック 32MHz */

PortInit.uBaudRate = 250000; /* 250kbps */

PortInit.uInterface = HDLC_INTERFACE_485; /* RS-485 */

PortInit.uFormat = HDLC_FORMAT_NRZI; /* 符号化フォーマット NRZI */

PortInit.uFcs = HDLC_FCS_16; /* FCS 生成多項式 ITUT FCS16 */

PortInit.uAddressMode = HDLC_ADDRESS_NONE; /* アドレス検出を行わない */

PortInit.uTxcMode = HDLC_STOUT_NONE; /* クロックを出力しない */

PortInit.uSendTiming = 100 | HDLC_TIME_MICRO_SEC; /* 送信前切り替え時間 100us */

PortInit.uCloseTiming = 100 | HDLC_TIME_MICRO_SEC; /* 送信後切り替え時間 100us */

hDevice = HdlcOpen("FBIHDLC1", &PortInit);

if(hDevice == INVALID_HANDLE_VALUE){

/* オープンに失敗 */

printf("Fail to open the port\n");

}

else {

/* 実際に設定された送信前切り替え時間を表示 */

if(PortInit.uSendTiming & HDLC_TIME_MICRO_SEC) {

printf("SendTiming = %ld us", (PortInit.uSendTiming & ~HDLC_TIME_MICRO_SEC));

}

else {

printf("SendTiming = %ld ms", PortInit.uSendTiming * 10);

}

}

Page 37: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic

Dim hDevice As Long

Dim szMessage As String

Dim PortInit As HDLCNPORTINITDATA

' ポート初期化

' 構造体メンバへの代入処理省略

hDevice = HdlcOpen("FBIHDLC1", PortInit)

If hDevice = -1 Then

' オープンに失敗

MsgBox("Fail to open the port")

Else

' 実際に設定された送信前切り替え時間を表示

If (PortInit.uSendTiming AND HDLC_TIME_MICRO_SEC) <> 0 Then

szMessage = "SendTiming = " & Str(PortInit.uSendTiming AND 65536)

szMessage = szMessage & " us"

Else

szMessage = "SendTiming = " & Str(PortInit.uSendTiming * 10) & " ms"

End If

MsgBox(szMessage)

End If

Page 38: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual C# .NET

IFCHDLC_ANY.HDLCNPORTINITDATA PortInit;

IntPtr Device;

/* ポート初期化 */

PortInit = new IFCHDLC_ANY.HDLCNPORTINITDATA();

PortInit.InitializeArray();

PortInit.LineMode = IFCHDLC_ANY.HDLC_LINE_HALF; /* 半二重 */

PortInit.Txc = IFCHDLC_ANY.HDLC_SCLK_PTC; /* 送信内部クロック */

PortInit.Rxc = IFCHDLC_ANY.HDLC_RCLK_DPLL; /* 受信 DPLL */

PortInit.SourceClock = IFCHDLC_ANY.HDLC_CLOCK_32000000; /* 内部クロック 32MHz */

PortInit.BaudRate = 250000; /* 250kbps */

PortInit.Interface = IFCHDLC_ANY.HDLC_INTERFACE_485; /* RS-485 */

PortInit.Format = IFCHDLC_ANY.HDLC_FORMAT_NRZI; /* 符号化フォーマット NRZI */

PortInit.Fcs = IFCHDLC_ANY.HDLC_FCS_16; /* FCS 生成多項式 ITUT FCS16 */

PortInit.AddressMode = IFCHDLC_ANY.HDLC_ADDRESS_NONE; /* アドレス検出を行わない */

PortInit.TxcMode = IFCHDLC_ANY.HDLC_STOUT_NONE; /* クロックを出力しない */

PortInit.SendTiming = 100 | IFCHDLC_ANY.HDLC_TIME_MICRO_SEC;

/* 送信前切り替え時間 100us */

PortInit.CloseTiming = 100 | IFCHDLC_ANY.HDLC_TIME_MICRO_SEC;

/* 送信後切り替え時間 100us */

Device = IFCHDLC_ANY.HdlcOpen("FBIHDLC1", ref PortInit);

●Visual Basic .NET

Dim Device As IntPtr

Dim PortInit As IFCHDLC_ANY.HDLCNPORTINITDATA

' ポート初期化

PortInit = New IFCHDLC_ANY.HDLCNPORTINITDATA(0)

PortInit.LineMode = IFCHDLC_ANY.HDLC_LINE_HALF ‘ 半二重

PortInit.Txc = IFCHDLC_ANY.HDLC_SCLK_PTC ’ 送信内部クロック

PortInit.Rxc = IFCHDLC_ANY.HDLC_RCLK_DPLL ‘ 受信 DPLL

PortInit.SourceClock = IFCHDLC_ANY.HDLC_CLOCK_32000000 ‘ 内部クロック 32MHz

PortInit.BaudRate = 250000 ‘ 250kbps

PortInit.Interface = IFCHDLC_ANY.HDLC_INTERFACE_485 ‘ RS-485

PortInit.Format = IFCHDLC_ANY.HDLC_FORMAT_NRZI ‘ 符号化フォーマット NRZI

PortInit.Fcs = IFCHDLC_ANY.HDLC_FCS_16 ‘ FCS 生成多項式 ITUT FCS16

PortInit.AddressMode = IFCHDLC_ANY.HDLC_ADDRESS_NONE ‘ アドレス検出を行わない

PortInit.TxcMode = IFCHDLC_ANY.HDLC_STOUT_NONE ‘ クロックを出力しない

PortInit.SendTiming = 100 Or IFCHDLC_ANY.HDLC_TIME_MICRO_SEC

‘ 送信前切り替え時間 100us

PortInit.CloseTiming = 100 Or IFCHDLC_ANY.HDLC_TIME_MICRO_SEC

‘ 送信後切り替え時間 100us

Device = IFCHDLC_ANY.HdlcOpen("FBIHDLC1", PortInit)

Page 39: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

2. HdlcClose 【機能】

ポートのクローズを行い、ポートアクセスのために使用されていた各種リソースの解放を行い、

以後のポートへのアクセスを禁止します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcClose(

HANDLE HDevice

);

●Visual Basic

Declare Function HdlcClose Lib "FbiHdlc.DLL" ( _

ByVal HDevice As Long _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcClose(

IntPtr DeviceHandle // デバイスハンドル

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcClose(

uint DeviceHandle // デバイスハンドル

);

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

Declare Function HdlcClose Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr _ ' デバイスハンドル

)As Integer

●Visual Basic .NET(x86 専用)

Declare Function HdlcClose Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer _ ' デバイスハンドル

)As Integer

【パラメータ】

hDevice クローズするデバイスハンドルを指定します。

【戻り値】

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

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

Page 40: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【使用例】

●C言語

HANDLE hDevice;

HDLCNPORTINITDATA PortInit;

LONG Ret;

hDevice = HdlcOpen(“FBIHDLC1”, &PortInit); :

Ret = HdlcClose(hDevice);

●Visual Basic

Dim hDevice As Long

Dim PortInit As HDLCNPORTINITDATA

Dim Ret As Long

hDevice = HdlcOpen("FBIHDLC1", PortInit)

Ret = HdlcClose(hDevice)

●Visual C# .NET

IntPtr DeviceHandle;

IFCHDLC_ANY.HDLCNPORTINITDATA PortInit;

uint Ret;

DeviceHandle = IFCHDLC_ANY.HdlcOpen(“FBIHDLC1”, ref PortInit); :

Ret = IFCHDLC_ANY.HdlcClose(DeviceHandle);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim PortInit As IFCHDLC_ANY.HDLCNPORTINITDATA(0)

Dim Ret As Integer

DeviceHandle = IFCHDLC_ANY.HdlcOpen("FBIHDLC1", PortInit)

Ret = IFCHDLC_ANY.HdlcClose(DeviceHandle)

Page 41: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

3. HdlcSendFrame 【機能】

HDLC フレームの送信を行います。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcSendFrame(

HANDLE hDevice,

void *lpBuffer,

ULONG ulLength,

ULONG ulEndFlag,

LPOVERLAPPED lpOverlapped

);

●Visual Basic バイト型変数によるデータ送信を行う場合

Declare Function HdlcSendFrame Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByRef lpBuffer As Byte, _

ByVal ulLength As Long, _

ByVal ulEndFlag As Long, _

ByRef lpOverlapped As OVERLAPPED _

) As Long

文字列型変数によるデータ送信を行う場合

Declare Function HdlcSendFrameString Lib "FbiHdlc.DLL" Alias "HdlcSendFrame" (

ByVal hDevice As Long,

ByVal lpBuffer As String,

ByVal ulLength As Long,

ByVal ulEndFlag As Long,

ByRef lpOverlapped As OVERLAPPED

) As Long

Page 42: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual C# .NET(x86、x64 共用、非同期・同期処理共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcSendFrame(

IntPtr DeviceHandle, // デバイスハンドル

IntPtr Buffer, // 送信データ格納変数への参照渡し

uint Length, // 送信データ長

uint EndFlg, // 終フレーム指定フラグ

IntPtr Overlapped // オーバーラップ構造体

);

●Visual C# .NET(x86、x64 共用、同期処理専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcSendFrame(

IntPtr DeviceHandle, // デバイスハンドル

string Buffer, // 送信データ格納変数への参照渡し

uint Length, // 送信データ長

uint EndFlg, // 終フレーム指定フラグ

);

[DllImport("fbihdlc.dll")]

public static extern uint HdlcSendFrame(

IntPtr DeviceHandle, // デバイスハンドル

out byte Buffer, // 送信データ格納変数への参照渡し

uint Length, // 送信データ長

uint EndFlg, // 終フレーム指定フラグ

);

[DllImport("fbihdlc.dll")]

public static extern uint HdlcSendFrame(

IntPtr DeviceHandle, // デバイスハンドル

byte[] Buffer, // 送信データ格納変数への参照渡し

uint Length, // 送信データ長

uint EndFlg, // 終フレーム指定フラグ

);

Page 43: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual C# .NET(x86 専用、非同期・同期処理共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcSendFrame(

IntPtr DeviceHandle, // デバイスハンドル

IntPtr Buffer, // 送信データ格納変数への参照渡し

uint Length, // 送信データ長

uint EndFlg, // 終フレーム指定フラグ

IntPtr Overlapped // オーバーラップ構造体

);

●Visual C# .NET(x86 専用、同期処理専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcSendFrame(

IntPtr DeviceHandle, // デバイスハンドル

string Buffer, // 送信データ格納変数への参照渡し

uint Length, // 送信データ長

uint EndFlg, // 終フレーム指定フラグ

);

[DllImport("fbihdlc.dll")]

public static extern uint HdlcSendFrame(

IntPtr DeviceHandle, // デバイスハンドル

out byte Buffer, // 送信データ格納変数への参照渡し

uint Length, // 送信データ長

uint EndFlg, // 終フレーム指定フラグ

);

[DllImport("fbihdlc.dll")]

public static extern uint HdlcSendFrame(

IntPtr DeviceHandle, // デバイスハンドル

byte[] Buffer, // 送信データ格納変数への参照渡し

uint Length, // 送信データ長

uint EndFlg, // 終フレーム指定フラグ

);

Page 44: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET(x86、x64 共用、非同期・同期処理共用)

Declare Function HdlcSendFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByRef Buffer As IntPtr, _ ‘ 送信データ格納変数への参照渡し

ByVal Length As Integer, _ ‘ 送信データ長

ByVal EndFlg As Integer, _ ‘ 終フレーム指定フラグ

ByRef Overlapped As IntPtr _ ‘ オーバーラップ構造体

)As Integer

●Visual Basic .NET(x86、x64 共用、同期処理専用)

Declare Function HdlcSendFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByRef Buffer As String, _ ‘ 送信データ格納変数への参照渡し

ByVal Length As Integer, _ ‘ 送信データ長

ByVal EndFlg As Integer, _ ‘ 終フレーム指定フラグ

)As Integer

Declare Function HdlcSendFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByRef Buffer As Byte, _ ‘ 送信データ格納変数への参照渡し

ByVal Length As Integer, _ ‘ 送信データ長

ByVal EndFlg As Integer, _ ‘ 終フレーム指定フラグ

)As Integer

Declare Function HdlcSendFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal Buffer( ) As Byte, _ ‘ 送信データ格納変数への参照渡し

ByVal Length As Integer, _ ‘ 送信データ長

ByVal EndFlg As Integer, _ ‘ 終フレーム指定フラグ

)As Integer

Page 45: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET(x86 専用、非同期・同期処理共用)

Declare Function HdlcSendFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByRef Buffer As IntPtr, _ ‘ 送信データ格納変数への参照渡し

ByVal Length As Integer, _ ‘ 送信データ長

ByVal EndFlg As Integer, _ ‘ 終フレーム指定フラグ

ByRef Overlapped As IntPtr _ ‘ オーバーラップ構造体

)As Integer

●Visual Basic .NET(x86 専用、同期処理専用)

Declare Function HdlcSendFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByRef Buffer As String, _ ‘ 送信データ格納変数への参照渡し

ByVal Length As Integer, _ ‘ 送信データ長

ByVal EndFlg As Integer, _ ‘ 終フレーム指定フラグ

)As Integer

Declare Function HdlcSendFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByRef Buffer As Byte, _ ‘ 送信データ格納変数への参照渡し

ByVal Length As Integer, _ ‘ 送信データ長

ByVal EndFlg As Integer, _ ‘ 終フレーム指定フラグ

)As Integer

Declare Function HdlcSendFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal Buffer( ) As Byte, _ ‘ 送信データ格納変数への参照渡し

ByVal Length As Integer, _ ‘ 送信データ長

ByVal EndFlg As Integer, _ ‘ 終フレーム指定フラグ

)As Integer

【パラメータ】

hDevice データを送信するデバイスハンドルを指定してください。

lpBuffer 送信データ格納変数へのポインタを指定します。(C 言語)

送信データ格納変数を指定します。(Visual Basic)

ulLength 送信データのサイズをバイト単位で指定します。

Page 46: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

ulEndFlag 続けて送信するフレームがあるかどうかを指定します。

本パラメータは PCI-4116, PCI/CTP-4159 半二重通信時のみ有効です。

値 内容

0 続きのフレームがあるので、データ送信が完了しても受信状態に移行しない

1 このフレームを送信し終わったら受信状態に移行する

lpOverlapped フレーム送信後、イベントを発生させる場合は指定してください。使用しない場合は NULL

または 0を指定してください。

【戻り値】

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

非同期で動作させる場合は、FBIHDLC_ERROR_IO_PENDINGを返します。

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

【備考】

●Visual Basic にて文字列の送信を行う場合には、HdlcSendFrameString 関数をご使用くださ

い。

文字列以外のデータを送信する場合には、HdlcSendFrame 関数をご使用ください。

●HdlcSendFrame 関数による送信が完了する以前に次の HdlcSendFrame 関数による送信を実行

しても、終結フラグと次に送信するフレームの先頭フラグが共有されることはありません。

終結フラグと先頭フラグは連続せずに間が出来ます。

フラグフィルに設定している場合、フラグは 低 3 つ(終結フラグと先頭フラグを含む)挿入

されます。

●クラスライブラリの宣言には互換性のために残されている宣言があります。Help に記載され

ている宣言以外、ご使用は推奨できません。

【使用例】

●C言語

HANDLE hDevice;

OVERLAPPED sOverlapped;

LONG Ret;

ZeroMemory(&sOverlapped, sizeof(OVERLAPPED));

sOverlapped.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);

Ret = HdlcSendFrame(hDevice, "1234567890", 10, 1, &sOverlapped);

if(Ret == FBIHDLC_ERROR_IO_PENDING) {

WaitForSingleObject(sOverlapped.hEvent, INFINITE);

}

CloseHandle(sOverlapped.hEvent);

●Visual Basic

Dim hDevice As Long

Dim sOverlapped As OVERLAPPED

Dim Ret As Long

sOverlapped.Internal = 0

sOverlapped.InternalHigh = 0

Page 47: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

sOverlapped.Offset = 0

sOverlapped.OffsetHigh = 0

sOverlapped.hEvent = CreateEvent(0, True, False, 0)

Ret = HdlcSendFrameString(hDevice, "1234567890", 10, 1, sOverlapped)

If Ret = FBIHDLC_ERROR_IO_PENDING Then

WaitForSingleObject sOverlapped.hEvent, -1

End If

CloseHandle sOverlapped.hEvent

●Visual C# .NET

IntPtr DeviceHandle;

IFCHDLC_ANY.OVERLAPPED Overlapped;

uint Ret;

Ret = IFCHDLC_ANY.HdlcSendFrame(DeviceHandle, "1234567890", 10, 1, IntPtr.Zero);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Overlapped As IFCHDLC_ANY.OVERLAPPED

Dim Ret As Integer

Ret = IFCHDLC_ANY.HdlcSendFrameString(hDeviceHandle, "1234567890", 10, 1, IntPtr.Zero)

10 バイトのフレームを送信します。

Page 48: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

4. HdlcGetFrameCount 【機能】

受信バッファ内に格納されているフレームの数を取得します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcGetFrameCount(

HANDLE hDevice,

PULONG pulFrameCount

);

●Visual Basic

Declare Function HdlcGetFrameCount Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByRef pulFrameCount As Long _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcGetFrameCount(

IntPtr DeviceHandle, // デバイスハンドル

out uint FrameCount // 受信フレーム数を格納する変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcGetFrameCount(

uint DeviceHandle, // デバイスハンドル

out uint FrameCount // 受信フレーム数を格納する変数への参照渡し

);

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

Declare Function HdlcGetFrameCount Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByRef FrameCount As Integer _ ‘ 受信フレーム数を格納する変数の参照渡し

)As Integer

●Visual Basic .NET(x86 専用)

Declare Function HdlcGetFrameCount Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByRef FrameCount As Integer _ ‘ 受信フレーム数を格納する変数の参照渡し

)As Integer

Page 49: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

hDevice 受信フレーム数を取得するデバイスハンドルを指定します。

pulFrameCount 受信フレーム数を返す変数へのポインタを指定します。(C 言語)

受信フレーム数を返す変数を指定します。(Visual Basic)

【戻り値】

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

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

【使用例】

●C言語

HANDLE hDevice;

ULONG ulFrameCount, ulFrameLength;

ULONG n;

LONG Ret;

BYTE Buffer[16384];

Ret = HdlcGetFrameCount(hDevice, &ulFrameCount);

for(n = 0; n < ulFrameCount; n++) {

Ret = HdlcReceiveFrame(hDevice, Buffer, &ulFrameLength);

}

●Visual Basic

Dim hDevice As Long

Dim ulFrameCount, ulFrameLength As Long

Dim n As Long

Dim Ret As Long

Dim Buffer(16384) As Byte

Ret = HdlcGetFrameCount(hDevice, ulFrameCount)

For n = 0 To ulFrameCount - 1

Ret = HdlcReceiveFrame(hDevice, Buffer(0), ulFrameLength)

Next

●Visual C# .NET

IntPtr DeviceHandle;

uint FrameCount, FrameLength;

uint n;

uint Ret;

byte[] Buffer = new byte[16384];

Ret = IFCHDLC_ANY.HdlcGetFrameCount(DeviceHandle, out FrameCount);

for(n = 0; n < FrameCount; n++) {

Ret = IFCHDLC_ANY.HdlcReceiveFrame(DeviceHandle, Buffer, out FrameLength);

}

Page 50: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim FrameCount As Integer

Dim FrameLength As Integer

Dim n As Integer

Dim Ret As Integer

Dim Buffer(16384) As Byte

Ret = IFCHDLC_ANY.HdlcGetFrameCount(DeviceHandle, FrameCount)

For n = 0 To FrameCount - 1

Ret = IFCHDLC_ANY.HdlcReceiveFrame(DeviceHandle, Buffer(0), FrameLength)

Next

受信フレーム数を取得し、取得したフレーム分だけデータを取り出します。

Page 51: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

5. HdlcGetFrameLength 【機能】

受信フレームの先頭に格納されているフレームの長さを取得します(FCS は含まれません)。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcGetFrameLength(

HANDLE hDevice,

PULONG pulFrameLength

);

●Visual Basic

Declare Function HdlcGetFrameLength Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByRef pulFrameLength As Long _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcGetFrameLength(

IntPtr DeviceHandle, // デバイスハンドル

out uint FrameLength // 受信フレーム長を格納する変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcGetFrameLength(

uint DeviceHandle, // デバイスハンドル

out uint FrameLength // 受信フレーム長を格納する変数への参照渡し

);

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

Declare Function HdlcGetFrameLength Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ' デバイスハンドル

ByRef FrameLength As Integer _ ' 受信フレーム長を格納する変数への参照渡し

)As Integer

●Visual Basic .NET(x86 専用)

Declare Function HdlcGetFrameLength Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ' デバイスハンドル

ByRef FrameLength As Integer _ ' 受信フレーム長を格納する変数への参照渡し

)As Integer

Page 52: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

hDevice 受信フレーム数を取得するデバイスハンドルを指定します。

pulFrameLength 受信フレーム長を返す変数へのポインタを指定します。(C 言語)

受信フレーム長を返す変数を指定します。(Visual Basic)

単位はバイトで、0~16384 の値が返されます。

【戻り値】

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

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

【使用例】

●C言語

HANDLE hDevice;

ULONG ulFrameLength;

LONG Ret;

BYTE Buffer[16384];

Ret = HdlcGetFrameLength(hDevice, &ulFrameLength);

if(ulFrameLength > 0) {

Ret = HdlcReceiveFrame(hDevice, Buffer, &ulFrameLength);

}

●Visual Basic

Dim hDevice As Long

Dim ulFrameLength As Long

Dim Ret As Long

Dim Buffer(16384) As Byte

Ret = HdlcGetFrameLength(hDevice, ulFrameLength)

If ulFrameLength > 0 Then

Ret = HdlcReceiveFrame(hDevice, Buffer(0), ulFrameLength)

End If

●Visual C# .NET

IntPtr DeviceHandle;

uint FrameLength;

uint Ret;

byte[] Buffer = new byte[16384];

Ret = IFCHDLC_ANY.HdlcGetFrameLength(DeviceHandle, out FrameLength);

if(FrameLength > 0) {

Ret = IFCHDLC_ANY.HdlcReceiveFrame(DeviceHandle, Buffer, out FrameLength);

}

Page 53: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim FrameLength As Integer

Dim Ret As Integer

Dim Buffer(16384) As Byte

Ret = IFCHDLC_ANY.HdlcGetFrameLength(DeviceHandle, FrameLength)

If FrameLength > 0 Then

Ret = IFCHDLC_ANY.HdlcReceiveFrame(DeviceHandle, Buffer(0), FrameLength)

End If

受信バッファ内に残っている受信データサイズを取得し、受信フレームが 0 でなければ(デー

タが残っていれば)受信フレームを取り出します。

Page 54: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

6. HdlcReceiveFrame 【機能】

受信バッファに蓄えられた HDLC フレームを取り出します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcReceiveFrame(

HANDLE hDevice,

void *lpBuffer,

PULONG pulLength

);

●Visual Basic バイト型変数によるデータ送信を行う場合

Declare Function HdlcReceiveFrame Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByRef lpBuffer As Byte, _

ByRef pulLength As Long _

) As Long

文字列型変数によるデータ送信を行う場合

Declare Function HdlcReceiveFrameString Lib "FbiHdlc.DLL" Alias "HdlcReceiveFrame" (

ByVal hDevice As Long,

ByVal lpBuffer As String,

ByRef pulLength As Long

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcReceiveFrame(

IntPtr DeviceHandle, // デバイスハンドル

out byte Buffer, // 受信データを格納する変数への参照渡し

out uint Length // 受信データ長

);

[DllImport("fbihdlc.dll")]

public static extern uint HdlcReceiveFrame(

IntPtr DeviceHandle, // デバイスハンドル

out ushort Buffer, // 受信データを格納する変数への参照渡し

out uint Length // 受信データ長

);

[DllImport("fbihdlc.dll")]

public static extern uint HdlcReceiveFrame(

IntPtr DeviceHandle, // デバイスハンドル

out uint Buffer, // 受信データを格納する変数への参照渡し

out uint Length // 受信データ長

);

Page 55: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

[DllImport("fbihdlc.dll")]

public static extern uint HdlcReceiveFrame(

IntPtr DeviceHandle, // デバイスハンドル

byte[] Buffer, // 受信データを格納する変数への参照渡し

out uint Length // 受信データ長

);

[DllImport("fbihdlc.dll")]

public static extern uint HdlcReceiveFrame(

IntPtr DeviceHandle, // デバイスハンドル

ushort[] Buffer, // 受信データを格納する変数への参照渡し

out uint Length // 受信データ長

);

[DllImport("fbihdlc.dll")]

public static extern uint HdlcReceiveFrame(

IntPtr DeviceHandle, // デバイスハンドル

uint[] Buffer, // 受信データを格納する変数への参照渡し

out uint Length // 受信データ長

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcReceiveFrame(

uint DeviceHandle, // デバイスハンドル

out byte Buffer, // 受信データを格納する変数への参照渡し

out uint Length // 受信データ長

);

[DllImport("fbihdlc.dll")]

public static extern uint HdlcReceiveFrame(

uint DeviceHandle, // デバイスハンドル

out ushort Buffer, // 受信データを格納する変数への参照渡し

out uint Length // 受信データ長

);

[DllImport("fbihdlc.dll")]

public static extern uint HdlcReceiveFrame(

uint DeviceHandle, // デバイスハンドル

out uint Buffer, // 受信データを格納する変数への参照渡し

out uint Length // 受信データ長

);

[DllImport("fbihdlc.dll")]

public static extern uint HdlcReceiveFrame(

uint DeviceHandle, // デバイスハンドル

byte[] Buffer, // 受信データを格納する変数への参照渡し

out uint Length // 受信データ長

);

Page 56: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

[DllImport("fbihdlc.dll")]

public static extern uint HdlcReceiveFrame(

uint DeviceHandle, // デバイスハンドル

ushort[] Buffer, // 受信データを格納する変数への参照渡し

out uint Length // 受信データ長

);

[DllImport("fbihdlc.dll")]

public static extern uint HdlcReceiveFrame(

uint DeviceHandle, // デバイスハンドル

uint[] Buffer, // 受信データを格納する変数への参照渡し

out uint Length // 受信データ長

);

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

Declare Function HdlcReceiveFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByRef Buffer As Byte, _ ‘ 受信データを格納する変数への参照渡し

ByRef Length As Integer _ ‘ 受信データ長

)As Integer

Declare Function HdlcReceiveFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByRef Buffer As Short, _ ‘ 受信データを格納する変数への参照渡し

ByRef Length As Integer _ ‘ 受信データ長

)As Integer

Declare Function HdlcReceiveFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByRef Buffer As Integer, _ ‘ 受信データを格納する変数への参照渡し

ByRef Length As Integer _ ‘ 受信データ長

)As Integer

Declare Function HdlcReceiveFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal Buffer( ) As Byte, _ ‘ 受信データを格納する変数への参照渡し

ByRef Length As Integer _ ‘ 受信データ長

)As Integer

Declare Function HdlcReceiveFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal Buffer( ) As Short, _ ‘ 受信データを格納する変数への参照渡し

ByRef Length As Integer _ ‘ 受信データ長

)As Integer

Page 57: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

Declare Function HdlcReceiveFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal Buffer( ) As Integer, _ ‘ 受信データを格納する変数への参照渡し

ByRef Length As Integer _ ‘ 受信データ長

)As Integer

●Visual Basic .NET(x86 専用)

Declare Function HdlcReceiveFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByRef Buffer As Byte, _ ‘ 受信データを格納する変数への参照渡し

ByRef Length As Integer _ ‘ 受信データ長

)As Integer

Declare Function HdlcReceiveFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByRef Buffer As Short, _ ‘ 受信データを格納する変数への参照渡し

ByRef Length As Integer _ ‘ 受信データ長

)As Integer

Declare Function HdlcReceiveFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByRef Buffer As Integer, _ ‘ 受信データを格納する変数への参照渡し

ByRef Length As Integer _ ‘ 受信データ長

)As Integer

Declare Function HdlcReceiveFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal Buffer( ) As Byte, _ ‘ 受信データを格納する変数への参照渡し

ByRef Length As Integer _ ‘ 受信データ長

)As Integer

Declare Function HdlcReceiveFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal Buffer( ) As Short, _ ‘ 受信データを格納する変数への参照渡し

ByRef Length As Integer _ ‘ 受信データ長

)As Integer

Declare Function HdlcReceiveFrame Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal Buffer( ) As Integer, _ ‘ 受信データを格納する変数への参照渡し

ByRef Length As Integer _ ‘ 受信データ長

)As Integer

Page 58: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

hDevice 受信データを取り出すデバイスハンドルを指定します。

lpBuffer 受信データを返す変数へのポインタを指定してください。(C 言語)

受信データを返す変数を指定してください。(Visual Basic)

HdlcGetFrameLength 関数で得られたサイズ以上のバッファを用意してください。

pulLength lpBuffer へコピーされたバイト数が返されます。

【戻り値】

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

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

【備考】

Visual Basic にて文字列の受信を行う場合には、HdlcReceiveFrameString 関数をご使用くださ

い。

文字列以外のデータを受信する場合には、HdlcReceiveFrame 関数をご使用ください。

文字列以外のデータを HdlcReceiveFrameString 関数で受信すると、データ化けが起こります。

受信するデータ型にあわせて関数をご使用ください。

【使用例】

●C言語

HANDLE hDevice;

ULONG ulFrameCount, ulFrameLength;

ULONG n;

LONG Ret;

BYTE Buffer[16384];

Ret = HdlcGetFrameCount(hDevice, &ulFrameCount);

for(n = 0; n < ulFrameCount; n++) {

Ret = HdlcReceiveFrame(hDevice, Buffer, &ulFrameLength);

}

●Visual Basic

Dim hDevice As Long

Dim ulFrameCount, ulFrameLength As Long

Dim n As Long

Dim Ret As Long

Dim Buffer(16384) As Byte

Ret = HdlcGetFrameCount(hDevice, ulFrameCount)

For n = 0 To ulFrameCount - 1

Ret = HdlcReceiveFrame(hDevice, Buffer(0), ulFrameLength)

Next

Page 59: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual C# .NET

IntPtr DeviceHandle;

uint FrameCount, FrameLength;

uint n;

uint Ret;

byte[] Buffer = new byte[16384];

Ret = IFCHDLC_ANY.HdlcGetFrameCount(DeviceHandle, out FrameCount);

for(n = 0; n < FrameCount; n++) {

Ret = IFCHDLC_ANY.HdlcReceiveFrame(DeviceHandle, Buffer, out FrameLength);

}

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim FrameCount, FrameLength As Integer

Dim n As Integer

Dim Ret As Integer

Dim Buffer(16384) As Byte

Ret = IFCHDLC_ANY.HdlcGetFrameCount(DeviceHandle, out FrameCount)

For n = 0 To FrameCount - 1

Ret = IFCHDLC_ANY.HdlcReceiveFrame(DeviceHandle, Buffer(0), out FrameLength)

Next

受信フレーム数を取得し、取得したフレーム分だけデータを取り出します。

Page 60: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

7. HdlcGetStatus 【機能】

HDLC インタフェースモジュールの各種ステータスを取得します。取得できるステータスは、フ

レーム受信の有無、受信バッファの残り容量、送信フレームの有無、送信バッファの残り容量

になります。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcGetStatus(

HANDLE hDevice,

PHDLCNPORTSTATUS pPortStatus

);

●Visual Basic

Declare Function HdlcGetStatus Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByRef pPortStatus As HDLCNPORTSTATUS _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcGetStatus(

IntPtr DeviceHandle, // デバイスハンドル

out HDLCNPORTSTATUS PortStatus // HDLCNPORTSTATUS 構造体の参照渡し

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcGetStatus(

uint DeviceHandle, // デバイスハンドル

out HDLCNPORTSTATUS PortStatus // HDLCNPORTSTATUS 構造体の参照渡し

);

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

Declare Function HdlcGetStatus Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ' デバイスハンドル

ByRef PortStatus As HDLCNPORTSTATUS _ ' HDLCNPORTSTATUS 構造体の参照渡し

)As Integer

●Visual Basic .NET(x86 専用)

Declare Function HdlcGetStatus Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ' デバイスハンドル

ByRef PortStatus As HDLCNPORTSTATUS _ ' HDLCNPORTSTATUS 構造体の参照渡し

)As Integer

Page 61: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

hDevice ステータスを取得するデバイスハンドルを指定します。

pPortStatus ポートステータス構造体(HDLCNPORTSTATUS構造体)へのポインタを指定します。(C言語)

ポートステータス構造体(HDLCNPORTSTATUS構造体)を指定します。(Visual Basic)

【戻り値】

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

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

【使用例】

●C言語

HANDLE hDevice;

HDLCNPORTSTATUS PortStatus;

LONG Ret;

BYTE Buffer[16384];

Buffer[0] = 0x02;

Buffer[1] = 0x53;

Ret = HdlcGetStatus(hDevice, &PortStatus);

if(PortStatus.uSendFreeBlock >= 1) {

Ret = HdlcSendFrame(hDevice, Buffer, 2, 1, NULL);

}

●Visual Basic

Dim hDevice As Long

Dim PortStatus As HDLCNPORTSTATUS

Dim Ret As Long

Dim Buffer(16384) As Byte

Buffer(0) = &H02

Buffer(1) = &H53

Ret = HdlcGetStatus(hDevice, PortStatus)

If PortStatus.uSendFreeBlock >= 1 Then

Ret = HdlcSendFrame(hDevice, Buffer(0), 2, 1, ByVal 0)

End If

Page 62: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual C# .NET

IntPtr DeviceHandle;

IFCHDLC_ANY.HDLCNPORTSTATUS PortStatus;

uint Ret;

byte[] Buffer = new byte[16384];

Buffer[0] = 0x02;

Buffer[1] = 0x53;

Ret = IFCHDLC_ANY.HdlcGetStatus(DeviceHandle, out PortStatus);

if(PortStatus.uSendFreeBlock >= 1) {

Ret = IFCHDLC_ANY.HdlcSendFrame(DeviceHandle, Buffer, 2, 1, null);

}

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim PortStatus As IFCHDLC_ANY.HDLCNPORTSTATUS

Dim Ret As Integer

Dim Buffer(16384) As Byte

Buffer(0) = &H02

Buffer(1) = &H53

Ret = IFCHDLC_ANY.HdlcGetStatus(DeviceHandle, PortStatus)

If PortStatus.uSendFreeBlock >= 1 Then

Ret = IFCHDLC_ANY.HdlcSendFrame(DeviceHandle, Buffer(0), 2, 1, 0)

End If

送信バッファが空であることを確認し、フレーム送信を行います。

Page 63: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

8. HdlcSetControlLine 【機能】

HDLC インタフェースモジュールの制御信号の出力状態を変更します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcSetControlLine(

HANDLE hDevice,

DWORD dwControlLine

);

●Visual Basic

Declare Function HdlcSetControlLine Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByVal dwControlLine As Long _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcSetControlLine(

IntPtr DeviceHandle, // デバイスハンドル

uint ControlLine // 制御信号情報

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcSetControlLine(

uint DeviceHandle, // デバイスハンドル

uint ControlLine // 制御信号情報

);

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

Declare Function HdlcSetControlLine Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ' デバイスハンドル

ByVal ControlLine As Integer _ ' 制御信号情報

)As Integer

●Visual Basic .NET(x86 専用)

Declare Function HdlcSetControlLine Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ' デバイスハンドル

ByVal ControlLine As Integer _ ' 制御信号情報

)As Integer

Page 64: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

hDevice 制御信号出力状態を変更するデバイスハンドルを指定します。

dwControlLine 制御信号情報を指定します。

bit31

~bit2

bit1 bit0

RS-232C 無効 RS ER

RS-485 無効 C 無効

0 = OFF

1 = ON

【戻り値】

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

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

【使用例】

●C言語

HANDLE hDevice;

LONG Ret;

Ret = HdlcSetControlLine(hDevice, 0x02);

●Visual Basic

Dim hDevice As Long

Dim Ret As Long

Ret = HdlcSetControlLine(hDevice, &H2)

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

Ret = IFCHDLC_ANY.HdlcSetControlLine(DeviceHandle, 0x02);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCHDLC_ANY.HdlcSetControlLine(DeviceHandle, &H2)

RS 信号(C 信号)を ON にします。

Page 65: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

9. HdlcGetControlLine 【機能】

HDLC インタフェースモジュールの制御信号の入力状態、出力状態を取得します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcGetControlLine(

HANDLE hDevice,

PDWORD pdwControlLine,

PDWORD pdwChangeOfControlLine

);

●Visual Basic

Declare Function HdlcGetControlLine Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByRef pdwControlLine As Long, _

ByRef pdwChangeOfControlLine As Long _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcGetControlLine(

IntPtr DeviceHandle, // デバイスハンドル

out uint ControlLine, // 制御信号情報を格納する変数への参照渡し

out uint ChangeOfControlLine // 制御信号の変化情報を格納する変数への

// 参照渡し

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcGetControlLine(

uint DeviceHandle, // デバイスハンドル

out uint ControlLine, // 制御信号情報を格納する変数への参照渡し

out uint ChangeOfControlLine // 制御信号の変化情報を格納する変数への

// 参照渡し

);

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

Declare Function HdlcSetControlLine Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ' デバイスハンドル

ByRef ContolLine As Integer, _ ' 制御信号情報を格納する変数への参照渡し

ByRef ChangeOfControlLine As Integer _ ' 制御信号の変化情報を格納する変数への参

照渡し

)As Integer

Page 66: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET(x86 専用)

Declare Function HdlcSetControlLine Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ' デバイスハンドル

ByRef ContolLine As Integer, _ ' 制御信号情報を格納する変数への参照渡し

ByRef ChangeOfControlLine As Integer _ ' 制御信号の変化情報を格納する変数への参

照渡し

)As Integer

【パラメータ】

hDevice 制御信号情報を取得するデバイスハンドルを指定します。

pdwControlLine 制御信号情報を返す変数へのポインタを指定します。(C 言語)

制御信号情報を返す変数を指定します。(Visual Basic)

bit31

~bit8

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

RS-232C 無効 CI CS CD DR 予約 予約 RS ER

RS-485 無効 予約 I 予約 予約 予約 予約 C 予約

0 = OFF

1 = ON

pdwChangeOfControlLine 制御信号の変化情報を返す変数へのポインタを指定します。(C 言語)

制御信号の変化情報を返す変数へのポインタを指定します。(Visual Basic)

bit31

~bit8

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

RS-232C 無効 CI CS CD DR 予約 予約 予約 予約

RS-485 無効 予約 I 予約 予約 予約 予約 予約 予約

0 = 変化なし

1 = 変化あり

Page 67: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【戻り値】

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

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

【備考】

●pdwChangeOfControlLineに状態の変化を返すためには、HdlcSetEventMask関数で制御信号の

状態変化によるイベントのマスクを解除(アンマスク)しておく必要があります。

●pdwChangeOfControlLineの状態の変化とはHdlcSetEventMask関数の制御信号による割り込

みイベント発生の論理です。

【使用例】

●C言語

HANDLE hDevice;

DWORD dwControlLine, dwDeltaLine;

LONG Ret;

Ret = HdlcGetControlLine(hDevice, &dwControlLine, &dwDeltaLine);

●Visual Basic

Dim hDevice As Long

Dim dwControlLine As Long

Dim dwDeltaLine As Long

Dim Ret As Long

Ret = HdlcGetControlLine(hDevice, dwControlLine, dwDeltaLine)

●Visual C# .NET

IntPtr DeviceHandle;

uint ControlLine, DeltaLine;

uint Ret;

Ret = IFCHDLC_ANY.HdlcGetControlLine(DeviceHandle, out ControlLine, out DeltaLine);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim ControlLine As Integer

Dim DeltaLine As Integer

Dim Ret As Integer

Ret = IFCHDLC_ANY.HdlcGetControlLine(DeviceHandle, ControlLine, DeltaLine)

制御信号情報を取得します。

Page 68: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

10. HdlcClearBuffer

【機能】

HDLC インタフェースモジュールの送受信バッファのクリアを行います。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcClearBuffer(

HANDLE hDevice,

ULONG ulClearBuffer

);

●Visual Basic

Declare Function HdlcClearBuffer Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByVal ulClearBuffer As Long _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcClearBuffer (

IntPtr DeviceHandle, // デバイスハンドル

uint ClearBuffer // クリアするバッファ

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcClearBuffer (

uint DeviceHandle, // デバイスハンドル

uint ClearBuffer // クリアするバッファ

);

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

Declare Function HdlcClearBuffer Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ' デバイスハンドル

ByVal ClearBuffer As Integer _ ' クリアするバッファ

)As Integer

●Visual Basic .NET(x86 専用)

Declare Function HdlcClearBuffer Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ' デバイスハンドル

ByVal ClearBuffer As Integer _ ' クリアするバッファ

)As Integer

Page 69: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

hDevice バッファのクリアを行うデバイスハンドルを指定します。

ulClearBuffer クリアするバッファを指定します。

識別子 値 内容

HDLC_CLEAR_SEND_BUFFER 1 送信バッファをクリアします。

HDLC_CLEAR_RECEIVE_BUFFER 2 受信バッファをクリアします。

【戻り値】 正常終了した場合は、FBIHDLC_ERROR_SUCCESSが返されます。 FBIHDLC_ERROR_SUCCESS以外の値が返された場合については、『戻り値一覧』をご参照ください。

【備考】 送信バッファのクリアは、送信データが通信コントローラに書き込まれる前でのみ行うことができます。 通信コントローラに送信データが書き込まれた後ではクリアすることはできません。ご注意ください。

【使用例】

●C言語

HANDLE hDevice;

LONG Ret;

Ret = HdlcClearBuffer(hDevice, HDLC_CLEAR_RECEIVE_BUFFER);

●Visual Basic

Dim hDevice As Long

Dim Ret As Long

Ret = HdlcClearBuffer(hDevice, HDLC_CLEAR_RECEIVE_BUFFER)

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

Ret = IFCHDLC_ANY.HdlcClearBuffer(DeviceHandle,

IFCHDLC_ANY.HDLC_CLEAR_RECEIVE_BUFFER);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCHDLC_ANY.HdlcClearBuffer(DeviceHandle, _

IFCHDLC_ANY.HDLC_CLEAR_RECEIVE_BUFFER)

受信バッファをクリアします。

Page 70: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

11. HdlcSetEventMask

【機能】

割り込みイベントマスクを設定します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcSetEventMask(

HANDLE hDevice,

BYTE bEventMask,

BYTE bEventConfig

);

●Visual Basic

Declare Function HdlcSetEventMask Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByVal bEventMask As Byte, _

ByVal bEventConfig As Byte _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcSetEventMask (

IntPtr DeviceHandle, // デバイスハンドル

byte EventMask, // イベント割り込みマスク設定データ

byte EventConfig // イベント発生論理の設定データ

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcSetEventMask (

uint DeviceHandle, // デバイスハンドル

byte EventMask, // イベント割り込みマスク設定データ

byte EventConfig // イベント発生論理の設定データ

);

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

Declare Function HdlcSetEventMask Lib "fbihdlc.dll"(

ByVal DeviceHandle, As IntPtr, _ ' デバイスハンドル

ByVal EventMask, As Byte, _ ' イベント割り込みマスク設定データ

ByVal EventConfig As Byte _ ' イベント発生論理の設定データ

)As Integer

Page 71: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET(x86 専用)

Declare Function HdlcSetEventMask Lib "fbihdlc.dll"(

ByVal DeviceHandle, As Integer, _ ' デバイスハンドル

ByVal EventMask, As Byte, _ ' イベント割り込みマスク設定データ

ByVal EventConfig As Byte _ ' イベント発生論理の設定データ

)As Integer

【パラメータ】

hDevice イベントマスクを設定するデバイスハンドルを指定します。

bEventMask イベント発生要因のマスク/アンマスクを設定するデータを指定します。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

RS-232C CI CS CD DR IDLE ERROR BOV RD

RS-485 予約 I 予約 予約 IDLE ERROR BOV RD

0 = マスク(イベントは発生しません)

1 = アンマスク(イベントが発生します)

CI = CI 信号の入力状態に変化があったとき

CD = CD 信号の入力状態に変化があったとき

DR = DR 信号の入力状態に変化があったとき

CS = CS 信号の入力状態に変化があったとき

I = I 信号の入力状態に変化があったとき

IDLE = アイドルを検出したとき

ERROR = エラーフレームを受信したとき、または HDLC モジュールに異常が発

生したとき

RD = データを受信し、受信バッファに格納し終わったとき

BOV = オーバーフローエラー、オーバーランエラーが発生したとき

bEventConfig イベント発生要因を指定します。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

RS-232C CI CS CD DR 予約 予約 予約 予約

RS-485 予約 I 予約 予約 予約 予約 予約 予約

0 … 制御信号の状態が OFF(0)から ON(1)でイベント発生

1 … 制御信号の状態が ON(1)から OFF(0)でイベント発生

【戻り値】

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

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

Page 72: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【備考】

1. エラーフレーム受信イベントは、ポート初期化情報構造体 uLineMode メンバでエラーフレ

ーム受信ビットを有効にした場合にのみ使用できます。

2. アイドル検出イベントを使用するには予め HdlcSetIdleTimer 関数でアイドル検出時間を

設定している必要があります。

以下のインタフェースモジュールではアイドル検出イベントは使用できません。

PCI-4116、PCI/CTP-4158、PCI/CTP-4159

3. オーバーフローエラー、オーバーランエラー発生イベントは以下の製品で使用できます。

PCI-4171、PCI-4171S、PCI-4172、PCI-4172FMU、PCI/CPZ/CSI-467120、CBI-4171、CBI-4171A、

CBI-4171B、CBI-467101、CBI-467101WA、CBI-467101WB、CTP/CPZ-4172、CSI-467201、

CSI-467301、 CSI-467401、 CSI-467202、 CSI-467302、 CSI-467402、 LPC/PEX-467101、

LPC/PEX-467102 、 LPC/PEX-467120 、 PCI/CTP/CPZ-467120P 、 PCI/CTP/CPZ-467102P 、

PEX-H467102、PEX-H467102P、PEX-H467120、PEX-H467120P、CPZ-4172FM、LPC-467101FM、

PCI-4171FM、PCI-4172FM、PEX-467102FM

但し PCI-4171、PCI-4171S、PCI-4172 ではリビジョン ID が 2以上、CBI-4171、CBI-4171A、

CBI-4171B ではリビジョン ID が 3 以上の製品で使用できます。

リビジョン ID は HdlcCommonGetPciDeviceInfo 関数で取得できます。

4. HDLC モジュールの異常発生イベントは、HDLC モジュール製品(PCI-423104Q、PCI-423108Q、

PCI-423204Q、PCI-423208Q、CPZ-423104Q、CPZ-423108Q、CPZ-423204Q、CPZ-423208Q、

CTP-423104Q、CTP-423108Q、CTP-423204Q、CTP-423208Q)でのみ使用できます。

【使用例】

●C言語

HANDLE hDevice;

LONG Ret;

Ret = HdlcSetEventMask(hDevice, 0x40, 0x40);

●Visual Basic

Dim hDevice As Long

Dim Ret As Long

Ret = HdlcSetEventMask(hDevice, &H40, &H40)

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

Ret = IFCHDLC_ANY.HdlcSetEventMask(DeviceHandle, 0x40, 0x40);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCHDLC_ANY.HdlcSetEventMask(DeviceHandle, &H40, &H40)

CS信号(I信号)の入力状態がONからOFFになったときにイベントが発生するように設定します。

Page 73: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

12. HdlcGetEventMask

【機能】

割り込みイベントマスクを取得します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcGetEventMask(

HANDLE hDevice,

PBYTE pbEventMask,

PBYTE pbEventConfig

);

●Visual Basic

Declare Function HdlcGetEventMask Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByRef pbEventMask As Byte, _

ByRef pbEventConfig As Byte _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcGetEventMask(

IntPtr DeviceHandle, // デバイスハンドル

out byte EventMask, // イベントマスク値を格納する変数への参照渡し

out byte EventConfig // イベント発生要因を格納する変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcGetEventMask(

uint DeviceHandle, // デバイスハンドル

out byte EventMask, // イベントマスク値を格納する変数への参照渡し

out byte EventConfig // イベント発生要因を格納する変数への参照渡し

);

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

Declare Function HdlcGetEventMask Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ' デバイスハンドル

ByRef EventMask As Byte, _ ' イベントマスク値を格納する変数への参照渡し

ByRef EventConfig As Byte _ ' イベント発生要因を格納する変数への参照渡し

)As Integer

Page 74: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET(x86 専用)

Declare Function HdlcGetEventMask Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ' デバイスハンドル

ByRef EventMask As Byte, _ ' イベントマスク値を格納する変数への参照渡し

ByRef EventConfig As Byte _ ' イベント発生要因を格納する変数への参照渡し

)As Integer

【パラメータ】

hDevice イベントマスクを取得するデバイスハンドルを指定します。

pbEventMask イベント発生要因のマスク/アンマスクを格納する変数へのポインタを指定します。(C 言

語)

イベント発生要因のマスク/アンマスクを格納する変数を指定します。(Visual Basic)

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

RS-232C CI CS CD DR IDLE ERROR BOV RD

RS-485 予約 I 予約 予約 IDLE ERROR BOV RD

0 = マスク状態(イベントは発生しません)

1 = アンマスク状態(イベントが発生します)

CI = CI 信号の入力状態に変化があったとき

CD = CD 信号の入力状態に変化があったとき

DR = DR 信号の入力状態に変化があったとき

CS = CS 信号の入力状態に変化があったとき

I = I 信号の入力状態に変化があったとき

IDLE = アイドルを検出したとき

ERROR = エラーフレームを受信したとき、または HDLC モジュールに異常が発生

したとき

RD = データを受信し、受信バッファに格納し終わったとき

BOV = オーバーフローエラー、オーバーランエラーが発生したとき

pbEventConfig イベント発生要因の設定値を格納する変数へのポインタを指定します。(C 言語)

イベント発生要因の設定値を格納する変数を指定します。(Visual Basic)

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

RS-232C CI CS CD DR 予約 予約 予約 予約

RS-485 予約 I 予約 予約 予約 予約 予約 予約

0 … 制御信号の状態が OFF(0)から ON(1)でイベント発生

1 … 制御信号の状態が ON(1)から OFF(0)でイベント発生

【戻り値】

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

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

Page 75: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【使用例】

●C言語

HANDLE hDevice;

BYTE bEventMask, bEventConfig;

LONG Ret;

Ret = HdlcGetEventMask(hDevice, &bEventMask, &bEventConfig);

●Visual Basic

Dim hDevice As Long

Dim bEventMask As Byte

Dim bEventConfig As Byte

Dim Ret As Long

Ret = HdlcGetEventMask(hDevice, bEventMask, bEventConfig)

●Visual C# .NET

IntPtr DeviceHandle;

byte EventMask, EventConfig;

uint Ret;

Ret = IFCHDLC_ANY.HdlcGetEventMask(DeviceHandle, out EventMask, out EventConfig);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim EventMask As Byte

Dim EventConfig As Byte

Dim Ret As Long

Ret = IFCHDLC_ANY.HdlcGetEventMask(DeviceHandle, EventMask, EventConfig)

イベントマスク情報を取得します。

Page 76: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

13. HdlcEventRequestPending

【機能】

HDLC インタフェースモジュールのイベント要求を待ちます。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcEventRequestPending(

HANDLE hDevice,

DWORD dwEventMask,

PDWORD pdwEventBuffer,

LPOVERLAPPED lpOverlapped

);

●Visual Basic

Declare Function HdlcEventRequestPending Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByVal dwEventMask As Long, _

ByRef pdwEventBuffer As Long, _

ByRef lpOverlapped As OVERLAPPED _

) As Long

●Visual C# .NET(x86・x64 共用、同期・非同期処理共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcEventRequestPending(

IntPtr DeviceHandle, // デバイスハンドル

uint EventMask, // イベントマスク

IntPtr EventBuffer, // イベント内容格納用変数への参照渡し

IntPtr Overlapped // オーバーラップ構造体

);

●Visual C# .NET(x86・x64 共用、同期処理専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcEventRequestPending(

IntPtr DeviceHandle, // デバイスハンドル

uint EventMask, // イベントマスク

out uint EventBuffer, // イベント内容格納用変数への参照渡し

);

[DllImport("fbihdlc.dll")]

public static extern uint HdlcEventRequestPending(

IntPtr DeviceHandle, // デバイスハンドル

uint EventMask, // イベントマスク

out uint EventBuffer, // イベント内容格納用変数への参照渡し

IntPtr Overlapped // オーバーラップ構造体

);

Page 77: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual C# .NET(x86 専用、同期・非同期処理共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcEventRequestPending(

uint DeviceHandle, // デバイスハンドル

uint EventMask, // イベントマスク

IntPtr EventBuffer, // イベント内容格納用変数への参照渡し

IntPtr Overlapped // オーバーラップ構造体

);

●Visual C# .NET(x86 専用、同期処理専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcEventRequestPending(

uint DeviceHandle, // デバイスハンドル

uint EventMask, // イベントマスク

out uint EventBuffer, // イベント内容格納用変数への参照渡し

);

[DllImport("fbihdlc.dll")]

public static extern uint HdlcEventRequestPending(

uint DeviceHandle, // デバイスハンドル

uint EventMask, // イベントマスク

out uint EventBuffer, // イベント内容格納用変数への参照渡し

IntPtr Overlapped // オーバーラップ構造体

);

●Visual Basic .NET(x86・x64 共用、同期・非同期処理共用)

Declare Function HdlcEventRequestPending Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ' デバイスハンドル

ByVal EventMask As Integer, _ ' イベントマスク

ByVal EventBuffer As IntPtr, _ ' イベント内容格納用変数への参照渡し

ByVal Overlapped As IntPtr _ ' オーバラップ構造体

)As Integer

●Visual Basic .NET(x86・x64 共用、同期処理専用)

Declare Function HdlcEventRequestPending Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ' デバイスハンドル

ByVal EventMask As Integer, _ ' イベントマスク

ByRef EventBuffer As Integer, _ ' イベント内容格納用変数への参照渡し

)As Integer

Declare Function HdlcEventRequestPending Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ' デバイスハンドル

ByVal EventMask As Integer, _ ' イベントマスク

ByRef EventBuffer As Integer, _ ' イベント内容格納用変数への参照渡し

ByVal Overlapped As IntPtr _ ' オーバラップ構造体

)As Integer

Page 78: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET(x86 専用、同期・非同期処理共用)

Declare Function HdlcEventRequestPending Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ' デバイスハンドル

ByVal EventMask As Integer, _ ' イベントマスク

ByVal EventBuffer As IntPtr, _ ' イベント内容格納用変数への参照渡し

ByVal Overlapped As IntPtr _ ' オーバラップ構造体

)As Integer

●Visual Basic .NET(x86 専用、同期処理専用)

Declare Function HdlcEventRequestPending Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ' デバイスハンドル

ByVal EventMask As Integer, _ ' イベントマスク

ByRef EventBuffer As Integer, _ ' イベント内容格納用変数への参照渡し

)As Integer

Declare Function HdlcEventRequestPending Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ' デバイスハンドル

ByVal EventMask As Integer, _ ' イベントマスク

ByRef EventBuffer As Integer, _ ' イベント内容格納用変数への参照渡し

ByVal Overlapped As IntPtr _ ' オーバラップ構造体

)As Integer

【パラメータ】

hDevice イベント要求を待つデバイスハンドルを指定してください。

dwEventMask 待機するイベントの種類を指定します。

bit31~bit12 bit11 bit10 bit9 bit8

RS-232C 予約 PWR SAF OVR OVF

RS-485 予約 PWR SAF OVR OVF

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

RS-232C CI CS CD DR IDLE ERROR 予約 RD

RS-485 予約 I 予約 予約 IDLE ERROR 予約 RD

0 = 無効

1 = 有効

CI = CI 信号の入力状態に変化があったとき

CD = CD 信号の入力状態に変化があったとき

DR = DR 信号の入力状態に変化があったとき

CS = CS 信号の入力状態に変化があったとき

I = I 信号の入力状態に変化があったとき

IDLE = アイドルを検出したとき

ERROR = エラーフレームを受信したとき

RD = データを受信し、受信バッファに格納し終わったとき

OVF = オーバーフローエラーが発生したとき

OVR = オーバーランエラーが発生したとき

SAF = HDLC モジュールとのケーブル切断が発生したとき

PWR = HDLC モジュールの電源電圧に異常が発生したとき

Page 79: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

pdwEventBuffer 発生したイベントを格納する変数へのポインタを指定します。(C 言語)

発生したイベントを格納する変数を指定します。(Visual Basic)

ビットアサインは dwEventMask と同じです。

lpOverlapped OVERLAPPED 構造体を指定します。

NULL を指定すると同期呼び出しとなり、イベントが発生するまで関数から戻ってきません。

OVERLAPPED 構造体を指定すると非同期呼び出しとなり、イベントが発生する前に戻り値

HDLC_ERROR_IO_PENDING で関数から戻ってきます。

WIN32API の WaitForSingleObject 等を使用し、イベントの発生を待ってください。

【戻り値】

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

非同期で動作させる場合は、FBIHDLC_ERROR_IO_PENDINGを返します。

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

【備考】

1. HdlcSetEventMask 関数でイベントマスクを有効にしないとイベントが発生しません。この

関数を使用する前に、HdlcSetEventMask 関数でイベントマスクを設定してください。

2. オーバーフローエラー、オーバーランエラー発生イベントは以下の製品で使用できます。

PCI-4171、PCI-4171S、PCI-4172、PCI-4172FMU、PCI/CPZ/CSI-467120、CBI-4171、CBI-4171A、

CBI-4171B、CBI-467101、CBI-467101WA、CBI-467101WB、CTP/CPZ-4172、CSI-467201、

CSI-467301 、 CSI-467401 、 CSI-467202 、 CSI-467302 、 CSI-467402 、 LPC/PEX-467101 、

LPC/PEX-467102 、 LPC/PEX-467120 、 PCI/CTP/CPZ-467120P 、 PCI/CTP/CPZ-467102P 、

PEX-H467102、PEX-H467102P、PEX-H467120、PEX-H467120P、CPZ-4172FM、LPC-467101FM、

PCI-4171FM、PCI-4172FM、PEX-467102FM

但し PCI-4171、PCI-4171S、PCI-4172 ではリビジョン ID が 2 以上、CBI-4171、CBI-4171A、

CBI-4171B ではリビジョン ID が 3 以上の製品で使用できます。

リビジョン ID は HdlcCommonGetPciDeviceInfo 関数で取得できます。

3. HDLC モジュールの異常発生イベントは、HDLC モジュール製品(PCI-423104Q、PCI-423108Q、

PCI-423204Q、PCI-423208Q、CPZ-423104Q、CPZ-423108Q、CPZ-423204Q、CPZ-423208Q、

CTP-423104Q、CTP-423108Q、CTP-423204Q、CTP-423208Q)でのみ使用できます。

4. WaitForSingleObject 関数の待ち時間を設定し、タイムアウトが発生しても、イベント要求

は残っていますので、HdlcEventRequestPending 関数を再実行する必要はありません。

<正しい処理>

1. HdlcEventRequestPending 関数でイベント

要求を行う

2. WaitForSingleObject でイベントが発生す

るまで待つ

3. WaitForSingleObject がタイムアウトした

場合、2.へ戻る

4. イベントに応じた処理を行う

<誤った処理>

1. HdlcEventRequestPending 関数でイベント要求

を行う

2. WaitForSingleObject でイベントが発生するま

で待つ

3. WaitForSingleObject がタイムアウトした場

合、1.へ戻る

4. イベントに応じた処理を行う

5.クラスライブラリの宣言には互換性のために残されている宣言があります。Help に記載され

ている宣言以外、ご使用は推奨できません。

Page 80: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【使用例】

●C言語

HANDLE hDevice;

OVERLAPPED sOverlapped;

DWORD dwEventBuffer, dwRet;

ULONG ulFrameLength;

BYTE Buffer[16384];

LONG Ret;

Ret = HdlcSetEventMask(hDevice, 0x01, 0x00);

ZeroMemory(&sOverlapped, sizeof(OVERLAPPED));

sOverlapped.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);

Ret = HdlcEventRequestPending(hDevice, 0x01, &dwEventBuffer, &sOverlapped);

if(Ret == FBIHDLC_ERROR_IO_PENDING) {

dwRet = WaitForSingleObject(sOverlapped.hEvent, INFINITE);

Ret = HdlcReceiveFrame(hDevice, Buffer, &ulFrameLength);

}

CloseHandle(sOverlapped.hEvent);

●Visual Basic

Dim hDevice As Long

Dim sOverlapped As OVERLAPPED

Dim dwEventBuffer As Long

Dim ulFrameLength As Long

Dim Buffer(16384) As Byte

Dim Ret As Long

Ret = HdlcSetEventMask(hDevice, &H1, &H0)

sOverlapped.Internal = 0

sOverlapped.InternalHigh = 0

sOverlapped.Offset = 0

sOverlapped.OffsetHigh = 0

sOverlapped.hEvent = CreateEvent(0, True, False, 0)

Ret = HdlcEventRequestPending(hDevice, 1, dwEventBuffer, sOverlapped)

If Ret = FBIHDLC_ERROR_IO_PENDING Then

Ret = WaitForSingleObject(sOverlapped.hEvent, -1)

Ret = HdlcReceiveFrame(hDevice, Buffer(0), ulFrameLength)

End If

CloseHandle sOverlapped.hEvent

Page 81: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual C# .NET

IntPtr DeviceHandle;

OVERLAPPED Overlapped;

uint[] EventBuffer = new uint[1];

uint Ret;

uint FrameLength;

Byte Buffer[16384];

uint Ret;

Ret = IFCHDLC_ANY.HdlcSetEventMask(DeviceHandle, 0x01, 0x00);

ZeroMemory(Overlapped, sizeof(OVERLAPPED));

Overlapped.Event = CreateEvent(null, true, false, null);

GCHandle Pinnedovl = GCHandle.Alloc(Overlapped, GCHandleType.Pinned);

GCHandle PinnedEvent = GCHandle.Alloc(EventBuffer, GCHandleType.Pinned);

Ret = IFCHDLC_ANY.HdlcEventRequestPending(DeviceHandle, 0x01,

PinnedEvent.AddrOfPinnedObject(),

Pinnedovl.AddrOfPinnedObject());

if(Ret == IFCHDLC_ANY.FBIHDLC_ERROR_IO_PENDING) {

Ret = WaitForSingleObject(Overlapped.Event, INFINITE);

Ret = IFCHDLC_ANY.HdlcReceiveFrame(DeviceHandle, Buffer, out FrameLength);

}

Pinnedovl.Free();

PinnedEvent.Free();

CloseHandle(Overlapped.Event);

Page 82: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Overlapped As OVERLAPPED

Dim EventBuffer As Integer() = New Integer(1) {}

Dim FrameLength As Integer

Dim Buffer(16384) As Byte

Dim Ret As Integer

Ret = IFCHDLC_ANY.HdlcSetEventMask(DeviceHandle, &H1, &H0)

Overlapped.Internal = 0

Overlapped.InternalHigh = 0

Overlapped.Offset = 0

Overlapped.OffsetHigh = 0

Overlapped.Event = CreateEvent(0, True, False, 0)

Dim Pinnedovl As GCHandle = GCHandle.Alloc(Overlapped, GCHandleType.Pinned)

Dim PinnedEvent As GCHandle = GCHandle.Alloc(EventBuffer, GCHandleType.Pinned)

Ret = IFCHDLC_ANY.HdlcEventRequestPending(DeviceHandle, 1, _

PinnedEvent.AddrOfPinnedObject(), Pinnedovl.AddrOfPinnedObject())

If Ret = IFCHDLC_ANY.FBIHDLC_ERROR_IO_PENDING Then

Ret = WaitForSingleObject(Overlapped.Event, -1)

Ret = IFCHDLC_ANY.HdlcReceiveFrame(DeviceHandle, Buffer(0), FrameLength)

End If

Pinnedovl.Free()

PinnedEvent.Free()

CloseHandle Overlapped.Event

データ受信のイベント要求を待ちます。

Page 83: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

14. HdlcCheckIdle

【機能】

アイドル状態を取得します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcCheckIdle(

HANDLE hDevice,

PULONG pulIdleStatus

);

●Visual Basic

Declare Function HdlcCheckIdle Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByRef pulIdleStatus As Long _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcCheckIdle(

IntPtr DeviceHandle, // デバイスハンドル

out uint IdleStatus // アイドル状態を格納する変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcCheckIdle(

uint DeviceHandle, // デバイスハンドル

out uint IdleStatus // アイドル状態を格納する変数への参照渡し

);

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

Declare Function HdlcCheckIdle Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByRef IdleStatus As Integer _ ‘ アイドル状態を格納する変数への参照渡し

)As Integer

●Visual Basic .NET(x86 専用)

Declare Function HdlcCheckIdle Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByRef IdleStatus As Integer _ ‘ アイドル状態を格納する変数への参照渡し

)As Integer

Page 84: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

hDevice アイドル状態を取得するデバイスハンドルを指定します。

pulIdleStatus アイドル状態を格納する変数へのポインタを指定します。(C 言語)

アイドル状態を格納する変数を指定します。(Visual Basic)

識別子 値 内容

HDLC_IDLESTATE_INACTIVE 0 アイドル状態でない

HDLC_IDLESTATE_ACTIVE 1 アイドル状態

【戻り値】

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

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

【備考】

本関数は以下のインタフェースモジュールでは使用できません。

PCI-4116

PCI/CTP-4158

PCI/CTP-4159

【使用例】

●C言語

HANDLE hDevice;

ULONG ulIdleStatus;

LONG Ret;

Ret = HdlcCheckIdle(hDevice, &ulIdleStatus);

if(ulIdleStatus == HDLC_IDLESTATE_ACTIVE) {

Ret = HdlcSendFrame(hDevice, "1234567890", 10, 1, NULL);

}

●Visual Basic

Dim hDevice As Long

Dim ulIdleStatus As Long

Dim Ret As Long

Ret = HdlcCheckIdle(hDevice, ulIdleStatus)

If ulIdleStatus = HDLC_IDLESTATE_ACTIVE Then

Ret = HdlcSendFrameString(hDevice, "1234567890", 10, 1, ByVal 0)

End If

Page 85: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual C# .NET

IntPtr DeviceHandle;

uint IdleStatus;

uint Ret;

Ret = IFCHDLC_ANY.HdlcCheckIdle(DeviceHandle, out IdleStatus);

if(IdleStatus == IFCHDLC_ANY.HDLC_IDLESTATE_ACTIVE) {

Ret = IFCHDLC_ANY.HdlcSendFrame(DeviceHandle, "1234567890", 10, 1, null);

}

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim IdleStatus As Integer

Dim Ret As Integer

Ret = IFCHDLC_ANY.HdlcCheckIdle(DeviceHandle, IdleStatus)

If IdleStatus = IFCHDLC_ANY.HDLC_IDLESTATE_ACTIVE Then

Ret = IFCHDLC_ANY.HdlcSendFrameString(DeviceHandle, "1234567890", 10, 1, 0)

End If

アイドル状態か確認して、フレーム送信を行います。

Page 86: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

15. HdlcSetIdleTimer

【機能】

アイドル検出の検出時間を設定します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcSetIdleTimer(

HANDLE hDevice,

ULONG ulIdleTimer

);

●Visual Basic

Declare Function HdlcSetIdleTimer Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByVal ulIdleTimer As Long _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcSetIdleTimer(

IntPtr DeviceHandle, // デバイスハンドル

uint IdleTimer // アイドル検出時間

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcSetIdleTimer(

uint DeviceHandle, // デバイスハンドル

uint IdleTimer // アイドル検出時間

);

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

Declare Function HdlcSetIdleTimer Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal IdleTimer As Integer _ ‘ アイドル検出時間

)As Integer

●Visual Basic .NET(x86 専用)

Declare Function HdlcSetIdleTimer Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal IdleTimer As Integer _ ‘ アイドル検出時間

)As Integer

Page 87: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

hDevice アイドル検出時間を設定するデバイスハンドルを指定します。

ulIdleTimer アイドル検出時間を us 単位で設定します。

範囲は 0~16777215 です。

0 に設定した場合、アイドル検出が無効になります。

【戻り値】

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

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

【備考】

1. 本関数で指定した時間、マーク状態(無通信状態)を検出するとアイドルとなりイベントを

発生させることができます。

2. 本関数は以下のインタフェースモジュールでは使用できません。

PCI-4116

PCI/CTP-4158

PCI/CTP-4159

【使用例】

●C言語

HANDLE hDevice;

LONG Ret;

Ret = HdlcSetIdleTimer(hDevice, 1000000);

●Visual Basic

Dim hDevice As Long

Dim Ret As Long

Ret = HdlcSetIdleTimer(hDevice, 1000000)

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

Ret = IFCHDLC_ANY.HdlcSetIdleTimer(DeviceHandle, 1000000);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCHDLC_ANY.HdlcSetIdleTimer(DeviceHandle, 1000000)

1 秒間マーク状態が続くとアイドル検出イベントを発生させます。

Page 88: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

16. HdlcGetIdleTimer

【機能】

アイドル検出の検出時間を取得します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcGetIdleTimer(

HANDLE hDevice,

PULONG pulIdleTimer

);

●Visual Basic

Declare Function HdlcGetIdleTimer Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByRef pulIdleTimer As Long _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcGetIdleTimer(

IntPtr DeviceHandle, // デバイスハンドル

out uint IdleTimer // アイドル検出時間を格納する変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcGetIdleTimer(

uint DeviceHandle, // デバイスハンドル

out uint IdleTimer // アイドル検出時間を格納する変数への参照渡し

);

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

Declare Function HdlcGetIdleTimer Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ' デバイスハンドル

ByRef IdleTimer As Integer _ ' アイドル検出時間を格納する変数への参照渡し

)As Integer

●Visual Basic .NET(x86 専用)

Declare Function HdlcGetIdleTimer Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ' デバイスハンドル

ByRef IdleTimer As Integer _ ' アイドル検出時間を格納する変数への参照渡し

)As Integer

Page 89: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

hDevice アイドル検出時間を取得するデバイスハンドルを指定します。

pulIdleTimer アイドル検出時間を格納する変数へのポインタを指定します。(C 言語)

アイドル検出時間を格納する変数を指定します。(Visual Basic)

【戻り値】

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

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

【備考】

本関数は以下のインタフェースモジュールでは使用できません。

PCI-4116

PCI/CTP-4158

PCI/CTP-4159

【使用例】

●C言語

HANDLE hDevice;

ULONG ulIdleTimer;

LONG Ret;

Ret = HdlcGetIdleTimer(hDevice, &ulIdleTimer);

●Visual Basic

Dim hDevice As Long

Dim ulIdleTimer As Long

Dim Ret As Long

Ret = HdlcGetIdleTimer(hDevice, ulIdleTimer)

●Visual C# .NET

IntPtr DeviceHandle;

uint IdleTimer;

uint Ret;

Ret = IFCHDLC_ANY.HdlcGetIdleTimer(DeviceHandle, out IdleTimer);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim IdleTimer As Integer

Dim Ret As Integer

Ret = IFCHDLC_ANY.HdlcGetIdleTimer(DeviceHandle, IdleTimer)

アイドル検出時間を取得します。

Page 90: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

17. HdlcSetCableTermination

【機能】

RS-485 終端設定します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcSetCableTermination(

HANDLE hDevice,

BYTE bTermination

);

●Visual Basic

Declare Function HdlcSetCableTermination Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByVal bTermination As Byte _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcSetCableTermination(

IntPtr DeviceHandle, // デバイスハンドル

byte Termination // RS-485 終端設定

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcSetCableTermination(

uint DeviceHandle, // デバイスハンドル

byte Termination // RS-485 終端設定

);

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

Declare Function HdlcSetCableTermination Lib "fbihdlc.dll"(

ByVal DeviceHandle, As IntPtr, _ ' デバイスハンドル

ByVal Termination As Byte _ ' RS-485 終端設定

)As Integer

●Visual Basic .NET(x86 専用)

Declare Function HdlcSetCableTermination Lib "fbihdlc.dll"(

ByVal DeviceHandle, As Integer, _ ' デバイスハンドル

ByVal Termination As Byte _ ' RS-485 終端設定

)As Integer

Page 91: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

hDevice RS-485 終端設定を行うデバイスハンドルを指定します。

bTermination RS-485 終端設定を指定します。

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

予約 予約 RT ST I C R T

0 = 終端抵抗を挿入しません

1 = 終端抵抗を挿入します

【戻り値】

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

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

【備考】

1. 本関数は以下の CardBus 製品のみ使用できます。

CBI-4171、CBI-4171A、CBI-4171B、CBI-467101、CBI-467101WA、CBI-467101WB

2. CardBus 製品のリビジョン ID によっては、本関数で設定された終端設定値は電源を OFF す

るとクリアされます。下表の型式、リビジョン ID の製品では、電源を ON するごとに、本

関数で終端設定する必要があります。リビジョン ID は HdlcCommonGetPciDeviceInfo 関数

で取得します。

型式 リビジョン ID

CBI-4171 1

CBI-4171A 1

CBI-4171B 1

Page 92: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【使用例】

●C言語

HANDLE hDevice;

LONG Ret;

Ret = HdlcSetCableTermination(hDevice, 0x2A);

●Visual Basic

Dim hDevice As Long

Dim Ret As Long

Ret = HdlcSetCableTermination(hDevice, &H2A)

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

Ret = IFCHDLC_ANY.HdlcSetCableTermination(DeviceHandle, 0x2A);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCHDLC_ANY.HdlcSetCableTermination(DeviceHandle, &H2A)

R, I, RT 端子に終端抵抗を挿入します。

Page 93: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

18. HdlcGetCableTermination

【機能】

RS-485 終端設定を取得します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcGetCableTermination(

HANDLE hDevice,

PBYTE pbTermination

);

●Visual Basic

Declare Function HdlcGetCableTermination Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByRef pbTermination As Byte _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcGetCableTermination(

IntPtr DeviceHandle, // デバイスハンドル

out byte Termination // RS-485 終端設定を格納する変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcGetCableTermination(

uint DeviceHandle, // デバイスハンドル

out byte Termination // RS-485 終端設定を格納する変数への参照渡し

);

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

Declare Function HdlcGetCableTermination Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByRef Termination As Integer _ ‘ RS-485 終端設定を格納する変数への参照渡し

)As Integer

●Visual Basic .NET(x86 専用)

Declare Function HdlcGetCableTermination Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByRef Termination As Integer _ ‘ RS-485 終端設定を格納する変数への参照渡し

)As Integer

Page 94: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

hDevice RS-485 終端設定を取得するデバイスハンドルを指定します。

pbTermination RS-485 終端設定を格納する変数へのポインタを指定します。(C 言語)

RS-485 終端設定を格納する変数を指定します。(Visual Basic)

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

予約 予約 RT ST I C R T

0 = 終端抵抗が挿入されていません

1 = 終端抵抗が挿入されています

【戻り値】

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

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

【備考】

本関数は以下の CardBus 製品のみ使用できます。

CBI-4171、CBI-4171A、CBI-4171B、CBI-467101、CBI-467101WA、CBI-467101WB

【使用例】

●C言語

HANDLE hDevice;

BYTE bTermination;

LONG Ret;

Ret = HdlcGetCableTermination(hDevice, &bTermination);

●Visual Basic

Dim hDevice As Long

Dim bTermination As Byte

Dim Ret As Long

Ret = HdlcGetCableTermination(hDevice, bTermination)

●Visual C# .NET

IntPtr DeviceHandle;

byte Termination;

uint Ret;

Ret = IFCHDLC_ANY.HdlcGetCableTermination(DeviceHandle, out Termination);

Page 95: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Termination As Byte

Dim Ret As Integer

Ret = IFCHDLC_ANY.HdlcGetCableTermination(DeviceHandle, Termination)

終端抵抗設定を取得します。

Page 96: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

19. HdlcGetTmoduleStatus

【機能】

HDLC モジュールの接続状態を取得します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcGetTmoduleStatus(

HANDLE hDevice,

PBYTE pbTmoduleStatus

);

●Visual Basic

Declare Function HdlcGetTmoduleStatus Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByRef pbTmoduleStatus As Byte _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcGetTmoduleStatus(

IntPtr DeviceHandle, // デバイスハンドル

out byte TmoduleStatus // 接続状態を格納する変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcGetTmoduleStatus(

uint DeviceHandle, // デバイスハンドル

out byte TmoduleStatus // 接続状態を格納する変数への参照渡し

);

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

Declare Function DcmpInputDI Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ' デバイスハンドル

ByRef TmoduleStatus As Byte _ ' 接続状態を格納する変数への参照渡し

)As Integer

●Visual Basic .NET(x86 専用)

Declare Function DcmpInputDI Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ' デバイスハンドル

ByRef TmoduleStatus As Byte _ ' 接続状態を格納する変数への参照渡し

)As Integer

Page 97: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

hDevice HDLC モジュールの接続状態を取得するデバイスハンドルを指定します。

pbTmoduleStatus HDLC モジュールの接続状態を格納する変数へのポインタを指定します。(C 言語)

HDLC モジュールの接続状態を格納する変数を指定します。(Visual Basic)

bit7 bit6 Bit5 bit4 bit3 bit2 bit1 bit0

予約 予約 PWRNG SAFNG 予約 予約 PWROK SAFOK

SAFOK 1 現在、HDLC モジュールと接続されています。

0 現在、HDLC モジュールと接続されていません。

PWROK 1 現在、HDLC モジュールの電源電圧は正常です。

0 現在、HDLC モジュールの電源電圧が異常です。

SAFNG 1 前回の本関数実行時から今回の実行までに、HDLC モジュールとの切

断がありました。

0 前回の本関数実行時から今回の実行までに、HDLC モジュールとの切

断はありませんでした。

PWRNG 1 前回の本関数実行時から今回の実行までに、HDLC モジュールの電源

電圧の異常がありました。

0 前回の本関数実行時から今回の実行までに、HDLC モジュールの電源

電圧の異常はありませんでした。

【戻り値】

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

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

【備考】

本関数は HDLC モジュールでのみ使用できます。

PCI-423104Q、PCI-423108Q、PCI-423204Q、PCI-423208Q、

CPZ-423104Q、CPZ-423108Q、CPZ-423204Q、CPZ-423208Q

CTP-423104Q、CTP-423108Q、CTP-423204Q、CTP-423208Q

【使用例】

●C言語

HANDLE hDevice;

BYTE pbTmoduleStatus;

LONG Ret;

Ret = HdlcGetTmoduleStatus(hDevice, & pbTmoduleStatus);

●Visual Basic

Dim hDevice As Long

Dim pbTmoduleStatus As Byte

Dim Ret As Long

Ret = HdlcGetTmoduleStatus(hDevice, pbTmoduleStatus)

Page 98: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual C# .NET

IntPtr DeviceHandle;

byte TmoduleStatus;

uint Ret;

Ret = IFCHDLC_ANY.HdlcGetTmoduleStatus(DeviceHandle, out TmoduleStatus);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim TmoduleStatus As Byte

Dim Ret As Integer

Ret = IFCHDLC_ANY.HdlcGetTmoduleStatus(DeviceHandle, TmoduleStatus)

HDLC モジュールの接続状態を取得します。

Page 99: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

20. HdlcSetTmodulePower

【機能】

HDLC モジュールの電源を制御します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcSetTmodulePower(

HANDLE hDevice,

BYTE bSetPower

);

●Visual Basic

Declare Function HdlcSetTmodulePower Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByVal bSetPower As Byte _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcSetTmodulePower (

IntPtr DeviceHandle, // デバイスハンドル

byte SetPower // 電源状態

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcSetTmodulePower (

uint DeviceHandle, // デバイスハンドル

byte SetPower // 電源状態

);

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

Declare Function HdlcSetTmodulePower Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ' デバイスハンドル

ByVal SetPower As Byte _ ' 電源状態

)As Integer

●Visual Basic .NET(x86 専用)

Declare Function HdlcSetTmodulePower Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ' デバイスハンドル

ByVal SetPower As Byte _ ' 電源状態

)As Integer

Page 100: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

hDevice HDLC モジュールの電源制御を行うデバイスハンドルを指定します。

bSetPower 電源状態を指定します。

識別子 値 内容

HDLC_POWER_ON 1 HDLC モジュールの電源を ON にします。

HDLC_POWER_OFF 0 HDLC モジュールの電源を OFF にします。

【戻り値】

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

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

【備考】

本関数は HDLC モジュールでのみ使用できます。

PCI-423104Q、PCI-423108Q、PCI-423204Q、PCI-423208Q、

CPZ-423104Q、CPZ-423108Q、CPZ-423204Q、CPZ-423208Q

CTP-423104Q、CTP-423108Q、CTP-423204Q、CTP-423208Q

【使用例】

●C言語

HANDLE hDevice;

LONG Ret;

Ret = HdlcSetTmodulePower(hDevice, HDLC_POWER_OFF);

●Visual Basic

Dim hDevice As Long

Dim Ret As Long

Ret = HdlcSetTmodulePower (hDevice, HDLC_POWER_OFF)

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

Ret = IFCHDLC_ANY.HdlcSetTmodulePower(DeviceHandle, IFCHDLC_ANY.HDLC_POWER_OFF);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCHDLC_ANY.HdlcSetTmodulePower(DeviceHandle, IFCHDLC_ANY.HDLC_POWER_OFF)

HDLC モジュールの電源を OFF にします。

Page 101: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

21. HdlcSetFlag

【機能】

リーディングフラグ/トレーリングフラグの数を設定します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcSetFlag(

HANDLE hDevice,

BYTE bLeading,

BYTE bTrailing

);

●Visual Basic

Declare Function HdlcSetFlag Lib “FbiHdlc.DLL” ( _ ByVal hDevice As Long, _

ByVal bLeading As Byte, _

ByVal bTrailing As Byte _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport(“fbihdlc.dll”)] public static extern uint HdlcSetFlag(

IntPtr hDevice,

byte bLeading,

byte bTrailing

);

●Visual C# .NET(x86 専用)

[DllImport(“fbihdlc.dll”)] public static extern uint HdlcSetFlag(

uint hDevice,

byte bLeading,

byte bTrailing

);

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

Declare Function HdlcSetFlag Lib “fbihdlc.dll” ( _ ByVal hDevice As IntPtr, _

ByVal bLeading As Byte, _

ByVal bTrailing As Byte _

) As Integer

Page 102: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET(x86 専用)

Declare Function HdlcSetFlag Lib “fbihdlc.dll” ( _ ByVal hDevice As Integer, _

ByVal bLeading As Byte, _

ByVal bTrailing As Byte _

) As Integer

【パラメータ】

hDevice フラグの数を設定するデバイスハンドルを指定します。

bLeading リーディングフラグの数を指定します。

デフォルトでは 0(リーディングフラグ無し)です。

bTrailing

トレーリングフラグの数を指定します。

デフォルトでは 0(トレーリングフラグ無し)です。

【戻り値】

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

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

フラグ数の設定は送信バッファが空の状態で行ってください。また、フレーム間にはマーク送

信を指定(HDLCNPORTINTIDATA 構造体の uLineMode に HDLC_TFIL_MARK を OR)してください。

フラグ送信を指定した場合、フレーム間にフラグが挿入されるため、必ずしも指定のフラグ数

とはなりません。

本関数は FM 符号化対応製品でのみ使用できます。

PCI-4172FM, PCI-4172FMU, CPZ-4172FM, PEX-467102FM, PCI-4171FM, CSI-467202FM,

CSI-467302FM, CSI-467402FM, LPC-467101FM, PCI-467101FM, PCI-467102FM

【使用例】

●C言語

HANDLE hDevice;

HDLCNPORTINITDATA PortInit;

LONG Ret;

hDevice = HdlcOpen(“FBIHDLC1”, &PortInit); :

Ret = HdlcSetFlag(hDevice, 2, 2);

Page 103: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic

Dim hDevice As Long

Dim PortInit As HDLCNPORTINITDATA

Dim Ret As Long

hDevice = HdlcOpen(“FBIHDLC1”, PortInit) :

Ret = HdlcSetFlag(hDevice, 2, 2)

●Visual C# .NET

IntPtr hDevice;

HDLCNPORTINITDATA PortInit;

int Ret;

hDevice = IFHDLC.HdlcOpen(“FBIHDLC1”, ref PortInit); :

Ret = IFHDLC.HdlcSetFlag(hDevice, 2, 2);

●Visual Basic .NET

Dim hDevice As IntPtr

Dim PortInit As HDLCNPORTINITDATA

Dim Ret As Integer

hDevice = IFHDLC.HdlcOpen(“FBIHDLC1”, PortInit) :

Ret = IFHDLC.HdlcSetFlag(hDevice, 2, 2)

リーディングフラグ/トレーリングフラグをそれぞれ 2つずつ付加します。

Page 104: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

22. HdlcGetFlag

【機能】

リーディングフラグ/トレーリングフラグの数を取得します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcGetFlag(

HANDLE hDevice,

PBYTE pbLeading,

PBYTE pbTrailing

);

●Visual Basic

Declare Function HdlcGetFlag Lib “FbiHdlc.DLL” ( _ ByVal hDevice As Long, _

ByRef pbLeading As Byte, _

ByRef pbTrailing As Byte _

) As Long

●Visual C# .NET(x86、x64 共用)

[DllImport(“fbihdlc.dll”)] public static extern uint HdlcGetFlag(

IntPtr hDevice,

out byte pbLeading,

out byte pbTrailing

);

●Visual C# .NET(x86 専用)

[DllImport(“fbihdlc.dll”)] public static extern uint HdlcGetFlag(

uint hDevice,

out byte pbLeading,

out byte pbTrailing

);

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

Declare Function HdlcGetFlag Lib “fbihdlc.dll” ( _ ByVal hDevice As IntPtr, _

ByRef pbLeading As Byte, _

ByRef pbTrailing As Byte _

) As Integer

Page 105: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET(x86 専用)

Declare Function HdlcGetFlag Lib “fbihdlc.dll” ( _ ByVal hDevice As Integer, _

ByRef pbLeading As Byte, _

ByRef pbTrailing As Byte _

) As Integer

【パラメータ】

hDevice フラグの数を取得するデバイスハンドルを指定します。

pbLeading リーディングフラグの数を格納する変数へのポインタを指定します。(C 言語)

リーディングフラグの数を格納する変数を指定します。(Visual Basic)

pbTrailing トレーリングフラグの数を格納する変数へのポインタを指定します。(C 言語)

トレーリングフラグの数を格納する変数を指定します。(Visual Basic)

【備考】

本関数は FM 符号化対応製品でのみ使用できます。

PCI-4172FM, PCI-4172FMU, CPZ-4172FM, PEX-467102FM, PCI-4171FM, CSI-467202FM,

CSI-467302FM, CSI-467402FM, LPC-467101FM, PCI-467101FM, PCI-467102FM

【戻り値】

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

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

【使用例】

●C言語

HANDLE hDevice;

HDLCNPORTINITDATA PortInit;

LONG Ret;

PBYTE Leading;

PBYTE Trailing;

hDevice = HdlcOpen(“FBIHDLC1”, &PortInit); :

Ret = HdlcGetFlag(hDevice, &Leading, &Trailing);

Page 106: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic

Dim hDevice As Long

Dim PortInit As HDLCNPORTINITDATA

Dim Ret As Long

Dim Leading As Byte

Dim Trailing As Byte

hDevice = HdlcOpen(“FBIHDLC1”, PortInit) :

Ret = HdlcGetFlag(hDevice, Leading, Trailing)

●Visual C# .NET

IntPtr hDevice;

HDLCNPORTINITDATA PortInit;

int Ret;

byte Leading;

byte Trailing;

hDevice = IFCHDLC_ANY.HdlcOpen(“FBIHDLC1”, ref PortInit); :

Ret = IFCHDLC_ANY.HdlcGetFlag(hDevice, out Leading, out Trailing);

●Visual Basic .NET

Dim hDevice As IntPtr

Dim PortInit As HDLCNPORTINITDATA

Dim Ret As Integer

Dim Leading As Byte

Dim Trailing As Byte

hDevice = IFCHDLC_ANY.HdlcOpen(“FBIHDLC1”, PortInit) :

Ret = IFCHDLC_ANY.HdlcGetFlag(hDevice, Leading, Trailing)

リーディングフラグ/トレーリングフラグの数を取得します。

Page 107: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

23. HdlcCommonGetPciDeviceInfo

【機能】

HDLC インタフェースモジュールのリソース(デバイス ID、リソース情報、リビジョン ID 等)

情報を取得します。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C 言語

LONG HdlcCommonGetPciDeviceInfo (

HANDLE hDevice,

DWORD *dwDeviceID,

DWORD *dwVendorID,

DWORD *dwClassCode,

DWORD *dwRevisionID,

DWORD *dwBaseAddress0,

DWORD *dwBaseAddress1,

DWORD *dwBaseAddress2,

DWORD *dwBaseAddress3,

DWORD *dwBaseAddress4,

DWORD *dwBaseAddress5,

DWORD *dwSubsystemID,

DWORD *dwSubsystemVendorID,

DWORD *dwInterruptLine,

DWORD *dwBoardID

);

●Visual Basic

Declare Function HdlcCommonGetPciDeviceInfo Lib "FbiHdlc.DLL" ( _

ByVal hDevice As Long, _

ByRef dwDeviceID As Long, _

ByRef dwVendorID As Long, _

ByRef dwClassCode As Long, _

ByRef dwRevisionID As Long, _

ByRef dwBaseAddress0 As Long, _

ByRef dwBaseAddress1 As Long, _

ByRef dwBaseAddress2 As Long, _

ByRef dwBaseAddress3 As Long, _

ByRef dwBaseAddress4 As Long, _

ByRef dwBaseAddress5 As Long, _

ByRef dwSubsystemID As Long, _

ByRef dwSubsystemVendorID As Long, _

ByRef dwInterruptLine As Long, _

ByRef dwBoardID As Long _

) As Long

Page 108: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual C# .NET(x86、x64 共用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcCommonGetPciDeviceInfo(

IntPtr DeviceHandle, // デバイスハンドル

out uint DeviceID, // デバイス ID を格納する変数への参照渡し

out uint VendorID, // ベンダ ID を格納する変数への参照渡し

out uint ClassCode, // クラスコードを格納する変数への参照渡し

out uint RevisionID, // リビジョン ID を格納する変数への参照渡し

out uint BaseAddress0, // リソース 0を格納する変数への参照渡し

out uint BaseAddress1, // リソース 1を格納する変数への参照渡し

out uint BaseAddress2, // リソース 2を格納する変数への参照渡し

out uint BaseAddress3, // リソース 3を格納する変数への参照渡し

out uint BaseAddress4, // リソース 4を格納する変数への参照渡し

out uint BaseAddress5, // リソース 5を格納する変数への参照渡し

out uint SubsystemID, // サブシステム ID を格納する変数への参照渡し

out uint SubsystemVendorID, // サブシステムベンダ ID を格納する変数への参照渡し

out uint InterruptLine, // 割込みラインを格納する変数への参照渡し

out uint BoardID // ボード ID を格納する変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DllImport("fbihdlc.dll")]

public static extern uint HdlcCommonGetPciDeviceInfo(

uint DeviceHandle, // デバイスハンドル

out uint DeviceID, // デバイス ID を格納する変数への参照渡し

out uint VendorID, // ベンダ ID を格納する変数への参照渡し

out uint ClassCode, // クラスコードを格納する変数への参照渡し

out uint RevisionID, // リビジョン ID を格納する変数への参照渡し

out uint BaseAddress0, // リソース 0を格納する変数への参照渡し

out uint BaseAddress1, // リソース 1を格納する変数への参照渡し

out uint BaseAddress2, // リソース 2を格納する変数への参照渡し

out uint BaseAddress3, // リソース 3を格納する変数への参照渡し

out uint BaseAddress4, // リソース 4を格納する変数への参照渡し

out uint BaseAddress5, // リソース 5を格納する変数への参照渡し

out uint SubsystemID, // サブシステム ID を格納する変数への参照渡し

out uint SubsystemVendorID, // サブシステムベンダ ID を格納する変数への参照渡し

out uint InterruptLine, // 割込みラインを格納する変数への参照渡し

out uint BoardID // ボード ID を格納する変数への参照渡し

);

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

Declare Function HdlcCommonGetPciDeviceInfo Lib "fbihdlc.dll"(

ByVal DeviceHandle As IntPtr, _ ' デバイスハンドル

ByRef DeviceID As Integer, _ ' デバイス ID を格納する変数への参照渡し

ByRef VendorID As Integer, _ ' ベンダ ID を格納する変数への参照渡し

ByRef ClassCode As Integer, _ ' クラスコードを格納する変数への参照渡し

ByRef RevisionID As Integer, _ ' リビジョン ID を格納する変数への参照渡し

ByRef BaseAddress0 As Integer, _ ' リソース 0を格納する変数への参照渡し

ByRef BaseAddress1 As Integer, _ ' リソース 1を格納する変数への参照渡し

Page 109: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

ByRef BaseAddress2 As Integer, _ ' リソース 2を格納する変数への参照渡し

ByRef BaseAddress3 As Integer, _ ' リソース 3を格納する変数への参照渡し

ByRef BaseAddress4 As Integer, _ ' リソース 4を格納する変数への参照渡し

ByRef BaseAddress5 As Integer, _ ' リソース 5を格納する変数への参照渡し

ByRef SubsystemID As Integer, _ ' サブシステム ID を格納する変数への参照渡し

ByRef SubsystemVendorID As Integer, _ ' サブシステムベンダIDを格納する変数への参照

渡し

ByRef InterruptLine As Integer, _ ' 割込みラインを格納する変数への参照渡し

ByRef BoardID As Integer _ ' ボード ID を格納する変数への参照渡し

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function HdlcCommonGetPciDeviceInfo Lib "fbihdlc.dll"(

ByVal DeviceHandle As Integer, _ ' デバイスハンドル

ByRef DeviceID As Integer, _ ' デバイス ID を格納する変数への参照渡し

ByRef VendorID As Integer, _ ' ベンダ ID を格納する変数への参照渡し

ByRef ClassCode As Integer, _ ' クラスコードを格納する変数への参照渡し

ByRef RevisionID As Integer, _ ' リビジョン ID を格納する変数への参照渡し

ByRef BaseAddress0 As Integer, _ ' リソース 0を格納する変数への参照渡し

ByRef BaseAddress1 As Integer, _ ' リソース 1を格納する変数への参照渡し

ByRef BaseAddress2 As Integer, _ ' リソース 2を格納する変数への参照渡し

ByRef BaseAddress3 As Integer, _ ' リソース 3を格納する変数への参照渡し

ByRef BaseAddress4 As Integer, _ ' リソース 4を格納する変数への参照渡し

ByRef BaseAddress5 As Integer, _ ' リソース 5を格納する変数への参照渡し

ByRef SubsystemID As Integer, _ ' サブシステム ID を格納する変数への参照渡し

ByRef SubsystemVendorID As Integer, _ ' サブシステムベンダIDを格納する変数への参照

渡し

ByRef InterruptLine As Integer, _ ' 割込みラインを格納する変数への参照渡し

ByRef BoardID As Integer _ ' ボード ID を格納する変数への参照渡し

) As Integer

Page 110: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

hDevice リソース情報を取得するデバイスハンドルを指定します。

dwDeviceID デバイス ID データを格納する変数へのポインタを指定します。(C 言語)

デバイス ID データを格納する変数を指定します。(Visual Basic)

デバイスを区別するための ID です。

弊社 PCI、CompactPCI バス及び CardBus 用 HDLC 製品は、製品型式の数字部分 4桁が適用さ

れます。PCI-4116 ならば 4116(16 進数では 1014h)、CBI-467101 ならば 4671(16 進数では

123Fh)です。

PCI 製品、CompactPCI 製品や CardBus 製品を判別する必要がある場合、dwSubsystemID を参

照して下さい。

※デバイス ID から、下記割込みラインまでのデータは、PCI Rev2.1 で規定される PCI バス

用デバイスが持つデータです。ボード ID は弊社のインタフェースモジュール上に実装され

る RSW1 の値であり、PCI バス用デバイスが標準で実装するデータではありません。

dwVendorID ベンダ ID データを格納する変数へのポインタを指定します。(C 言語)

ベンダ ID データを格納する変数を指定します。(Visual Basic)

弊社のベンダ ID は、1147h(16 進数)です。

dwClassCode クラスコードデータを格納する変数へのポインタを指定します。(C 言語)

クラスコードデータを格納する変数を指定します。(Visual Basic)

デバイスのクラスコードが格納されます。PCI Rev2.1 で規定されている値が格納されます。

dwRevisionID リビジョン ID データを格納する変数へのポインタを指定します。(C 言語)

リビジョン ID データを格納する変数を指定します。(Visual Basic)

インタフェースモジュールのリビジョン ID が格納されます。

dwBaseAddress0 リソース 0データを格納する変数へのポインタを指定します。(C 言語)

リソース 0データを格納する変数を指定します。(Visual Basic)

インタフェースモジュールが占有する I/O または、メモリ領域が格納されます。

dwBaseAddress1 リソース 1データを格納する変数へのポインタを指定します。(C 言語)

リソース 1データを格納する変数を指定します。(Visual Basic)

インタフェースモジュールが占有する I/O または、メモリ領域が格納されます。

dwBaseAddress2 リソース 2データを格納する変数へのポインタを指定します。(C 言語)

リソース 2データを格納する変数を指定します。(Visual Basic)

インタフェースモジュールが占有する I/O または、メモリ領域が格納されます。

Page 111: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

dwBaseAddress3 リソース 3データを格納する変数へのポインタを指定します。(C 言語)

リソース 3データを格納する変数を指定します。(Visual Basic)

インタフェースモジュールが占有する I/O または、メモリ領域が格納されます。

dwBaseAddress4 リソース 4データを格納する変数へのポインタを指定します。(C 言語)

リソース 4データを格納する変数を指定します。(Visual Basic)

インタフェースモジュールが占有する I/O または、メモリ領域が格納されます。

dwBaseAddress5 リソース 5データを格納する変数へのポインタを指定します。(C 言語)

リソース 5データを格納する変数を指定します。(Visual Basic)

インタフェースモジュールが占有する I/O または、メモリ領域が格納されます。

dwSubsystemID サブシステム ID データを格納する変数へのポインタを指定します。(C 言語)

サブシステム ID データを格納する変数を指定します。(Visual Basic)

インタフェースモジュールのサブシステム ID が格納されます。

※4 桁製品(PCI-4116 等)と 6 桁製品(CBI-467101 等)ではサブシステム ID の bit 毎の

意味が変わります。

4 桁製品と 6桁製品の区別方法

0h 4 桁製品 bit15~bit13

1h 6 桁製品

4 桁製品での PCI 製品、CompactPCI 製品、CardBus 製品か PCI Express 製品の判別方法

0h PCI 製品

1h CompactPCI 製品

2h CardBus 製品 bit11~bit8

3h PCI Express 製品

6 桁製品での PCI 製品、CompactPCI 製品、CardBus 製品か PCI Express 製品の判別方法

0h PCI 製品

1h CompactPCI 製品

2h CardBus 製品 bit12~bit10

3h PCI Express 製品

dwSubsystemVendorID サブシステムベンダ ID データを格納する変数へのポインタを指定します。(C 言語)

サブシステムベンダ ID データを格納する変数を指定します。(Visual Basic)

インタフェースモジュールのサブシステム ID が格納されます。

dwInterruptLine 割込みラインデータを格納する変数へのポインタを指定します。(C 言語)

割込みラインデータを格納する変数を指定します。(Visual Basic)

インタフェースモジュールが使用する割込みレベルが格納されます。

Page 112: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

dwBoardID ボード ID データを格納する変数へのポインタを指定します。(C 言語)

ボード ID データを格納する変数を指定します。(Visual Basic)

インタフェースモジュール上に実装されている RSW1 の値が格納されます。

CardBus カードでは CardBus ID 設定ユーティリティで設定した値が格納されます。

【備考】

PCI-4172FMU で本関数を実行した場合、dwDeviceID、dwVenderID、dwSybsystemID、dwBoardID

以外は不定値が取得出来ます。

【戻り値】

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

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

【使用例】

●C言語

HANDLE hDevice;

LONG Ret;

DWORD dwDeviceID;

DWORD dwVendorID;

DWORD dwClassCode;

DWORD dwRevisionID;

DWORD dwBaseAddress0;

DWORD dwBaseAddress1;

DWORD dwBaseAddress2;

DWORD dwBaseAddress3;

DWORD dwBaseAddress4;

DWORD dwBaseAddress5;

DWORD dwSubsystemID;

DWORD dwSubsystemVendorID;

DWORD dwInterruptLine;

DWORD dwBoardID;

Ret = HdlcCommonGetPciDeviceInfo(

hDevice, &dwDeviceID, &dwVendorID,

&dwClassCode, &dwRevisionID,

&dwBaseAddress0, &dwBaseAddress1, &dwBaseAddress2,

&dwBaseAddress3, &dwBaseAddress4, &dwBaseAddress5,

&dwSubsystemID, &dwSubsystemVendorID,

&dwInterruptLine, &dwBoardID

);

Page 113: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic

Dim hDevice As Long

Dim Ret As Long

Dim dwDeviceID As Long

Dim dwVendorID As Long

Dim dwClassCode As Long

Dim dwRevisionID As Long

Dim dwBaseAddress0 As Long

Dim dwBaseAddress1 As Long

Dim dwBaseAddress2 As Long

Dim dwBaseAddress3 As Long

Dim dwBaseAddress4 As Long

Dim dwBaseAddress5 As Long

Dim dwSubsystemID As Long

Dim dwSubsystemVendorID As Long

Dim dwInterruptLine As Long

Dim dwBoardID As Long

Ret = HdlcCommonGetPciDeviceInfo(

hDeviceHandle, dwDeviceID, dwVendorID, dwClassCode, dwRevisionID,

dwBaseAddress0, dwBaseAddress1, dwBaseAddress2, _

dwBaseAddress3, dwBaseAddress4, dwBaseAddress5, _

dwSubsystemID, dwSubsystemVendorID, dwInterruptLine, dwBoardID _

)

●Visual C# .NET

IntPtr DeviceHandle;

uint Ret;

uint DeviceID;

uint VendorID;

uint ClassCode;

uint RevisionID;

uint BaseAddress0;

uint BaseAddress1;

uint BaseAddress2;

uint BaseAddress3;

uint BaseAddress4;

uint BaseAddress5;

uint SubsystemID;

uint SubsystemVendorID;

uint InterruptLine;

uint BoardID;

Ret = IFCHDLC_ANY.HdlcCommonGetPciDeviceInfo(

DeviceHandle, out DeviceID, out VendorID,

out ClassCode, out RevisionID,

out BaseAddress0, out BaseAddress1, out BaseAddress2,

out BaseAddress3, out BaseAddress4, out BaseAddress5,

out SubsystemID, out SubsystemVendorID,

Page 114: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

out InterruptLine, out BoardID

);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim DeviceID As Integer

Dim VendorID As Integer

Dim ClassCode As Integer

Dim RevisionID As Integer

Dim BaseAddress0 As Integer

Dim BaseAddress1 As Integer

Dim BaseAddress2 As Integer

Dim BaseAddress3 As Integer

Dim BaseAddress4 As Integer

Dim BaseAddress5 As Integer

Dim SubsystemID As Integer

Dim SubsystemVendorID As Integer

Dim InterruptLine As Integer

Dim BoardID As Integer

Ret = IFCHDLC_ANY.HdlcCommonGetPciDeviceInfo( _

DeviceHandle, DeviceID, VendorID, ClassCode, RevisionID, _

BaseAddress0, BaseAddress1, BaseAddress2, _

BaseAddress3, BaseAddress4, BaseAddress5, _

SubsystemID, SubsystemVendorID, InterruptLine, BoardID _

)

リソース情報を取得します。

Page 115: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

24. CallBackProc

【機能】

イベント発生によってコールされるコールバック関数のプレースホルダです。

関数名はポート初期化情報構造体(HDLCNPORTINITDATA 構造体)の lpCallBackProc メンバに渡

した関数名となります。

【書式】

(x86 専用)の定義は以前のバージョンとの互換性のために残されています。新たにアプリケ

ーションを作成される場合には、(x86、x64 共用)の定義をご使用下さい。

●C言語(x86)

void CALLBACK CallBackProc(

DWORD ulEventFactor,

DWORD hDeviceHandle

);

●C 言語(x64)

void CALLBACK CallBackProc(

DWORD ulEventFactor,

HANDLE hDeviceHandle

);

●Visual Basic

Declare Sub CallBackProc ( _

ByVal ulEventFactor As Long, _

ByVal hDeviceHandle As Long _

)

●Visual C# .NET(x86、x64 共用)

void CallBackProc(

uint EventFactor, // イベント発生要因

IntPtr DeviceHandle // デバイスハンドル

);

●Visual C# .NET(x86 専用)

void CallBackProc(

uint EventFactor, // イベント発生要因

uint DeviceHandle // デバイスハンドル

);

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

Declare Sub CallBackProc (

ByVal EventFactor As Integer, ' イベント発生要因

ByVal DeviceHandle As IntPtr ' デバイスハンドル

)

Page 116: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET(x86 専用)

Declare Sub CallBackProc (

ByVal EventFactor As Integer, ' イベント発生要因

ByVal DeviceHandle As Integer ' デバイスハンドル

)

【パラメータ】

ulEventFactor コールバック関数を呼び出した割り込みイベント要因です。

bit31~bit12 bit11 bit10 bit9 bit8

RS-232C 予約 PWR SAF OVR OVF

RS-485 予約 PWR SAF OVR OVF

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

RS-232C CI CS CD DR IDLE ERROR 予約 RD

RS-485 予約 I 予約 予約 IDLE ERROR 予約 RD

0 = イベントは発生していません

1 = イベントが発生しました

CI = CI 信号の入力状態に変化があったとき

CD = CD 信号の入力状態に変化があったとき

DR = DR 信号の入力状態に変化があったとき

CS = CS 信号の入力状態に変化があったとき

I = I 信号の入力状態に変化があったとき

IDLE = アイドルを検出したとき

ERROR = エラーフレームを受信したとき

RD = データを受信し、受信バッファに格納し終わったとき

OVF = オーバーフローエラーが発生したとき

OVR = オーバーランエラーが発生したとき

SAF = HDLC モジュールとのケーブル切断が発生したとき

PWR = HDLC モジュールの電源電圧に異常が発生したとき

hDeviceHandle イベントが発生したデバイスハンドルです。

【戻り値】

なし

Page 117: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【使用例】

●Visual C# .NET

// コールバック関数

void CallBackProc(uint EventFactor, IntPtr DeviceHandle){

// 割り込み処理を記述します

}

// メインルーチン

IntPtr DeviceHandle;

IFCHDLC_ANY.LPHDLCCALLBACK proc = new IFCHDLC_ANY.LPHDLCCALLBACK(CallBackProc);

IFCHDLC_ANY.HDLCNPORTINITDATA PortInit;

/* ポート初期化 */

PortInit = new IFCHDLC_ANY.HDLCNPORTINITDATA();

PortInit.InitializeArray();

PortInit.LineMode = IFCHDLC_ANY.HDLC_LINE_HALF; /* 半二重 */

PortInit.Txc = IFCHDLC_ANY.HDLC_SCLK_PTC; /* 送信内部クロック */

PortInit.Rxc = IFCHDLC_ANY.HDLC_RCLK_DPLL; /* 受信 DPLL */

PortInit.SourceClock = IFCHDLC_ANY.HDLC_CLOCK_32000000; /* 内部クロック 32MHz */

PortInit.BaudRate = 250000; /* 250kbps */

PortInit.Interface = IFCHDLC_ANY.HDLC_INTERFACE_485; /* RS-485 */

PortInit.Format = IFCHDLC_ANY.HDLC_FORMAT_NRZI; /* 符号化フォーマット NRZI

*/

PortInit.Fcs = IFCHDLC_ANY.HDLC_FCS_16; /* FCS 生成多項式 ITUT FCS16

*/

PortInit.AddressMode = IFCHDLC_ANY.HDLC_ADDRESS_NONE; /* アドレス検出を行わない

*/

PortInit.TxcMode = IFCHDLC_ANY.HDLC_STOUT_NONE; /* クロックを出力しない */

PortInit.SendTiming = 100 | IFCHDLC_ANY.HDLC_TIME_MICRO_SEC;

/* 送信前切り替え時間 100us */

PortInit.CloseTiming = 100 | IFCHDLC_ANY.HDLC_TIME_MICRO_SEC;

/* 送信後切り替え時間 100us */

PortInit.CallBackProc = proc;

DeviceHandle = IFCHDLC_ANY.HdlcOpen("FBIHDLC1", ref PortInit);

Page 118: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET

Public proc As IFCHDLC_ANY.LPHDLCCALLBACK

‘ コールバック関数

Public Sub CallBackProc(ByVal EventFactor As Integer, ByVal DeviceHandle As IntPtr)

‘ 割り込み処理を記述します

End Sub

‘ メインルーチン

Dim Ret As Integer

Dim DeviceHandle As IntPtr

Dim PortInit As IFCHDLC_ANY.HDLCNPORTINITDATA

proc = New IFCHDLC_ANY.LPHDLCCALLBACK(AddressOf CallBackProc)

' ポート初期化

PortInit = New IFCHDLC_ANY.HDLCNPORTINITDATA(0)

PortInit.LineMode = IFCHDLC_ANY.HDLC_LINE_HALF ‘ 半二重

PortInit.Txc = IFCHDLC_ANY.HDLC_SCLK_PTC ’ 送信内部クロック

PortInit.Rxc = IFCHDLC_ANY.HDLC_RCLK_DPLL ‘ 受信 DPLL

PortInit.SourceClock = IFCHDLC_ANY.HDLC_CLOCK_32000000 ‘ 内部クロック 32MHz

PortInit.BaudRate = 250000 ‘ 250kbps

PortInit.Interface = IFCHDLC_ANY.HDLC_INTERFACE_485 ‘ RS-485

PortInit.Format = IFCHDLC_ANY.HDLC_FORMAT_NRZI ‘ 符号化フォーマット NRZI

PortInit.Fcs = IFCHDLC_ANY.HDLC_FCS_16 ‘ FCS 生成多項式 ITUT FCS16

PortInit.AddressMode = IFCHDLC_ANY.HDLC_ADDRESS_NONE ‘ アドレス検出を行わない

PortInit.TxcMode = IFCHDLC_ANY.HDLC_STOUT_NONE ‘ クロックを出力しない

PortInit.SendTiming = 100 Or IFCHDLC_ANY.HDLC_TIME_MICRO_SEC

‘ 送信前切り替え時間 100us

PortInit.CloseTiming = 100 Or IFCHDLC_ANY.HDLC_TIME_MICRO_SEC

‘ 送信後切り替え時間 100us

PortInit.CallBackProc = proc

DeviceHandle = IFCHDLC_ANY.HdlcOpen("FBIHDLC1", PortInit)

Page 119: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

4.3 構造体 1. HDLCNPORTINTIDATA 構造体 ポートの初期化情報を設定する構造体です。

●C 言語

typedef struct {

ULONG uFormat;

ULONG uFcs;

ULONG uAddressMode;

ULONG uAddress[13];

ULONG uLineMode;

ULONG uTxc;

ULONG uRxc;

ULONG uSourceClock;

ULONG uBaudRate;

ULONG uInterface;

ULONG uTxcMode;

ULONG uSendTiming;

ULONG uCSignal;

ULONG uCloseTiming;

HANDLE hWindowHandle;

ULONG uWindowsMessage;

LPHDLCCALLBACK lpCallBackProc;

} HDLCNPORTINITDATA, *PHDLCNPORTINITDATA;

●Visual Basic

Type HDLCNPORTINITDATA

uFormat As Long

uFcs As Long

uAddressMode As Long

uAddress(12) As Long

uLineMode As Long

uTxc As Long

uRxc As Long

uSourceClock As Long

uBaudRate As Long

uInterface As Long

uTxcMode As Long

uSendTiming As Long

uCSignal As Long

uCloseTiming As Long

hWindowHandle As Long

uWindowsMessage As Long

lpCallBackProc As Long

End Type

Page 120: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual C# .NET(x86、x64 共用)

[StructLayout(LayoutKind.Sequential)]

public struct HDLCNPORTINTIDATA{

public uint Format;

public uint Fcs;

public uint AddressMode;

[MarshalAs(UnmanagedType.ByValArray, SizeConst=13)]

public uint[] Address;

public void InitializeArray()

{

Address = new uint [13];

}

public void SetAddress(uint uIndex, uint uAdr)

{

Address[uIndex] = uAdr;

}

public uint GetAddress(uint uIndex)

{

return Address[uIndex];

}

public uint LineMode;

public uint Txc;

public uint Rxc;

public uint SourceClock;

public uint BaudRate;

public uint Interface;

public uint TxcMode;

public uint SendTiming;

public uint CSignal;

public uint CloseTiming;

public IntPtr WindowHandle;

public uint WindowsMessage;

public LPHDLCCALLBACK CallBackProc;

}

Page 121: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual C# .NET(x86 専用)

[StructLayout(LayoutKind.Sequential)]

public struct HDLCNPORTINTIDATA{

public uint Format;

public uint Fcs;

public uint AddressMode;

[MarshalAs(UnmanagedType.ByValArray, SizeConst=13)]

public uint[] Address;

public void InitializeArray()

{

Address = new uint [13];

}

public void SetAddress(uint uIndex, uint uAdr)

{

Address[uIndex] = uAdr;

}

public uint GetAddress(uint uIndex)

{

return Address[uIndex];

}

public uint LineMode;

public uint Txc;

public uint Rxc;

public uint SourceClock;

public uint BaudRate;

public uint Interface;

public uint TxcMode;

public uint SendTiming;

public uint CSignal;

public uint CloseTiming;

public uint WindowHandle;

public uint WindowsMessage;

public LPHDLCCALLBACK CallBackProc;

}

Page 122: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

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

<StructLayout(LayoutKind.Sequential)> _

Public Structure HDLCNPORTINITDATA{

Format As Integer

Fcs As Integer

AddressMode As Integer

<MarshalAs(UnmanagedType.ByValArray, SizeConst:=12)> _

Dim Address() As Integer

Public Sub New(ByVal Dummy As Integer)

ReDim uAddress(12)

End Sub

Public Sub SetAddress(ByVal Index As Integer, ByVal Adr As Integer)

Address(Index) = Adr

End Sub

Public Function Get Address (ByVal Index As Integer)

GetChnangePattern = Address(Index)

End Function

LineMode As Integer

Txc As Integer

Rxc As Integer

SourceClock As Integer

BaudRate As Integer

uInterface As Integer

TxcMode As Integer

SendTiming As Integer

CSignal As Integer

CloseTiming As Integer

WindowHandle As IntPtr

WindowsMessage As Integer

CallBackProc As LPHDLCCALLBACK

End Structure

Page 123: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET(x86 専用)

<StructLayout(LayoutKind.Sequential)> _

Public Structure HDLCNPORTINITDATA{

Format As Integer

Fcs As Integer

AddressMode As Integer

<MarshalAs(UnmanagedType.ByValArray, SizeConst:=12)> _

Dim Address() As Integer

Public Sub New(ByVal Dummy As Integer)

ReDim uAddress(12)

End Sub

Public Sub SetAddress(ByVal Index As Integer, ByVal Adr As Integer)

Address(Index) = Adr

End Sub

Public Function Get Address (ByVal Index As Integer)

GetChnangePattern = Address(Index)

End Function

LineMode As Integer

Txc As Integer

Rxc As Integer

SourceClock As Integer

BaudRate As Integer

uInterface As Integer

TxcMode As Integer

SendTiming As Integer

CSignal As Integer

CloseTiming As Integer

WindowHandle As Integer

WindowsMessage As Integer

CallBackProc As LPHDLCCALLBACK

End Structure

メンバ 説明

符号化フォーマットの種類を選択します。

識別子 値 内容

HDLC_FORMAT_NRZI 0 NRZI

HDLC_FORMAT_NRZ 1 NRZ

HDLC_FORMAT_FM0 2 FM0*1)

HDLC_FORMAT_FM1 3 FM1*1)

uFormat

※ FM0、FM1 を設定した際は、自動で送信クロックは内部クロック、受信クロッ

クは外部クロック(RT から入力したクロック)が設定されます。

*1) FM 符号化対応製品でのみ指定できます。

PCI-4172FM, PCI-4172FMU, CPZ-4172FM, PEX-467102FM, PCI-4171FM,

CSI-467202FM, CSI-467302FM, CSI-467402FM, LPC-467101FM,

PCI-467101FM, PCI-467102FM

Page 124: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

FCS 生成多項式の種類を選択します。

識別子 値 内容

HDLC_FCS_16 0 ITU-T(旧CCITT)16bit X16+X12+X5+1

HDLC_FCS_32 1 ITU-T(旧 CCITT)32bit

X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X1+1)

HDLC_FCS_ANSI16 2 ANSI 16bit X16+X15+X2+1

※HDLC_FCS_16, HDLC_FCS_32の CRC演算器初期値はオール"1"です。

HDLC_FCS_ANSI16の CRC演算器初期値はオール"0"です。

HDLC_FCS_ANSI16は PCI-4116, PCI/CTP-4158, PCI/CTP-4159では使用できません。

uFcs

アドレスの扱いを選択します。

識別子 値 内容

HDLC_ADDRESS_NONE 0 アドレス検出は行わない(全てのフレームを受

信する)

HDLC_ADDRESS_AUTO1 1 受信フレームの先頭のデータをアドレスとして

処理する

HDLC_ADDRESS_AUTO2 2 受信フレームの 2 バイト目をアドレスとして処

理する

HDLC_ADDRESS_AUTO3 3 受信フレームの先頭から 2 バイトをアドレスと

して処理する

uAddressMode

※HDLC_ADDRESS_AUTO2 は PCI-4116, PCI/CTP-4158, PCI/CTP-4159 のみ有効。

uAddress 検出するアドレスを指定します。

ulAddress[0]に使用するアドレスの個数を代入し、ulAddress[1]~にアドレス

を代入してください。

※uAddressMode が 0 の時は無効です。

Page 125: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

以下の3つの設定を行います

・全二重/半二重の選択を行います

識別子 値 内容

HDLC_LINE_FULL 0 全二重

HDLC_LINE_HALF 1 半二重モード

RS 信号(C 信号)は送信と同期させません。

半二重モード

RS 信号(C 信号)と送信を同期させます。

RS-232C RS 信号を送信データと同期させます。

フレーム送信前に RS 信号を ON にし、フレ

ーム送信後 RS 信号を OFF にします。

HDLC_LINE_HALF2 2

RS-485 C 信号を送信データと同期させます。

フレーム送信前に C 信号を ON にし、フレ

ーム送信後 C信号を OFF にします。

PCI-4171(RS-232C 使用時)ではリビジョン ID が 3 以上、PCI-467120、

CPZ-467120 ではリビジョン ID が 2 以上の製品で、HDLC_LINE_HALF2 を指定

して RS 信号の自動制御ができます。リビジョン ID がこれら未満の製品では

HDLC_LINE_HALF2 を指定しても RS 信号は自動的に制御されません。

RS 信号を制御する必要がある場合には、HDLC_LINE_HALF に設定し

HdlcSetControlLine 関数にて制御してください。

リビジョン ID は HdlcCommonGetPciDeviceInfo 関数で取得できます。

・フラグ送信/マーク送信の選択を行います

識別子 値 内容

HDLC_TFIL_FLAG 0 送信フレーム間のギャップ期間中(終結フラグと次

のフレームの先頭フラグの間)にフラグが挿入され

ます。

HDLC_TFIL_MARK 10000h 送信フレーム間のギャップ期間中(終結フラグと次

のフレームの先頭フラグの間)にマークが挿入され

ます。

・エラーフレームを受信するかどうか選択します

PCI-4116, PCI/CTP-4158, PCI/CTP-4159 は本パラメータは無効です

識別子 値 内容

HDLC_REJECT_ERRORFRAME 0 エラーフレームを破棄します。

uLineMode

HDLC_ACCEPT_ERRORFRAME 100000h エラーフレームを受信します。

Page 126: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

送信クロックの種類を選択します。

(uFormat が HDLC_FORMAT_NRZI、HDLC_FORMAT_NRZ のみ有効)

識別子 値 内容

HDLC_SCLK_PTC 1 内部クロック

HDLC_SCLK_ST 2 外部クロック(ST から入力したクロック)

HDLC_SCLK_RT 4 外部クロック(RT から入力したクロック)

uTxc

※符号化フォーマットを FM0,FM1 に設定した際は、自動で内部クロックに設定

されます。

受信クロックの種類を選択します。

(uFormatが HDLC_FORMAT_NRZI、HDLC_FORMAT_NRZのみ有効)

識別子 値 内容

HDLC_RCLK_RT 1 外部クロック(RT から入力したクロック)

HDLC_RCLK_DPLL 2 DPLL

uRxc

※符号化フォーマットを FM0,FM1 に設定した際は、自動で外部クロック(RT から

入力したクロック)に設定されます。

ビットレート生成用クロックの種類を選択します。

識別子 値 内容

HDLC_CLOCK_19660800 0 19.6608MHz

HDLC_CLOCK_14745600 1 14.7456MHz

HDLC_CLOCK_8192000 2 8.192MHz

HDLC_CLOCK_32000000 3 32MHz

HDLC_CLOCK_12288000 4 12.288MHz

HDLC_CLOCK_36864000 5 36.864MHz

HDLC_CLOCK_58982400 6 58.9824MHz

HDLC_CLOCK_49152000 7 49.152MHz

インタフェースモジュールにより、サポートされているクロックが異なります。

ハードウェアマニュアルの「ハードウェア仕様」―「基準クロック」をご確認

下さい

uSourceClock

通信速度を設定します。

RS-232C 128bps~1000000bps(1Mbps)

RS-485 128bps~4000000bps(4Mbps)

※符号化フォーマットを FM0,FM1 に設定する場合、内部クロック使

用する場合、128bps~2000000bps(2Mbps)です。

uBaudRate

インタフェースモジュールにより、設定可能範囲が異なります。

※送信クロック、受信クロックとも外部クロックに設定された場合この設定値

は無視されます。

物理インタフェースの種類を選択します。

識別子 値 内容

HDLC_INTERFACE_232C 0 RS-232C

HDLC_INTERFACE_485 1 RS-485

uInterface

Page 127: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

送信クロック出力モードを指定します(RS-485 時のみ有効)。

識別子 値 内容

HDLC_STOUT_NONE 0 常に出力しない

HDLC_STOUT_ALWAYS 1 常に出力する

HDLC_STOUT_SYNC 2 送信に同期させる(全二重時無効)

uTxcMode

送信前切り替え時間を指定します。

(uLineMode が HDLC_LINE_HALF、HDLC_LINE_HALF2 のみ有効)

製品型式 設定範囲 説明

PCI-4116,

PCI/CTP-4158,

PCI/CTP-4159

0~65535 10ms 単位で設定が可能です。

(0~655350ms)

10ms 単位で設定が可能です。(0~1990ms)

設定できる 大時間は通信速度によって、以下のように変

化します。

設定できる 大時間[s] = 255/通信速度[bps]

設定したい時間が 1ms 未満の場合は、識別子

HDLC_TIME_MICRO_SEC をつかって、1μs単位で設定するこ

ともできます。

設定時間の例 説明

30 30ms に設定 HDLC_TIME_MICRO_SEC | 100 100μs に設定

それ以外 0~199

※ 時間の 小単位は、1/通信速度[bps]になります。

時間は 小単位で切り上げられます。

※ 設定時間に設定できる 大時間を超えた時間を設定す

ると、設定できる 大時間に変更されます。

※1μs単位に設定した際の設定範囲は0~999μsです。

uSendTiming

RS 信号(C 信号)の初期化時の状態を指定します。

識別子 値 内容

HDLC_CSIG_OFF 0 OFF にします

HDLC_CSIG_ON 1 ON にします

uCSignal

uCloseTiming 送信後切り替え時間を指定します

(uLineMode が HDLC_LINE_HALF、HDLC_LINE_HALF2 のみ有効)

設定可能範囲は uSendTiming と同じです。

hWindowsHandle イベント発生時メッセージを送るウィンドウハンドルを指定します。

メッセージを使用しないときは NULL または 0を指定します。

uWindowsMessage イベント発生時に送られるメッセージを指定します。

メッセージを使用しないときは 0を指定します。

lpCallbackProc イベント発生時に呼び出されるコールバックルーチンへのポインタを指定しま

す。コールバックルーチンを使用しないときは NULL または 0を指定します。

Page 128: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

2. HDLCNPORTSTATUS 構造体 送受信の現在の状況を示す構造体です。

●C 言語

typedef struct {

ULONG uSendFrame;

ULONG uSendFreeBlock;

ULONG uReceiveFrame;

ULONG uReceiveFreeBlock;

} HDLCNPORTSTATUS, *PHDLCNPORTSTATUS;

●Visual Basic

Type HDLCNPORTSTATUS

uSendFrame As Long

uSendFreeBlock As Long

uReceiveFrame As Long

uReceiveFreeBlock As Long

End Type

●Visual C# .NET

[StructLayout(LayoutKind.Sequential)]

public struct HDLCNPORTSTATUS{

public uint SendFrame;

public uint SendFreeBlock;

public uint ReceiveFrame;

public uint ReceiveFreeBlock;

}

●Visual Basic .NET

<StructLayout(LayoutKind.Sequential)> _

Public Structure HDLCNPORTSTATUS{

Public SendFrame As Integer

Public SendFreeBlock As Integer

Public ReceiveFrame As Integer

Public ReceiveFreeBlock As Integer

End Structure

メンバ 説明

uSendFrame 送信待ちのフレーム数(0~128 の値)

uSendFreeBlock 空き送信ブロック数(0~128 の値)

uReceiveFrame 受信しているフレーム数(0~128 の値)

uReceiveFreeBlock 空き受信ブロック(0~128 の値)

Page 129: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

【備考】

HDLC インタフェースモジュールは 大16384バイトまでのフレームを受信することができます

が、受信フレームのサイズに応じて使用されるブロック数が変化します。

8 バイト以下のフレームは 受信バッファを消費しません。(ドライバの内部では保持していま

すが、インタフェースモジュール上の受信バッファは使用しません)

それ以上のフレームは 9バイト目からが受信バッファに格納されます。

受信バッファの容量は 524288 バイトですが、内部で各 4096 バイトのブロックで管理されてい

ます。

ひとつのブロックは4096バイトなので4096バイト以下のフレームを受信しても4096バイトの

ブロックをひとつ消費します。また、10K バイトのフレームを受信した場合は、4096 バイト+4096

バイト+2048 バイト=10240 バイトとなり 3ブロックを消費します。

4096 バイト以下のフレームだけを連続で受信した場合、128 フレームを蓄えることができます。

例)

順番に、4096 バイト、10240 バイト、7168 バイト、4096 バイトのフレームを受信したとき、受

信バッファ内では以下のように格納されています。

4096 バイト

(10240-8)バイト (7168-8)バイト (4096-8)

バイト

(2048-8)バイト

この場合、使用されている受信バッファは 7 ブロック(4096×7 = 28672 バイト)、残りは 121

ブロック(4096×121 = 495616 バイト)となります。

HdlcGetFrameCount で得られるフレーム数は 4となり、

HdlcGetFrameLength で得られる先頭フレームのサイズは 2048 となります。

© 1999 Interface Corporation.

Page 130: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

4.4 戻り値一覧

エラー識別子 値 意味 対処方法

FBIHDLC_ERROR_SUCCESS 0 正常終了

FBIHDLC_ERROR_NOT_DEVICE C0000001h ドライバが呼び出せま

せん

指定されたデバイスが見つかりません

でした。指定しているデバイス名が存

在するかどうかを確認してください。

FBIHDLC_ERROR_INVALID_HANDLE C0000003h デバイスハンドルが正

しくありません

不正なデバイスハンドルで呼び出しを

行おうとしました。HdlcOpen 関数で返

されたデバイスハンドルを使用してく

ださい。

FBIHDLC_ERROR_IO_PENDING C0000008h 非同期 I/O 操作が進行

中です

Win32API の WaitForSingleObject()等

でイベントの完了を待つことができま

す。

FBIHDLC_ERROR_NOT_SUPPORTED C0000009h サポートしていない機

能です。

FBIHDLC_ERROR_MEMORY_NOTALLOCA

TED

C0001000h 作業用メモリの確保に

失敗しました。

利用可能なメモリが足りなくなってい

ます。不要なアプリケーションなどを

終了させ、利用可能なメモリを増やす

ようにしてくだ

さい。

FBIHDLC_ERROR_PARAMETER C0001001h 引数パラメータの値が

不正です

API 関数に指定する値が不正もしくは

範囲外です。

FBIHDLC_ERROR_INVALID_CALL C0001002h 不正な呼び出しです。 インタフェースモジュールの動作状況

によりコールが禁止されるている関数

をコールした場合に返されるエラーで

す。

FBIHDLC_ERROR_NULL_POINTER C0001004h 引数に NULL ポインタが

指定されています

FBIHDLC_ERROR_USB_TIMEOUT C0001006h USBデバイスとの通信が

タイムアウトしました。

再 起 動 を 行 な う か 、 DPC-0401 の

「IfUsbDevicePowerCtl」関数を使用

し、USB デバイスの電源を OFF→ON し

て下さい。

「IfUsbDevicePowerCtl」関数の使用方

法は、DPC-0401 の Help を参照してく

ださい。

FBIHDLC_ERROR_USBIO_FAILED C0001007h USBデバイスの実行に失

敗しました。

再 起 動 を 行 な う か 、 DPC-0401 の

「IfUsbDevicePowerCtl」関数を使用

し、USB デバイスの電源を OFF→ON し

て下さい。

「IfUsbDevicePowerCtl」関数の使用方

法は、DPC-0401 の Help を参照してく

ださい。

FBIHDLC_ERROR_FRAME_SIZE C0002000h 送・受信のサイズが異常

です

API 関数に指定する値が不正もしくは

範囲外です。

FBIHDLC_ERROR_BUFFER_FULL C0002001h 送信バッファに空きが

ありません

現在送信中のフレームの送信がおわ

り、バッファに空きが出るまで待って

ください。HdlcClearBuffer 関数でバ

ッファをクリアしてください。

FBIHDLC_ERROR_NO_RESPONSE C0002002h 通信コントローラから

の応答がありません インタフェースモジュールの故障

が考えられます。弊社技術支援課まで

お問い合わせください。

FBIHDLC_ERROR_FCSERRORFRAME C0004000h FCSエラーフレームを受

信しました

FBIHDLC_ERROR_SHORTFRAME C0004001h SHORTフレームを受信し

ました

Page 131: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

FBIHDLC_ERROR_LONGFRAME C0004002h LONG フレームを受信し

ました

FBIHDLC_ERROR_ABORTFRAME C0004003h ABORTフレームを受信し

ました

FBIHDLC_ERROR_NOADDRESSFRAME C0004004h 指定したアドレスが検

出できないフレームを

受信しました

FBIHDLC_ERROR_TERMINAL C0006000h 端子台に異常がありま

端子台の電源電圧に異常があるか、端

子台が接続されていません。または正

しくない組み合わせの端子台が接続さ

れています。

正しい組み合わせの端子台を接続して

ください。

FBIHDLC_ERROR_PARAM_FORMAT C0008001h 符号化フォーマットの

指定が不正です。

符号化フォーマットの値を確認してく

ださい。

FBIHDLC_ERROR_PARAM_FCS C0008002h FCS生成多項式の指定が

不正です。

FCS 生成多項式の値を確認してくださ

い。

FBIHDLC_ERROR_PARAM_ADDRESSMOD

E

C0008003h アドレスの扱いの指定

が不正です。

アドレスの扱いを確認してください。

FBIHDLC_ERROR_PARAM_ADDRESS C0008004h アドレスの指定が不正

です。

アドレスの値を確認してください。

FBIHDLC_ERROR_PARAM_LINEMODE C0008005h ラインモードの指定が

不正です。

ラインモードの値を確認してくださ

い。

FBIHDLC_ERROR_PARAM_TXC C0008006h 送信クロックの指定が

不正です。

送信クロックについて確認してくださ

い。

FBIHDLC_ERROR_PARAM_RXC C0008007h 受信クロックの指定が

不正です。

受信クロックについて確認してくださ

い。

FBIHDLC_ERROR_PARAM_SOURCECLOC

K

C0008008h ビットレート生成用ク

ロックの指定が不正で

す。

ビットレート生成クロックについて確

認してください。

FBIHDLC_ERROR_PARAM_BAUDRATE C0008009h 通信速度の指定が不正

です。

通信速度について確認してください。

FBIHDLC_ERROR_PARAM_INTERFACE C000800Ah 物理インタフェースの

指定が不正です。

物理インタフェースの種類について確

認してください。

FBIHDLC_ERROR_PARAM_TXCMODE C000800Bh 送信クロック出力モー

ドの指定が不正です。

送信クロック出力モードについて確認

してください。

FBIHDLC_ERROR_PARAM_SENDTIMING C000800Ch 送信前切り替え時間の

指定が不正です。

送信前切り替え時間について確認して

ください。

FBIHDLC_ERROR_PARAM_CSIGNAL C000800Dh RS 信号の初期化の指定

が不正です。

RS 信号の初期化について確認してく

ださい。

FBIHDLC_ERROR_PARAM_CLOSETIMIN

G

C000800Eh 送信後切り替え時間の

指定が不正です。

送信後切り替え時間について確認して

ください。

Page 132: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

第5章 リファレンス(汎用 DIO 部)

5.1 関数一覧

No 関数名 機能

1 SdioOpen HDLC モジュールのデジタル入出力デバイスのオープンを行い、

以後のアクセスを行えるようにします。

2 SdioClose HDLC モジュールのデジタル入出力デバイスのクローズを行い、

アクセスのために使用されていた各種リソースの解放を行い、

以後のアクセスを禁止します。

3 SdioInputPoint 任意の点数の入力接点の状態を読み込みます。

4 SdioOutputPoint 任意の点数の出力接点の出力を制御します。

5 SdioInputByte 指定した 8点の入力接点の状態を読み込みます。

(BYTE アクセス)

6 SdioInputWord 指定した 16 点の入力接点の状態を読み込みます。

(WORD アクセス)

7 SdioInputDword 指定した 32 点の入力接点の状態を読み込みます。

(DWORD アクセス)

8 SdioOutputByte 指定した 8点の出力接点の出力を制御します。

(BYTE アクセス)

9 SdioOutputWord 指定した 16 点の出力接点の出力を制御します。

(WORD アクセス)

10 SdioOutputDword 指定した 32 点の出力接点の出力を制御します。

(DWORD アクセス)

11 SdioSetLatchLogic 入力信号をラッチする STB 信号の論理を指定します。

12 SdioGetLatchLogic 入力信号をラッチする STB 信号の論理を取得します。

13 SdioInputLatchPoint 任意の点数のラッチされた入力接点の状態を読み込みます。

14 SdioInputLatchByte ラッチされた 8点の入力接点の状態を読み込みます。

(BYTE アクセス)

15 SdioInputLatchWord ラッチされた 16 点の入力接点の状態を読み込みます。

(WORD アクセス)

16 SdioInputLatchDword ラッチされた 32 点の入力接点の状態を読み込みます。

(DWORD アクセス)

17 SdioSetEvent STB 信号の変化による割り込みが発生したときに実行するイベ

ントを指定します。

18 SdioSetEventLogic STB 信号の割り込み発生論理を設定します。

19 SdioGetEventLogic STB 信号の割り込み発生論理の設定を取得します。

20 SdioGetTmoduleStatus HDLC モジュールの接続状態を取得します。

21 SdioSetTmodulePower HDLC モジュールの電源を制御します。

22 SdioCommonGetDeviceInfo デバイスのリソース情報を取得します。

23 CallBackProc STB 信号の割り込み発生によってコールされるコールバック関

数のプレースホルダです。

Page 133: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

5.2 関数個別説明

1. SdioOpen 【機能】

HDLC モジュールのデジタル入出力デバイスのオープンを行い、以後のデバイスへのアクセスを

行えるようにします。

「デバイス マネージャ」に「IfSDio」が追加され認識された弊社 HDLC モジュールのデジタル

入出力デバイスが一覧表示されます。

一覧の製品型式の横にインタフェースモジュール上のRSW1 の値とデバイス名が表示されます。

DI入力ユーティリティ、DO出力ユーティリティでも確認できます。

デバイス名は使用するボード枚数やスロット位置の変更等でシステム構成が変化すると割り当

てられる名前が変化する場合があります。システム構成が変化する環境でご使用になる場合は、

デバイス名の指定が変更できるようにアプリケーションを作成ください。

【書式】

●C言語

HANDLE SdioOpen (

LPCTSTR lpszName

);

●Visual Basic

Declare Function SdioOpen Lib "IfSdio.DLL"(

ByVal lpszName As String

)As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern IntPtr SdioOpen(

string Name // デバイス名

);

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioOpen(

string Name // デバイス名

);

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

Declare Function SdioOpen Lib “IfSdio.dll” ( _ ByVal Name As String _ ‘ デバイス名

) As IntPtr

●Visual Basic .NET(x86 専用)

Declare Function SdioOpen Lib “IfSdio.dll” ( _ ByVal Name As String _ ‘ デバイス名

) As Integer

Page 134: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

lpszName オープンするデバイス名を指定します。

【戻り値】

関数が正常に終了した場合には、有効なハンドルが返されます。 他の関数は、本関数により取得

したハンドルを使用してデバイスの制御を行います。 オープンに失敗した場合には、

INVALID_HANDLE_VALUE(-1)が返されます。

【使用例】

●C言語

HANDLE hDeviceHandle;

hDeviceHandle = SdioOpen("IFSDIO1");

if(hDeviceHandle == INVALID_HANDLE_VALUE){

/* オープンに失敗 */

printf("Fail to open the port\n");

}

●Visual Basic

Dim hDeviceHandle As Long

hDeviceHandle = SdioOpen("IFSDIO1")

If hDeviceHandle = -1 Then

' オープンに失敗

MsgBox("Fail to open the port")

End If

●Visual C# .NET

IntPtr DeviceHandle;

DeviceHandle = IFCSDIO_ANY.SdioOpen(“IFSDIO1”);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

DeviceHandle = IFCSDIO_ANY.SdioOpen(“IFSDIO1”)

デバイス名"IFSDIO1"の HDLC モジュールのデジタル入出力デバイスをオープンし、変数

hDeviceHandle にデバイスハンドルを返します。

Page 135: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

2. SdioClose 【機能】

HDLC モジュールのデジタル入出力デバイスのクローズを行い、HDLC モジュールのデジタル入出

力デバイスへアクセスのために使用されていた各種リソースの解放を行い、以後の HDLC モジュ

ールのデジタル入出力デバイスへのアクセスを禁止します。

【書式】

●C言語

INT SdioClose(

HANDLE hDeviceHandle

);

●Visual Basic

Declare Function SdioClose Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioClose(

IntPtr DeviceHandle // デバイスハンドル

);

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioClose(

uint DeviceHandle // デバイスハンドル

);

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

Declare Function SdioClose Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioClose Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

) As Integer

Page 136: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

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

【戻り値】

SdioClose関数は処理が正常終了した場合は、IFSDIO_ERROR_SUCCESSが返されます。正常に処理が

終了しなかった場合IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が

返された場合については、『戻り値一覧』を参照してください。

【備考】

再度、HDLCモジュールのデジタル入出力デバイスへのアクセスを行う場合にはオープン処理

(SdioOpen関数)を呼び出してください。

【使用例】

●C言語

nRet = SdioClose( hDeviceHandle );

●Visual Basic

nRet = SdioClose( hDeviceHandle )

●Visual C# .NET

Ret = IFCHDLC_ANY.SdioClose( DeviceHandle );

●Visual Basic .NET

Ret = IFCHDLC_ANY.SdioClose( DeviceHandle )

デバイスハンドル hDeviceHandle の HDLC モジュールのデジタル入出力デバイスのクローズ処理を

行います。

Page 137: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

3. SdioInputPoint 【機能】

任意の点数の入力接点の状態を読み込みます。指定した開始接点番号から 1 接点ずつ変数に格

納されます。

【書式】

●C言語

LONG SdioInputPoint (

HANDLE hDeviceHandle,

PBYTE PbBuffer,

DWORD DwStartNum,

DWORD dwnInputNum

);

●Visual Basic

Declare Function SdioInputPoint Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByRef PbBuffer As Byte,

ByVal DwStartNum As Long,

ByVal dwnInputNum As Long

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputPoint(

IntPtr DeviceHandle, // デバイスハンドル

out byte Buffer, // 接点状態を返す変数への参照渡し

uint StartNum, // 入力開始接点番号

uint Num // 入力接点数

);

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputPoint(

IntPtr DeviceHandle, // デバイスハンドル

byte[] Buffer, // 接点状態を返す変数への参照渡し

uint StartNum, // 入力開始接点番号

uint Num // 入力接点数

);

Page 138: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputPoint(

uint DeviceHandle, // デバイスハンドル

out byte Buffer, // 接点状態を返す変数への参照渡し

uint StartNum, // 入力開始接点番号

uint Num // 入力接点数

);

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputPoint(

uint DeviceHandle, // デバイスハンドル

byte[] Buffer, // 接点状態を返す変数への参照渡し

uint StartNum, // 入力開始接点番号

uint Num // 入力接点数

);

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

Declare Function SdioInputPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByRef Buffer As Byte, _ ‘ 接点状態を返す変数への参照渡し

ByVal StartNum As Integer, _ ‘ 入力開始接点番号

ByVal Num As Integer _ ‘ 入力接点数

) As Integer

Declare Function SdioInputPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal Buffer() As Byte, _ ‘ 接点状態を返す変数への参照渡し

ByVal StartNum As Integer, _ ‘ 入力開始接点番号

ByVal Num As Integer _ ‘ 入力接点数

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioInputPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByRef Buffer As Byte, _ ‘ 接点状態を返す変数への参照渡し

ByVal StartNum As Integer, _ ‘ 入力開始接点番号

ByVal Num As Integer _ ‘ 入力接点数

) As Integer

Declare Function SdioInputPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal Buffer() As Byte, _ ‘ 接点状態を返す変数への参照渡し

ByVal StartNum As Integer, _ ‘ 入力開始接点番号

ByVal Num As Integer _ ‘ 入力接点数

) As Integer

Page 139: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

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

pBuffer デバイスから読み取ったデータを受け取るバッファを指すポインタです。

dwStartNum

入力開始接点番号 1~24 を指定してください。

入力接点の指定と、信号は下記のように対応しています。

接点番号 1 2 3 … 23 24

入力信号 IN1 IN2 IN3 … IN23 IN24

1: Low レベル 0:High レベル

dwInputNum

入力接点数を指定してください。

【戻り値】

SdioInputPoint関数は正常に終了するとIFSDIO_ERROR_SUCCESSを返します。それ以外の場合は

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合につい

ては、『戻り値一覧』を参照してください。

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

BYTE bBuffer[8];

nRet = SdioInputPoint( hDeviceHandle, &bBuffer[0], 16, 8 );

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim bBuffer(8) As Byte

nRet = SdioInputPoint( hDeviceHandle, bBuffer(0), 16, 8 )

●Visual C# .NET

IntPtr DeviceHandle;

int Ret;

byte[] Buffer = new byte[8];

Ret = IFCSDIO_ANY.SdioInputPoint(DeviceHandle, Buffer, 16, 8);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim Buffer(8) As Byte

Ret = IFCSDIO_ANY.SdioInputPoint(DeviceHandle, Buffer, 16, 8)

デバイスハンドルhDeviceHandleが示すデバイスのIN16~IN23の状態をbBuffer[0...7]に入力し

ます。

Page 140: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

4. SdioOutputPoint 【機能】

任意の点数の出力接点の出力を制御します。指定した開始接点番号から 1 接点づつ変数に格納

されたデータで接点を制御します。

【書式】

●C言語

LONG SdioOutputPoint(

HANDLE hDeviceHandle,

PBYTE pbBuffer,

DWORD dwStartNum,

DWORD dwOutputNum

);

●Visual Basic

Declare Function SdioOutputPoint Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByRef pbBuffer As Byte,

ByVal dwStartNum As Long,

ByVal dwOutputNum As Long

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioOutputPoint(

IntPtr DeviceHandle, // デバイスハンドル

out byte Buffer, // 出力状態を収めている変数への参照渡し

uint StartNum, // 出力開始接点番号

uint Num // 出力接点数

);

[DLLImport(“IfSdio.dll”)] public static extern uint SdioOutputPoint(

IntPtr DeviceHandle, // デバイスハンドル

byte[] Buffer, // 出力状態を収めている変数への参照渡し

uint StartNum, // 出力開始接点番号

uint Num // 出力接点数

);

Page 141: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioOutputPoint(

uint DeviceHandle, // デバイスハンドル

out byte Buffer, // 出力状態を収めている変数への参照渡し

uint StartNum, // 出力開始接点番号

uint Num // 出力接点数

);

[DLLImport(“IfSdio.dll”)] public static extern uint SdioOutputPoint(

uint DeviceHandle, // デバイスハンドル

byte[] Buffer, // 出力状態を収めている変数への参照渡し

uint StartNum, // 出力開始接点番号

uint Num // 出力接点数

);

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

Declare Function SdioOutputPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByRef Buffer As Byte, _ ‘ 出力状態を収めている変数への参照渡し

ByVal StartNum As Integer, _ ‘ 出力開始接点番号

ByVal Num As Integer _ ‘ 出力接点数

) As Integer

Declare Function SdioOutputPoint Lib “IfSdio.dll” ( ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal Buffer() As Byte, _ ‘ 出力状態を収めている変数への参照渡し

ByVal StartNum As Integer, _ ‘ 出力開始接点番号

ByVal Num As Integer _ ‘ 出力接点数

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioOutputPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByRef Buffer As Byte, _ ‘ 出力状態を収めている変数への参照渡し

ByVal StartNum As Integer, _ ‘ 出力開始接点番号

ByVal Num As Integer _ ‘ 出力接点数

) As Integer

Declare Function SdioOutputPoint Lib “IfSdio.dll” ( ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal Buffer() As Byte, _ ‘ 出力状態を収めている変数への参照渡し

ByVal StartNum As Integer, _ ‘ 出力開始接点番号

ByVal Num As Integer _ ‘ 出力接点数

) As Integer

Page 142: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

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

pbBuffer デバイスから出力させるデータを収めている変数へのポインタです。

dwStartNum 出力開始接点番号 1~24 を指定してください。

出力接点の指定と、信号は下記のように対応しています。

接点番号 1 2 3 … 23 24

出力信号 OUT1 OUT2 OUT3 … OUT23 OUT24

1: Low レベル 0:High レベル

dwOutputNum 出力接点数を指定してください。

【戻り値】

SdioOutputPoint関数は正常に終了するとIFSDIO_ERROR_SUCCESSを返します。それ以外の場合は

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合につい

ては、『戻り値一覧』を参照してください。

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG hRet;

BYTE bBuffer[8];

bBuffer[0] = 1;

bBuffer[1] = 0;

bBuffer[2] = 0;

bBuffer[3] = 1;

bBuffer[4] = 0;

bBuffer[5] = 1;

bBuffer[6] = 1;

bBuffer[7] = 0;

nRet = SdioOutputPoint( hDeviceHandle, &bBuffer[0], 16, 8 );

Page 143: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim bBuffer(8) As Byte

bBuffer(0) = 1

bBuffer(1) = 0

bBuffer(2) = 0

bBuffer(3) = 1

bBuffer(4) = 0

bBuffer(5) = 1

bBuffer(6) = 1

bBuffer(7) = 0

nRet = SdioOutputPoint( hDeviceHandle, bBuffer(0), 16, 8 )

●Visual C# .NET

IntPtr DeviceHandle

int Ret;

byte[] Buffer = new byte[8];

Buffer[0] = 1;

Buffer[1] = 0;

Buffer[2] = 0;

Buffer[3] = 1;

Buffer[4] = 0;

Buffer[5] = 1;

Buffer[6] = 1;

Buffer[7] = 0;

Ret = IFCSDIO_ANY.SdioOutputPoint(DeviceHandle, Buffer, 16, 8);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim Buffer(8) As Byte

Buffer(0) = 1

Buffer(1) = 0

Buffer(2) = 0

Buffer(3) = 1

Buffer(4) = 0

Buffer(5) = 1

Buffer(6) = 1

Buffer(7) = 0

Ret = IFCSDIO_ANY.SdioOutputPoint(DeviceHandle, Buffer, 16, 8)

デバイスハンドルhDeviceHandleが示すデバイスのOUT16~OUT23に bBuffer[0...7]の値を出力し

ます。

Page 144: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

5. SdioInputByte 【機能】

接点 8点分のデータを読み込み、1バイト(8ビット)の変数に格納します。

【書式】

●C言語

LONG SdioInputByte (

HANDLE hDeviceHandle,

DWORD dwInputNo,

PBYTE pbValue

);

●Visual Basic

Declare Function SdioInputByte Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByVal dwInputNo As Long,

ByRef pbValue As Byte

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputByte(

IntPtr DeviceHandle, // デバイスハンドル

uint No, // 入力接点位置

out byte Value // 接点状態を返す変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputByte(

uint DeviceHandle, // デバイスハンドル

uint No, // 入力接点位置

out byte Value // 接点状態を返す変数への参照渡し

);

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

Declare Function SdioInputByte Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 入力接点位置

ByRef Value As Byte _ ‘ 接点状態を返す変数への参照渡し

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioInputByte Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 入力接点位置

ByRef Value As Byte _ ‘ 接点状態を返す変数への参照渡し

) As Integer

Page 145: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

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

dwInputNo 読み込む接点を下記の識別子で指定します。

定数 意味

IFSDIO_IN1_8 IN1~IN8 の 8 点分のデータを読み込みます。

IFSDIO_IN9_16 IN9~IN16 の 8 点分のデータを読み込みます。

IFSDIO_IN17_24 IN17~IN24 の 8 点分のデータを読み込みます。

pbValue 読み込まれたデータを格納する変数へのポインタを指定してください。

【戻り値】

SdioInputByte関数は正常に終了するとIFSDIO_ERROR_SUCCESSを返します。それ以外の場合は

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合につい

ては、『戻り値一覧』を参照してください。

【備考】

取得したデータは下記のようにビット毎に接点と対応しています。

ビット Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

IFSDIO_IN1_8 IN8 IN7 IN6 IN5 IN4 IN3 IN2 IN1

IFSDIO_IN9_16 IN16 IN15 IN14 IN13 IN12 IN11 IN10 IN9

IFSDIO_IN17_24 IN24 IN23 IN22 IN21 IN20 IN19 IN18 IN17

1:Low レベル 0:High レベル

Page 146: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

BYTE bValue;

nRet = SdioInputByte( hDeviceHandle, IFSDIO_IN1_8, &bValue );

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim bValue As Byte

nRet = SdioInputByte( hDeviceHandle, IFSDIO_IN1_8, bValue )

●Visual C# .NET

IntPtr DeviceHandle;

int Ret;

byte Value;

Ret = IFCSDIO_ANY.SdioInputByte(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_8, out Value);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim Value As Byte

Ret = IFCSDIO_ANY.SdioInputByte(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_8, Value)

デバイスハンドル hDeviceHandle が示すデバイスの IN1~IN8 の状態を bValue に入力します。

Page 147: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

6. SdioInputWord 【機能】

接点 16 点分のデータを読み込み、1ワード(16 ビット)の変数に格納します。

【書式】

●C言語

LONG SdioInputWord (

HANDLE hDeviceHandle,

DWORD dwInputNo,

PWORD pwValue

);

●Visual Basic

Declare Function SdioInputWord Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByVal dwInputNo As Long,

ByRef pwValue As Integer

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputWord(

IntPtr DeviceHandle, // デバイスハンドル

uint No, // 入力接点位置

out ushort Value // 接点状態を返す変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputWord(

uint DeviceHandle, // デバイスハンドル

uint No, // 入力接点位置

out ushort Value // 接点状態を返す変数への参照渡し

);

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

Declare Function SdioInputWord Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 入力接点位置

ByRef Value As Short _ ‘ 接点状態を返す変数への参照渡し

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioInputWord Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 入力接点位置

ByRef Value As Short _ ‘ 接点状態を返す変数への参照渡し

) As Integer

Page 148: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

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

dwInputNo 読み込む接点を下記の識別子で指定します。

定数 意味

IFSDIO_IN1_16 IN1~IN16 の 16 点分のデータを読み込みます。

IFSDIO_IN17_32 IN17~IN32 の 16 点分のデータを読み込みます。

24 点入力の端子台では、IN25~IN32 のデータは取得できません。

またここのデータは全て 0になります。

pwValue 読み込まれたデータを格納する変数へのポインタを指定してください。

【戻り値】

SdioInputWord関数は正常に終了するとIFSDIO_ERROR_SUCCESSを返します。それ以外の場合は

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合につ

いては、『戻り値一覧』を参照してください。

【備考】

データフォーマット

取得したデータは下記のようにビット毎に接点と対応しています。

ビット Bit15 Bit14 Bit13 … Bit2 Bit1 Bit0

IFSDIO_IN1_16 IN16 IN15 IN14 … IN3 IN2 IN1

IFSDIO_IN17_32 IN32 IN31 IN30 … IN19 IN18 IN17

1:Low レベル 0:High レベル

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

WORD wValue;

nRet = SdioInputWord( hDeviceHandle, IFSDIO_IN1_16, &wValue );

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim wValue As Integer

nRet = SdioInputWord( hDeviceHandle, IFSDIO_IN1_16, wValue )

●Visual C# .NET

IntPtr DeviceHandle;

int Ret;

Ret = IFCSDIO_ANY.SdioOutputWord(DeviceHandle, IFCSDIO_ANY.IFSDIO_OUT1_16, 0x1234);

Page 149: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioOutputWord(DeviceHandle, IFCSDIO_ANY.IFSDIO_OUT1_16, &H1234 )

デバイスハンドル hDeviceHandle が示すデバイスの IN1~IN16 の状態を wValue に入力します。

Page 150: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

7. SdioInputDword 【機能】

接点 32 点分のデータを読み込み、1ダブルワード(32 ビット)の変数に格納します。

【書式】

●C言語

LONG SdioInputDword (

HANDLE hDeviceHandle,

DWORD dwInputNo,

PDWORD pdwValue

);

●Visual Basic

Declare Function SdioInputDword Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByVal dwInputNo As Long,

ByRef pdwValue As Long

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputDword(

IntPtr DeviceHandle, // デバイスハンドル

uint No, // 入力接点位置

out uint Value // 接点状態を返す変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputDword(

uint DeviceHandle, // デバイスハンドル

uint No, // 入力接点位置

out uint Value // 接点状態を返す変数への参照渡し

);

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

Declare Function SdioInputDword Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 入力接点位置

ByRef Value As Integer _ ‘ 接点状態を返す変数への参照渡し

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioInputDword Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 入力接点位置

ByRef Value As Integer _ ‘ 接点状態を返す変数への参照渡し

) As Integer

Page 151: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

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

dwInputNo 読み込む接点を下記の識別子で指定します。

定数 意味

IFSDIO_IN1_32 IN1~IN32 の 32 点分のデータを読み込みます。

24 点入力の端子台では IN25~IN32 のデータは取得できません。

またここのデータは全て 0になります。

pdwValue 読み込まれたデータを格納する変数へのポインタを指定してください。

【戻り値】

SdioInputDword関数は正常に終了するとIFSDIO_ERROR_SUCCESSを返します。それ以外の場合は

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合につ

いては、『戻り値一覧』を参照してください。

【備考】

データフォーマット

取得したデータは下記のようにビット毎に接点と対応しています。

ビット Bit31 Bit30 Bit29 … Bit2 Bit1 Bit0

IFSDIO_IN1_32 IN32 IN31 IN30 … IN3 IN2 IN1

1:Low レベル 0:High レベル

Page 152: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

DWORD dwValue;

nRet = SdioInputDword( hDeviceHandle, IFSDIO_IN1_32, &dwValue );

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim dwValue As Long

nRet = SdioInputDword( hDeviceHandle, IFSDIO_IN1_32, dwValue )

●Visual C# .NET

IntPtr DeviceHandle;

int Ret;

uint Value;

Ret = IFCSDIO_ANY.SdioInputDword(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_32, out Value);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim Value As Integer

Ret = IFCSDIO_ANY.SdioInputDword(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_32, Value)

デバイスハンドル hDeviceHandle が示すデバイスの IN1~IN32 の状態を dwValue に入力します。

Page 153: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

8. SdioOutputByte 【機能】

接点 8点分の出力を制御します。

【書式】

●C言語

LONG SdioOutputByte (

HANDLE hDeviceHandle,

DWORD dwOutputNo,

BYTE bValue

);

●Visual Basic

Declare Function SdioOutputByte Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByVal dwOutputNo As Long,

ByVal bValue As Byte

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioOutputByte(

IntPtr DeviceHandle, // デバイスハンドル

uint No, // 出力接点位置

byte Value // 出力データ

);

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioOutputByte(

uint DeviceHandle, // デバイスハンドル

uint No, // 出力接点位置

byte Value // 出力データ

);

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

Declare Function SdioOutputByte Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 出力接点位置

ByVal Value As Byte _ ‘ 出力データ

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioOutputByte Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 出力接点位置

ByVal Value As Byte _ ‘ 出力データ

) As Integer

Page 154: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

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

dwOutputNo データを出力する接点を下記の識別子で指定します

定数 意味

IFSDIO_OUT1_8 OUT1~OUT8 の 8 点分のデータを出力します。

IFSDIO_OUT9_16 OUT9~OUT16 の 8 点分のデータを出力します。

IFSDIO_OUT17_24 OUT17~OUT24 の 8 点分のデータを出力します。

bValue 指定した接点へ出力するデータを指定してください。

【戻り値】

SdioOutputByte関数は正常に終了するとIFSDIO_ERROR_SUCCESSを返します。それ以外の場合は

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合につ

いては、『戻り値一覧』を参照してください。

【備考】

データフォーマット

取得したデータは下記のようにビット毎に接点と対応しています。

ビット Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

IFSDIO_OUT1_8 OUT8 OUT7 OUT6 OUT5 OUT4 OUT3 OUT2 OUT1

IFSDIO_OUT9_16 OUT16 OUT15 OUT14 OUT13 OUT12 OUT11 OUT10 OUT9

IFSDIO_OUT17_24 OUT24 OUT23 OUT22 OUT21 OUT20 OUT19 OUT18 OUT17

1:Low レベル 0:High レベル

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

nRet = SdioOutputByte( hDeviceHandle, IFSDIO_OUT1_8, 0x12);

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

nRet = SdioOutputByte( hDeviceHandle, IFSDIO_OUT1_8, &h12 )

●Visual C# .NET

IntPtr DeviceHandle;

int Ret;

Ret = IFCSDIO_ANY.SdioOutputByte(DeviceHandle, IFCSDIO_ANY.IFSDIO_OUT1_8, 0x12);

Page 155: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioOutputByte(DeviceHandle, IFCSDIO_ANY.IFSDIO_OUT1_8, &H12)

デバイスハンドル hDeviceHandle が示すデバイスの OUT1~OUT8 へ 12h を出力します。

Page 156: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

9. SdioOutputWord 【機能】

接点 16 点分の出力を制御します。

【書式】

●C言語

LONG SdioOutputWord (

HANDLE hDeviceHandle,

DWORD dwOutputNo,

WORD pwValue

);

●Visual Basic

Declare Function SdioOutputWord Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByVal dwOutputNo As Long,

ByVal pwValue As Integer

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioOutputWord(

IntPtr DeviceHandle, // デバイスハンドル

uint No, // 出力接点位置

ushort Value // 出力データ

);

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioOutputWord(

uint DeviceHandle, // デバイスハンドル

uint No, // 出力接点位置

ushort Value // 出力データ

);

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

Declare Function SdioOutputWord Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 出力接点位置

ByVal Value As Short _ ‘ 出力データ

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioOutputWord Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 出力接点位置

ByVal Value As Short _ ‘ 出力データ

) As Integer

Page 157: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

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

dwInputNo データを出力する接点を下記の識別子で指定します。

定数 意味

IFSDIO_OUT1_16 OUT1~OUT16 の 16 点分のデータを出力します。

IFSDIO_OUT17_32 OUT17~OUT32 の 16 点分のデータを出力します。

24 点出力の端子台では OUT25~OUT32 から出力できません。

pwValue 指定した接点へ出力するデータを指定してください。

【戻り値】

SdioOutputWord関数は正常に終了するとIFSDIO_ERROR_SUCCESSを返します。それ以外の場合は

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合につ

いては、『戻り値一覧』を参照してください。

【備考】

取得したデータは下記のようにビット毎に接点と対応しています。

ビット Bit15 Bit14 Bit13 … Bit2 Bit1 Bit0

IFSDIO_OUT1_16 OUT16 OUT15 OUT14 … OUT3 OUT2 OUT1

IFSDIO_OUT17_32 OUT32 OUT31 OUT30 … OUT19 OUT18 OUT17

1:Low レベル 0:High レベル

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

nRet = SdioOutputWord( hDeviceHandle, IFSDIO_OUT1_16, 0x1234 );

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

nRet = SdioOutputWord( hDeviceHandle, IFSDIO_OUT1_16, &h1234 )

●Visual C# .NET

IntPtr DeviceHandle;

int Ret;

Ret = IFCSDIO_ANY.SdioOutputWord(DeviceHandle, IFCSDIO_ANY.IFSDIO_OUT1_16, 0x1234);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioOutputWord(DeviceHandle, IFCSDIO_ANY.IFSDIO_OUT1_16, &H1234)

デバイスハンドル hDeviceHandle が示すデバイスの OUT1~OUT16 へ 1234h を出力します。

Page 158: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

10. SdioOutputDword

【機能】

接点 32 点分の出力を制御します。

【書式】

●C言語

LONG SdioOutputDword (

HANDLE hDeviceHandle,

DWORD dwOutputNo,

DWORD dwValue

);

●Visual Basic

Declare Function SdioOutputDword Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByVal dwOutputNo As Long,

ByVal dwValue As Long

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioOutputDword(

IntPtr DeviceHandle, // デバイスハンドル

uint No, // 出力接点位置

uint Value // 出力データ

);

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioOutputDword(

uint DeviceHandle, // デバイスハンドル

uint No, // 出力接点位置

uint Value // 出力データ

);

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

Declare Function SdioOutputDword Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 出力接点位置

ByVal Value As Integer _ ‘ 出力データ

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioOutputDword Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 出力接点位置

ByVal Value As Integer _ ‘ 出力データ

) As Integer

Page 159: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

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

dwOutputNo データを出力する接点を下記の識別子で指定します。

定数 意味

IFSDIO_OUT1_32 OUT1~OUT32 の 32 点分のデータを出力します。

24 点出力の端子台では OUT25~OUT32 から出力できません。

dwValue 指定した接点へ出力するデータを指定してください。

【戻り値】

SdioOutputDword関数は正常に終了するとIFSDIO_ERROR_SUCCESSを返します。それ以外の場合は

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合につ

いては、『戻り値一覧』を参照してください。

【備考】

データフォーマット

取得したデータは下記のようにビット毎に接点と対応しています。

ビット Bit31 Bit30 Bit29 … Bit2 Bit1 Bit0

IFSDIO_OUT1_32 OUT32 OUT31 OUT30 … OUT3 OUT2 OUT1

1:Low レベル 0:High レベル

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

nRet = SdioOutputDword( hDeviceHandle, IFSDIO_OUT1_32, 0x123456);

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

nRet = SdioOutputDword( hDeviceHandle, IFSDIO_OUT1_32, &h123456 )

●Visual C# .NET

IntPtr DeviceHandle;

int Ret;

Ret = IFCSDIO_ANY.SdioOutputDword(DeviceHandle, IFCSDIO_ANY.IFSDIO_OUT1_32, 0x123456);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioOutputDword(DeviceHandle, IFCSDIO_ANY.IFSDIO_OUT1_32, &H123456 )

デバイスハンドル hDeviceHandle が示すデバイスの OUT1~OUT32 へ 00123456h を出力します。

Page 160: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

11. SdioSetLatchLogic

【機能】

入力信号をラッチする STB 信号の論理を指定します。

【書式】

●C言語

LONG SdioSetLatchLogic (

HANDLE hDeviceHandle,

BYTE bLatchLogic

);

●Visual Basic

Declare Function SdioSetLatchLogic Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByVal bLatchLogic As Byte

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioSetLatchLogic(

IntPtr DeviceHandle, // デバイスハンドル

byte LatchLogic // STB 入力論理

);

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioSetLatchLogic(

uint DeviceHandle, // デバイスハンドル

byte LatchLogic // STB 入力論理

);

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

Declare Function SdioSetLatchLogic Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal LatchLogic As Byte _ ‘ STB 入力論理

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioSetLatchLogic Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal LatchLogic As Byte _ ‘ STB 入力論理

) As Integer

Page 161: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

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

bLatchLogic 入力信号をラッチする STB 信号の論理を以下の識別子で指定します。

定数 意味

IFSDIO_RISE_EDGE STB 信号の立ち上がりでラッチします。

IFSDIO_FALL_EDGE STB 信号の立ち下がりでラッチします。

【戻り値】

SdioSetLatchLogic関数は正常に終了するとIFSDIO_ERROR_SUCCESSを返します。それ以外の場合は

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合につ

いては、『戻り値一覧』を参照してください。

【備考】

ラッチするエッジは立ち上がりと立ち下がりを両方同時に指定することもできます。

STB 信号の変化により割り込みを発生させることができますが、この割り込みの設定とラッチの

設定は独立して指定できます。

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

nRet = SdioSetLatchLogic( hDeviceHandle, IFSDIO_RISE_EDGE );

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

nRet = SdioSetLatchLogic( hDeviceHandle, IFSDIO_RISE_EDGE )

●Visual C# .NET

IntPtr DeviceHandle;

int Ret;

Ret = IFCSDIO_ANY.SdioSetLatchLogic(DeviceHandle, IFCSDIO_ANY.IFSDIO_RISE_EDGE);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioSetLatchLogic(DeviceHandle, IFCSDIO_ANY.IFSDIO_RISE_EDGE)

STB 信号の立ち上がりで入力信号をラッチするように設定します。

Page 162: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

12. SdioGetLatchLogic

【機能】

入力信号をラッチする STB 信号の論理を取得します。

【書式】

●C言語

LONG SdioGetLatchLogic (

HANDLE hDeviceHandle,

PBYTE pbLatchLogic

);

●Visual Basic

Declare Function SdioGetLatchLogic Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByRef pbLatchLogic As Byte

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioGetLatchLogic(

IntPtr DeviceHandle, // デバイスハンドル

out byte LatchLogic // STB 入力論理を返す変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioGetLatchLogic(

uint DeviceHandle, // デバイスハンドル

out byte LatchLogic // STB 入力論理を返す変数への参照渡し

);

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

Declare Function SdioGetLatchLogic Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByRef LatchLogic As Byte _ ‘ STB 入力論理を返す変数への参照渡し

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioGetLatchLogic Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByRef LatchLogic As Byte _ ‘ STB 入力論理を返す変数への参照渡し

) As Integer

Page 163: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

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

pbLatchLogic STB 信号の論理を格納する変数へのポインタを指定してください。

STB 信号の論理を以下の識別子で格納されます。

定数 意味

IFSDIO_RISE_EDGE STB 信号の立ち上がりでラッチします。

IFSDIO_FALL_EDGE STB 信号の立ち下がりでラッチします。

【戻り値】

SdioGetLatchLogic関数は正常に終了するとIFSDIO_ERROR_SUCCESSを返します。それ以外の場合は

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合につ

いては、『戻り値一覧』を参照してください。

【使用例】

●C言語

HANDLE hDeviceHandle;

BYTE bLatchLogic;

LONG nRet;

nRet = SdioGetLatchLogic( hDeviceHandle, &bLatchLogic );

●Visual Basic

Dim hDeviceHandle As Long

Dim bLatchLogic As Byte

Dim nRet As Long

nRet = SdioGetLatchLogic (hDeviceHandle,bLatchLogic)

●Visual C# .NET

IntPtr DeviceHandle;

byte LatchLogic;

int Ret;

Ret = IFCSDIO_ANY.SdioGetLatchLogic(DeviceHandle, out LatchLogic );

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim LatchLogic As Byte

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioGetLatchLogic (DeviceHandle, LatchLogic)

STB 信号をラッチする論理を取得します。

Page 164: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

13. SdioInputLatchPoint

【機能】

任意の点数のラッチされた入力接点の状態を読み込みます。指定した開始接点番号から 1 接点

ずつ変数に格納されます。

【書式】

●C言語

LONG SdioInputLatchPoint (

HANDLE hDeviceHandle,

PBYTE pbBuffer,

DWORD dwStartNum,

DWORD dwInputNum

);

●Visual Basic

Declare Function SdioInputLatchPoint Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByRef pbBuffer As Byte,

ByVal dwStartNum As Long,

ByVal dwInputNum As Long

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputLatchPoint(

IntPtr DeviceHandle, // デバイスハンドル

out byte Buffer, // 接点状態を返す変数への参照渡し

uint StartNum, // 入力開始接点番号

uint Num // 入力接点数

);

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputLatchPoint(

IntPtr DeviceHandle, // デバイスハンドル

byte[] Buffer, // 接点状態を返す変数への参照渡し

uint StartNum, // 入力開始接点番号

uint Num // 入力接点数

);

Page 165: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputLatchPoint(

uint DeviceHandle, // デバイスハンドル

out byte Buffer, // 接点状態を返す変数への参照渡し

uint StartNum, // 入力開始接点番号

uint Num // 入力接点数

);

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputLatchPoint(

uint DeviceHandle, // デバイスハンドル

byte[] Buffer, // 接点状態を返す変数への参照渡し

uint StartNum, // 入力開始接点番号

uint Num // 入力接点数

);

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

Declare Function SdioInputLatchPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByRef Buffer As Byte, _ ‘ 接点状態を返す変数への参照渡し

ByVal StartNum As Integer, _ ‘ 入力開始接点番号

ByVal Num As Integer _ ‘ 入力接点数

) As Integer

Declare Function SdioInputLatchPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal Buffer() As Byte, _ ‘ 接点状態を返す変数への参照渡し

ByVal StartNum As Integer, _ ‘ 入力開始接点番号

ByVal Num As Integer _ ‘ 入力接点数

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioInputLatchPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByRef Buffer As Byte, _ ‘ 接点状態を返す変数への参照渡し

ByVal StartNum As Integer, _ ‘ 入力開始接点番号

ByVal Num As Integer _ ‘ 入力接点数

) As Integer

Declare Function SdioInputLatchPoint Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal Buffer() As Byte, _ ‘ 接点状態を返す変数への参照渡し

ByVal StartNum As Integer, _ ‘ 入力開始接点番号

ByVal Num As Integer _ ‘ 入力接点数

) As Integer

Page 166: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

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

pbBuffer デバイスから読み取ったデータを受け取るバッファを指すポインタです。

dwStartNum 入力開始接点番号 1~24 を指定してください。ピン IN/OUT1 が 1 に対応します。

dwInputNum 入力接点数を指定してください。

入力接点の指定と、信号は下記のように対応しています。

接点番号 1 2 3 … 23 24

入力信号 IN1 IN2 IN3 … IN23 IN24

1: Low レベル 0:High レベル

【戻り値】

SdioInputLatchPoint関数は正常に終了するとIFSDIO_ERROR_SUCCESSを返します。それ以外の場合

はIFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

BYTE bBuffer[8];

nRet = SdioInputLatchPoint( hDeviceHandle, &bBuffer[0], 16, 8 );

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim bBuffer(8) As Byte

nRet = SdioInputLatchPoint( hDeviceHandle, bBuffer(0), 16, 8 )

●Visual C# .NET

IntPtr DeviceHandle;

int Ret;

byte[] Buffer = new byte[8];

Ret = IFCSDIO_ANY.SdioInputLatchPoint(DeviceHandle, Buffer, 16, 8);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim Buffer(8) As Byte

Ret = IFCSDIO_ANY.SdioInputLatchPoint(DeviceHandle, Buffer(0), 16, 8)

デバイスハンドルhDeviceHandleが示すデバイスのIN16~IN23の入力接点状態を、bBuffer[0...7]

へ返します。

Page 167: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

14. SdioInputLatchByte

【機能】

ラッチされた接点 8点分のデータを読み込み、1バイト(8ビット)の変数に格納します。

【書式】

●C言語

LONG SdioInputLatchByte (

HANDLE hDeviceHandle,

DWORD dwInputNo,

PBYTE pbValue

);

●Visual Basic

Declare Function SdioInputLatchByte Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByVal dwInputNo As Long,

ByRef pbValue As Byte

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputLatchByte(

IntPtr DeviceHandle, // デバイスハンドル

uint No, // 入力接点位置

out byte Value // 接点状態を返す変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputLatchByte(

uint DeviceHandle, // デバイスハンドル

uint No, // 入力接点位置

out byte Value // 接点状態を返す変数への参照渡し

);

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

Declare Function SdioInputLatchByte Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 入力接点位置

ByRef Value As Byte _ ‘ 接点状態を返す変数への参照渡し

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioInputLatchByte Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 入力接点位置

ByRef Value As Byte _ ‘ 接点状態を返す変数への参照渡し

) As Integer

Page 168: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

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

dwInputNo 読み込む接点を下記の識別子で指定します。

定数 意味

IFSDIO_IN1_8 IN1~IN8 の 8 点分のデータを読み込みます。

IFSDIO_IN9_16 IN9~IN16 の 8 点分のデータを読み込みます。

IFSDIO_IN17_24 IN17~IN24 の 8 点分のデータを読み込みます。

pbValue 入力した接点状態を返す変数へのポインタ。

【戻り値】

SdioInputLatchByte 関数は正常に終了するとIFSDIO_ERROR_SUCCESSを返します。それ以外の場合

はIFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【備考】

データフォーマット

取得したデータは下記のようにビット毎に接点と対応しています。

ビット Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

IFSDIO_IN1_8 IN8 IN7 IN6 IN5 IN4 IN3 IN2 IN1

IFSDIO_IN9_16 IN 6 IN15 IN14 IN13 IN12 IN11 IN10 IN9

IFSDIO_IN17_24 IN24 IN23 IN22 IN21 IN20 IN19 IN18 IN17

1:Low レベル 0:High レベル

Page 169: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

BYTE bValue;

nRet = SdioInputLatchByte( hDeviceHandle, IFSDIO_IN1_8, &bValue );

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim bValue As Byte

nRet = SdioInputLatchByte( hDeviceHandle, IFSDIO_IN1_8, bValue )

●Visual C# .NET

IntPtr DeviceHandle;

int Ret;

byte Value;

Ret = IFCSDIO_ANY.SdioInputLatchByte(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_8, out

Value);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim Value As Byte

Ret = IFCSDIO_ANY.SdioInputLatchByte(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_8, Value )

デバイスハンドル hDeviceHandle が示すデバイスで STB 信号によってラッチされた IN1~IN8 の状

態を bValue に入力します。

Page 170: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

15. SdioInputLatchWord

【機能】

ラッチされた接点 16 点分のデータを読み込み、1ワード(16 ビット)の変数に格納します。

【書式】

●C言語

LONG SdioInputLatchWord (

HANDLE hDeviceHandle,

DWORD dwInputNo,

PWORD pwValue

);

●Visual Basic

Declare Function SdioInputLatchWord Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByVal dwInputNo As Long,

ByRef pwValue As Integer

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputLatchWord(

IntPtr DeviceHandle, // デバイスハンドル

uint No, // 入力接点位置

out ushort Value // 接点状態を返す変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputLatchWord(

uint DeviceHandle, // デバイスハンドル

uint No, // 入力接点位置

out ushort Value // 接点状態を返す変数への参照渡し

);

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

Declare Function SdioInputLatchWord Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 入力接点位置

ByRef Value As Short _ ‘ 接点状態を返す変数への参照渡し

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioInputLatchWord Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 入力接点位置

ByRef Value As Short _ ‘ 接点状態を返す変数への参照渡し

) As Integer

Page 171: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

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

dwInputNo 読み込む接点を下記の識別子で指定します。

定数 意味

IFSDIO_IN1_16 IN1~IN16 の 16 点分のデータを読み込みます。

IFSDIO_IN17_32 IN17~IN32 の 16 点分のデータを読み込みます。

24 点入力の端子台では IN25~IN32 のデータは取得できません。

またここのデータは全て 0になります。

pwValue 読み込まれたデータを格納する変数へのポインタを指定してください。

【戻り値】

SdioInputLatchWord 関数は正常に終了するとIFSDIO_ERROR_SUCCESSを返します。それ以外の場合

はIFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【備考】

取得したデータは下記のようにビット毎に接点と対応しています。

ビット Bit15 Bit14 Bit13 … Bit2 Bit1 Bit0

IFSDIO_IN1_16 IN16 IN15 IN14 … IN3 IN2 IN1

IFSDIO_IN17_32 IN32 IN31 IN30 … IN19 IN18 IN17

1:Low レベル 0:High レベル

Page 172: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

WORD wValue;

nRet = SdioInputLatchWord( hDeviceHandle, IFSDIO_IN1_16, &wValue );

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim wValue As Integer

nRet = SdioInputLatchWord( hDeviceHandle, IFSDIO_IN1_16, wValue )

●Visual C# .NET

IntPtr DeviceHandle;

int Ret;

ushort Value;

Ret = IFCSDIO_ANY.SdioInputLatchWord(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_16, out

Value);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim Value As Short

Ret = IFCSDIO_ANY.SdioInputLatchWord(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_16, Value)

デバイスハンドルhDeviceHandleが示すデバイスでSTB信号によってラッチされたIN1~IN16の状

態を wValue に入力します。

Page 173: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

16. SdioInputLatchDword

【機能】

ラッチされた接点 32 点分のデータを読み込み、1ダブルワード(32 ビット)の変数に格納しま

す。

【書式】

●C言語

LONG SdioInputLatchDword (

HANDLE hDeviceHandle,

DWORD dwInputNo,

PDWORD pdwValue

);

●Visual Basic

Declare Function SdioInputLatchDword Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByVal dwInputNo As Long,

ByRef pdwValue As Long

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputLatchDword(

IntPtr DeviceHandle, // デバイスハンドル

uint No, // 入力接点位置

out uint Value // 接点状態を返す変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioInputLatchDword(

uint DeviceHandle, // デバイスハンドル

uint No, // 入力接点位置

out uint Value // 接点状態を返す変数への参照渡し

);

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

Declare Function SdioInputLatchDword Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 入力接点位置

ByRef Value As Integer _ ‘ 接点状態を返す変数への参照渡し

) As Integer

Page 174: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET(x86 専用)

Declare Function SdioInputLatchDword Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal No As Integer, _ ‘ 入力接点位置

ByRef Value As Integer _ ‘ 接点状態を返す変数への参照渡し

) As Integer

【パラメータ】

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

dwInputNo 読み込む接点を下記の識別子で指定します。

定数 意味

IFSDIO_IN1_32 IN1~IN32 の 32 点分のデータを読み込みます。

24 点入力の端子台では IN25~IN32 のデータは取得できません。

またここのデータは全て 0になります。

pdwValue 読み込まれたデータを格納する変数へのポインタを指定してください。

【戻り値】

SdioInputLatchDword 関数は正常に終了するとIFSDIO_ERROR_SUCCESSを返します。それ以外の場

合はIFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合

については、『戻り値一覧』を参照してください。

【備考】

取得したデータは下記のようにビット毎に接点と対応しています。

ビット Bit31 Bit30 Bit29 … Bit2 Bit1 Bit0

IFSDIO_IN1_32 IN32 IN31 IN30 … IN3 IN2 IN1

1:Low レベル 0:High レベル

Page 175: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

DWORD dwValue;

nRet = SdioInputLatchDword( hDeviceHandle, IFSDIO_IN1_32, &dwValue );

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim dwValue As Long

nRet = SdioInputLatchDword( hDeviceHandle, IFSDIO_IN1_32, dwValue )

●Visual C# .NET

IntPtr DeviceHandle;

int Ret;

uint Value;

Ret = IFCSDIO_ANY.SdioInputLatchDword(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_32, out

Value);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim Value As Integer

Ret = IFCSDIO_ANY.SdioInputLatchDword(DeviceHandle, IFCSDIO_ANY.IFSDIO_IN1_32, Value )

デバイスハンドルhDeviceHandleが示すデバイスでSTB信号によってラッチされたIN1~IN32の状

態を dwValue に入力します。

Page 176: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

17. SdioSetEvent

【機能】

STB 信号の変化による割り込みが発生したときに実行するイベントを指定します。

【書式】

●C言語(x86)

LONG SdioSetEvent (

HANDLE hDeviceHandle,

HANDLE hWindowHandle,

ULONG ulWindowsMessage,

HANDLE hEventHandle,

LPSDIOCALLBACK pCallBackProc,

DWORD dwUserData

);

●C 言語(x64)

LONG SdioSetEvent (

HANDLE hDeviceHandle,

HANDLE hWindowHandle,

ULONG ulWindowsMessage,

HANDLE hEventHandle,

LPSDIOCALLBACK pCallBackProc,

PVOID dwUserData

);

●Visual Basic

Declare Function SdioSetEvent Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByVal hWindowHandle As Long,

ByVal ulWindowsMessage As Long,

ByVal hEventHandle As Long,

ByVal pCallBackProc As Long,

ByVal dwUserData As Long

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioSetEvent(

IntPtr DeviceHandle, // デバイスハンドル

IntPtr WindowsHandle, // ウインドウハンドル

uint WindowMessage, // ウインドウメッセージ

IntPtr EventHandle, // イベントハンドル

PSDIOCALLBACK CallBackProc, // コールバック関数への参照渡し

IntPtr UserData // ユーザーパラメータ

);

Page 177: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioSetEvent(

uint DeviceHandle, // デバイスハンドル

uint WindowsHandle, // ウインドウハンドル

uint WindowMessage, // ウインドウメッセージ

uint EventHandle, // イベントハンドル

PSDIOCALLBACK CallBackProc, // コールバック関数への参照渡し

uint UserData // ユーザーパラメータ

);

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

Declare Function SdioSetEvent Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal WindowsHandle As IntPtr, _ ‘ ウインドウハンドル

ByVal WindowMessage As Integer, _ ‘ ウインドウメッセージ

ByVal EventHandle As IntPtr, _ ‘ イベントハンドル

ByVal CallBackProc As PSDIOCALLBACK, _ ‘ コールバック関数への参照渡し

ByVal UserData As IntPtr _ ‘ ユーザーパラメータ

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioSetEvent Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal WindowsHandle As Integer, _ ‘ ウインドウハンドル

ByVal WindowMessage As Integer, _ ‘ ウインドウメッセージ

ByVal EventHandle As Integer, _ ‘ イベントハンドル

ByVal CallBackProc As PSDIOCALLBACK, _ ‘ コールバック関数への参照渡し

ByVal UserData As Integer _ ‘ ユーザーパラメータ

) As Integer

【パラメータ】

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

hWindowHandle 割り込み発生時にメッセージを送るウィンドウハンドルを指定します。

ulWindowsMessage 割り込み発生時に送られるメッセージを指定します。

hEventHandle 割り込み発生時にシグナル状態になるイベントハンドルを指定します。

pCallBackProc 割り込み発生時に呼び出されるコールバック関数へのポインタを指定します。

dwUserData コールバック関数およびメッセージハンドラへ引き渡すユーザ・データを指定してください。

Page 178: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【戻り値】

SdioSetEvent 関数は正常に終了するとIFSDIO_ERROR_SUCCESSを返します。それ以外の場合は

IFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合につ

いては、『戻り値一覧』を参照してください。

【使用例】

●C言語(x86)

HANDLE hDeviceHandle;

HANDLE hEventHandle;

LONG nRet;

hEventHandle = CreateEvent(NULL, FALSE, FALSE, NULL);

nRet = SdioSetEvent(hDeviceHandle, NULL, 0, hEventHandle, NULL, 0);

●C 言語(x64)

HANDLE hDeviceHandle;

HANDLE hEventHandle;

LONG nRet;

hEventHandle = CreateEvent(NULL, FALSE, FALSE, NULL);

nRet = SdioSetEvent(hDeviceHandle, NULL, 0, hEventHandle, NULL, NULL);

●Visual Basic

Dim hDeviceHandle As Long

Dim hEventHandle As Long

Dim nRet As Long

hEventHandle = CreateEvent(0, False, False, 0)

nRet = SdioSetEvent(hDeviceHandle, 0, 0, hEventHandle, 0, 0)

●Visual C# .NET

IntPtr DeviceHandle;

IntPtr WindowHandle;

int Ret;

Ret = IFCSDIO_ANY.SdioSetEvent(DeviceHandle, WindowHandle, 0x400, IntPtr.Zero,

0, IntPtr.Zero);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim WindowHandle As IntPtr

Dim Ret As Long

Ret = IFCSDIO_ANY.SdioSetEvent(DeviceHandle, WindowHandle, &H400, IntPtr.Zero, _

0, IntPtr.Zero)

STB 割り込み発生時にシグナル状態にするイベントのハンドルを登録します。

Page 179: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

18. SdioSetEventLogic

【機能】

STB 信号の割り込み発生論理と、HDLC モジュールの異常発生割り込みを設定します。

【書式】

●C言語

LONG SdioSetEventLogic (

HANDLE hDeviceHandle,

BYTE bEventLogic

);

●Visual Basic

Declare Function SdioSetEventLogic Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByVal bEventLogic As Byte

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioSetEventLogic(

IntPtr DeviceHandle, // デバイスハンドル

byte EventLogic // 割り込み発生論理

);

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioSetEventLogic(

uint DeviceHandle, // デバイスハンドル

byte EventLogic // 割り込み発生論理

);

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

Declare Function SdioSetEventLogic Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal EventLogic As Byte _ ‘ 割り込み発生論理

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioSetEventLogic Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal EventLogic As Byte _ ‘ 割り込み発生論理

) As Integer

Page 180: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

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

bEventLogic STB 信号の割り込み論理、HDLC モジュール異常の割り込み発生条件を指定します。

割り込み論理、条件は以下の定数で指定します。

定数 意味

IFSDIO_RISE_EDGE STB 信号の立ち上がりで割り込みが発生します。

IFSDIO_FALL_EDGE STB 信号の立ち下がりで割り込みが発生します。

IFSDIO_CONNECT_EVENT HDLC モジュールとの切断で割り込みが発生します。

IFSDIO_POWER_EVENT HDLC モジュールの電源電圧異常で割り込みが発生します。

【戻り値】

SdioSetEventLogic 関数は正常に終了するとIFSDIO_ERROR_SUCCESSを返します。それ以外の場合

はIFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【備考】

割り込みを発生する論理は立ち上がりと立ち下がりを両方同時に指定することもできます。

STB 信号の変化により入力信号の状態をラッチできますが、このラッチの設定と割り込みの設定

は独立して指定できます。

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

nRet = SdioSetEventLogic(hDeviceHandle, IFSDIO_FALL_EDGE);

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

nRet = SdioSetEventLogic(hDeviceHandle, IFSDIO_FALL_EDGE)

●Visual C# .NET

IntPtr DeviceHandle;

int Ret;

Ret = IFCSDIO_ANY.SdioSetEventLogic(DeviceHandle, IFCSDIO_ANY.IFSDIO_FALL_EDGE);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioSetEventLogic(DeviceHandle, IFCSDIO_ANY.IFSDIO_FALL_EDGE)

STB 信号の割り込み発生論理を立ち下がりに設定します。

Page 181: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

19. SdioGetEventLogic

【機能】

STB 信号の割り込み発生論理の設定を取得します。

【書式】

●C言語

LONG SdioGetEventLogic (

HANDLE hDeviceHandle,

PBYTE pbEventLogic

);

●Visual Basic

Declare Function SdioGetEventLogic Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByRef pbEventLogic As Byte

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioGetEventLogic(

IntPtr DeviceHandle, // デバイスハンドル

out byte EventLogic // 割り込み発生論理を返す変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioGetEventLogic(

uint DeviceHandle, // デバイスハンドル

out byte EventLogic // 割り込み発生論理を返す変数への参照渡し

);

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

Declare Function SdioGetEventLogic Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByRef EventLogic As Byte _ ‘ 割り込み発生論理を返す変数への参照渡し

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioGetEventLogic Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByRef EventLogic As Byte _ ‘ 割り込み発生論理を返す変数への参照渡し

) As Integer

Page 182: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

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

pbEventLogic STB 信号の割り込み論理、HDLC モジュール異常の割り込み発生条件を格納する変数への参照渡

しを指定します。

割り込み論理、条件は以下の定数で格納されます。

定数 意味

IFSDIO_RISE_EDGE STB 信号の立ち上がりで割り込みが発生します。

IFSDIO_FALL_EDGE STB 信号の立ち下がりで割り込みが発生します。

IFSDIO_CONNECT_EVENT HDLC モジュールとの切断で割り込みが発生します。

IFSDIO_POWER_EVENT HDLC モジュールの電源電圧異常で割り込みが発生します。

【戻り値】

SdioGetEventLogic 関数は正常に終了するとIFSDIO_ERROR_SUCCESSを返します。それ以外の場合

はIFSDIO_ERROR_SUCCESS以外の値を返します。IFSDIO_ERROR_SUCCESS以外の値が返された場合に

ついては、『戻り値一覧』を参照してください。

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

BYTE bEventLogic;

nRet = SdioGetEventLogic(hDeviceHandle, &bEventLogic);

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

Dim bEventLogic As Byte

nRet = SdioGetEventLogic(hDeviceHandle, bEventLogic)

●Visual C# .NET

IntPtr DeviceHandle;

int Ret;

byte EventLogic;

Ret = IFCSDIO_ANY.SdioGetEventLogic(DeviceHandle, out EventLogic);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim EventLogic As Byte

Ret = IFCSDIO_ANY.SdioGetEventLogic(DeviceHandle, EventLogic)

STB 信号の割り込み発生論理を取得します。

Page 183: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

20. SdioGetTmoduleStatus

【機能】

HDLC モジュールの接続状態を取得します。

【書式】

●C言語

LONG SdioGetTmoduleStatus(

HANDLE hDeviceHandle,

PBYTE pbTmoduleStatus

);

●Visual Basic

Declare Function SdioGetTmoduleStatus Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByRef pbTmoduleStatus As Byte

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioGetTmoduleStatus(

IntPtr DeviceHandle, // デバイスハンドル

out byte TmoduleStatus // 接続状態を格納する変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioGetTmoduleStatus(

uint DeviceHandle, // デバイスハンドル

out byte TmoduleStatus // 接続状態を格納する変数への参照渡し

);

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

Declare Function SdioGetTmoduleStatus Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByRef TmoduleStatus As Byte _ ‘ 接続状態を格納する変数への参照渡し

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioGetTmoduleStatus Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByRef TmoduleStatus As Byte _ ‘ 接続状態を格納する変数への参照渡し

) As Integer

Page 184: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

hDeviceHandle HDLC モジュールの接続状態を取得するデバイスハンドルを指定します。

pbTmoduleStatus HDLC モジュールの接続状態を格納する変数へのポインタを指定します。(C 言語)

HDLC モジュールの接続状態を格納する変数を指定します。(Visual Basic)

bit7 bit6 Bit5 bit4 bit3 bit2 bit1 bit0

予約 予約 PWRNG SAFNG 予約 予約 PWROK SAFOK

SAFOK 1 現在、HDLC モジュールと接続されています。

0 現在、HDLC モジュールと接続されていません。。

PWROK 1 現在、HDLC モジュールの電源電圧は正常です。

0 現在、HDLC モジュールの電源電圧が異常です。

SAFNG 1 前回の本関数実行時から、今回の実行までに、HDLC モジュールとの

切断がありました。

0 前回の本関数実行時から、今回の実行までに、HDLC モジュールとの

切断はありませんでした。

PWRNG 1 前回の本関数実行時から、今回の実行までに、HDLC モジュールの電

源電圧の異常がありました。

0 前回の本関数実行時から、今回の実行までに、HDLC モジュールの電

源電圧の異常はありませんでした。

【戻り値】

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

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

Page 185: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【使用例】

●C言語

HANDLE hDeviceHandle;

BYTE bTmoduleStatus;

LONG nRet;

nRet = SdioGetTmoduleStatus(hDeviceHandle, &bTmoduleStatus);

●Visual Basic

Dim hDeviceHandle As Long

Dim bTmoduleStatus As Byte

Dim nRet As Long

nRet = SdioGetTmoduleStatus(hDeviceHandle, bTmoduleStatus)

●Visual C# .NET

IntPtr DeviceHandle;

byte TmoduleStatus;

int Ret;

Ret = IFCSDIO_ANY.SdioGetTmoduleStatus(DeviceHandle, out TmoduleStatus);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim TmoduleStatus As Byte

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioGetTmoduleStatus(DeviceHandle, TmoduleStatus)

HDLC モジュールの接続状態を取得します。

Page 186: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

21. SdioSetTmodulePower

【機能】

HDLC モジュールの電源を制御します。

【書式】

●C言語

LONG SdioSetTmodulePower(

HANDLE hDeviceHandle,

BYTE bSetPower

);

●Visual Basic

Declare Function SdioSetTmodulePower Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByVal bSetPower As Byte

) As Long

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioSetTmodulePower(

IntPtr DeviceHandle, // デバイスハンドル

byte SetPower // 電源状態

);

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioSetTmodulePower(

uint DeviceHandle, // デバイスハンドル

byte SetPower // 電源状態

);

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

Declare Function SdioSetTmodulePower Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByVal SetPower As Byte _ ‘ 電源状態

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioSetTmodulePower Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByVal SetPower As Byte _ ‘ 電源状態

) As Integer

Page 187: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

hDeviceHandle HDLC モジュールの電源制御を行うデバイスハンドルを指定します。

bSetPower 電源状態を指定します。

識別子 値 内容

IFSDIO_POWER_ON 1 HDLC モジュールの電源を ON にします。

IFSDIO_POWER_OFF 0 HDLC モジュールの電源を OFF にします。

【戻り値】

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

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

【使用例】

●C言語

HANDLE hDeviceHandle;

LONG nRet;

nRet = SdioSetTmodulePower(hDeviceHandle, HDLC_POWER_OFF);

●Visual Basic

Dim hDeviceHandle As Long

Dim nRet As Long

nRet = SdioSetTmodulePower (hDeviceHandle, HDLC_POWER_OFF)

●Visual C# .NET

IntPtr DeviceHandle;

int Ret;

Ret = IFCSDIO_ANY.SdioSetTmodulePower(DeviceHandle, IFCSDIO_ANY.IFSDIO_POWER_OFF);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Ret = IFCSDIO_ANY.SdioSetTmodulePower(DeviceHandle, IFCSDIO_ANY.IFSDIO_POWER_OFF)

HDLC モジュールの電源を OFF にします。

Page 188: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

22. SdioCommonGetDeviceInfo

【機能】

デバイスのリソース情報を取得します。

SdioCommonGetDeviceInfo 関数で得られる情報は、以下のとおりです。

♦ ♦ ♦ ♦ ♦ ♦ ♦

デバイス ID

ベンダ ID

リビジョン ID

サブシステム ID

サブシステムベンダ ID

ボード ID (RSW1 設定値)

端子台番号

【書式】

●C言語

LONG SdioCommonGetDeviceInfo (

HANDLE hDeviceHandle,

PDWORD pdwDeviceID,

PDWORD pdwVendorID,

PDWORD pdwRevisionID,

PDWORD pdwSubSystemID,

PDWORD pdwSubsystemVendorID,

PDWORD pdwBoardID,

PDWORD pdwTerminalNo

);

●Visual Basic

Declare Function SdioCommonGetDeviceInfo Lib "IfSdio.DLL" (

ByVal hDeviceHandle As Long,

ByRef pdwDeviceID As Long,

ByRef pdwVendorID As Long,

ByRef pdwRevisionID As Long,

ByRef pdwSubSystemID As Long,

ByRef pdwSubsystemVendorID As Long,

ByRef pdwBoardID As Long,

ByRef pdwTerminalNo As Long

) As Long

Page 189: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual C# .NET(x86、x64 共用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioCommonGetDeviceInfo(

IntPtr DeviceHandle, // デバイスハンドル

out uint DeviceID, // デバイス ID を返す変数への参照渡し

out uint VendorID, // ベンダ ID を返す変数への参照渡し

out uint RevisionID, // リビジョン ID を返す変数への参照渡し

out uint SubSystemID, // サブシステム ID を返す変数への参照渡し

out uint SubsystemVendorID, // サブシステムベンダ ID を返す変数への参照渡し

out uint BoardID, // ボード ID を返す変数への参照渡し

out uint TerminalNo // 端子台番号を返す変数への参照渡し

);

●Visual C# .NET(x86 専用)

[DLLImport(“IfSdio.dll”)] public static extern uint SdioCommonGetDeviceInfo(

uint DeviceHandle, // デバイスハンドル

out uint DeviceID, // デバイス ID を返す変数への参照渡し

out uint VendorID, // ベンダ ID を返す変数への参照渡し

out uint RevisionID, // リビジョン ID を返す変数への参照渡し

out uint SubSystemID, // サブシステム ID を返す変数への参照渡し

out uint SubsystemVendorID, // サブシステムベンダ ID を返す変数への参照渡し

out uint BoardID, // ボード ID を返す変数への参照渡し

out uint TerminalNo // 端子台番号を返す変数への参照渡し

);

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

Declare Function SdioCommonGetDeviceInfo Lib “IfSdio.dll” ( _ ByVal DeviceHandle As IntPtr, _ ‘ デバイスハンドル

ByRef DeviceID As Integer, _ ‘ デバイス ID を返す変数への参照渡し

ByRef VendorID As Integer, _ ‘ ベンダ ID を返す変数への参照渡し

ByRef RevisionID As Integer, _ ‘ リビジョン ID を返す変数への参照渡し

ByRef SubSystemID As Integer, _ ‘ サブシステム ID を返す変数への参照渡し

ByRef SubsystemVendorID As Integer, _ ‘ サブシステムベンダ ID を返す変数への参照渡し

ByRef BoardID As Integer, _ ‘ ボード ID を返す変数への参照渡し

ByRef TerminalNo As Integer _ ‘ 端子台番号を返す変数への参照渡し

) As Integer

●Visual Basic .NET(x86 専用)

Declare Function SdioCommonGetDeviceInfo Lib “IfSdio.dll” ( _ ByVal DeviceHandle As Integer, _ ‘ デバイスハンドル

ByRef DeviceID As Integer, _ ‘ デバイス ID を返す変数への参照渡し

ByRef VendorID As Integer, _ ‘ ベンダ ID を返す変数への参照渡し

ByRef RevisionID As Integer, _ ‘ リビジョン ID を返す変数への参照渡し

ByRef SubSystemID As Integer, _ ‘ サブシステム ID を返す変数への参照渡し

ByRef SubsystemVendorID As Integer, _ ‘ サブシステムベンダ ID を返す変数への参照渡し

ByRef BoardID As Integer, _ ‘ ボード ID を返す変数への参照渡し

ByRef TerminalNo As Integer _ ‘ 端子台番号を返す変数への参照渡し

) As Integer

Page 190: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

【パラメータ】

hDeviceHandle リソース情報を取得したいデバイスの、SdioOpen関数によって得られたハンドル。

pdwDeviceID デバイス ID を返す変数へのポインタ。

pdwVendorID ベンダ ID を返す変数へのポインタ。

弊社のベンダ ID は 1147h です。

pdwRevisionID リビジョン ID を返す変数へのポインタ。

pdwSubSystemID サブシステム ID を返す変数へのポインタ。

pdwSubsystemVendorID サブシステムベンダ ID を返す変数へのポインタ。

pdwBoardID ボード ID (RSW1 設定値) を返す変数へのポインタ。

pdwTerminalNo 端子台番号を返す変数へのポインタ。

【戻り値】

処 理 が 正 常 に 終 了 す る と IFSDIO_ERROR_SUCCESS を 返 し ま す 。 そ れ 以 外 の 場 合 は

IFSDIO_ERROR_SUCCESS以外の値を返します。

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

【使用例】

●C言語

HANDLE hDeviceHandle;

DWORD dwDeviceID;

DWORD dwVendorID;

DWORD dwRevisionID;

DWORD dwSubSystemID;

DWORD dwSubSystemVendorID;

DWORD dwBoardID;

DWORD dwTerminalNo;

LONG nRet;

nRet = SdioCommonGetDeviceInfo(hDeviceHandle, &dwDeviceID, &dwVendorID, &dwRevisionID,

&dwSubSystemID, &dwSubSystemVendorID, &dwBoardID,&dwTerminalNo );

Page 191: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic

Dim hDeviceHandle As Long

Dim dwDeviceID As Long

Dim dwVendorID As Long

Dim dwRevisionID As Long

Dim dwSubSystemID As Long

Dim dwSubSystemVendorID As Long

Dim dwBoardID As Long

Dim dwTerminalNo As Long

Dim nRet As Long

nRet = SdioCommonGetDeviceInfo(hDeviceHandle, dwDeviceID, dwVendorID, RevisionID,

dwSubSystemID, dwSubSystemVendorID, dwBoardID, dwTerminalNo )

●Visual C# .NET

IntPtr DeviceHandle;

int Ret;

uint DeviceID;

uint VendorID;

uint RevisionID;

uint SubSystemID;

uint SubSystemVendorID;

uint BoardID;

uint TerminalNo;

Ret = IFCSDIO_ANY.SdioCommonGetDeviceInfo (DeviceHandle, out DeviceID, out VendorID,

out RevisionID,out SubSystemID, out SubSystemVendorID, out BoardID, out TerminalNo);

●Visual Basic .NET

Dim DeviceHandle As IntPtr

Dim Ret As Integer

Dim DeviceID As Integer

Dim VendorID As Integer

Dim RevisionID As Integer

Dim SubSystemID As Integer

Dim SubSystemVendorID As Integer

Dim BoardID As Integer

Dim TerminalNo As Integer

Ret = IFCSDIO_ANY.SdioCommonGetDeviceInfo (DeviceHandle, DeviceID, VendorID,_

RevisionID, SubSystemID, SubSystemVendorID, BoardID, TerminalNo);

hDeviceHandle が示しているデバイスのリソース情報を取得します。

Page 192: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

23. CallBackProc

【機能】

STB 信号の割り込み発生、HDLC モジュール異常時の割り込み発生によってコールされるコールバッ

ク関数のプレースホルダです。

呼び出される関数は SdioSetEvent 関数に渡した関数となります。

【書式】

●C言語(x86)

void CallBackProc (

DWORD dwEventLogic,

DWORD dwUserData

);

●C 言語(x64)

void CallBackProc (

DWORD dwEventLogic,

PVOID dwUserData

);

●Visual Basic

Declare Sub CallBackProc (

ByVal dwEventLogic As Long,

ByVal dwUserData As Long

)

●Visual C# .NET(x86、x64 共用)

void CallBackProc(

uint EventLogic, // 割り込み要因

IntPtr UserData // ユーザデータ

);

●Visual C# .NET(x86 専用)

void CallBackProc(

uint EventLogic, // 割り込み要因

uint UserData // ユーザデータ

);

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

Declare Sub CallBackProc( _

ByVal EventLogic As Integer, _ ‘ 割り込み要因

ByVal UserData As IntPtr _ ‘ ユーザデータ

)

●Visual Basic .NET(x86 専用)

Declare Sub CallBackProc( _

ByVal EventLogic As Integer, _ ‘ 割り込み要因

ByVal UserData As Integer _ ‘ ユーザデータ

)

Page 193: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

パラメータ】

dwEventLogic コールバック関数を呼び出した割り込み発生論理です。

割り込み論理は以下の定数で格納されます。

定数 意味

IFSDIO_RISE_EDGE STB 信号の立ち上がりで割り込みが発生しました。

IFSDIO_FALL_EDGE STB 信号の立ち下がりで割り込みが発生しました。

IFSDIO_CONNECT_EVENT HDLC モジュールとの切断で割り込みが発生しました。

IFSDIO_POWER_EVENT HDLC モジュールの電源電圧異常で割り込みが発生しました。

dwUserData SdioSetEvent関数で指定したユーザデータです。

【戻り値】

なし

【使用例】

●Visual C# .NET

// コールバック関数

void CallBackProc(uint EventLogic, IntPtr UserData){

// 割り込み処理を記述します

}

// メインルーチン

int Ret;

IntPtr DeviceHandle;

IFCSDIO_ANY.PSDIOCALLBACK proc = new IFCSDIO_ANY.PSDIOCALLBACK(CallBackProc);

DeviceHandle = IFCSDIO_ANY.SdioOpen(“IFSDIO1”); …

Ret = IFCSDIO_ANY.SdioSetEvent(DeviceHandle, IntPtr.Zero, IntPtr.Zero, 0,

proc, DeviceHandle);

Ret = IFCSDIO_ANY.SdioSetEventLogic(DeviceHandle, IFCSDIO_ANY.IFSDIO_FALL_EDGE);

Page 194: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

●Visual Basic .NET

Public proc As IFCSDIO_ANY.PSDIOCALLBACK

‘ コールバック関数

Public Sub CallBackProc(ByVal EventLogic As Integer, ByVal UserData As IntPtr)

‘ 割り込み処理を記述します

End Sub

‘ メインルーチン

Dim Ret As Integer

Dim DeviceHandle As IntPtr

proc = New IFCSDIO_ANY.PSDIOCALLBACK(AddressOf CallBackProc)

DeviceHandle = IFCSDIO_ANY.SdioOpen(“IFSDIO1”) …

Ret = IFCSDIO_ANY.SdioSetEvent(DeviceHandle, IntPtr.Zero, 0, IntPtr.Zero, _

proc, DeviceHandle)

Ret = IFCSDIO_ANY.SdioSetEventLogic(DeviceHandle, IFCSDIO_ANY.IFSDIO_FALL_EDGE);

Page 195: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

5.3 戻り値一覧

エラー識別子 値 意味 対処方法

IFSDIO_ERROR_SUCCESS 0 正常終了

IFSDIO_ERROR_INVALID_PARAMETER 0xC0001001 引数パラメータの値が

不正です

API 関数に指定する値が不正もしくは

範囲外です。

または、引数に NULL ポインタが指定さ

れています。

IFSDIO_ERROR_TERMINAL 0xC0003001 端子台に異常がありま

端子台の電源電圧に異常があるか、端

子台が接続されていません。または正

しくない組み合わせの端子台が接続さ

れています。

正しい組み合わせの端子台を接続して

ください。

IFSDIO_ERROR_INVALID_HANDLE 0xC0000003 デバイスハンドルが正

しくありません

不正なデバイスハンドルで呼び出しを

行おうとしました。オープン関数で返

されたデバイスハンドルを使用してく

ださい。

IFSDIO_ERROR_INSUFFICIENT_BUFF

ER

0xC0000007 システムコールに渡さ

れたデータ領域が小さ

すぎます。

ドライバの内部エラーです。どのよう

な状況でエラーが発生したかをご連絡

ください。

IFSDIO_ERROR_MEMORY_NOTALLOCAT

ED

0xC0001000 作業用メモリの確保に

失敗しました。

利用可能なメモリが足りなくなってい

ます。不要なアプリケーションなどを

終了させ、利用可能なメモリを増やす

ようにしてください。

IFSDIO_ERROR_DETAIL_NOT_DEVICE 0xA0001001 デバイスが見つかりま

せんでした。

指定したデバイス名を確認してくださ

い。

IFSDIO_ERROR_DETAIL_ALREADY_OP

EN

0xA0001003 既にオープンしていま

す。

クローズの処理を行った後、再度オー

プン処理を行ってください。

IFSDIO_ERROR_DETAIL_DEVICE_ERR

OR

0xA0001004 デバイスへのアクセス

エラーです。

ドライバの内部エラーです。どのよう

な状況でエラーが発生したかをご連絡

ください。

Page 196: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

第6章 サンプルプログラム

サンプルプログラムの概要を説明します。

「Visual C# .NET」、「Visual Basic .NET」用のサンプルプログラムは、以下を使用して作成されて

います。

Microsoft Visual C# .NET 2003

Microsoft Visual Basic .NET 2003

6.1 実行手順

【実行手順】

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++(Visual Studio)を起動し、「ファイル」メニューから「ワークスペースを開く」

を選び、メイクファイル「*.mak」を開き、ビルドしてください。

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「*.vbp」を開き、ビルドしてください。

●Visual C# .NET の場合

Visual Studio を起動し、「ファイル」メニューから「開く」→「プロジェクト」を選び、

プロジェクトファイル「*.csproj」※1を開き、ビルドしてください。

●Visual Basic .NET の場合

Visual Studio を起動し、「ファイル」メニューから「開く」→「プロジェクト」を選び、

プロジェクトファイル「*.vbproj」※1を開き、ビルドしてください。

※1 クラスライブラリもビルドされます。

作成後、生成された実行ファイル*.exe を起動してください。

Page 197: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

6.2 サンプルプログラム一覧

「Visual C++」、「Visual Basic」

サンプルプログラム名 概要

Send データ送信を行うサンプルプログラムです。

Receive データ受信を行うサンプルプログラムです。

Event 受信イベントを発生させ処理するサンプルプログラムです。

SendMessage データ送信を行うコンソールアプリケーションのサンプルプログラム

です。

ReceiveMessage データ受信を行うコンソールアプリケーションのサンプルプログラム

です。

InPoint 汎用 DIO 入力を行うサンプルプログラムです。

OutPoint 汎用 DIO 出力を行うサンプルプログラムです。

「Visual C# .NET」「Visual Basic .NET」

サンプルプログラム名 概要

Send テキストボックスのデータを送信します。

Receive データの受信を行いテキストボックスに表示します。

InPoint HDLC モジュールの指定した接点から 1点入力します。

OutPoint HDLC モジュールの指定した接点から 1点出力します。

IFCHDLC クラスライブラリ

IFCSDIO クラスライブラリ

SendAsync 非同期でデータを送信します。

ReceiveAsync 非同期でデータの受信を行い表示します。

DioEvent STB 信号のイベントで全点入力を行います。

Page 198: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

第7章 ユーティリティ

以下、各ユーティリティの概要を説明します。

7.1 通信ユーティリティプログラム HDLC フレームの送受信を行うユーティリティプログラムです。

※PCI-4172FMU では複数プロセスでの使用(2 つ同時に起動)は出来ません。

【起動方法】

1.「スタート」メニュー-「Interface GPC-4116」-「HDLC ユーティリティプログラム」を選択し

てユーティリティプログラムを起動させます。

2.「ファイル」-「開く」で、使用可能なポートが表示されますので通信設定を行ったあと、使用

するポートを選択してください。

3.受信したフレームを画面が表示されます。

4.「編集」-「送信」で、送信ダイアログが表示されます。

データを入力し、「Ok」ボタンをクリックすると、フレームを送信します。

7.2 自己診断プログラム 本製品には、動作不具合時の原因がハードウェア的なものか、ソフトウェア的なものかを容易に

判断するための自己診断機能を搭載しています。診断プログラムを用いて動作確認を行ってくだ

さい。自己診断プログラムにより、以下のことを確認できます。

※PCI-4172FMU では使用することが出来ません。

・I/O ポートアクセス

・メモリアクセス

・割り込み

・データ送受信

・制御信号診断

© 1999 Interface Corporation.

Page 199: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

【必要な機材】

・HDLC インタフェースモジュール

・診断プログラム

・ループバックコネクタ

(ピン接続の組み合わせ(1)RS-232C:SD-RD、RS-CS (2)RS-485:T-R、C-I)

【起動方法】

1.診断を行うインタフェースモジュールのチャンネル 1、チャンネル 2 にループバックコネクタ

を差し込んでください。

2.「スタート」メニュー-「Interface GPC-4116」-「DiagHdlc」を選択して自己診断プログラム

を起動させます。

3.起動画面のメニューの「ファイル」-「ボードの選択」で、使用可能インタフェースモジュール

一覧が表示されますので診断を行うインタフェースモジュールを選択してください。

選択したインタフェースモジュールのリソースが表示されます。

4.メニューの「診断」-「診断開始」より診断を開始します。

診断が終了すると診断結果が表示されます。

メニューの「ファイル」-「結果の保存」でその診断結果をファイル形式で保存できます。

「診断」-「診断結果クリア」で診断結果をクリアします。

© 1999 Interface Corporation.

Page 200: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

7.3 RS-485 終端設定ユーティリティプログラム CardBus 製品の、RS-485 終端設定用のユーティリティプログラムです。

本ユーティリティで設定された終端設定は、電源を切っても消えることはありません。

一度設定するだけで、電源再投入後再設定を行う必要はありません。

RS-485 終端設定する方法は、本ユーティリティおよび、HdlcSetCableTermination 関数によって

行えます。

※本ユーティリティで終端設定を行えるカードは以下の製品です。

型式 Revision 番号

CBI-4171A 2 以上

CBI-4171B 2 以上

CBI-467101WA 1 以上

CBI-467101WB 1 以上

【起動方法】

1.「スタート」メニュー-「Interface GPC-4116」-「RS-485 終端抵抗設定ユーティリティ」を選

択してユーティリティプログラムを起動させます。

2.起動画面のメニューの「ファイル」-「ボードの選択」で、設定可能なカードの一覧が表示され

ますので設定を行うカードを選択してください。

3.終端抵抗を挿入する端子にチェックを入れ「設定」ボタンをクリックします。

4.「ファイル」-「終了」で、プログラムを終了します。

© 1999 Interface Corporation.

Page 201: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

7.4 CardBus ID 設定ユーティリティ このユーティリティは複数枚の同一型式 CardBus 製品を使用するためのものです。製品ごとに

異なる ID 番号を設定します。この ID 番号は PCI インタフェースモジュールで言えば RSW 番号

と同等の意味を持ち、デバイスマネージャ、自己診断プログラムでも、RSW1 として表示されま

す。

【起動方法】

1. ドライバソフトウェアのインストール完了後、「コントロールパネル」の「Interface CardBus ID

Utility」を開きます。

2. 現在挿入されている弊社 CardBus 製品の情報が表示されます。左から「バス番号」、「デバイス

番号」、「ファンクション番号」、「型式」、「ID 番号」を示します。ID 番号の設定を行いたい製品

をダブルクリックして下さい。

3. ID 番号を設定するダイアログが開きますので、コンボボックス内で設定したい ID 番号を選択

し、「OK」ボタンをクリックします。

4. これで ID 番号の設定は完了です。

※ 設定できる ID 番号は 0h~Fh までです。

※ 変更した ID 番号をドライバに認識させるには、一度 CardBus 製品を抜き差しするか、システムを

再起動して下さい。

※ 設定した ID 番号が分かるように番号を記したシールを CardBus 製品に貼ることをお勧めします。

© 1999 Interface Corporation.

Page 202: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

7.5 DI 入力ユーティリティ 【起動方法】

「スタート」メニューから、「DI 入力ユーティリティ」を立ち上げてください。

ここで、「検索」ボタンを押すと、使用可能な DIO デバイスの一覧が表示されます。

使用したいデバイスを選択し、「OK」ボタンを押してください。

画面上に、現在の全入力信号の状態が表示されます。

(このプログラムは常にインタフェースモジュールを監視しています。)

7.6 DO 出力ユーティリティ 【起動方法】

「スタート」メニューから、「DO 出力ユーティリティ」を立ち上げてください。

ここで、「検索」ボタンを押すと、使用可能な DIO デバイスの一覧が表示されます。

使用したいデバイスを選択し、「OK」ボタンを押してください。

画面上に表示されているボタンをクリックすると、出力信号の ON/OFF を切り替えることができま

す。

メニューには、全点 ON および全点 OFF の機能が用意されています。

Page 203: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

第8章 重要な情報

保証の内容と制限

弊社は本ドキュメントに含まれるソースプログラムの実行が中断しないこと、またはその実行に

誤りが無いことを保証していません。

本製品の品質や使用に起因する、性能に起因するいかなるリスクも使用者が負うものとします。

弊社はドキュメント内の情報の正確さに万全を期しています。万一、誤記または誤植などがあっ

た場合、弊社は予告無く改訂する場合があります。ドキュメントまたはドキュメント内の情報に

起因するいかなる損害に対しても弊社は責任を負いません。

ドキュメント内の図や表は説明のためであり、ユーザ個別の応用事例により変化する場合があり

ます。

著作権、知的所有権

弊社は本製品に含まれるおよび本製品に対する権利や知的所有権を保持しています。

本製品はコンピュータ ソフトウェア、映像/音声(例えば図、文章、写真など)を含んでいます。

医療機器/器具への適用における注意

弊社の製品は人命に関わるような状況下で使用される機器に用いられる事を目的として設計、製

造された物では有りません。

弊社の製品は人体の検査などに使用するに適する信頼性を確保する事を意図された部品や検査機

器と共に設計された物では有りません。

医療機器、治療器具などの本製品の適用により、製品の故障、ユーザ、設計者の過失などにより、

損傷/損害を引き起こす場合が有ります。

複製の禁止

弊社の許可なく、本ドキュメントの全て、または一部に関わらず、複製、改変などを行うことは

できません。

責任の制限

弊社は、弊社または再販売者の予見の有無にかかわらず発生したいかなる特別損害、偶発的損害、

間接的な損害、重大な損害について、責任を負いません。

本製品(ハードウェア,ソフトウェア)のシステム組み込み、使用、ならびに本製品から得られる

結果に関する一切のリスクについては、本製品の使用者に帰属するものとします。

本製品に含まれるバグ、あるいは本製品の供給(納期遅延)、性能もしくは使用に起因する付帯的

損害もしくは間接的損害に対して、弊社に全面的に責がある場合でも、弊社はその製品に対する

改良(正常に動作する)、代品交換までとし、金銭面での賠償の責任は負わないものとしますので、

予めご了承ください。

本製品(ソフトウェアを含む)は、日本国内仕様です。本製品を日本国外で使用された場合、弊

社は一切責任を負いかねます。また、弊社は本製品に関し、海外での保守サービスおよび技術サ

ポート等は行っておりません。

Page 204: GPC-4116 - Interface...GPC-4116は、Windows上のアプリケーションから、弊社HDLC通信製品を制御する為のソフトウ ェアです。 自由なHDLCフォーマットで使用できるため、上位のプロトコルを自作することにより、HDLCフ

GPC-4116 Help for Windows

© 1999 Interface Corporation.

商標/登録商標

本書に掲載されている会社名、製品名は、それぞれ各社の商標または登録商標です。