读取连接到HA7E的1线设备的温度

时间:2012-05-25 18:28:12

标签: python

我试图通过向1线适配器发出ascii命令来读取1线设备的温度。问题是ser.write('W0144')需要回车但代码不是出于某种原因发送它。命令ser.read(32)返回A69000001CFD7E328应该返回44(来自HA7E ascii命令/ manual。如果我在Windows XP超级终端中输入两个ser.write命令(没有/ r),它可以正常工作。

我一直在这一周(是的,我是新手),我很难过。我尝试过不同的超时和时间。但是没有快乐。有人可以提出建议吗?

import serial
import time
ser = serial.Serial(port = 'COM1', baudrate=9600, bytesize=8, parity=serial.PARITY_NONE, stopbits=1, timeout=0)
#show the port is open
print ser.isOpen()
ser.write('A69000001CFD7E328')
time.sleep(1)
ser.write('WO144/r')
ser.read(32)
ser.close()

1 个答案:

答案 0 :(得分:2)

python中的转义码需要反斜杠:

>>> ord('\r')
13

您要发送两个字符,一个'/'和字母'r':

>>> len('\r')
1
>>> len('/r')
2
>>> list('/r')
['/', 'r']