|
@@ -128,6 +128,19 @@ class MvKState(object):
|
|
|
self.inputs = []
|
|
|
self.outputs = []
|
|
|
self.users = []
|
|
|
+ self.reply = None
|
|
|
+ self.phase = None
|
|
|
+ self.commands = None
|
|
|
+
|
|
|
+ def __str__(self):
|
|
|
+ return "\nMvK: %s\n" % self.mvk + \
|
|
|
+ "waiting: %s\n" % self.waiting + \
|
|
|
+ "inputs: %s\n" % self.inputs + \
|
|
|
+ "outputs: %s\n" % self.outputs + \
|
|
|
+ "users: %s\n" % self.users + \
|
|
|
+ "reply: %s\n" % self.reply + \
|
|
|
+ "phase: %s\n" % self.phase + \
|
|
|
+ "commands: %s\n" % self.commands
|
|
|
|
|
|
class ModelverseKernel(AtomicDEVS):
|
|
|
def __init__(self):
|
|
@@ -160,6 +173,10 @@ class ModelverseKernel(AtomicDEVS):
|
|
|
return self.state
|
|
|
|
|
|
def intTransition(self):
|
|
|
+ if self.state.commands is not None:
|
|
|
+ self.state.commands = None
|
|
|
+ return self.state
|
|
|
+
|
|
|
if self.state.mvk is None:
|
|
|
# Initializing
|
|
|
self.state.waiting = True
|
|
@@ -212,12 +229,14 @@ class ModelverseKernel(AtomicDEVS):
|
|
|
return {}
|
|
|
|
|
|
def timeAdvance(self):
|
|
|
- if self.state.waiting:
|
|
|
+ if self.state.commands:
|
|
|
+ return 0
|
|
|
+ elif self.state.waiting:
|
|
|
return float("inf")
|
|
|
elif self.state.mvk is None:
|
|
|
return 0
|
|
|
else:
|
|
|
- return float("inf")
|
|
|
+ return 0
|
|
|
|
|
|
class MvIState():
|
|
|
def __init__(self):
|