1

時間ベースのシミュレーションに 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())

これはうまくいきます。ただし、実際には、メッセージャで処理する必要があるイベントが複数あるため、メッセージャがイベントのリストで原因となるイベントの signalparam を返すようにします。

messageEvents = [Event1,Event2,Event3]

class Messager(Process):
    def __init__(self):
        Process.__init__(self,'messager')

    def monitor(self):
        while True:
            yield waitevent, self, messageEvents
            .....

発生したイベントの signalparam にアクセスするにはどうすればよいですか?

4

1 に答える 1

0

simpy のソース、特に Simevent クラスのソースを見ると、どうにかしてイベントを Simevent クラスにキャストできれば、そこから属性信号パラメーターを取得できるはずです。これが可能かどうかはわかりませんが、これを行う方法を知っていることを願っています。幸運を。

編集: これも考えてみてください。simpy を編集して、Simevent クラスに signalparam を取得する関数を持たせることができます。これを行う場合の参考までに、simevent クラスは lib.py ファイルにあります。

于 2012-09-25T07:00:24.433 に答える