plcopen/plcopen.py
changeset 1313 85c167bfff93
parent 1310 3d7fa2257b24
child 1318 758801f4b296
--- a/plcopen/plcopen.py	Tue Sep 10 10:37:42 2013 +0200
+++ b/plcopen/plcopen.py	Tue Sep 10 23:10:58 2013 +0200
@@ -23,7 +23,6 @@
 #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
 from xmlclass import *
-from structures import *
 from types import *
 import os, re
 from lxml import etree
@@ -296,16 +295,13 @@
     def setcontentHeader(self, contentheader):
         contentheader_obj = self.contentHeader
         for attr, value in contentheader.iteritems():
-            if attr == "projectName":
-                contentheader_obj.setname(value)
-            elif attr == "projectVersion":
-                contentheader_obj.setversion(value)
-            elif attr == "authorName":
-                contentheader_obj.setauthor(value)
-            elif attr == "pageSize":
-                contentheader_obj.setpageSize(*contentheader["pageSize"])
-            elif attr == "scaling":
-                contentheader_obj.setscaling(contentheader["scaling"])
+            func = {"projectName": contentheader_obj.setname,
+                    "projectVersion": contentheader_obj.setversion,
+                    "authorName": contentheader_obj.setauthor,
+                    "pageSize": lambda v: contentheader_obj.setpageSize(*v),
+                    "scaling": contentheader_obj.setscaling}.get(attr)
+            if func is not None:
+                func(value)
             elif attr in ["modificationDateTime", "organization", "language"]:
                 setattr(contentheader_obj, attr, value)
     setattr(cls, "setcontentHeader", setcontentHeader)
@@ -607,16 +603,7 @@
             globalvars.append(PLCOpenParser.CreateElement("varList"))
         var = PLCOpenParser.CreateElement("variable", "varListPlain")
         var.setname(name)
-        var_type_obj = PLCOpenParser.CreateElement("dataType")
-        if not var_type.startswith("ANY") and TypeHierarchy.get(var_type):
-            var_type_obj.setcontent(PLCOpenParser.CreateElement(
-                var_type.lower() if var_type in ["STRING", "WSTRING"]
-                else vartype, "dataType"))
-        else:
-            derived_type = PLCOpenParser.CreateElement("derived", "dataType")
-            derived_type.setname(var_type)
-            var_type_obj.setcontent(derived_type)
-        var.settype(var_type_obj)
+        var.settype(var_type)
         if location != "":
             var.setaddress(location)
         if description != "":
@@ -1164,16 +1151,7 @@
                 content[-1].addnext(varlist)
         var = PLCOpenParser.CreateElement("variable", "varListPlain")
         var.setname(name)
-        var_type_obj = PLCOpenParser.CreateElement("type", "variable")
-        if not var_type.startswith("ANY") and TypeHierarchy.get(var_type):
-            var_type_obj.setcontent(PLCOpenParser.CreateElement(
-                var_type.lower() if var_type in ["STRING", "WSTRING"]
-                else var_type, "dataType"))
-        else:
-            derived_type = PLCOpenParser.CreateElement("derived", "dataType")
-            derived_type.setname(var_type)
-            var_type_obj.setcontent(derived_type)
-        var.settype(var_type_obj)
+        var.settype(var_type)
         if location != "":
             var.setaddress(location)
         if description != "":