2

スキャナーを使用してバーコードを読み取る作業を行っていますが、次の質問があります。

  • キーボードからの入力とスキャナからの入力を区別する方法はありますか? バーコード リーダーにはプリアンブル、ターミネータ、およびバーコード値のプレフィックスが含まれるため、これが必要です。たとえば、値が 12345 の場合、バーコードには \pre12345\ が含まれます。ここで、\ と \ は開始と終了を示し、pre はデータの種類を識別します。データがスキャナーからではなくキーボードから入力されていることがわかっている場合は、ユーザーが入力したものを表示します。データがスキャナーからのものであることがわかっている場合は、\pre と \ を取り除き、データのみを表示します。

ありがとう、

4

3 に答える 3

2

私の答えは、キーボードを単にエミュレートし、特別な接続を持たない「キーボードウェッジ」モードでバーコードスキャナーを使用していることを前提としています。これらのデバイスは多くの場合 USB であり、それ以上の構成を行わなくてもそのまま使用できます。

ユーザーが実際に\preテキストを入力する機会はありますか? 多くの場合、プレフィックスは、ユーザーが決して入力しないか、少なくともほとんど入力したくない文字セットになるように特別に選択されます。したがって、プレフィックスが存在するだけで、スキャンされたバーコードが示されます。

別のオプションは、入力の時間を計ることです。たとえば、バーコード スキャナからの入力は、おそらく非常に短い時間 (たとえば 50ms) ですべて完了します。ユーザーがキーボードから値を入力している場合、プレフィックス、データ、およびポストフィックスをすべて 50 ミリ秒以内に入力することは不可能です。(もちろん、ここでの仮定は、自動化されたツールではなく、実際の人間によって入力が行われるということです)

于 2009-08-25T17:30:52.853 に答える
0

私が思いついた解決策の 1 つは、すべてのバーコードを、ユーザーが知らない固有の文字シーケンスで開始することでした。入力でこのシーケンスをチェックして、データがどのように入力されたかを教えてくれます。

于 2009-12-16T15:35:55.170 に答える
0

はい、そうです!バーコード スキャナからの入力は、最初に COM ポートまたはシリアル接続を介して自身を初期化する必要があります。多くのアプリが特定のポートを介した特定のフィールドへの入力を制限していることは知っていますが、それ以上のことはわかりません。

于 2009-08-25T01:43:38.277 に答える