etherlab/EtherCATManagementEditor.py
changeset 2368 642ae95218b6
parent 2367 0fb54172a18b
child 2369 24db1e592e20
equal deleted inserted replaced
2367:0fb54172a18b 2368:642ae95218b6
  1080             'Category Data' :                       ('42', 1),
  1080             'Category Data' :                       ('42', 1),
  1081         }
  1081         }
  1082 
  1082 
  1083         # Config Data: EEPROM Size, PDI Type, Device Emulation
  1083         # Config Data: EEPROM Size, PDI Type, Device Emulation
  1084         # EEPROM's data in address '0x003f' is Size of EEPROM in KBit-1
  1084         # EEPROM's data in address '0x003f' is Size of EEPROM in KBit-1
  1085         eeprom_size = str((int(self.GetWordAddressData( sii_dict.get('Size'), 10 ))+1)/8*1024)
  1085         eeprom_size = str((int(self.GetWordAddressData( sii_dict.get('Size'), 10))+1)/8*1024)
  1086         # Find PDI Type in pdiType dictionary
  1086         # Find PDI Type in pdiType dictionary
  1087         cnt_pdi_type = int(self.GetWordAddressData( sii_dict.get('PDIControl'), 16 ).split('x')[1][2:4], 16)
  1087         cnt_pdi_type = int(self.GetWordAddressData( sii_dict.get('PDIControl'), 16).split('x')[1][2:4], 16)
  1088         for i in self.PDIType.keys():
  1088         for i in self.PDIType.keys():
  1089             if cnt_pdi_type == i:
  1089             if cnt_pdi_type == i:
  1090                 cnt_pdi_type = self.PDIType[i][0]
  1090                 cnt_pdi_type = self.PDIType[i][0]
  1091                 break
  1091                 break
  1092         #  Get Device Emulation
  1092         #  Get Device Emulation
  1093         device_emulation = str(bool(int("{:0>16b}".format(int(self.GetWordAddressData( sii_dict.get('PDIControl'), 16 ), 16))[7])))
  1093         device_emulation = str(bool(int("{:0>16b}".format(int(self.GetWordAddressData( sii_dict.get('PDIControl'), 16), 16))[7])))
  1094         #  Set Config Data
  1094         #  Set Config Data
  1095         for treelist, data in [("EEPROM Size (Bytes)", eeprom_size),
  1095         for treelist, data in [("EEPROM Size (Bytes)", eeprom_size),
  1096                                ("PDI Type", cnt_pdi_type),
  1096                                ("PDI Type", cnt_pdi_type),
  1097                                ("Device Emulation", device_emulation)]:
  1097                                ("Device Emulation", device_emulation)]:
  1098             self.TreeListCtrl.Tree.SetItemText(self.TreeListCtrl.ConfigData[treelist], data, 1)
  1098             self.TreeListCtrl.Tree.SetItemText(self.TreeListCtrl.ConfigData[treelist], data, 1)
  1099 
  1099 
  1100         # Device Identity: Vendor ID, Product Code, Revision No., Serial No.
  1100         # Device Identity: Vendor ID, Product Code, Revision No., Serial No.
  1101         #  Set Device Identity
  1101         #  Set Device Identity
  1102         for treelist, data in [
  1102         for treelist, data in [
  1103                 ("Vendor ID", self.GetWordAddressData( sii_dict.get('VendorID'), 16 )),
  1103                 ("Vendor ID", self.GetWordAddressData( sii_dict.get('VendorID'), 16)),
  1104                 ("Product Code", self.GetWordAddressData( sii_dict.get('ProductCode'), 16 )),
  1104                 ("Product Code", self.GetWordAddressData( sii_dict.get('ProductCode'), 16)),
  1105                 ("Revision No.", self.GetWordAddressData( sii_dict.get('RevisionNumber'), 16 )),
  1105                 ("Revision No.", self.GetWordAddressData( sii_dict.get('RevisionNumber'), 16)),
  1106                 ("Serial No.", self.GetWordAddressData( sii_dict.get('SerialNumber'), 16 ))]:
  1106                 ("Serial No.", self.GetWordAddressData( sii_dict.get('SerialNumber'), 16))]:
  1107             self.TreeListCtrl.Tree.SetItemText(self.TreeListCtrl.DeviceIdentity[treelist], data, 1)
  1107             self.TreeListCtrl.Tree.SetItemText(self.TreeListCtrl.DeviceIdentity[treelist], data, 1)
  1108 
  1108 
  1109         # Mailbox
  1109         # Mailbox
  1110         # EEORPOM's word address '1c' indicates supported mailbox protocol.
  1110         # EEORPOM's word address '1c' indicates supported mailbox protocol.
  1111         # each value of mailbox protocol :
  1111         # each value of mailbox protocol :
  1112         # VoE(0x0020), SoE(0x0010), FoE(0x0008), CoE(0x0004), EoE(0x0002), AoE(0x0001)
  1112         # VoE(0x0020), SoE(0x0010), FoE(0x0008), CoE(0x0004), EoE(0x0002), AoE(0x0001)
  1113         supported_mailbox = ""
  1113         supported_mailbox = ""
  1114         mailbox_protocol = ["VoE,  ", "SoE,  ", "FoE,  ", "CoE,  ", "EoE,  ", "AoE,  "]
  1114         mailbox_protocol = ["VoE,  ", "SoE,  ", "FoE,  ", "CoE,  ", "EoE,  ", "AoE,  "]
  1115         mailbox_data = "{:0>8b}".format(int(self.GetWordAddressData( sii_dict.get('MailboxProtocol'), 16 ), 16))
  1115         mailbox_data = "{:0>8b}".format(int(self.GetWordAddressData( sii_dict.get('MailboxProtocol'), 16), 16))
  1116         for protocol in range(6):
  1116         for protocol in range(6):
  1117             if mailbox_data[protocol+2] == '1':
  1117             if mailbox_data[protocol+2] == '1':
  1118                 supported_mailbox += mailbox_protocol[protocol]
  1118                 supported_mailbox += mailbox_protocol[protocol]
  1119         supported_mailbox = supported_mailbox.strip(",  ")
  1119         supported_mailbox = supported_mailbox.strip(",  ")
  1120         #  Set Mailbox
  1120         #  Set Mailbox
  1122                                ("Bootstrap Configuration", ""),
  1122                                ("Bootstrap Configuration", ""),
  1123                                ("Standard Configuration", "")]:
  1123                                ("Standard Configuration", "")]:
  1124             self.TreeListCtrl.Tree.SetItemText(self.TreeListCtrl.Mailbox[treelist], data, 1)
  1124             self.TreeListCtrl.Tree.SetItemText(self.TreeListCtrl.Mailbox[treelist], data, 1)
  1125         #  Set Bootstrap Configuration: Receive Offset, Receive Size, Send Offset, Send Size
  1125         #  Set Bootstrap Configuration: Receive Offset, Receive Size, Send Offset, Send Size
  1126         for treelist, data in [
  1126         for treelist, data in [
  1127                 ("Receive Offset", self.GetWordAddressData( sii_dict.get('BootstrapReceiveMailboxOffset'), 10 )),
  1127                 ("Receive Offset", self.GetWordAddressData( sii_dict.get('BootstrapReceiveMailboxOffset'), 10)),
  1128                 ("Receive Size", self.GetWordAddressData( sii_dict.get('BootstrapReceiveMailboxSize'), 10 )),
  1128                 ("Receive Size", self.GetWordAddressData( sii_dict.get('BootstrapReceiveMailboxSize'), 10)),
  1129                 ("Send Offset", self.GetWordAddressData( sii_dict.get('BootstrapSendMailboxOffset'), 10 )),
  1129                 ("Send Offset", self.GetWordAddressData( sii_dict.get('BootstrapSendMailboxOffset'), 10)),
  1130                 ("Send Size", self.GetWordAddressData( sii_dict.get('BootstrapSendMailboxSize'), 10 ))]:
  1130                 ("Send Size", self.GetWordAddressData( sii_dict.get('BootstrapSendMailboxSize'), 10))]:
  1131             self.TreeListCtrl.Tree.SetItemText(self.TreeListCtrl.BootstrapConfig[treelist], data, 1)
  1131             self.TreeListCtrl.Tree.SetItemText(self.TreeListCtrl.BootstrapConfig[treelist], data, 1)
  1132         #  Set Standard Configuration: Receive Offset, Receive Size, Send Offset, Send Size
  1132         #  Set Standard Configuration: Receive Offset, Receive Size, Send Offset, Send Size
  1133         for treelist, data in [
  1133         for treelist, data in [
  1134                 ("Receive Offset", self.GetWordAddressData( sii_dict.get('StandardReceiveMailboxOffset'), 10 )),
  1134                 ("Receive Offset", self.GetWordAddressData( sii_dict.get('StandardReceiveMailboxOffset'), 10)),
  1135                 ("Receive Size", self.GetWordAddressData( sii_dict.get('StandardReceiveMailboxSize'), 10 )),
  1135                 ("Receive Size", self.GetWordAddressData( sii_dict.get('StandardReceiveMailboxSize'), 10)),
  1136                 ("Send Offset", self.GetWordAddressData( sii_dict.get('StandardSendMailboxOffset'), 10 )),
  1136                 ("Send Offset", self.GetWordAddressData( sii_dict.get('StandardSendMailboxOffset'), 10)),
  1137                 ("Send Size", self.GetWordAddressData( sii_dict.get('StandardSendMailboxSize'), 10 ))]:
  1137                 ("Send Size", self.GetWordAddressData( sii_dict.get('StandardSendMailboxSize'), 10))]:
  1138             self.TreeListCtrl.Tree.SetItemText(self.TreeListCtrl.StandardConfig[treelist], data, 1)
  1138             self.TreeListCtrl.Tree.SetItemText(self.TreeListCtrl.StandardConfig[treelist], data, 1)
  1139 
  1139 
  1140     def MakeStaticBoxSizer(self, boxlabel):
  1140     def MakeStaticBoxSizer(self, boxlabel):
  1141         """
  1141         """
  1142         Make StaticBoxSizer
  1142         Make StaticBoxSizer