--- a/objdictgen/node.py Mon Sep 24 09:37:04 2007 +0200
+++ b/objdictgen/node.py Tue Sep 25 08:19:44 2007 +0200
@@ -738,6 +738,11 @@
self.UserMapping[index]["values"] = values
return True
elif 0 <= subIndex < len(self.UserMapping[index]["values"]) and values != None:
+ if "type" in values:
+ if self.IsStringType(values["type"]) and not self.IsStringType(self.UserMapping[index]["values"][subIndex]["type"]):
+ self.SetEntry(index, subIndex, "")
+ elif not self.IsStringType(values["type"]) and self.IsStringType(self.UserMapping[index]["values"][subIndex]["type"]):
+ self.SetEntry(index, subIndex, 0)
self.UserMapping[index]["values"][subIndex].update(values)
return True
return False
@@ -972,6 +977,19 @@
return dic
#-------------------------------------------------------------------------------
+# Type helper functions
+#-------------------------------------------------------------------------------
+
+ def IsStringType(self, index):
+ if index in (0x9, 0xA, 0xB):
+ return True
+ elif 0xA0 <= index < 0x100:
+ result = self.GetEntry(index, 1)
+ if result is not None and result in (0x9, 0xA, 0xB):
+ return True
+ return False
+
+#-------------------------------------------------------------------------------
# Type and Map Variable Lists
#-------------------------------------------------------------------------------