我对我之前提出的问题有一个补充问题,如有必要,您可以参考:
Long term instrument data acquisition with Python - Using "While" loops and threaded processes
我已经通过了一堆SO问题和其他阅读,并提出了一个运行良好的代码块,尽管它非常初级:
import ue9
import LJ_Util
import DAQ_Util
import threading
import Queue
queue = Queue.Queue()
def ljThread(ue9ipAddr):
print '\nExecuting in ljThread...'
a = ue9.UE9(ethernet=True, ipAddress=ue9ipAddr)
reading = a.feedback()
queue.put(reading)
print "Opening device...\n",
# Opens a UE9 at IP Address 192.168.1.127
ipAdd = '192.168.1.127'
feedbackThread = threading.Thread(target=ljThread, args=(ipAdd,))
feedbackThread.start()
outcome = queue.get()
print outcome
print "\nDone"我的问题是,我想使用单独的线程来访问对象ue9.UE9的不同实例中的信息,该对象绑定到一个数据采集单元。我防止每个单元返回不同的数据,但我需要将正确的数据与正确的单元相关联。有没有人能告诉我通过queue对象回溯数据源的正确方法?
提前感谢各位的帮助!
发布于 2012-09-01 11:13:21
修改您的ljThread函数以返回标识信息(例如它正在检查的IP地址)以及它读取的数据应该非常容易。只需将最后一行替换为:
queue.put((ue9ipAddr, reading))然后,当您从队列中获取结果时,执行以下操作:
ip, outcome = queue.get()然后,您可以使用该IP来执行您需要执行的任何操作。
https://stackoverflow.com/questions/12223568
复制相似问题