次の方法で共有


スキャナーの実装 (POS for .NET v1.14 SDK ドキュメント)

スキャナー デバイスは、バー コードのデータを読み取るために使われます。

スキャナーは、次のように排他的に使われるデバイスです。

  • アプリケーションは、デバイスを有効にする前にそれを要求する必要があります。
  • アプリケーションは、デバイスが入力の読み取りを始める前に、デバイスを要求して有効にする必要があります。

スキャナー オブジェクトは、イベント ドリブン入力の一般的なモデルに従います。

  • デバイスから入力を受け取ると、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.DecodeScanDataLabelScannerBase.DecodeScanDataType を呼び出すことによってこの要件を満たします。 通常、これらのメソッドをサービス オブジェクトで実装する必要があります。
  • スキャンされたデータは Scanner.BaseScanData プロパティに格納されます。 アプリケーションで ScannerBase.DecodeData プロパティを true に設定した場合、データは ScannerBase.ScanDataLabelScanDataType プロパティにデコードされます。
  • DataEvent がアプリケーションに配信される前に、ScannerBase.DataEventEnabled プロパティが false に設定されます。 これにより、現在の DataEvent の処理が完了するまで、それ以上 DataEvent がアプリケーションに配信されなくなります。 受信イベントを処理する準備ができたら、アプリケーションで ScannerBase.DataEventEnabledtrue に設定します。
  • ScannerBasic.DataCount プロパティを読み取って、キューに登録されたイベントの合計数を取得できます。
  • ScannerBasic.ClearInput メソッドを呼び出すことで、キューに登録されているすべてのイベントを削除できます。

このセクションの内容

  • データのデコード: デバイス固有のデータをデコードするために必要なコードについて説明します。

  • スキャナーのイベント: スキャナー サービス オブジェクトが POS for .NET のキューを使ってアプリケーションに対するイベントを発生させる方法を示します。