先正常工作后的 TypeError 和 RuntimeError 运行

TypeError and RuntimeError after working fine first run

我正在使用这个 Mercury API https://github.com/gotthardp/python-mercuryapi 来读取 RFID 标签。

当运行使用下面的简单示例代码时,代码在成功执行 1 次后产生错误:

#!/usr/bin/env python3
from __future__ import print_function
import time
import mercury
reader = mercury.Reader("tmr:///dev/ttyUSB0", baudrate=115200)

print(reader.get_model())
print(reader.get_supported_regions())

reader.set_region("EU3")
reader.set_read_plan([1], "GEN2", read_power=1900)
print(reader.read())

reader.start_reading(lambda tag: print(tag.epc, tag.antenna, tag.read_count, tag.rssi))
time.sleep(1)
reader.stop_reading()

在第一个 运行 处,代码执行得很好,可以读取 RFID 标签。

M6e Nano
[u'NA2', u'NA3', u'IN', u'JP', u'PRC', u'EU3', u'KR2', u'AU', u'NZ', u'open']
['E20040057307013122103116']
E20040057307013122103116 1 1 -36
E20040057307013122103116 1 1 -36
E20040057307013122103116 1 1 -36
E20040057307013122103116 1 1 -36

运行 它再次导致:

Traceback (most recent call last):
  File "test.py", line 5, in <module>
    reader = mercury.Reader("tmr:///dev/ttyUSB0", baudrate=115200)
TypeError: No such file or directory

运行 有时会再次导致:

Traceback (most recent call last):
  File "test.py", line 5, in <module>
    reader = mercury.Reader("tmr:///dev/ttyUSB0", baudrate=115200)
TypeError: Permission denied

运行 然后从 sudo 给出 RuntimeError:

M6e Nano
[u'NA2', u'NA3', u'IN', u'JP', u'PRC', u'EU3', u'KR2', u'AU', u'NZ', u'open']
Traceback (most recent call last):
  File "test.py", line 12, in <module>
    print(reader.read())
RuntimeError: Timeout

关于如何解决这些问题有什么想法吗?

Update 关闭了 reader 一段时间,同样的行为再次发生。第一次工作然后进入 TypeError。会不会是第一次使用后路径"tmr:///dev/ttyUSB0"变了?

Update 在 Raspberry Pi 3 上尝试了 运行ning 它,我遇到了同样的问题。运行时错误:超时

问题是 RFID reader 没有收到足够的电力。我为它提供了 5V 而不是 3.3V,这解决了这个问题。