|
@@ -135,9 +135,10 @@ class MvIState():
|
|
|
self.output = []
|
|
|
|
|
|
class ModelverseInterface(AtomicDEVS):
|
|
|
- def __init__(self):
|
|
|
+ def __init__(self, operations):
|
|
|
AtomicDEVS.__init__(self, "MvI")
|
|
|
self.state = MvIState()
|
|
|
+ self.state.operations = operations
|
|
|
|
|
|
self.to_mvk = self.addOutPort("to_MvK")
|
|
|
self.from_mvk = self.addInPort("from_MvK")
|
|
@@ -190,16 +191,80 @@ class Network(AtomicDEVS):
|
|
|
return self.state.timer
|
|
|
|
|
|
class System(CoupledDEVS):
|
|
|
- def __init__(self):
|
|
|
+ def __init__(self,
|
|
|
+ operations,
|
|
|
+ mvi2mvk_latency,
|
|
|
+ mvi2mvk_bandwidth,
|
|
|
+ mvk2mvs_latency,
|
|
|
+ mvk2mvs_bandwidth,
|
|
|
+ mvs2mvk_latency,
|
|
|
+ mvs2mvk_bandwidth,
|
|
|
+ mvk2mvi_latency,
|
|
|
+ mvk2mvi_bandwidth,
|
|
|
+ read_root,
|
|
|
+ create_node,
|
|
|
+ create_edge,
|
|
|
+ create_nodevalue,
|
|
|
+ create_dict,
|
|
|
+ read_value,
|
|
|
+ read_outgoing,
|
|
|
+ read_incoming,
|
|
|
+ read_edge,
|
|
|
+ read_dict,
|
|
|
+ read_dict_keys,
|
|
|
+ read_dict_edge,
|
|
|
+ read_dict_node,
|
|
|
+ read_dict_node_edge,
|
|
|
+ read_reverse_dict,
|
|
|
+ delete_node,
|
|
|
+ delete_edge):
|
|
|
CoupledDEVS.__init__(self, "System")
|
|
|
|
|
|
- self.mvi = self.addSubModel(ModelverseInterface())
|
|
|
+ self.mvi = self.addSubModel(ModelverseInterface(\
|
|
|
+ operations = operations
|
|
|
+ ))
|
|
|
self.mvk = self.addSubModel(ModelverseKernel())
|
|
|
- self.mvs = self.addSubModel(ModelverseState())
|
|
|
- self.mvi2mvk = self.addSubModel(Network(mvi2mvk_latency, mvi2mvk_bandwidth))
|
|
|
- self.mvk2mvs = self.addSubModel(Network(mvk2mvs_latency, mvk2mvs_bandwidth))
|
|
|
- self.mvs2mvk = self.addSubModel(Network(mvs2mvk_latency, mvs2mvk_bandwidth))
|
|
|
- self.mvk2mvi = self.addSubModel(Network(mvk2mvi_latency, mvk2mvi_bandwidth))
|
|
|
+ self.mvs = self.addSubModel(ModelverseState(\
|
|
|
+ read_root = read_root,
|
|
|
+ create_node = create_node,
|
|
|
+ create_edge = create_edge,
|
|
|
+ create_nodevalue = create_nodevalue,
|
|
|
+ create_dict = create_dict,
|
|
|
+ read_value = read_value,
|
|
|
+ read_outgoing = read_outgoing,
|
|
|
+ read_incoming = read_incoming,
|
|
|
+ read_edge = read_edge,
|
|
|
+ read_dict = read_dict,
|
|
|
+ read_dict_keys = read_dict_keys,
|
|
|
+ read_dict_edge = read_dict_edge,
|
|
|
+ read_dict_node = read_dict_node,
|
|
|
+ read_dict_node_edge = read_dict_node_edge,
|
|
|
+ read_reverse_dict = read_reverse_dict,
|
|
|
+ delete_node = delete_node,
|
|
|
+ delete_edge = delete_edge
|
|
|
+ ))
|
|
|
+ self.mvi2mvk = self.addSubModel(Network(\
|
|
|
+ mvi2mvk_latency = mvi2mvk_latency,
|
|
|
+ mvi2mvk_bandwidth = mvi2mvk_bandwidth
|
|
|
+ ))
|
|
|
+ self.mvk2mvs = self.addSubModel(Network(\
|
|
|
+ mvk2mvs_latency = mvk2mvs_latency,
|
|
|
+ mvk2mvs_bandwidth = mvk2mvs_bandwidth
|
|
|
+ ))
|
|
|
+ self.mvs2mvk = self.addSubModel(Network(\
|
|
|
+ mvs2mvk_latency = mvs2mvk_latency,
|
|
|
+ mvs2mvk_bandwidth = mvs2mvk_bandwidth
|
|
|
+ ))
|
|
|
+ self.mvk2mvi = self.addSubModel(Network(\
|
|
|
+ mvk2mvi_latency = mvk2mvi_latency,
|
|
|
+ mvk2mvi_bandwidth = mvk2mvi_bandwidth
|
|
|
+ ))
|
|
|
|
|
|
self.connectPorts(self.mvi.to_mvk, self.mvi2mvk.input_port)
|
|
|
self.connectPorts(self.mvi2mvk.output_port, self.mvk.from_mvi)
|
|
|
+ self.connectPorts(self.mvk.to_mvs, self.mvk2mvs.input_port)
|
|
|
+ self.connectPorts(self.mvk2mvs.output_port, self.mvs.from_mvk)
|
|
|
+ self.connectPorts(self.mvs.to_mvk, self.mvs2mvk.input_port)
|
|
|
+ self.connectPorts(self.mvs2mvk.output_port, self.mvk.from_mvs)
|
|
|
+ self.connectPorts(self.mvk.to_mvi, self.mvk2mvi.input_port)
|
|
|
+ self.connectPorts(self.mvk2mvi.output_port, self.mvi.from_mvk)
|