Browse Source

Store names for each network component

Yentl Van Tendeloo 9 years ago
parent
commit
95c7a0d05a
1 changed files with 16 additions and 3 deletions
  1. 16 3
      model/model.py

+ 16 - 3
model/model.py

@@ -112,6 +112,7 @@ class ModelverseState(AtomicDEVS):
 class MvKState(object):
     def __init__(self):
         self.mvk = None
+        self.waiting = False
 
 class ModelverseKernel(AtomicDEVS):
     def __init__(self):
@@ -135,13 +136,21 @@ class ModelverseKernel(AtomicDEVS):
 
         return self.state
 
+    def intTransition(self):
+        if self.state.mvk is None:
+            self.state.waiting = True
+
+        return self.state
+
     def outputFnc(self):
         if self.state.mvk is None:
             # Ask the root first
             return {self.to_mvs: [("RR", [])]}
 
     def timeAdvance(self):
-        if self.state.mvk is None:  
+        if self.state.waiting:
+            return float("inf")
+        elif self.state.mvk is None:  
             return 0
         else:
             return float("inf")
@@ -202,8 +211,8 @@ class NetworkState(object):
         self.timer = float("inf")
 
 class Network(AtomicDEVS):  
-    def __init__(self, latency, bandwidth):
-        AtomicDEVS.__init__(self, "Network")
+    def __init__(self, name, latency, bandwidth):
+        AtomicDEVS.__init__(self, name)
         self.state = NetworkState()
 
         self.input_port = self.addInPort("input_port")
@@ -285,18 +294,22 @@ class System(CoupledDEVS):
                             delete_edge         = delete_edge
                         ))
         self.mvi2mvk = self.addSubModel(Network(\
+                            name        = "mvi2mvk",
                             latency     = mvi2mvk_latency,
                             bandwidth   = mvi2mvk_bandwidth
                         ))
         self.mvk2mvs = self.addSubModel(Network(\
+                            name        = "mvk2mvs",
                             latency     = mvk2mvs_latency,
                             bandwidth   = mvk2mvs_bandwidth
                         ))
         self.mvs2mvk = self.addSubModel(Network(\
+                            name        = "mvs2mvk",
                             latency     = mvs2mvk_latency,
                             bandwidth   = mvs2mvk_bandwidth
                         ))
         self.mvk2mvi = self.addSubModel(Network(\
+                            name        = "mvk2mvi",
                             latency     = mvk2mvi_latency,
                             bandwidth   = mvk2mvi_bandwidth
                         ))