コンテンツへスキップ

Barcode Scanner Emulator

バーコードスキャナーの ENTER と TAB の接尾辞

接尾辞は、スキャナーが復号したバーコードデータの直後に送るキー入力です。正しい接尾辞を選び、アプリで正しく扱うことは、スキャナー連携の不具合で最も多い原因の一つです。

接尾辞とは何か、スキャナーがそれを送る理由

スキャナーは区切りを持たない生のキー入力としてデータを出すため、明示的な終端のキー入力を付けない限り、受信側アプリケーションはスキャンが完了したことを確実に知る方法がありません。その終端が接尾辞です。接尾辞がなければ、アプリケーションは無操作のタイムアウトで完了を推測する必要があり、より遅く、信頼性も低くなります。

ENTER(CR)

最も一般的な接尾辞です。Enter/Return キーとして送られ、ASCII のキャリッジリターン 0x0D に対応します。大半の HTML フォームでは、単一のテキスト入力の中で Enter を押すと、それを囲むフォームが送信されます。そのため ENTER は、検索ボックスや単一フィールドの検索のような「スキャンして送信」のワークフローに自然に合います。

TAB

Tab キーとして送られ、0x09 です。フォームを送信するのではなく、Tab はフォーカスを次のフォーカス可能な要素へ移します。この接尾辞は、商品コードをスキャン → 数量フィールドへ自動で進む → 次の商品をスキャンする、といった複数ステップのデータ入力で好まれます。早すぎる送信を引き起こしません。

CR/LF の組と接尾辞なし

スキャナーによっては、完全な CR+LF の組を送るよう設定できます(端末やシリアル形式のアプリケーションへ渡すときに一般的です)。接尾辞をまったく付けない設定もでき、その場合はアプリケーションが入力のタイミングでスキャン完了を検出する必要があります。

POS と Web アプリでこれが重要な理由

誤った接尾辞は、非常に具体的で分かりにくい不具合を生みます。複数フィールドのフォームで ENTER 接尾辞を使うと、数量や割引のフィールドを埋める前にフォームが送信されることがあります。単一の検索ボックスのワークフローで TAB 接尾辞を使うと、送信を起こすものが何もないため検索が実行されません。工場出荷時の既定のままにせず、ワークフローに接尾辞を合わせることが不可欠です。

接尾辞の動作をテストする方法

バーコード入力テスター にスキャンします。スキャンの末尾で ENTER または TAB が検出されたかを明示的に報告します。関係する正確なキーコードを見る必要がある場合(たとえば CR と LF を区別する)は、代わりに キーボードイベントテスター を使います。

スキャナーの接尾辞を変更する

接尾辞の動作はスキャナー側の設定で、メーカーのソフトウェアユーティリティか、スキャナーのマニュアルに印刷された特別な設定用バーコードをスキャンして設定します。一般的な設定手順は バーコードスキャナーの設定 ガイドを参照してください。