以简洁的方式获取事件的信号参数

时间:2012-09-04 14:07:32

标签: python simpy

我正在使用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
            .....

如何访问已发生的事件的信号参数?

1 个答案:

答案 0 :(得分:0)

查看simpy的源代码,特别是Simevent类,如果你能以某种方式将事件转换为Simevent类,那么你应该能够从中获取属性信号param。不确定这是否可行,但希望你知道这样做的方法。祝你好运。

编辑: 想到这一点,你可以编辑你的simpy并让Simevent类有一个函数来获取signalparam。仅供参考,如果你想这样做,simevent类位于lib.py文件中。