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

サンプルプログラム 140

ドキュメント内 GPC-8826 (ページ 140-151)

以下、各サンプルプログラムの概要を説明します。

サンプルプログラム名 説明

WriteFile ファイル出力サンプルプログラム

ReadFile ファイル取得サンプルプログラム

DMATransfer DMA 転送出力サンプルプログラム

ShareTransfer プロセス間でのシェア処理のサンプルプログラム

AsyncCheckState 光メモリンク状態取得サンプルプログラム(非同期)

SyncCheckState 光メモリンク状態取得サンプルプログラム(同期)

6.1 WriteFile

【概要】

ファイル出力を行うサンプルプログラムです。

1MB 以下のファイルを、共有メモリの 1 チャンネルを使用して Ifhnl.bmp ファイルを出力しま す。

マスタコンピュータスレーブコンピュータ間で動作します。

ファイルの取得は ReadFile サンプルプログラムで行ってください。

【実行手順】

Node 名を Optical1 としてください。

共有メモリを 1MB 以上所有してください。

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++ の場合(Microsoft Visual C++ .NET 2003~2008)

プロジェクトファイル「WriteFile.vcproj」を開き、ビルドしてください。

Visual C++ の場合(Microsoft Visual C++ .NET 2010以降)

プロジェクトファイル「 WriteFile.vcxproj 」を開き、ビルドしてください。

(Visual Studio 2010より新しいVersionで実行する場合には後述の注意事項を参照 下さい)

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「WriteFile.vbp」を開き、ビルドしてくださ い。

●Visual C# .NET の場合

Visual Studio を起動し、「ファイル」メニューから「開く」→「プロジェクト」を選び、プロ ジェクトファイル「WriteFile.csproj」を開き、ビルドしてください。

●Visual Basic .NET の場合

Visual Studio を起動し、「ファイル」メニューから「開く」→「プロジェクト」を選び、プロ

© 2011 Interface Corporation

Samples フォルダ内にある ifhnl.bmp を実行ファイルと同じフォルダにコピーしてください。

●Visual C++ .NET の場合

Visual Studio を起動し、「ファイル」メニューから「開く」からプロジェクトファイル

「WriteFile.cproj」を開き、ビルドしてください。

作成後、「ReadFile」サンプルプログラム起動後、「WriteFile」を起動してください。

【内容】

1.ノード(Optical1)をオープンします。

2.共有メモリの 1 チャンネルをマップします。

3.ファイルをバイナリに変換して、共有メモリに書き込みます。

データは下記のデータ構造で入力されます。

ファイル名(0~15byte) サイズ(16~19byte)

ファイルのバイナリデータ(20byte~) 4.ノード(Optical1)に割り込みを要求します。

5.共有メモリをアンマップします。

6.共有メモリをクローズします。

7.ノード(IFHNL1)をクローズします。

© 2011 Interface Corporation

142

6.2 ReadFile

【概要】

ファイル入力を行うサンプルプログラムです。

1MB 以下のファイルを、共有メモリの 1 チャンネルから入力します。

マスタコンピュータスレーブコンピュータ間で動作します。

ファイルの出力は WriteFile サンプルプログラムで行ってください。

【実行手順】

Node 名を Optical1 としてください。

実行するコンピュータがマスタコンピュータの場合、Link ウィンドウの 1 チャンネルに 1MB 以 上の領域を確保してください。

実行するコンピュータがスレーブコンピュータの場合、Virtual ウィンドウの 1 チャンネルに 1MB 以上の領域を確保してください。

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++ の場合(Microsoft Visual C++ .NET 2003~2008)

プロジェクトファイル「 ReadFile.vcproj 」を開き、ビルドしてください。

Visual C++ の場合(Microsoft Visual C++ .NET 2010以降)

プロジェクトファイル「ReadFile.vcxproj」を開き、ビルドしてください。

(Visual Studio 2010より新しいVersionで実行する場合には後述の注意事項を参照 下さい)

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「ReadFile.vbp」を開き、ビルドしてください。

●Visual C# .NET の場合

Visual Studio を起動し、「ファイル」メニューから「開く」→「プロジェクト」を選び、プロ ジェクトファイル「ReadFile.csproj」を開き、ビルドしてください。

●Visual Basic .NET の場合

Visual Studio を起動し、「ファイル」メニューから「開く」→「プロジェクト」を選び、プロ ジェクトファイル「ReadFile.vbproj」を開き、ビルドしてください。

●Visual C++ .NET の場合

Visual Studio を起動し、「ファイル」メニューから「開く」からプロジェクトファイル

「ReadFile.cproj」を開き、ビルドしてください。

作成後、「ReadFile」サンプルプログラム起動後、「ReadFile」を起動してください。

© 2011 Interface Corporation

【内容】

1.ノード(Optical1)をオープンする。

2.ウィンドウの 1 チャンネルのオープンする。

3.ウィンドウの 1 チャンネルをマップする。

4.イベントを登録します。VB 以外はコールバックを登録します。VB はメッセージを登録します。

5.イベント発生を待機し、もし 10 秒かかってもイベントが発生しなかったら強制終了させてプロ グラムを終了します。

6.イベントが発生すると下記のデータ構造のデータを取り出します。

ファイル名(0~15byte) サイズ(16~19byte)

ファイルのバイナリデータ(20byte~)

7.バイナリをファイルに変換して、実行ファイルと同じフォルダに保存します。

8.ウィンドウをアンマップします。

9.ウィンドウをクローズします。

10. ノード(Optical1)をクローズします。

© 2011 Interface Corporation

