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: |