我正在使用SimPy进行基于时间的模拟。
我有一个Messager进程,它监听特定事件,并在事件发生时返回该事件的参数:
class Messager(Process):
def __init__(self):
Process.__init__(self,'messager')
def monitor(self):
while True:
yield waitevent, self, messageEvent
print messageEvent.signalparam
messager = Messager()
activate(messager,messager.monitor())
这很好用。但是,实际上有多个事件应由Messager处理,我希望Messager在事件列表中返回致使事件的signalparam:
messageEvents = [Event1,Event2,Event3]
class Messager(Process):
def __init__(self):
Process.__init__(self,'messager')
def monitor(self):
while True:
yield waitevent, self, messageEvents
.....
如何访问已发生的事件的信号参数?
答案 0 :(得分:0)
查看simpy的源代码,特别是Simevent类,如果你能以某种方式将事件转换为Simevent类,那么你应该能够从中获取属性信号param。不确定这是否可行,但希望你知道这样做的方法。祝你好运。
编辑: 想到这一点,你可以编辑你的simpy并让Simevent类有一个函数来获取signalparam。仅供参考,如果你想这样做,simevent类位于lib.py文件中。