144

6.3 DMATransfer

【概要】

入力されたコメントを DMA 転送で行うサンプルプログラムです。

1KB 以下のコメントを、ユーザバッファ→共有メモリ→ウィンドウの 1 チャンネルに割り当て られている共有メモリ→ユーザバッファという順に DMA 転送を行います。

【実行手順】

Node 名を Optical1 としてください。

共有メモリを 1MB 以上所有してください。

実行するコンピュータがマスタコンピュータの場合、Link ウィンドウの 1 チャンネルに 1MB 以 上の領域を確保してください。

実行するコンピュータがスレーブコンピュータの場合、Virtual ウィンドウの 1 チャンネルに 1MB 以上の領域を確保してください。

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++ の場合(Microsoft Visual C++ .NET 2003~2008)

プロジェクトファイル「 DMATransfer.vcproj 」を開き、ビルドしてください。

Visual C++ の場合(Microsoft Visual C++ .NET 2010以降)

プロジェクトファイル「DMATransfer.vcxproj」を開き、ビルドしてください。

(Visual Studio 2010より新しいVersionで実行する場合には後述の注意事項を参照 下さい)

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「DMATransfer.vbp」を開き、ビルドしてくだ さい。

●Visual C# .NET の場合

Visual Studio を起動し、「ファイル」メニューから「開く」→「プロジェクト」を選び、プロ ジェクトファイル「DMATransfer.csproj」を開き、ビルドしてください。

●Visual Basic .NET の場合

Visual Studio を起動し、「ファイル」メニューから「開く」→「プロジェクト」を選び、プロ ジェクトファイル「DMATransfer.vbproj」を開き、ビルドしてください。

●Visual C++ .NET の場合

Visual Studio を起動し、「ファイル」メニューから「開く」からプロジェクトファイル

「DMATransfer.cproj」を開き、ビルドしてください。

作成後、「ReadFile」サンプルプログラム起動後、「DMATransfer」を起動してください。

© 2011 Interface Corporation

【内容】

1.ノード(Optical1)をオープンする。

2.ウィンドウの 1 チャンネルのオープンする。

3.ユーザバッファ→共有メモリへの DMA 転送を行います。イベントを使用した非同期転送を行い ます。

非同期で待機し、もし DMA 転送に 1 秒かかったら強制停止させてプログラムを終了します。

4.共有メモリ→ウィンドウの 1 チャンネルに割り当てられている共有メモリへの DMA 転送を行い ます。DMA 転送の状態を取得しながら行う非同期転送を行います。

非同期で待機し、もし DMA 転送に 1 秒かかったら強制停止させてプログラムを終了します。

5.ウィンドウの 1 チャンネルに割り当てられている共有メモリ→ユーザバッファへの DMA 転送を 行います。同期転送を行います。

6.ウィンドウをクローズします。

7.ノード(Optical1)をクローズします。

© 2011 Interface Corporation

146

6.4 ShareTransfer

【概要】

一つのウィンドウを別プロセスで DMA 転送のチャンネルを変えてを繰り返し行うサンプルプロ グラムです。

このプログラムを起動させ、DMA チャンネルを設定すると、ウィンドウからユーザバッファへ 転送が開始されます。

DMA チャンネルを各プロセスごとに変えることで同じウィンドウの別領域で、同時に DMA 転送 を行うことができます。

【実行手順】

Node 名を Optical1 としてください。

共有メモリを 1MB 以上所有してください。

実行するコンピュータがマスタコンピュータの場合、Link ウィンドウの 1 チャンネルに 1MB 以 上の領域を確保してください。

実行するコンピュータがスレーブコンピュータの場合、Virtual ウィンドウの 1 チャンネルに 1MB 以上の領域を確保してください。

サンプルプログラムには実行形式のファイルが付属していません。

ソースコードをコンパイルして実行ファイルを生成してから、動作させてください。

●Visual C++の場合

Visual C++ の場合(Microsoft Visual C++ .NET 2003~2008)

プロジェクトファイル「 ShareTransfer.vcproj 」を開き、ビルドしてください。

Visual C++ の場合(Microsoft Visual C++ .NET 2010以降)

プロジェクトファイル「ShareTransfer.vcxproj」を開き、ビルドしてください。

(Visual Studio 2010より新しいVersionで実行する場合には後述の注意事項を参照 下さい)

●Visual Basic の場合

Visual Basic を起動し、プロジェクトファイル「ShareTransfer.vbp」を開き、ビルドしてく ださい。

●Visual C++ .NET の場合

Visual Studio を起動し、「ファイル」メニューから「開く」からプロジェクトファイル

「ShareTransfer.cproj」を開き、ビルドしてください。

© 2011 Interface Corporation

【内容】

1.ノード(Optical1)をオープンする。

2.ウィンドウの 1 チャンネルのオープンする。すでにオープンされていれば、ウィンドウハンド ルを取得します。

3.DMA 転送をどのチャンネルで行うかを入力する。

チャンネル 1 の場合:オフセット 0~1023 バイトをデータ転送します。

チャンネル 2 の場合:オフセット 1024~2047 バイトをデータ転送します。

チャンネル 3 の場合:オフセット 2048~3071 バイトをデータ転送します。

チャンネル 4 の場合:オフセット 3072~4095 バイトをデータ転送します。

4.ウィンドウ→共有メモリへの DMA 転送を行います。

5.自身がオープンしていれば、ウィンドウをクローズします。

6.ノード(Optical1)をクローズします。

ドキュメント内 GPC-8826 (ページ 140-151)

関連したドキュメント