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),请改用键盘事件测试器。
更改扫描器上的后缀
后缀行为是扫描器侧设置,可通过厂商软件工具配置,或扫描手册中印制的专用配置条码。一般配置过程见条码扫描器配置。