objdictgen/nodemanager.py
changeset 327 b904d9a99e28
parent 299 506f9700b9fb
child 333 7e553315ef46
--- a/objdictgen/nodemanager.py	Thu Dec 06 17:59:06 2007 +0100
+++ b/objdictgen/nodemanager.py	Fri Dec 07 17:28:18 2007 +0100
@@ -683,6 +683,8 @@
                         node.SetEntry(index, subIndex, value)
                     except:
                         pass
+                elif editor == "dcf":
+                    node.SetEntry(index, subIndex, value)
                 else:
                     subentry_infos = self.GetSubentryInfos(index, subIndex)
                     type = subentry_infos["type"]
@@ -1048,7 +1050,10 @@
                         elif dic["type"] in ["TIME_OF_DAY","TIME_DIFFERENCE"]:
                             editor["value"] = "time"
                         elif dic["type"] == "DOMAIN":
-                            editor["value"] = "domain"
+                            if index == 0x1F22:
+                                editor["value"] = "dcf"
+                            else:
+                                editor["value"] = "domain"
                             dic["value"] = dic["value"].encode('hex_codec')
                         elif dic["type"] == "BOOLEAN":
                             editor["value"] = "bool"
@@ -1080,6 +1085,14 @@
         else:
             return None
 
+    def AddToDCF(self, node_id, index, subindex, size, value):
+        if self.CurrentNode.IsEntry(0x1F22, node_id):
+            dcf_value = self.CurrentNode.GetEntry(0x1F22, node_id)
+            nbparams = BE_to_LE(dcf_value[:4])
+            new_value = LE_to_BE(nbparams + 1, 4) + dcf_value[4:]
+            new_value += LE_to_BE(index, 2) + LE_to_BE(subindex, 1) + LE_to_BE(size, 4) + LE_to_BE(value, size)
+            self.CurrentNode.SetEntry(0x1F22, node_id, new_value)
+
 #-------------------------------------------------------------------------------
 #                         Node Informations Functions
 #-------------------------------------------------------------------------------