通过串行连接与打印机通话时产生噪音

时间:2012-10-05 00:27:07

标签: python printing serial-port flow-control

当我的软件通过串行连接与收据打印机通话时,它会遇到许多看似毫无意义的消息,可能是噪音。任何人都可以帮我确定发生了什么事吗?我需要回复吗?我可以忽略它并继续吗?

一些配置信息:

我的电脑:

{'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'

2 个答案:

答案 0 :(得分:1)

  

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

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

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

您的电脑

  

奇偶= 'N'

您的打印机

  

'胎次':'E'

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

答案 1 :(得分:0)

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

  1. 验证您的通讯设置。您正在指定软件流控制。你确定这是对的吗?
  2. 验证您的电缆和/或连接。电缆好吗?连接器怎么样?电缆有多长?附近是否有强噪声源?
  3. 如何将打印机连接到计算机?它是真正的COM端口吗?或者它是USB转RS-232转换器电缆之一?您是连接到笔记本电脑还是台式机?笔记本电脑经常使用+/- 5V而不是真正的+/- 12V RS-232信号来“伪造”RS-232信号。因此,通信可能更容易受到噪音的影响。