2012-01-26 135 views
1

我使用这个脚本:为什么我用Python读取RFID读取器的奇怪输出?

import serial 

ser = serial.Serial('/dev/ttyUSB0') 
print 'Running..' 
while True: 
    a=ser.read()  # write a string 
    if a is not "": 
     print str(a) 
     break 

ser.close() 

..和IM时运行脚本我得到这样的输出:

/Documents/python$ python rfid.py 

正如你可以看到我得到这个奇怪的盒子,而不是的ID字符串,所以我猜它必须做一些编解码器?编辑:其实你不能在这里看到它,但我说的是框包含三个零和一个两个,像这样:

0 0 
0 2 
+1

你不应该用'is'或'not'来检验是否相等,只能用于身份,最常用'None'。 Pythonic(推荐)的方式是'如果a:'。 – MRAB 2012-01-27 02:27:06

回答

1

你所看到的,由于U + 0002不是一个可打印字符。你正在收到来自设备的消息(部分?)的0x02;您可以使用od来查看脚本输出的整个消息。如果您没有想到,那么您可能需要确保您已使用setserial为串行线路设置适当的属性。

+0

我是一个初学者与Python和串行通信..你如何使用setserial?我在Ubuntu Linux机器上,如果有什么可说的。 – TM89 2012-01-26 23:50:23