スキャナー デバイスは、バー コードのデータを読み取るために使われます。
スキャナーは、次のように排他的に使われるデバイスです。
- アプリケーションは、デバイスを有効にする前にそれを要求する必要があります。
- アプリケーションは、デバイスが入力の読み取りを始める前に、デバイスを要求して有効にする必要があります。
スキャナー オブジェクトは、イベント ドリブン入力の一般的なモデルに従います。
- デバイスから入力を受け取ると、Microsoft ヘルパー メソッド ScannerBase.GoodRead を使って DataEvent イベントがキューに登録されます。 デバイスが不適切なデータを受け取った場合、サービス オブジェクトは ScannerBase.FailedRead を呼び出すことによって、ErrorEvent イベントをキューに登録することもできます。
- PosCommon.AutoDisable プロパティが true に設定されている場合、ScannerBase クラスは PosCommon.EnableDevice プロパティを false に設定します。 サービス オブジェクトがこのメソッドを実装している場合は、適切にデバイスを無効にする必要があります。
キューに登録された DataEvent イベントは、ScannerBase.DataEventEnabled プロパティが true に設定されている場合にのみアプリケーションに配信されます。
- Unified Point Of Service (UnifiedPOS) の仕様では、受信した DataEvent のデータを、アプリケーションに配信する前に、対応するプロパティにコピーする必要があります。 DecodeData プロパティが true に設定されている場合は、DataEvent をアプリケーションに配信する直前に呼び出される ScannerBase.PreFireEvent メソッドで ScannerBase.DecodeScanDataLabel と ScannerBase.DecodeScanDataType を呼び出すことによってこの要件を満たします。 通常、これらのメソッドをサービス オブジェクトで実装する必要があります。
- スキャンされたデータは Scanner.BaseScanData プロパティに格納されます。 アプリケーションで ScannerBase.DecodeData プロパティを true に設定した場合、データは ScannerBase.ScanDataLabel と ScanDataType プロパティにデコードされます。
- DataEvent がアプリケーションに配信される前に、ScannerBase.DataEventEnabled プロパティが false に設定されます。 これにより、現在の DataEvent の処理が完了するまで、それ以上 DataEvent がアプリケーションに配信されなくなります。 受信イベントを処理する準備ができたら、アプリケーションで ScannerBase.DataEventEnabled を true に設定します。
- ScannerBasic.DataCount プロパティを読み取って、キューに登録されたイベントの合計数を取得できます。
- ScannerBasic.ClearInput メソッドを呼び出すことで、キューに登録されているすべてのイベントを削除できます。
このセクションの内容
データのデコード: デバイス固有のデータをデコードするために必要なコードについて説明します。
スキャナーのイベント: スキャナー サービス オブジェクトが POS for .NET のキューを使ってアプリケーションに対するイベントを発生させる方法を示します。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET