如何解码来自条形码扫描器的原始数据(非 ascii 字符)
How to decode raw data (non-ascii char) from a barcode scanner
我和我的开发团队有一个项目......我们使用手持条码扫描仪。为了完成这项工作,我们必须将条码扫描仪信号转换为原始数据,并通过 RS232 将该数据发送到我们的 PC,然后使用 VB.net 应用程序对其进行处理。我已经得到了要处理的原始数据,问题是原始数据只包含从 220 到 255 的不可打印的 ascii 字符。我的问题是有什么方法可以将原始数据解码为有意义的可打印 ascii (使用 java、ruby 等任何语言)?
使用的扫描仪是Solutions BS100。
扫描仪的默认设置是通过 USB 输出它的数据,它被自动检测为 HID 键盘,这不是一种常见的方法,但有时作为我团队的工程师,我会尝试另一种方法。所以我认为我正确地捕获了它,需要一个用于串行连接的自定义硬件。我删除了默认的 USB 端口并使用 MAX487 IC 将其更改为 rj45 信号,然后将其转换回 rs232 电平,这样我就可以将信号直接馈送到我的 PC 的 COM1
返回数据:
250 224 250 221 255 224 221 255 248 224 248 221 255 224 253 255 221 255 224 221 255 221 255 224 221 255 253 255 224 221 255 221 255 224 253 255 253 255 224 221 255 221 255 224 253 255 246 224 246 233 224 233
图片来源:
如果您将扫描仪电缆从 USB 更改为串行配置,您通常需要将扫描仪接口配置为使用串行连接(请参阅此 example)。配置串行接口后,您应该会返回 ASCII 字符 (49 48 49 48 48 48 48 48 48 55 51)。
我和我的开发团队有一个项目......我们使用手持条码扫描仪。为了完成这项工作,我们必须将条码扫描仪信号转换为原始数据,并通过 RS232 将该数据发送到我们的 PC,然后使用 VB.net 应用程序对其进行处理。我已经得到了要处理的原始数据,问题是原始数据只包含从 220 到 255 的不可打印的 ascii 字符。我的问题是有什么方法可以将原始数据解码为有意义的可打印 ascii (使用 java、ruby 等任何语言)?
使用的扫描仪是Solutions BS100。 扫描仪的默认设置是通过 USB 输出它的数据,它被自动检测为 HID 键盘,这不是一种常见的方法,但有时作为我团队的工程师,我会尝试另一种方法。所以我认为我正确地捕获了它,需要一个用于串行连接的自定义硬件。我删除了默认的 USB 端口并使用 MAX487 IC 将其更改为 rj45 信号,然后将其转换回 rs232 电平,这样我就可以将信号直接馈送到我的 PC 的 COM1
返回数据:
250 224 250 221 255 224 221 255 248 224 248 221 255 224 253 255 221 255 224 221 255 221 255 224 221 255 253 255 224 221 255 221 255 224 253 255 253 255 224 221 255 221 255 224 253 255 246 224 246 233 224 233
图片来源:
如果您将扫描仪电缆从 USB 更改为串行配置,您通常需要将扫描仪接口配置为使用串行连接(请参阅此 example)。配置串行接口后,您应该会返回 ASCII 字符 (49 48 49 48 48 48 48 48 48 55 51)。