|
@@ -7,7 +7,6 @@ include "modelling.alh"
|
|
|
|
|
|
Boolean function simulate(model : Element):
|
|
|
// Do a single simulation step
|
|
|
- log("Start PN step!")
|
|
|
|
|
|
// Find enabled transitions
|
|
|
Element all_transitions
|
|
@@ -17,8 +16,6 @@ Boolean function simulate(model : Element):
|
|
|
Element in_arcs
|
|
|
String arc_under_study
|
|
|
|
|
|
- log("Got types: " + set_to_string(dict_keys(model["metamodel"]["model"])))
|
|
|
-
|
|
|
all_transitions = allInstances(model, "PetriNet_Runtime/Transition")
|
|
|
enabled_transitions = create_node()
|
|
|
|
|
@@ -35,9 +32,7 @@ Boolean function simulate(model : Element):
|
|
|
Integer present_tokens
|
|
|
Integer required_tokens
|
|
|
required_tokens = read_attribute(model, arc_under_study, "weight")
|
|
|
- log("Weight: " + cast_i2s(required_tokens))
|
|
|
present_tokens = read_attribute(model, reverseKeyLookup(model["model"], read_edge_src(model["model"][arc_under_study])), "tokens")
|
|
|
- log("Tokens: " + cast_i2s(present_tokens))
|
|
|
if (present_tokens < required_tokens):
|
|
|
// Less tokens than required, so disable the transition completely
|
|
|
enabled = False
|
|
@@ -72,5 +67,4 @@ Boolean function simulate(model : Element):
|
|
|
instantiate_attribute(model, working_place, "tokens", new_value)
|
|
|
|
|
|
// Finish up
|
|
|
- log("Finished PN Step!")
|
|
|
return True!
|