diff -r 4379e98a30aa -r 2b2f8d88e6d3 PLCControler.py --- a/PLCControler.py Thu Jul 19 15:04:41 2007 +0200 +++ b/PLCControler.py Fri Jul 20 18:28:03 2007 +0200 @@ -261,24 +261,24 @@ for pou in self.Project.getPous(): pou_type = pou.getPouType().getValue() pou_infos = {"name": pou.getName(), "type": ITEM_POU} - var_types = {"Input": {"name": "Input", "type": ITEM_CLASS, "values": []}, - "Output": {"name": "Output", "type": ITEM_CLASS, "values": []}, - "InOut": {"name": "InOut", "type": ITEM_CLASS, "values": []}, - "External": {"name": "External", "type": ITEM_CLASS, "values": []}, - "Local": {"name": "Local", "type": ITEM_CLASS, "values": []}, - "Temp": {"name": "Temp", "type": ITEM_CLASS, "values": []}, - "Global": {"name": "Global", "type": ITEM_CLASS, "values": []}} - for var in self.GetPouInterfaceVars(pou): - var_values = {"name": var["Name"], "type": ITEM_VARIABLE, "values": []} - if var["Class"] in var_types.keys(): - var_types[var["Class"]]["values"].append(var_values) pou_values = [] - pou_values.append({"name": "Interface", "type": ITEM_CLASS, - "values": [var_types["Input"], var_types["Output"], var_types["InOut"], var_types["External"]]}) - pou_values.append({"name": "Variables", "type": ITEM_CLASS, - "values": [var_types["Local"], var_types["Temp"]]}) - if pou_type == "program": - pou_values.append(var_types["Global"]) +## var_types = {"Input": {"name": "Input", "type": ITEM_CLASS, "values": []}, +## "Output": {"name": "Output", "type": ITEM_CLASS, "values": []}, +## "InOut": {"name": "InOut", "type": ITEM_CLASS, "values": []}, +## "External": {"name": "External", "type": ITEM_CLASS, "values": []}, +## "Local": {"name": "Local", "type": ITEM_CLASS, "values": []}, +## "Temp": {"name": "Temp", "type": ITEM_CLASS, "values": []}, +## "Global": {"name": "Global", "type": ITEM_CLASS, "values": []}} +## for var in self.GetPouInterfaceVars(pou): +## var_values = {"name": var["Name"], "type": ITEM_VARIABLE, "values": []} +## if var["Class"] in var_types.keys(): +## var_types[var["Class"]]["values"].append(var_values) +## pou_values.append({"name": "Interface", "type": ITEM_CLASS, +## "values": [var_types["Input"], var_types["Output"], var_types["InOut"], var_types["External"]]}) +## pou_values.append({"name": "Variables", "type": ITEM_CLASS, +## "values": [var_types["Local"], var_types["Temp"]]}) +## if pou_type == "program": +## pou_values.append(var_types["Global"]) if pou.getBodyType() == "SFC": transitions = [] for transition in pou.getTransitionList(): @@ -295,21 +295,22 @@ for config in self.Project.getConfigurations(): config_name = config.getName() config_infos = {"name": config_name, "type": ITEM_CONFIGURATION, "values": []} - config_vars = {"name": "Global", "type": ITEM_CLASS, "values": []} - for var in self.GetConfigurationGlobalVars(config_name): - var_values = {"name": var["Name"], "type": ITEM_VARIABLE, "values": []} - config_vars["values"].append(var_values) +## config_vars = {"name": "Global", "type": ITEM_CLASS, "values": []} +## for var in self.GetConfigurationGlobalVars(config_name): +## var_values = {"name": var["Name"], "type": ITEM_VARIABLE, "values": []} +## config_vars["values"].append(var_values) resources = {"name": "Resources", "type": ITEM_UNEDITABLE, "values": []} for resource in config.getResource(): resource_name = resource.getName() resource_infos = {"name": resource_name, "type": ITEM_RESOURCE, "values": []} - resource_vars = {"name": "Global", "type": ITEM_CLASS, "values": []} - for var in self.GetConfigurationResourceGlobalVars(config_name, resource_name): - var_values = {"name": var["Name"], "type": ITEM_VARIABLE, "values": []} - resource_vars["values"].append(var_values) - resource_infos["values"].append(resource_vars) +## resource_vars = {"name": "Global", "type": ITEM_CLASS, "values": []} +## for var in self.GetConfigurationResourceGlobalVars(config_name, resource_name): +## var_values = {"name": var["Name"], "type": ITEM_VARIABLE, "values": []} +## resource_vars["values"].append(var_values) +## resource_infos["values"].append(resource_vars) resources["values"].append(resource_infos) - config_infos["values"] = [config_vars, resources] +## config_infos["values"] = [config_vars, resources] + config_infos["values"] = [resources] configurations["values"].append(config_infos) infos["values"] = [{"name": "Properties", "type": ITEM_UNEDITABLE, "values": []}, pou_types["function"], pou_types["functionBlock"], @@ -851,6 +852,8 @@ words = pou_name.split("::") if len(words) == 1: names.append(pou_name) + elif len(words) == 2: + names.append(words[1]) else: names.append("%s-%s"%(words[1],words[2])) return names @@ -864,6 +867,10 @@ return "A::%s::%s" % (pou, action) # Compute a pou name + def ComputeConfigurationName(self, config): + return "C::%s" % config + + # Compute a pou name def ComputeConfigurationResourceName(self, config, resource): return "R::%s::%s" % (config, resource) @@ -885,6 +892,10 @@ def OpenPouActionEditing(self, pou, action): return self.OpenElementEditing(self.ComputePouActionName(pou, action)) + # Open a configuration resource by giving configuration name + def OpenConfigurationEditing(self, config): + return self.OpenElementEditing(self.ComputeConfigurationName(config)) + # Open a configuration resource by giving configuration and resource names def OpenConfigurationResourceEditing(self, config, resource): return self.OpenElementEditing(self.ComputeConfigurationResourceName(config, resource)) @@ -901,8 +912,12 @@ def IsPouActionEditing(self, pou, action): return self.ComputePouActionName(pou, action) in self.ElementsOpened - # Return if pou action given by pou and action names is opened - def IsConfigurationResourceEditing(self, pou, action): + # Return if pou action given by configuration name is opened + def IsConfigurationEditing(self, pou): + return self.ComputeConfigurationName(config) in self.ElementsOpened + + # Return if pou action given by configuration and resource names is opened + def IsConfigurationResourceEditing(self, pou, resource): return self.ComputeConfigurationResourceName(config, resource) in self.ElementsOpened # Close current pou editing @@ -932,6 +947,10 @@ def ChangePouActionEditing(self, pou, action): return self.ChangeElementEditing(self.ComputePouActionName(pou, action)) + # Change current pou editing for action given by configuration name + def ChangeConfigurationEditing(self, config): + return self.ChangeElementEditing(self.ComputeConfigurationName(config)) + # Change current pou editing for action given by configuration and resource names def ChangeConfigurationResourceEditing(self, config, resource): return self.ChangeElementEditing(self.ComputeConfigurationResourceName(config, resource)) @@ -955,6 +974,9 @@ return pou.getTransition(words[2]) elif words[0] == 'A': return pou.getAction(words[2]) + elif words[0] == 'C': + result = self.Project.getConfiguration(words[1]) + return result elif words[0] == 'R': result = self.Project.getConfigurationResource(words[1], words[2]) return result @@ -968,6 +990,8 @@ words = name.split("::") if len(words) == 1: return name + elif len(words) == 2: + return words[1] else: return words[2] return None @@ -983,7 +1007,9 @@ words = name.split("::") if len(words) == 1: return self.GetPouType(name) - else: + elif len(words) == 2: + return None + elif words[0] != "R": return self.GetPouType(words[1]) return None