ファイル転送ユーティリティー - Banner Engineering

ファイル転送ユーティリティー
バナー・エンジニアリング・ジャパン
バナー・エンジニアリング・インターナショナル Inc. - ジャパン・ブランチ
〒532-0011
大阪市淀川区西中島3-23-15 セントアーバンビル305
TEL:06-6309-0411
E-mail:[email protected]
FAX:06-6309-0416
http://www.bannerengineering.co.jp
Presence PLUS ®
1. はじめに
ファイル転送ユーティリティーは、PresencePLUSビジョンセンサのファ
イル転送機能と連携して使用するソフトウェアモジュールです。この機能
を使用すると、センサについての情報の取得、新たな検査の開始、センサ
への検査ファイルのアップロード、およびセンサから検査ファイルのダウ
ンロードを行うことができます。
このユーティリティーで提供するソフトウェアモジュールにより、この機
能を使用するアプリケーションプログラムを容易に作成できます。サンプ
ルアプリケーションは、ソフトウェアモジュールに組み込まれている各種
のクラスとメソッドの使い方を示すための実例です。
この機能では、PresencePLUS software 2006R3かそれ以降が必要です。
ファイル転送ユーティリティーは、PresencePLUSのインストールCDか
らインストールします。
PresencePLUS Utility Program → Install Inspection Download Utility
このユーティリティーには、下記のものが組み込まれています。
− ソフトウェアモジュール
− ユーザーズガイド(英語)
− ヘルプファイル(英語)
− サンプルアプリケーション
本書は、ユーザーズガイドとヘルプファイルを日本語化したマニュアルで
す。
バナー・エンジニアリング・ジャパン
2
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
ファイル転送ユーティリティー
2. 概要
リモートデバイス(PC)とセンサとの間で、ユーザーによる検査ファイ
ルの読み込み/保存を可能にする新機能を導入しました。またこの新機能
には、センサが実行する検査ファイルを決定するメソッドが組み込まれて
います。
現時点では、RUNモード時にセンサが実行する検査を制御する2つの主要
なメソッドがあります(GUIでのみ選択可能)。ユーザーは「ハードウェ
ア入力」または「ソフトウェアオーバーライド」のどちらかを選択できま
す。ハードウェア入力では、I/Oラインを使用して実行する検査を選択し
プログラムを切り替えます。ソフトウェアオーバーライドでは、センサが
実行する検査を「ロック」できます。ソフトウェアオーバーライドを選択
した場合、センサはソフトウェアが選択した検査のみ実行します。
NOTE:ソフトウェアオーバーライドオプションでは、実行すると選択し
た検査以外の全メソッドがオーバーライドされることにご注意く
ださい。つまり、GUIでソフトウェアオーバーライドを選択した
場合、他の制御メソッドとは無関係に、センサは選択した検査の
み実行します。
ハードウェア入力とファイル転送ユーティリティーでは、他のオ
プションがオーバーライドされることはありません。つまり、
ファイル転送ユーティリティーオプションを使用している場合
は、ハードウェア入力パスから誤ったプログラム変更が行われな
いように十分に注意する必要があります。
バナー・エンジニアリング・ジャパン
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
3
Presence PLUS ®
3. 機能
ファイル転送機能を使用すると、次の処理を行えます。
●
センサからの検査ファイルの取得
●
センサへの検査ファイルの保存
●
センサでの新規検査の開始
●
センサ情報の取得
多様なプログラミング環境から使用できるAPI( アプリケーションプログ
ラ ム イ ン タ ー フ ェ イ ス )が 組 み 込 ま れ て い ま す 。 こ の A P I は W i n d o w s
の.DLLと.LIBという形で提供されます。 複数のサンプルアプリケーショ
ン、ならびにAPIをVisual Basic、COM、.Net、およびWin32プログラミ
ング環境から使用する方法についてのインストラクションも提供されてい
ます。
サンプルアプリケーションは、デフォルトで下記のディレクトリにありま
す。
C:¥Program Files¥Banner Engineering¥PresencePLUS Inspection
Download Utility¥Sample Application
BATファイルまたはその他のスクリプト言語から実行できるコンソールア
プリケーションも提供されており、デフォルトでは下記の場所にあります。
C:¥Program Files¥Banner Engineering¥PresencePLUS Inspection
Download Utility¥BannerInsDownload.exe
3.1 センサからの検査ファイルの取得
ファイル転送APIは、検査ファイルをセンサからホストPCに転送する
GetInspection関数を提供します。検査ファイルを取得できるのは、不揮
発性(Flash)メモリに格納してある場合のみです。
3.2 センサへの検査ファイルの保存
ファイル転送APIは、検査ファイルをホストPCからセンサに転送する
SaveInspection関数を提供します。検査ファイルはセンサにある不揮発
性(Flash)メモリに保存可能です。
ファイル転送機能では、検査ファイルを不揮発性メモリに保存せず、揮発
性(RAM)メモリに直接保存することも可能です。不揮発性(Flash)メモリ
ではなく揮発性メモリの導入を検討する理由としては、主に速度とFlash
メモリの寿命の2点が挙げられます。
RAMメモリへの保存は、Flashメモリへの保存よりはるかに高速です(約
7 倍 )。 ま た 、 F l a s h メ モ リ に は 書 き 込 み 回 数 に よ る 寿 命 制 限 ( 通 常 は
100,000回から1,000,000回)があります。Flashメモリに絶えず書き込ん
でいると、Flashメモリが通常の寿命を迎える前にセンサが正常に作動し
なくなることがあります。RAMメモリを使用する場合は、メモリロケー
ション0を指定します。複数の検査を行う場合は、検査をロケーション0
(RAM)に保存してから、ロケーション0へのプログラムチェンジ入力を
行うことをお勧めします。
NOTE:ロケーション0に格納した検査ファイルは、揮発性メモリに保存
されます。検査ファイルの実行が再開されたり、ロケーション0
以外のロケーションにプログラムチェンジ入力を行ったりする
と、ロケーション0に格納した検査ファイルは消去されます。
バナー・エンジニアリング・ジャパン
4
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
ファイル転送ユーティリティー
3.3 センサでの新規検査の開始
ファイル転送APIは、StartInspection関数を提供します。これは、セン
サに現在の検査を停止させ、StartInspection関数で指定した検査の実行を
開始させる関数です。これは、I/Oラインを使用したセンサへのプログラ
ムチェンジを実行することに相当します。準備完了ステータスを確認して
から、StartInspectionを行ってください。
3.4 センサ情報の取得
ファイル転送APIは、センサについての下記の情報を返すGetInfo関数を
提供します。
●
センサ名
●
ファームウェアバージョン
●
現在の検査ファイル名
●
現在実行中の検査ファイルのロケーション。これは1〜Nの数(N = 8、12
など)で、Flashのストレージロケーションに対応しています。検査が揮
発性メモリから実行されている場合は0、センサが検査を実行していな
い場合は − 1になります。
●
センサにシステムエラーが発生しているかどうかを示すフラグ
●
センサに現在接続するGUIがあるかどうかを示すフラグ
●
セ ン サ が 準 備 完 了 で あ る か ど う か を 示 す フ ラ グ 。( こ れ は セ ン サ の
READY表示と連動しています。)
3.5 検査ログと検査ファイルのダウンロード
検査ファイルが不揮発性(Flashメモリ)のロケーションにダウンロードさ
れると、その一意のロケーションに関連付けられた、センサにある検査ロ
グがフラッシュされます。
例えば、ある検査がロケーション1から実行中であり、エントリがいくつ
かログされているとします。次いで、ロケーション2へのプログラムチェ
ンジが行われます。エントリがさらにいくつかログされます。この時点で、
ロケーション1へのSaveInspectionが行われると、ロケーション1の検査
の実行から生じるこのログエントリは消去されますが、ロケーション2の
エントリはそのまま残ります。
NOTE:検査のロギングは、RAMメモリ(ロケーション0)での検査では機
能しません。ロギングを使用する必要がある場合は、不揮発性メ
モリを使用する必要があります(検査ファイルはFlashメモリに格
納しなければなりません)。
3.6 重要な注意事項
●
センサには揮発性と不揮発性のメモリが内蔵されています。揮発性メモ
リはロケーション0でアドレス指定します。不揮発性メモリはロケー
ション1〜N(Nは1、8、12など)で指定します。
●
多数の検査をセンサにダウンロードする場合には、揮発性メモリを使用
することを推奨します。揮発性メモリを指定すると、検査の変更をはる
かに高速に実行でき、しかもFlashメモリは損耗しません。
●
プロダクトチェンジ入力を行う他の方法(ソフトウェアオーバーライド、
ハードウェア入力、またはModbus)がダウンロード機能と競合しない
よう、十分ご注意ください。
●
ロギングは揮発性メモリでは機能しません
●
揮発性メモリの検査ファイルは、当該検査を再開すると消去されます
バナー・エンジニアリング・ジャパン
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
5
Presence PLUS ®
4. ファイル転送API
この章では、ファイル転送APIの具体的な使用方法を説明します。この
APIはHTTPを介してセンサの制御と照会を行う各種のクラスとメソッド
を提供します。このAPIを使用すると、センサについての情報の取得、新
たな検査の開始、センサへの検査ファイルのアップロード、およびセンサ
からのプログラムのダウンロードを行うことができます。
4.1 C/C++でのファイル転送APIの使用
内容:
ビルド環境のセットアップ
エラーハンドリング
サンプルアプリケーション
4.1.1 ビルド環境のセットアップ
NOTE:こ の ト ピ ッ ク で 示 す 図 は 、 M i c r o s o f t V i s u a l C + + 6 . 0 と V i s u a l
Studio.NETを使用するファイル転送API向けに、クライアントア
プリケーションを設定する方法を説明したものです。別のIDEま
たはC/C++コンパイラをご使用の場合は、コンパイラとリンカの
必要なオプション設定に関するインストラクションについては、
オンラインマニュアルをご参照ください。
ファイル転送API Win32 DLL関数の使用法については、2つのオプション
があります。
●
明示的(動的)リンキング
ファイル転送APIに動的にリンクする際には、手動でDLLを実行時に読
み込み、呼び出したい関数の照会を行う必要があります。この手法を
使用するクライアントアプリケーションをコンパイルするには、ヘッ
ダファイルをインクルードする必要があります。
#include "BannerInspectionDownloadLib.h"
DLLを動的に読み込んで使用する方法の詳細については、MSDNで公
開されている文書をご参照ください。
●
暗黙(静的な)リンキング
ファイル転送APIライブラリに静的にリンクすると、クライアントア
プリケーションの起動時に、Windowsがファイル転送を自動的に読み
込みます。 その結果、API関数をローカル関数のように名前で呼び出
すことができるようになります。
ファイル転送DLLに黙示的にリンクするには、次の手順を実行します。
1. ヘッダファイルをクライアントコードにインクルードします。
#include "BannerInspectionDownloadLib.h"
バナー・エンジニアリング・ジャパン
6
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
ファイル転送ユーティリティー
2. BannerInspectionDownload.h ファイルがプロジェクトフォルダに
ない場合、そのロケーションを追加のインクルードディレクトリと
して追加します。
Visual C++6.0では、このオプションは「C++」タブのPreprocessor( プ
リプロセッサ)カテゴリにあります。
Visual Studio.NETでは、このオプションはC++/General(C++/
全般)ページにあります。
バナー・エンジニアリング・ジャパン
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
7
Presence PLUS ®
3. BannerInspectionDownload.libライブラリにリンクします。
Visual C++6.0では、Link(リンク)タブのGeneral(全般)カテゴリ
に あ る O b j e c t / l i b r a r y m o d u l e s( オ ブ ジ ェ ク ト / ラ イ ブ ラ リ モ
ジュール)ボックスに追加します。
Visual Studio.NETでは、Linker/Input( リンカ/入力)ページの
Additional Dependencies(追加の依存関係)ボックスに追加しま
す。
バナー・エンジニアリング・ジャパン
8
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
ファイル転送ユーティリティー
4. BannerInspectionDownload.libライブラリのロケーションを、追
加ライブラリディレクトリとして追加します。
Visual C++6.0では、このオプションはLink(リンク)タブのInput
(入力)カテゴリにあります。
Visual Studio.NETでは、このオプションはLinker/General(リン
カ/全般)ページにあります。
バナー・エンジニアリング・ジャパン
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
9
Presence PLUS ®
4.1.2 エラーハンドリング
ファイル転送APIの関数はどれも、成功・失敗を示すBOOLを返します。
関数がFALSEを返した場合、Windows関数のGetLastErrorを呼び出して、
エ ラ ー コ ー ド を 取 得 で き ま す 。 こ の エ ラ ー コ ー ド は 、
BannerInspectionDownloadLib.h ヘッダファイルに定義されたBannerエ
ラーコードのいずれか、あるいは、ERROR̲FILE̲NOT̲FOUNDなどの
Windowsの標準エラーコードです。
エラー発生源のいかんにかかわらず、WindowsのFormatMessage関数を
使用してエラーメッセージを取得できます。下記の関数は、
FormatMessageを使用してシステム、ファイル転送DLL、または
WinInetライブラリ(これはファイル転送APIが内部的に使用)からエラー
メッセージを取得する方法を説明したものです。この関数を使用するには、
エラーコードを dwMsgId パラメータとして渡します。すると、エラーメッ
セージが pszBuffer パラメータで返されます。
UINT GetErrorMessage(DWORD dwMsgId, PTSTR pszBuffer, UINT cchBuffer)
{
HMODULE hDllModule;
If (dwMsgId >= 12000 && dwMsgId <= 12174) // WinInet error
hDllModule = GetModuleHandle(_T("WinInet.dll"));
else
hDllModule = GetModuleHandle(_T("BannerInspectionDownload.dll"));
return FormatMessage(
FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_FROM_SYSTEM,
hDllModule,
dwMsgId,
LANG_NEUTRAL,
pszBuffer,
cchBuffer,
NULL
// Destination buffer
// Character count of destination buffer
// Insertion parameters
);
}
4.1.3 サンプルアプリケーション
ファイル転送APIインストールフォルダの samples/win32 サブフォルダに
ある Win32Client.dsw Visual Studio C++6.0ワークスペースは、C++クラ
イアントからの各API関数の呼び出し方、および発生したエラーの処理法
を具体的に説明するものです。
バナー・エンジニアリング・ジャパン
10
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
ファイル転送ユーティリティー
4.2 COMでのファイル転送APIの使用
内容:
ビルド環境のセットアップ
エラーハンドリング
サンプルアプリケーション
4.2.1 ビルド環境のセットアップ
NOTE:このトピックでは、COMクライアントのビルドを簡略化するため
にMicrosoft #importディレクティブを使用します。このディレ
クティブをサポートしていないMicrosoft C++コンパイラ以外の
コンパイラを使用している場合は、基本COM関数を使用する
COMサーバーの使用方法に関する情報について、MSDNの文書を
ご参照ください。
C++からファイル転送COMサーバーを使用するには、#importディレク
ティブを使用して、定義済みインターフェイスを使用するクラスを自動的
に生成します。
#import "BannerInspectionDownload.dll" no_namespace
このディレクティブは、ファイル転送インターフェイス用のスマートポイ
ンタクラスを生成します。このインターフェイスは、範囲から逸脱すると
Releaseをインターフェイスに自動的に呼び出します。ファイル転送
COMサーバーは、IBannerSensor、およびISensorInformationの2つの
インターフェイスを定義します。IBannerSensorインターフェイスは、
各API関数のメソッド、およびセンサアドレスを格納するための
SensorAddressプロパティを定義します。ISensorInformationイン
ターフェイスは、SENSOR̲INFORMATION構造体のCOM変換です。い
ずれかのインターフェイスのために生成されるスマートポインタクラスの
名前は、インターフェイス名に接尾辞として Ptr が付いた名前となりま
す。
下記の例は、IBannerSensorインターフェイスを使用して(スマートポイ
ンタクラスを通じて)、StartInspection関数を呼び出す方法を示したも
のです。
#import "BannerInspectionDownload.dll" no_namespace
…
{
_bstr_t sensorAddress = L"sensorHostName";
IBannerSensorPtr pSensor(__uuidof(BannerSensor));
pSensor->SensorAddress = sensorAddress;
pSensor->StartInspection(2);
}
バナー・エンジニアリング・ジャパン
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
11
Presence PLUS ®
4.2.2 エラーハンドリング
ファイル転送APIのCOMメソッドは、失敗するとHRESULTを返して発生
したエラーについての情報を提供します。Banner固有のエラーHRESULTの値は、ErrorCodes目録に記載してあります。
ErrorSensorUnreachable
ErrorSensorServer
ErrorInvalidStorageLocation
ErrorInsufficientStorage
ErrorInvalidInspectionFile
ErrorInvalidInspectionType
ErrorInspectionExecuting
ErrorNotTransferred
ErrorInvalidInp
ErrorInpConversion
ErrorInsConversion
あるメソッドから返されたHRESULTが、この目録の値のいずれかと一致
した場合には、ファイル転送COMサーバーのIErrorInfoインターフェイス
に照会して、エラーについて詳細な情報を入手できます(エラーメッセー
ジなど)。
NOTE:# i m p o r t デ ィ レ ク テ ィ ブ は 、 C + + 例 外 と し て ス ロ ー さ れ た
̲com̲errorクラスにエラーの詳細を埋め込んで、このプロセス
を簡略化します。下記の例は、̲com̲errorをキャッチして、そ
のHRESULTをエラーの説明(ある場合)と共に表示する例を示し
たものです。
try
{
// call Banner Downloadable Inspections API functions through smart pointer...
}
Catch (_com_error e)
{
If (e.Description().length() > 0)
_tprintf(_T("\nERROR %X: %s\n"), e.Error(), (LPTSTR)e.Description());
else
_tprintf(_T("\nERROR %X: %s\n"), e.Error(), e.ErrorMessage());
}
4.2.3 サンプルアプリケーション
ファイル転送APIインストールフォルダの samples/com サブフォルダにあ
る ComClient.dsw Visual Studio C++6.0ワークスペースは、C++COMク
ライアントからの各API関数の呼び出し方、および発生したエラーの処理
法を具体的に説明するものです。
バナー・エンジニアリング・ジャパン
12
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
ファイル転送ユーティリティー
4.3 Visual Basicでのファイル転送APIの使用
内容:
ビルド環境をセットアップします。
ハンドリングエラー
サンプルアプリケーション
4.3.1 ビルド環境のセットアップ
Visual Basicからファイル転送APIを使用するには、References(参照)
ダイアログにある Banner Downloadable Inspections 1.0 Type Library
に参照を追加します。
これで、ファイル転送APIメンバーをObject Browserで参照できるようにな
ります。API関数がBannerSensorクラスのメソッドになっていること、お
よびSENSOR̲INFORMATION構造体がVBに都合の良いSensorInformation
クラスに変換されていることに注意してください。APIが生成できるエラー
を記載したErrorCode目録もあります。
バナー・エンジニアリング・ジャパン
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
13
Presence PLUS ®
4.3.2 エラーハンドリング
ファイル転送APIメソッドのいずれかが失敗すると、Visual Basicの標準
エラーハンドリングプロシージャを使用してトラップできるエラーを生成
します。詳細なエラー情報は、Errオブジェクトにあります。下記の例は、
ファイル転送API使用時のエラー処理法を示したものです。
On Error GoTo ErrHandler
Dim sensor As New BannerInspectionDownloadLib.BannerSensor
sensor.SensorAddress = "sensorHostName"
' call Banner Downloadable Inspections API functions...
Exit Sub
ErrHandler:
MsgBox Err.Description, vbOKOnly + vbCritical, Err.Number
4.3.3 サンプルアプリケーション
ファイル転送APIインストールフォルダの samples/vb サブフォルダにある
VbClient.vbp Visual Basic 6.0プロジェクトは、Visual Basicクライアン
トからの各API関数の呼び出し方、および発生したエラーの処理法を具体
的に説明するものです。
バナー・エンジニアリング・ジャパン
14
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
ファイル転送ユーティリティー
4.4 NETからのファイル転送APIの使用
内容:
ビルド環境のセットアップ
エラーハンドリング
サンプルアプリケーション
4.4.1 ビルド環境のセットアップ
NETからファイル転送APIを使用するには、Add Reference(参照の追加)
ダイアログのCOMタブにあるBanner Downloadable Inspections 1.0
Type Libraryに参照を追加します。
これで、ファイル転送APIメンバーをObject Browserで参照できるように
なります。API関数がBannerSensorClassクラスのメソッドになってい
ること、およびSENSOR̲INFORMATION構造体が.NETに都合の良い
SensorInformationClassクラスに変換されていることに注意してくださ
い。APIが返したエラーコードのHRESULTを記載したErrorCode目録も
あります。
バナー・エンジニアリング・ジャパン
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
15
Presence PLUS ®
4.4.2 エラーハンドリング
フ ァ イ ル 転 送 A P I メ ソ ッ ド の い ず れ か が 失 敗 す る と 、
標 準 の . N E T 例 外 を ス ロ ー し ま す 。 こ の 例 外 は 、 通 常 は
System.Runtime.InteropServices.COMExceptionです。特定の
Bannerエラーをフィルタリングするには、例外のHResultプロパティと
BannerInspectionDownloadLib.ErrorCode目録の値のいずれかとを比
較します。可能な場合は常に、システムエラーは対応する標準の.NET例
外に自動的に変換されます。たとえば、検査ファイルが見つからない場合、
System.IO.FileNotFoundExceptionがスローされます。下記の例は、
ファイル転送API使用時のエラー処理法を示したものです。
Try
{
BannerSensor sensor = new BannerSensorClass();
sensor.SensorAddress = "sensorHostName";
// call Banner Downloadable Inspections API functions...
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
4.4.3 サンプルアプリケーション
ファイル転送APIインストールフォルダの samples/dotNet サブフォルダに
ある DotNetClient.csproj Visual C#2003プロジェクトは、C#クライアン
トからの各API関数の呼び出し方、および発生したエラーの処理法を具体
的に説明するものです。
4.5 APIアプリケーションの再配布
ファイル転送APIをアプリケーションに添付して再配布する際には、目的
とするシステムが要件を満たしていることを確認し、下記のインストール
手順に従ってください。
システム要件
●
Microsoft Windows versions 9x/NT 4.0以上
●
Microsoft Internet Explorer 4.0以上
インストール手順
1. BannerInspectionDownload.dll と msvcr71.dll(Microsoft Visual C 7.1
Runtime)
ファイルを、アプリケーションディレクトリにコピーします。
2. 使 用 し て い る ア プ リ ケ ー シ ョ ン が 、 C O M イ ン タ ー フ ェ イ ス を 介 し て
ファイル転送APIと接続している場合(これにはVisual Basicと.NETの
クライアントアプリケーションも含まれます)、regsvr32ツールを使
用してDLLを登録する必要があります。
バナー・エンジニアリング・ジャパン
16
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
ファイル転送ユーティリティー
5. 関数
5.1 GetInfo
GetInfo関数は、センサおよび現在実行している検査についての情報を取
得します。
BOOL GetInfo(
LPCSTR lpszSensorAddress,
LPSENSOR_INFORMATION lpSensorInformation
);
パラメータ
lpszSensorAddress
[in] センサのホスト名を指定する、NULL文字で終わる文字列のポインタ
です。
あるいは、文字列にセンサのIP番号をASCIIドット付き10進記法で含める
こともできます(例:11.0.1.45)。
lpSensorInformation
[out] 見つかったファイルまたはサブディレクトリについての情報を受け
取るSENSOR̲INFORMATION構造体のポインタです。
戻り値
関数は正常に機能すると、TRUEを返します。
失敗すると、FALSEを返します。詳細なエラー情報を取得するには、
GetLastErrorを呼び出します。
例
GetInfoの最小限の使用方法を示すサンプルコードを下記に示します。
#include <iostream>
#include <tchar.h>
#include <windows.h>
#include "BannerInspectionDownloadLib.h"
int main(int argc, char *argv[])
{
SENSOR_INFORMATION sensor;
CHAR sensorName[128];
sensor.SensorName = sensorName;
sensor.SensorNameLength = 128;
CHAR firmwareVersion[128];
sensor.FirmwareVersion = firmwareVersion;
sensor.FirmwareVersionLength = 128;
CHAR currentInspectionFileName[128];
sensor.CurrentInspectionFileName = currentInspectionFileName;
sensor.CurrentInspectionFileNameLength = 128;
if (GetInfo(argv[1], &sensor))
{
printf("GetInfo succeeded.\n\n");
printf("Sensor Name: %s\n", sensor.SensorName);
printf("Firmware Version: %s\n", sensor.FirmwareVersion);
printf("Current inspection filename: %s\n", sensor.
CurrentInspectionFileName);
printf("Current inspection location: %d\n", sensor.
CurrentInspectionLocation);
printf("System Error: %s\n", sensor.SystemError ? _T("TRUE"):
バナー・エンジニアリング・ジャパン
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
17
Presence PLUS ®
_T("FALSE"));
printf("GUI attached: %s\n", sensor.GuiAttached ? _T("TRUE"):
_T("FALSE"));
}
Else
printf("GetInfo failed! Error code = %d\n", GetLastError());
}
要求事項
Client
Windows XP、Windows 2000 Professional、Windows NT Workstation 4.0、Windows Me、Windows 98、またはWindows 95
Server
Windows Server 2003、Windows 2000 Server、またはWindows NT Server 4.0
Version
Internet Explorer 4.0以降
Header
BannerInspectionDownloadLib.hで宣言
Library
BannerInspectionDownload.libにリンク
DLL
BannerInspectionDownload.dll
Unicode
ANSIバージョンで実装
関連情報
SENSOR̲INFORMATION
5.2 StartInspection
StartInspection関数は、センサで新規検査を開始します。
BOOL StartInspection(
LPCSTR lpszSensorAddress,
STORAGE_LOCATION location
);
パラメータ
lpszSensorAddress
[in] センサのホスト名を指定する、NULL文字で終わる文字列のポインタ
です。
あるいは、文字列にセンサのIP番号をASCIIドット付き10進記法で含める
こともできます(例:11.0.1.45)。
Location
[in] 開始する検査のストレージロケーションです。RAMディスクにある検
査を開始するには、STORAGE̲LOCATION̲RAMDISK、またはゼロ(0)
を使用します。
戻り値
関数は正常に機能すると、TRUEを返します。
失敗すると、FALSEを返します。詳細なエラー情報を取得するには、
GetLastErrorを呼び出します。
例
StartInspectionの最小限の使用方法を示すサンプルコードを下記に示し
ます。
#include <iostream>
#include <tchar.h>
#include <windows.h>
#include "BannerInspectionDownloadLib.h"
int main(int argc, char *argv[])
{
if (StartInspection(argv[1], 2))
{
バナー・エンジニアリング・ジャパン
18
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
ファイル転送ユーティリティー
printf("Inspection in location 2 started.\n");
}
else
{
printf("StartInspection failed! Error code = %d\n", GetLastError());
}
}
要求事項
Client
Windows XP、Windows 2000 Professional、Windows NT Workstation 4.0、Windows Me、Windows 98、またはWindows 95
Server
Windows Server 2003、Windows 2000 Server、またはWindows NT Server 4.0
Version
Internet Explorer 4.0以降
Header
BannerInspectionDownloadLib.hで宣言
Library
BannerInspectionDownload.libにリンク
DLL
BannerInspectionDownload.dll
Unicode
ANSIバージョンで実装
関連情報
GetInspection、SaveInspection、STORAGE̲LOCATION
5.3 GetInspection
GetInspection関数は、センサから検査ファイルをダウンロードします。
BOOL GetInspection(
LPCSTR lpszSensorAddress,
STORAGE_LOCATION location,
LPCSTR lpszFileName
);
パラメータ
lpszSensorAddress
[in] センサのホスト名を指定する、NULL文字で終わる文字列のポインタ
です。
あるいは、文字列にセンサのIP番号をASCIIドット付き10進記法で含める
こともできます(例:11.0.1.45)。
Location
[in] ダウンロードする検査ファイルを格納するストレージロケーションで
す。RAMディスクに格納された検査ファイル(STORAGE̲LOCATION̲RAMDISK)は、ダウンロードできません。
lpszFileName
[in] ダウンロードした検査ファイルの保存先となるファイル名とパスで
す。
戻り値
関数は正常に機能すると、TRUEを返します。
失敗すると、FALSEを返します。詳細なエラー情報を取得するには、
GetLastErrorを呼び出します。
備考
センサに格納できるのは、.INS形式の検査ファイルのみです。
lpszFileNameの拡張子が.INPの場合、ダウンロードした検査ファイル
は.INS形式から.INP形式に自動的に変換されます。
例
GetInspectionの最小限の使用方法を示すサンプルコードを下記に示しま
す。
バナー・エンジニアリング・ジャパン
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
19
Presence PLUS ®
#include <iostream>
#include <tchar.h>
#include <windows.h>
#include "BannerInspectionDownloadLib.h"
int main(int argc, char *argv[])
{
if (GetInspection(argv[1], 2, "C:\\inspection.ins"))
{
printf("Inspection in location 2 downloaded to C:\\inspection.ins.\n")
;
}
else
{
printf("GetInspection failed! Error code = %d\n", GetLastError());
}
}
要求事項
Client
Windows XP、Windows 2000 Professional、Windows NT Workstation 4.0、Windows Me、Windows 98、またはWindows 95
Server
Windows Server 2003、Windows 2000 Server、またはWindows NT Server 4.0
Version
Internet Explorer 4.0以降
Header
BannerInspectionDownloadLib.hで宣言
Library
BannerInspectionDownload.libにリンク
DLL
BannerInspectionDownload.dll
Unicode
ANSIバージョンで実装
関連情報
StartInspection、SaveInspection、STORAGE̲LOCATION
5.4 SaveInspection
SaveInspection関数は、センサに検査ファイルをアップロードします。
BOOL SaveInspection(
LPCSTR lpszSensorAddress,
STORAGE_LOCATION location,
LPCSTR lpszFileName
);
パラメータ
lpszSensorAddress
[in] センサのホスト名を指定する、NULL文字で終わる文字列のポインタ
です。
あるいは、文字列にセンサのIP番号をASCIIドット付き10進記法で含める
こともできます(例:11.0.1.45)。
Location
[in] 検査ファイルのアップロード先となるストレージロケーションです。
検 査 フ ァ イ ル を R A M デ ィ ス ク に ア ッ プ ロ ー ド す る に は 、
STORAGE̲LOCATION̲RAMDISK、またはゼロ(0)を使用します。
lpszFileName
[in] センサにアップロードする検査ファイルのファイル名とパスです。
戻り値
関数は正常に機能すると、TRUEを返します。
失敗すると、FALSEを返します。詳細なエラー情報を取得するには、
GetLastErrorを呼び出します。
バナー・エンジニアリング・ジャパン
20
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
ファイル転送ユーティリティー
備考
センサに格納できるのは、.INS形式の検査ファイルのみです。
lpszFileName の拡張子が.INPの場合、検査は.INP形式から.INS形式に自
動的に変換されてから、センサにアップロードされます。
例
SaveInspectionの最小限の使用方法を示すサンプルコードを下記に示し
ます。
#include <iostream>
#include <tchar.h>
#include <windows.h>
#include "BannerInspectionDownloadLib.h"
int main(int argc, char *argv[])
{
if (SaveInspection(argv[1], 2, "C:\\inspection.ins"))
{
printf("Inspection at C:\\inspection.ins uploaded to sensor in location 2.\n");
}
else
{
printf("SaveInspection failed! Error code = %d\n", GetLastError());
}
}
要求事項
Client
Windows XP、Windows 2000 Professional、Windows NT Workstation 4.0、Windows Me、Windows 98、またはWindows 95
Server
Windows Server 2003、Windows 2000 Server、またはWindows NT Server 4.0
Version
Internet Explorer 4.0以降
Header
BannerInspectionDownloadLib.hで宣言
Library
BannerInspectionDownload.libにリンク
DLL
BannerInspectionDownload.dll
Unicode
ANSIバージョンで実装
関連情報
StartInspection、GetInspection、STORAGE̲LOCATION
バナー・エンジニアリング・ジャパン
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
21
Presence PLUS ®
6. ストラクチャー
6.1 SENSOR̲INFORMATION
SENSOR̲INFORMATION構造体は、GetInfo関数で照会されたセンサに
ついての情報を格納します。
typedef struct
{
LPSTR SensorName;
DWORD SensorNameLength;
LPSTR FirmwareVersion;
DWORD FirmwareVersionLength;
LPSTR CurrentInspectionFileName;
DWORD CurrentInspectionFileNameLength;
STORAGE_LOCATION CurrentInspectionLocation;
BOOL SystemError;
BOOL GuiAttached;
} SENSOR_INFORMATION;
typedef SENSOR_INFORMATION* LPSENSOR_INFORMATION;
Members
SensorName
センサの名前
SensorNameLength
SensorNameメンバーの長さ
FirmwareVersion
センサのファームウェアのバージョン
FirmwareVersionLength
FirmwareVersionメンバーの長さ
CurrentInspectionFileName
現在実行中の検査ファイルのファイル名
CurrentInspectionFileNameLength
CurrentInspectionFileNameメンバーの長さ
CurrentInspectionLocation
現在実行中の検査ファイルのストレージロケーション。現在実行中の検査
ファイルがない場合は、このパラメータの値はSTORAGE̲LOCATION̲NONE(-1)となります。
SystemError
センサにシステムエラーが発生しているかどうかを示します。
GuiAttached
センサにGUIが接続しているかどうかを示します。
戻り値
関数は正常に機能すると、TRUEを返します。
失敗すると、FALSEを返します。詳細なエラー情報を取得するには、
GetLastErrorを呼び出します。
例
SENSOR̲INFORMATION構造体の使用例については、GetInfoのトピッ
クをご参照ください
バナー・エンジニアリング・ジャパン
22
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
ファイル転送ユーティリティー
要求事項
Client
Windows XP、Windows 2000 Professional、Windows NT Workstation 4.0、Windows Me、Windows 98、またはWindows 95
Server
Windows Server 2003、Windows 2000 Server、またはWindows NT Server 4.0
Version
Internet Explorer 4.0以降
Header
BannerInspectionDownloadLib.hで宣言
Library
BannerInspectionDownload.libにリンク
DLL
BannerInspectionDownload.dll
Unicode
ANSIバージョンで実装
関連情報
GetInfo、STORAGE̲LOCATION
6.2 データタイプ
下記の表は、ファイル転送APIで使用するカスタムタイプの定義を示した
ものです。
項
説明
LPSENSOR̲INFORMATION
SENSOR̲INFORMATION構造体のポインタです。
この型は下記のようにBannerInspectionDownloadLib.hで宣言します。
Typedof SENSOR_INFORMATION* LPSENSOR_INFORMATION;
STRAGE̲LOCATION
センサ内のストレージロケーションです。
この型は下記のようにBannerInspectionDownloadLib.hで宣言します。
Tyepedof LONG, STORAGE_LOCATION;
バナー・エンジニアリング・ジャパン
TEL:06-6309-0411 http://www.bannerengineering.co.jp
P/N J20064Y
23
Presence PLUS ®
7. エラーコード
下表は、ファイル転送API固有のエラーコード一覧です。GetInfo、
StartInspection、GetInspection、またはSaveInspection関数が失敗
すると、GetLastError関数がこれらのエラーを返します。使用している
アプリケーションにエラーメッセージを取得するには、Windowsの
FormatMessage関数にFORMAT̲MESSAGE̲FROM̲HMODULEフラグ
を付けて使用します。
定数/値
説明
BANNER̲ERROR̲SENSOR̲UNREACHABLE
0xE0000000
センササーバーに接続できません。
BANNER̲ERROR̲SENSOR̲SERVER
0xE0000001
センササーバーが予期しない応答を返しました。
BANNER̲ERROR̲INVALID̲LOCATOIN
0xE0000002
ロケーションパラメータが範囲外です。
BANNER̲ERROR̲INSUFFICIENT̲STRAGE
0xE0000003
検査ファイルに十分なストレージがセンサにありません。
BANNER̲ERROR̲INVALID̲INSPECTION̲FILE
0xE0000004
検査ファイルは有効な検査コンテナではありません。
BANNER̲ERROR̲INVALID̲INSPECTION̲TYPE
0xE0000005
検査ファイルの型がこのセンサには適合しません。
BANNER̲ERROR̲INSPECTION̲EXECUTING
0xE0000006
このロケーションにある検査は既に実行中です。
BANNER̲ERROR̲INSPECTION̲NOT̲TRANSFERRED
0xE0000007
検査ファイルをセンサに転送できませんでした。
BANNER̲ERROR̲INVALID̲INP
0xE0000008
検査ファイルは有効な.INPファイルではありません。
BANNER̲ERROR̲INP̲CONVERSION
0xE0000009
INPファイルの読み込み/書き出し時の変換エラーです。
BANNER̲ERROR̲INS̲CONVERSION
0xE000000A
一時.INPファイルの読み込み/書き出し時の変換エラーです。
保証:製品保証期間は1年と致します。当社の責任により不具合が発生した場合、保証
期間内にご返却頂きました製品については無償で修理または代替致します。ただし、お
客様によりダメージを受けた場合や、アプリケーションが適切でなく製品動作が不安定
な場合等は、保証範囲外とさせて頂きます。
ご注意:本製品および本書の内容については、改良のため予告なく変更することがあります。
Printed in Japan
07/06
J20064Y