711 if not entry_infos["struct"] & OD_MultipleSubindexes or subindex != 0: |
711 if not entry_infos["struct"] & OD_MultipleSubindexes or subindex != 0: |
712 subentry_infos = self.Manager.GetSubentryInfos(index, subindex) |
712 subentry_infos = self.Manager.GetSubentryInfos(index, subindex) |
713 typeinfos = self.Manager.GetEntryInfos(subentry_infos["type"]) |
713 typeinfos = self.Manager.GetEntryInfos(subentry_infos["type"]) |
714 if typeinfos: |
714 if typeinfos: |
715 node_id = self.ParentWindow.GetCurrentNodeId() |
715 node_id = self.ParentWindow.GetCurrentNodeId() |
716 self.Manager.AddToMasterDCF(node_id, index, subindex, max(1, typeinfos["size"] / 8), int(self.Table.GetValueByName(subindex, "value"), 16)) |
716 value = self.Table.GetValueByName(subindex, "value") |
|
717 if value == "True": |
|
718 value = 0 |
|
719 elif value == "False": |
|
720 value = 1 |
|
721 elif value.isdigit(): |
|
722 value = int(value) |
|
723 elif value.startswith("0x"): |
|
724 value = int(value, 16) |
|
725 else: |
|
726 value = int(value.encode("hex_codec"), 16) |
|
727 self.Manager.AddToMasterDCF(node_id, index, subindex, max(1, typeinfos["size"] / 8), value) |
717 self.ParentWindow.OpenMasterDCFDialog(node_id) |
728 self.ParentWindow.OpenMasterDCFDialog(node_id) |
718 |
729 |
719 def OpenDCFDIalog(self, node_id): |
730 def OpenDCFDialog(self, node_id): |
720 self.PartList.SetSelection(7) |
731 self.PartList.SetSelection(7) |
721 self.RefreshIndexList() |
732 self.RefreshIndexList() |
722 self.IndexList.SetSelection(self.ListIndex.index(0x1F22)) |
733 self.IndexList.SetSelection(self.ListIndex.index(0x1F22)) |
723 self.RefreshTable() |
734 self.RefreshTable() |
724 self.SubindexGrid.SetGridCursor(node_id, 3) |
735 self.SubindexGrid.SetGridCursor(node_id, 3) |