plcopen/types_enums.py
changeset 1948 b9a3f771aaab
parent 1944 6162e34fb246
child 1953 5736d25bb393
--- a/plcopen/types_enums.py	Mon Feb 19 13:24:57 2018 +0100
+++ b/plcopen/types_enums.py	Mon Feb 19 15:14:30 2018 +0100
@@ -40,6 +40,8 @@
     ITEM_VAR_INOUT
 ] = range(17, 24)
 
+ITEM_CONFNODE = 25
+
 VAR_CLASS_INFOS = {
     "Local":    ("localVars",    ITEM_VAR_LOCAL),
     "Global":   ("globalVars",   ITEM_VAR_GLOBAL),
@@ -78,5 +80,45 @@
  DATA_TYPES, TRANSITIONS, ACTIONS, CONFIGURATIONS,
  RESOURCES, PROPERTIES] = UNEDITABLE_NAMES
 
+# -------------------------------------------------------------------------------
+#                   Project Element tag name computation functions
+# -------------------------------------------------------------------------------
+
+# Compute a data type name
+def ComputeDataTypeName(datatype):
+    return "D::%s" % datatype
+
+# Compute a pou name
+def ComputePouName(pou):
+    return "P::%s" % pou
+
+# Compute a pou transition name
+def ComputePouTransitionName(pou, transition):
+    return "T::%s::%s" % (pou, transition)
+
+# Compute a pou action name
+def ComputePouActionName(pou, action):
+    return "A::%s::%s" % (pou, action)
+
+# Compute a pou  name
+def ComputeConfigurationName(config):
+    return "C::%s" % config
+
+# Compute a pou  name
+def ComputeConfigurationResourceName(config, resource):
+    return "R::%s::%s" % (config, resource)
+
+def GetElementType(tagname):
+    words = tagname.split("::")
+    return {
+        "D": ITEM_DATATYPE,
+        "P": ITEM_POU,
+        "T": ITEM_TRANSITION,
+        "A": ITEM_ACTION,
+        "C": ITEM_CONFIGURATION,
+        "R": ITEM_RESOURCE
+    }[words[0]]
+
+
 # remove gettext override
 del _