1

当我的软件通过串行连接与收据打印机通信时,它会遇到很多看似毫无意义的消息,可能是噪音。谁能帮我确定发生了什么?我需要对此作出回应吗?我可以忽略它并继续吗?

一些配置信息:

我的电脑:

{'baudrate': '9600', 'flowcontrol': 'XON/XOFF', 'port': 'CNCB0'}
Serial<id=0x17ab1b0, open=True>(port='\\\\.\\CNCB0', baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=0.01, xonxoff=1, rtscts=0, dsrdtr=0), printer: Serial<id=0x17ab290, open=True>(port='\\\\.\\COM1', baudrate=9600, bytesize=8, parity='E', stopbits=1, timeout=0.01, xonxoff=1, rtscts=0, dsrdtr=0)

打印机:

{'parity': 'E', 'baudrate': '9600', 'bytesize': '8', 'brand': 'Epson', 'stopbits': '1', 'flowcontrol': 'XON/XOFF', 'interface': 'Serial', 'port': '1'}

我的电脑通过发送打印机启动

'\x1bv' 

然后我的电脑不断循环发送打印机

'\x1bv\x1bv\x1bv\x1bv\x1bv\x1bv\x1bv\x1bv\x1bv\x1bv\x1bv\x1bv\x1bv\x1bv\x1bv\x1bv\x1bv\x1bv\x1bv\x1bv\x1bv' 

和打印机回复

'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
4

2 回答 2

1

它遇到了很多看似毫无意义的消息

通过串行异步线路接收全部垃圾通常是波特率问题。

通过串行异步线路接收随机垃圾通常是一个帧问题,例如不匹配的奇偶校验。

你的电脑

奇偶校验='N'

您的打印机

'平价':'E'

ERGO,您的奇偶校验设置(无与偶数)和帧大小(10 位与 11 位)不匹配。

于 2012-10-06T02:23:43.197 回答
0

有许多潜在的原因。首先,你能得到任何好的数据吗?还是全是垃圾?如果都是垃圾,那么波特率不匹配是一个常见问题。除此之外,还有几件事需要检查:

  1. 验证您的通讯设置。您正在指定软件流控制。你确定这是正确的吗?
  2. 验证您的电缆和/或连接。电缆好吗?连接器呢?电缆有多长?附近是否有强噪声源?
  3. 您如何将打印机连接到计算机?它是一个真正的 COM 端口吗?或者它是 USB 到 RS-232 转换器电缆之一?您是连接到笔记本电脑还是台式机?通常,笔记本电脑使用 +/- 5V 之类的东西“伪造”RS-232 信号,而不是真正的 +/-12V RS-232 信号。结果,通信可能更容易受到噪声的影响。
于 2012-10-05T17:00:29.613 回答