我正在编写一个程序,它将命令代码发送到串行设备并从设备获取响应,然后发送另一个命令。我可以完美地发送命令,甚至可以得到响应。但是,我的if语句似乎没有承认回复。
示例:
response = sendCommand(beep)
if response == '0D6010100':
print"Command beeped!"
就像我提到的,我得到了一个成功的响应代码0D6010100,但if语句不承认它。有什么想法吗?
我正在使用Python 2.7并使用PySerial
UDPATE:
打印类型(响应)给了我: print repr(响应)给了我:'0D6010100 \ r \ n' 我假设repr(响应)末尾的\ r \ n在这个问题上有一些帮助吗?
答案 0 :(得分:2)
如您所料,最后\r\n
是问题所在。做
response = sendCommand(beep).strip()
从字符串末尾删除空格。
答案 1 :(得分:2)
您需要先修改响应:
if response.rstrip() == '0D6020100':
print 'beepity boop beep woohoo!'