1103 self.InitialSteps.append(step_name) |
1103 self.InitialSteps.append(step_name) |
1104 step_infos = {"id" : step.getlocalId(), |
1104 step_infos = {"id" : step.getlocalId(), |
1105 "initial" : step.getinitialStep(), |
1105 "initial" : step.getinitialStep(), |
1106 "transitions" : [], |
1106 "transitions" : [], |
1107 "actions" : []} |
1107 "actions" : []} |
|
1108 self.SFCNetworks["Steps"][step_name] = step_infos |
1108 if step.connectionPointIn: |
1109 if step.connectionPointIn: |
1109 instances = [] |
1110 instances = [] |
1110 connections = step.connectionPointIn.getconnections() |
1111 connections = step.connectionPointIn.getconnections() |
1111 if connections is not None and len(connections) == 1: |
1112 if connections is not None and len(connections) == 1: |
1112 instanceLocalId = connections[0].getrefLocalId() |
1113 instanceLocalId = connections[0].getrefLocalId() |
1128 for instance in instances: |
1129 for instance in instances: |
1129 self.GenerateSFCTransition(instance, pou) |
1130 self.GenerateSFCTransition(instance, pou) |
1130 if instance in self.SFCNetworks["Transitions"].keys(): |
1131 if instance in self.SFCNetworks["Transitions"].keys(): |
1131 target_info = (self.TagName, "transition", instance.getlocalId(), "to", step_infos["id"]) |
1132 target_info = (self.TagName, "transition", instance.getlocalId(), "to", step_infos["id"]) |
1132 self.SFCNetworks["Transitions"][instance]["to"].append([(step_name, target_info)]) |
1133 self.SFCNetworks["Transitions"][instance]["to"].append([(step_name, target_info)]) |
1133 self.SFCNetworks["Steps"][step_name] = step_infos |
|
1134 |
1134 |
1135 def GenerateSFCJump(self, jump, pou): |
1135 def GenerateSFCJump(self, jump, pou): |
1136 jump_target = jump.gettargetName() |
1136 jump_target = jump.gettargetName() |
1137 if jump.connectionPointIn: |
1137 if jump.connectionPointIn: |
1138 instances = [] |
1138 instances = [] |
1225 steps.extend(self.ExtractConvergenceInputs(instance, pou)) |
1225 steps.extend(self.ExtractConvergenceInputs(instance, pou)) |
1226 transition_infos = {"id" : transition.getlocalId(), |
1226 transition_infos = {"id" : transition.getlocalId(), |
1227 "priority": transition.getpriority(), |
1227 "priority": transition.getpriority(), |
1228 "from": [], |
1228 "from": [], |
1229 "to" : []} |
1229 "to" : []} |
|
1230 self.SFCNetworks["Transitions"][transition] = transition_infos |
1230 transitionValues = transition.getconditionContent() |
1231 transitionValues = transition.getconditionContent() |
1231 if transitionValues["type"] == "inline": |
1232 if transitionValues["type"] == "inline": |
1232 transition_infos["content"] = [("\n%s:= "%self.CurrentIndent, ()), |
1233 transition_infos["content"] = [("\n%s:= "%self.CurrentIndent, ()), |
1233 (transitionValues["value"], (self.TagName, "transition", transition.getlocalId(), "inline")), |
1234 (transitionValues["value"], (self.TagName, "transition", transition.getlocalId(), "inline")), |
1234 (";\n", ())] |
1235 (";\n", ())] |
1271 self.GenerateSFCStep(step, pou) |
1272 self.GenerateSFCStep(step, pou) |
1272 step_name = step.getname() |
1273 step_name = step.getname() |
1273 if step_name in self.SFCNetworks["Steps"].keys(): |
1274 if step_name in self.SFCNetworks["Steps"].keys(): |
1274 transition_infos["from"].append([(step_name, (self.TagName, "transition", transition.getlocalId(), "from", step.getlocalId()))]) |
1275 transition_infos["from"].append([(step_name, (self.TagName, "transition", transition.getlocalId(), "from", step.getlocalId()))]) |
1275 self.SFCNetworks["Steps"][step_name]["transitions"].append(transition) |
1276 self.SFCNetworks["Steps"][step_name]["transitions"].append(transition) |
1276 self.SFCNetworks["Transitions"][transition] = transition_infos |
|
1277 |
1277 |
1278 def ComputeSFCStep(self, step_name): |
1278 def ComputeSFCStep(self, step_name): |
1279 if step_name in self.SFCNetworks["Steps"].keys(): |
1279 if step_name in self.SFCNetworks["Steps"].keys(): |
1280 step_infos = self.SFCNetworks["Steps"].pop(step_name) |
1280 step_infos = self.SFCNetworks["Steps"].pop(step_name) |
1281 self.Program += [(self.CurrentIndent, ())] |
1281 self.Program += [(self.CurrentIndent, ())] |