|
@@ -34,7 +34,7 @@ class MvSState(object):
|
|
|
def __init__(self):
|
|
|
self.queue = []
|
|
|
self.output = None
|
|
|
- self.mvs = MvS()
|
|
|
+ self.mvs = MvS("../bootstrap/bootstrap.m")
|
|
|
self.timer = float("inf")
|
|
|
|
|
|
class ModelverseState(AtomicDEVS):
|
|
@@ -131,6 +131,7 @@ class MvKState(object):
|
|
|
self.reply = None
|
|
|
self.phase = None
|
|
|
self.commands = None
|
|
|
+ self.root = None
|
|
|
|
|
|
def __str__(self):
|
|
|
return "\nMvK: %s\n" % self.mvk + \
|
|
@@ -140,7 +141,8 @@ class MvKState(object):
|
|
|
"users: %s\n" % self.users + \
|
|
|
"reply: %s\n" % self.reply + \
|
|
|
"phase: %s\n" % self.phase + \
|
|
|
- "commands: %s\n" % self.commands
|
|
|
+ "commands: %s\n" % self.commands + \
|
|
|
+ "root: %s\n" % self.root
|
|
|
|
|
|
class ModelverseKernel(AtomicDEVS):
|
|
|
def __init__(self):
|
|
@@ -163,11 +165,13 @@ class ModelverseKernel(AtomicDEVS):
|
|
|
|
|
|
if self.from_mvs in inputs:
|
|
|
# Got input from MvS, so we can continue processing
|
|
|
+ mvs_input = [i[0] for i in inputs[self.from_mvs]]
|
|
|
if self.state.mvk is None:
|
|
|
# No MvK, so set it with the root we have just received (or should have received)
|
|
|
- self.state.mvk = MvK(inputs[self.from_mvs][0])
|
|
|
+ self.state.root = mvs_input[0]
|
|
|
+ self.state.mvk = MvK(self.state.root)
|
|
|
else:
|
|
|
- self.state.reply = inputs[self.from_mvs][0]
|
|
|
+ self.state.reply = inputs[self.from_mvs]
|
|
|
self.state.waiting = False
|
|
|
|
|
|
return self.state
|
|
@@ -185,7 +189,7 @@ class ModelverseKernel(AtomicDEVS):
|
|
|
if len(self.state.users) == 0:
|
|
|
# Read out new set of users first
|
|
|
if self.state.reply is None:
|
|
|
- commands = [("RDK", [])]
|
|
|
+ commands = [("RDK", [self.state.root])]
|
|
|
else:
|
|
|
self.users = self.state.reply
|
|
|
print("Got users: " + str(self.users))
|