当我的软件通过串行连接与收据打印机通话时,它会遇到许多看似毫无意义的消息,可能是噪音。任何人都可以帮我确定发生了什么事吗?我需要回复吗?我可以忽略它并继续吗?
一些配置信息:
我的电脑:
{'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'
答案 0 :(得分:1)
它遇到了许多看似毫无意义的消息
通过串行异步线接收总垃圾通常是波特率问题。
通过串行异步线接收随机垃圾通常是一个框架问题,例如不匹配的奇偶校验。
您的电脑
奇偶= 'N'
您的打印机
'胎次':'E'
ERGO您的奇偶校验设置(无与偶数)和帧大小(10位与11位)不匹配。
答案 1 :(得分:0)
有许多潜在的原因。首先,你能获得任何好的数据吗?还是全是垃圾?如果它都是垃圾,那么波特率不匹配是一个常见问题。除此之外,有几件事需要检查: