【问题标题】:Pyserial: emulate a RS232 barcode scannerPyserial:模拟 RS232 条码扫描器
【发布时间】:2015-10-29 23:59:28
【问题描述】:

我有一个可以配备串行条形码扫描仪 (EAN13) 的收银机,我想使用真正的 RS232 (DB9) 端口直接从 Odoo (OpenERP) 发送代码。我已经连接了电缆,但我不知道如何将代码发送到机器。我的意思是我知道 Pyserial 的基本工作原理,但我不知道配置是否正确,因为 ELGIN(生产者)不共享任何类型的技术信息。我所知道的是该设备与任何 EAN13 串行 BC 扫描仪兼容。 我使用的设置如下:

--- Settings: /dev/ttyS0 9600,8,N,1 --- RTS: active DTR: active BREAK: inactive --- CTS: inactive DSR: inactive RI: active CD: inactive --- software flow control: inactive --- hardware flow control: inactive --- data escaping: raw linefeed: CR/LF

这就是我尝试将代码发送到收银机的方式:

import serial
ser = serial.Serial(0)  
print ser.name          
ser.write("1001000000006")     
ser.close()

由于似乎是“单向通信”,因此我没有弄清楚错误在哪里,因为 Pyhton 发送代码并退出而没有错误。有什么建议吗?

【问题讨论】:

  • 您需要将一个真正的条形码扫描仪连接到一个测试程序,以便您可以验证端口参数并捕获它发送的确切序列。这将为您提供一个起点,以了解您的实现与扫描仪有何不同。
  • 我担心你是对的。但我试图避免它,因为这将是一个不必要的硬件......我会看看我是否能找到它几天来测试它。谢谢。

标签: python serial-port barcode pyserial


【解决方案1】:

大多数 RS232 条码扫描器都以原始格式发送 EAN,但采用逐行格式。每行必须以\r\n 结尾。

【讨论】:

  • 谢谢,但它仍然无法使用 ser.write("1001000000006\r\n")。问题是我没有收银机的任何输出。
  • 尝试writeln,但不确定它是否在那里实现
  • 没有。在 Python 中只有 write():stackoverflow.com/questions/2575619/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-30
  • 2019-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多