diff -r 3c6ce0a5ab2c -r 235a9ec83b95 PLCControler.py --- a/PLCControler.py Thu Nov 15 22:57:55 2012 +0100 +++ b/PLCControler.py Thu Nov 15 23:00:53 2012 +0100 @@ -1476,6 +1476,32 @@ def GetVariableLocationTree(self): return [] + def GetConfNodeGlobalInstances(self): + return [] + + def GetConfigurationExtraVariables(self): + global_vars = [] + for var_name, var_type in self.GetConfNodeGlobalInstances(): + tempvar = plcopen.varListPlain_variable() + tempvar.setname(var_name) + + tempvartype = plcopen.dataType() + if var_type in self.GetBaseTypes(): + if var_type == "STRING": + var_type.setcontent({"name" : "string", "value" : plcopen.elementaryTypes_string()}) + elif var_type == "WSTRING": + var_type.setcontent({"name" : "wstring", "value" : plcopen.elementaryTypes_wstring()}) + else: + var_type.setcontent({"name" : var_type, "value" : None}) + else: + tempderivedtype = plcopen.derivedTypes_derived() + tempderivedtype.setname(var_type) + tempvartype.setcontent({"name" : "derived", "value" : tempderivedtype}) + tempvar.settype(tempvartype) + + global_vars.append(tempvar) + return global_vars + # Function that returns the block definition associated to the block type given def GetBlockType(self, type, inputs = None, debug = False): result_blocktype = None @@ -1723,6 +1749,8 @@ if words[0] == "D": infos = {} datatype = project.getdataType(words[1]) + if datatype is None: + return None basetype_content = datatype.baseType.getcontent() if basetype_content["value"] is None or basetype_content["name"] in ["string", "wstring"]: infos["type"] = "Directly"