|
@@ -84,8 +84,9 @@ class ModelverseState(AtomicDEVS):
|
|
|
|
|
|
def extTransition(self, inputs):
|
|
|
self.state.timer -= self.elapsed
|
|
|
- self.state.queue.append(inputs[self.from_mvk])
|
|
|
- if len(self.state.queue) == 1:
|
|
|
+ empty = len(self.state.queue) == 0
|
|
|
+ self.state.queue.extend(inputs[self.from_mvk])
|
|
|
+ if empty:
|
|
|
# First message, so set the timer
|
|
|
# And already compute the result so it is ready to output
|
|
|
self.state.output = []
|
|
@@ -156,7 +157,7 @@ class ModelverseKernel(AtomicDEVS):
|
|
|
def outputFnc(self):
|
|
|
if self.state.mvk is None:
|
|
|
# Ask the root first
|
|
|
- return {self.to_mvs: [("RR", [])]}
|
|
|
+ return {self.to_mvs: [[("RR", [])]]}
|
|
|
|
|
|
def timeAdvance(self):
|
|
|
if self.state.waiting:
|
|
@@ -244,7 +245,8 @@ class Network(AtomicDEVS):
|
|
|
self.state.timer -= self.elapsed
|
|
|
if self.state.timer == float("inf"):
|
|
|
self.state.timer = 0
|
|
|
- self.state.processing.append(json.dumps(inputs[self.input_port]))
|
|
|
+ for v in inputs[self.input_port]:
|
|
|
+ self.state.processing.append(json.dumps(v))
|
|
|
if len(self.state.processing) > 0:
|
|
|
self.state.timer = int(len(self.state.processing[0]) / float(self.bandwidth) + self.latency)
|
|
|
return self.state
|