diff -r c266fbaae0f6 -r 752ec68da94d PLCControler.py --- a/PLCControler.py Mon Feb 19 15:15:36 2018 +0100 +++ b/PLCControler.py Mon Feb 19 15:46:50 2018 +0100 @@ -42,6 +42,7 @@ from plcopen.XSLTModelQuery import _StringValue, _BoolValue, _translate_args from plcopen.InstancesPathCollector import InstancesPathCollector from plcopen.POUVariablesCollector import POUVariablesCollector +from plcopen.InstanceTagnameCollector import InstanceTagnameCollector from graphics.GraphicCommons import * from PLCGenerator import * @@ -125,31 +126,6 @@ _translate_args([_StringValue] * 5 + [_BoolValue] + [_StringValue], args) + [self.GetType(), self.GetTree()]))) -class InstanceTagName(object): - """Helpers object for generating instance tagname""" - - def __init__(self, controller): - self.Controller = controller - self.TagName = None - - def GetTagName(self): - return self.TagName - - def ConfigTagName(self, context, *args): - self.TagName = ComputeConfigurationName(args[0][0]) - - def ResourceTagName(self, context, *args): - self.TagName = ComputeConfigurationResourceName(args[0][0], args[1][0]) - - def PouTagName(self, context, *args): - self.TagName = ComputePouName(args[0][0]) - - def ActionTagName(self, context, *args): - self.TagName = ComputePouActionName(args[0][0], args[0][1]) - - def TransitionTagName(self, context, *args): - self.TagName = ComputePouTransitionName(args[0][0], args[0][1]) - # ------------------------------------------------------------------------------- # Helpers object for generating pou block instances list @@ -408,6 +384,7 @@ self.Reset() self.InstancesPathCollector = InstancesPathCollector(self) self.POUVariablesCollector = POUVariablesCollector(self) + self.InstanceTagnameCollector = InstanceTagnameCollector(self) # Reset PLCControler internal variables def Reset(self): @@ -662,26 +639,10 @@ def GetPouInstanceTagName(self, instance_path, debug=False): project = self.GetProject(debug) - factory = InstanceTagName(self) - - parser = etree.XMLParser() - parser.resolvers.add(LibraryResolver(self, debug)) - - instance_tagname_xslt_tree = etree.XSLT( - etree.parse( - os.path.join(ScriptDirectory, "plcopen", "instance_tagname.xslt"), - parser), - extensions={("instance_tagname_ns", name): getattr(factory, name) - for name in ["ConfigTagName", - "ResourceTagName", - "PouTagName", - "ActionTagName", - "TransitionTagName"]}) - - instance_tagname_xslt_tree( - project, instance_path=etree.XSLT.strparam(instance_path)) - - return factory.GetTagName() + if project is not None : + return self.InstanceTagnameCollector.Collect(project, + debug, + instance_path) def GetInstanceInfos(self, instance_path, debug=False): tagname = self.GetPouInstanceTagName(instance_path)