我收到了带有 UHF Ant 的 FM-503。我可以通过 pyserial 连接。我试图向读者发送命令,起初我只想做一些基本的事情,这样我就可以更好地理解 python 中的通信。我正在构建一个 RFID 阅读器,可以绑在我们房车停车场的高尔夫球车上。
使用带有 Python3 的 Windows PC,在 Sublime 中编辑。
我不是高级程序员,但我决心学习。我试图通过命令来获取固件版本。根据阅读器文档,它使用 ASCII 格式。命令应该是 V.
这是我目前所拥有的。
'''
#First attempt to connect to FM350 through python
import serial
import time
#configure port
ser = serial.Serial(
port ='COM12',
baudrate = 38400,
timeout = 1,
parity = serial.PARITY_NONE,
stopbits = serial.STOPBITS_ONE,
bytesize = serial.EIGHTBITS
)
while 1:
y = ser.read(ser.inWaiting())
time.sleep(0.01)
print(y)
ser.write(b'<LF>V<CR>')
'''
下面是python3吐出来的内容
--snip--
b''
b'\nX\r\n'
b''
b''
b''
b''
--snip--
根据文档 'X' = none command match,请看下图:
我认为错误的地方:
我没有正确编码,无法向读者发送正确的命令。
非常感谢任何建议或研究地点。
正确的字节只是
0x56 0x0D
,它将返回固件版本,例如0x0A 0x58 0x0D 0x0A
线
ser.write(b'<LF>V<CR>')
应该修改成
ser.write(serial.to_bytes([0x0A 0x56 0x0D])')
.
你让你的代码工作了吗?我将 FM-503 用于我正在进行的几个项目,并最终在堆栈中寻找有关 RSSI 读数的信息。
无论如何,我的 git 上有一个 python 代码运行良好,读取标签并将 EPC 和时间戳记录到 csv 中,如果允许我链接,请告诉我一些设置选项。
否则你是正确的,编码是关闭的
ser.write(b'<LF>V<CR>')
应该是ser.write(b'\nV\r')
所以如果你的命令看起来像这样
ser.write(b'\nR2,0,6\r')
返回将是你的 RFID 标签的 TID,如果你把 TID 放入 gs1.org 的 TID 解码器,你可以得到你的制造商名称然后你可以搜索数据表标签,以便您知道用户内存的大小(如果存在)。
我正在使用带Arduino UNO的FM-503,读取标签信息的代码应该是什么 对于 Phyton,你说 ser.write(serial.to_bytes([0x0A 0x56 0x0D])')