我正在使用这个库来处理一个PN5180射频识别阅读器:
https://github.com/fservida/pyPN5180
对于我所理解的,包含一个名为inventory()的函数,它返回多达16张检测到的卡片的列表。您将其放入一个循环中,以便使其更新。
我希望能够在不同时间测试列表中有多少张卡片,并返回一些in。
因此,我尝试将循环函数放入线程中,但我不知道如何将其作为全局变量进行更新,以便在主程序中进行测试。
def ListeningCards():
print("listening to card thread started")
while True:
global cards
cards = PN5180().inventory()
cardcount = len(cards)
th1 = threading.Thread(target = ListeningCards)
th1.start()
#main progam:
while true
#etc那么,我怎样才能不断地监听rfid芯片并在我的主程序中返回它呢?我试过多线程,但也许还有其他方法?
发布于 2022-05-17 17:29:00
cards在第一次运行ListeningCards循环之前是未定义的。程序可能需要几毫秒才能开始运行。如果您的主程序在cards第一次有机会设置它之前访问ListeningCards,那么您将得到一个未定义的变量。
您可能只想将cards = 0设置在程序的顶部,或者类似的东西,这样它就有了一个默认值。
https://stackoverflow.com/questions/72278216
复制相似问题