objdictgen/nodemanager.py
changeset 254 f2b0acb54e65
parent 245 d43ebbed895f
child 258 8f7725451453
equal deleted inserted replaced
253:bf58ce630b88 254:f2b0acb54e65
   332     """
   332     """
   333     Add the specified number of subentry for the given entry. Verify that total
   333     Add the specified number of subentry for the given entry. Verify that total
   334     number of subentry (except 0) doesn't exceed nbmax defined
   334     number of subentry (except 0) doesn't exceed nbmax defined
   335     """
   335     """
   336     def AddSubentriesToCurrent(self, index, number, node = None):
   336     def AddSubentriesToCurrent(self, index, number, node = None):
       
   337         disable_buffer = node != None
   337         if node == None:
   338         if node == None:
   338             disable_buffer = True
   339             node = self.CurrentNode
   339             node = self.CurrentNode  
       
   340         else:
       
   341             disable_buffer = False
       
   342         # Informations about entry
   340         # Informations about entry
   343         length = node.GetEntry(index, 0)
   341         length = node.GetEntry(index, 0)
   344         infos = node.GetEntryInfos(index)
   342         infos = node.GetEntryInfos(index)
   345         subentry_infos = node.GetSubentryInfos(index, 1)
   343         subentry_infos = node.GetSubentryInfos(index, 1)
   346         # Get default value for subindex
   344         # Get default value for subindex
   447     
   445     
   448     """
   446     """
   449     Add entries specified in addinglist and remove entries specified in removinglist
   447     Add entries specified in addinglist and remove entries specified in removinglist
   450     """
   448     """
   451     def ManageEntriesOfCurrent(self, addinglist, removinglist, node = None):
   449     def ManageEntriesOfCurrent(self, addinglist, removinglist, node = None):
       
   450         disable_buffer = node != None
   452         if node == None:
   451         if node == None:
   453             disable_buffer = True
       
   454             node = self.CurrentNode
   452             node = self.CurrentNode
   455         else:
       
   456             disable_buffer = False
       
   457         # Add all the entries in addinglist
   453         # Add all the entries in addinglist
   458         for index in addinglist:
   454         for index in addinglist:
   459             infos = self.GetEntryInfos(index)
   455             infos = self.GetEntryInfos(index)
   460             if infos["struct"] & OD_MultipleSubindexes:
   456             if infos["struct"] & OD_MultipleSubindexes:
   461                 # First case entry is a record
   457                 # First case entry is a record
   544             if index in Mappings[-1]:
   540             if index in Mappings[-1]:
   545                 self.CurrentNode.RemoveMappingEntry(index, subIndex)
   541                 self.CurrentNode.RemoveMappingEntry(index, subIndex)
   546 
   542 
   547     def AddMapVariableToCurrent(self, index, name, struct, number, node = None):
   543     def AddMapVariableToCurrent(self, index, name, struct, number, node = None):
   548         if 0x2000 <= index <= 0x5FFF:
   544         if 0x2000 <= index <= 0x5FFF:
       
   545             disable_buffer = node != None
   549             if node == None:
   546             if node == None:
   550                 disable_buffer = True
       
   551                 node = self.CurrentNode
   547                 node = self.CurrentNode
   552             else:
       
   553                 disable_buffer = False
       
   554             if not node.IsEntry(index):
   548             if not node.IsEntry(index):
   555                 node.AddMappingEntry(index, name = name, struct = struct)
   549                 node.AddMappingEntry(index, name = name, struct = struct)
   556                 if struct == var:
   550                 if struct == var:
   557                     values = {"name" : name, "type" : 0x05, "access" : "rw", "pdo" : True}
   551                     values = {"name" : name, "type" : 0x05, "access" : "rw", "pdo" : True}
   558                     node.AddMappingEntry(index, 0, values = values)
   552                     node.AddMappingEntry(index, 0, values = values)
   618             if "callback" not in entry_infos:
   612             if "callback" not in entry_infos:
   619                 self.CurrentNode.SetParamsEntry(index, None, callback = value)
   613                 self.CurrentNode.SetParamsEntry(index, None, callback = value)
   620                 self.BufferCurrentNode()
   614                 self.BufferCurrentNode()
   621 
   615 
   622     def SetCurrentEntry(self, index, subIndex, value, name, editor, node = None):
   616     def SetCurrentEntry(self, index, subIndex, value, name, editor, node = None):
   623         
   617         disable_buffer = node != None
   624         if node == None:
   618         if node == None:
   625                 disable_buffer = True
   619             node = self.CurrentNode
   626                 node = self.CurrentNode
       
   627         else:
       
   628             disable_buffer = False
       
   629         if node and node.IsEntry(index):
   620         if node and node.IsEntry(index):
   630             if name == "value":
   621             if name == "value":
   631                 if editor == "map":
   622                 if editor == "map":
   632                     value = node.GetMapValue(value)
   623                     value = node.GetMapValue(value)
   633                     if value:
   624                     if value: