etherlab/CommonEtherCATFunction.py
changeset 2434 07f48018b6f5
parent 2423 2c7b7ae24d57
child 2437 105c20fdeb19
equal deleted inserted replaced
2433:2e8bf28a8909 2434:07f48018b6f5
     7 # Copyright (C) 2013: Real-Time & Embedded Systems (RTES) Lab. University of Seoul, Korea
     7 # Copyright (C) 2013: Real-Time & Embedded Systems (RTES) Lab. University of Seoul, Korea
     8 #
     8 #
     9 # See COPYING file for copyrights details.
     9 # See COPYING file for copyrights details.
    10 
    10 
    11 from __future__ import absolute_import
    11 from __future__ import absolute_import
       
    12 from builtins import str as text
    12 import wx
    13 import wx
       
    14 
    13 
    15 
    14 mailbox_protocols = ["AoE", "EoE", "CoE", "FoE", "SoE", "VoE"]
    16 mailbox_protocols = ["AoE", "EoE", "CoE", "FoE", "SoE", "VoE"]
    15 
    17 
    16 
    18 
    17 def ExtractHexDecValue(value):
    19 def ExtractHexDecValue(value):
   892         vendor_specific_data = ""
   894         vendor_specific_data = ""
   893         #   vendor_spec_strings : list of vendor specific "strings" for preventing duplicated strings
   895         #   vendor_spec_strings : list of vendor specific "strings" for preventing duplicated strings
   894         vendor_spec_strings = []
   896         vendor_spec_strings = []
   895         for element in device.getType().getcontent():
   897         for element in device.getType().getcontent():
   896             data += element
   898             data += element
   897         if data != "" and isinstance(data, unicode):
   899         if data != "" and isinstance(data, text):
   898             for vendor_spec_string in vendor_spec_strings:
   900             for vendor_spec_string in vendor_spec_strings:
   899                 if data == vendor_spec_string:
   901                 if data == vendor_spec_string:
   900                     self.OrderIdx = vendor_spec_strings.index(data)+1
   902                     self.OrderIdx = vendor_spec_strings.index(data)+1
   901                     typeflag = True
   903                     typeflag = True
   902                     break
   904                     break
   911                     vendor_specific_data += "{:0>2x}".format(ord(data[character]))
   913                     vendor_specific_data += "{:0>2x}".format(ord(data[character]))
   912         data = ""
   914         data = ""
   913 
   915 
   914         #  element2-1; <EtherCATInfo>-<Descriptions>-<Devices>-<Device>-<GroupType>
   916         #  element2-1; <EtherCATInfo>-<Descriptions>-<Devices>-<Device>-<GroupType>
   915         data = device.getGroupType()
   917         data = device.getGroupType()
   916         if data is not None and isinstance(data, unicode):
   918         if data is not None and isinstance(data, text):
   917             for vendor_spec_string in vendor_spec_strings:
   919             for vendor_spec_string in vendor_spec_strings:
   918                 if data == vendor_spec_string:
   920                 if data == vendor_spec_string:
   919                     self.GroupIdx = vendor_spec_strings.index(data)+1
   921                     self.GroupIdx = vendor_spec_strings.index(data)+1
   920                     grouptypeflag = True
   922                     grouptypeflag = True
   921                     break
   923                     break
   935                 for _vendor_id, vendor in self.Controler.CTNParent.CTNParent.ModulesLibrary.Library.iteritems():
   937                 for _vendor_id, vendor in self.Controler.CTNParent.CTNParent.ModulesLibrary.Library.iteritems():
   936                     for group_type, group_etc in vendor["groups"].iteritems():
   938                     for group_type, group_etc in vendor["groups"].iteritems():
   937                         for device_item in group_etc["devices"]:
   939                         for device_item in group_etc["devices"]:
   938                             if device == device_item[1]:
   940                             if device == device_item[1]:
   939                                 data = group_type
   941                                 data = group_type
   940                 if data is not None and isinstance(data, unicode):
   942                 if data is not None and isinstance(data, text):
   941                     for vendor_spec_string in vendor_spec_strings:
   943                     for vendor_spec_string in vendor_spec_strings:
   942                         if data == vendor_spec_string:
   944                         if data == vendor_spec_string:
   943                             self.GroupIdx = vendor_spec_strings.index(data)+1
   945                             self.GroupIdx = vendor_spec_strings.index(data)+1
   944                             grouptypeflag = True
   946                             grouptypeflag = True
   945                             break
   947                             break
   959             for _vendorId, vendor in self.Controler.CTNParent.CTNParent.ModulesLibrary.Library.iteritems():
   961             for _vendorId, vendor in self.Controler.CTNParent.CTNParent.ModulesLibrary.Library.iteritems():
   960                 for group_type, group_etc in vendor["groups"].iteritems():
   962                 for group_type, group_etc in vendor["groups"].iteritems():
   961                     for device_item in group_etc["devices"]:
   963                     for device_item in group_etc["devices"]:
   962                         if device == device_item[1]:
   964                         if device == device_item[1]:
   963                             data = group_etc["name"]
   965                             data = group_etc["name"]
   964         if data != "" and isinstance(data, unicode):
   966         if data != "" and isinstance(data, text):
   965             for vendor_spec_string in vendor_spec_strings:
   967             for vendor_spec_string in vendor_spec_strings:
   966                 if data == vendor_spec_string:
   968                 if data == vendor_spec_string:
   967                     groupnameflag = True
   969                     groupnameflag = True
   968                     break
   970                     break
   969             if groupnameflag is False:
   971             if groupnameflag is False:
   978 
   980 
   979         #  element4; <EtherCATInfo>-<Descriptions>-<Devices>-<Device>-<Name(LcId is "1033" or "1"?)>
   981         #  element4; <EtherCATInfo>-<Descriptions>-<Devices>-<Device>-<Name(LcId is "1033" or "1"?)>
   980         for element in device.getName():
   982         for element in device.getName():
   981             if element.getLcId() == 1 or element.getLcId() == 1033:
   983             if element.getLcId() == 1 or element.getLcId() == 1033:
   982                 data = element.getcontent()
   984                 data = element.getcontent()
   983         if data != "" and isinstance(data, unicode):
   985         if data != "" and isinstance(data, text):
   984             for vendor_spec_string in vendor_spec_strings:
   986             for vendor_spec_string in vendor_spec_strings:
   985                 if data == vendor_spec_string:
   987                 if data == vendor_spec_string:
   986                     self.NameIdx = vendor_spec_strings.index(data)+1
   988                     self.NameIdx = vendor_spec_strings.index(data)+1
   987                     devnameflag = True
   989                     devnameflag = True
   988                     break
   990                     break
   998         data = ""
  1000         data = ""
   999 
  1001 
  1000         #  element5-1; <EtherCATInfo>-<Descriptions>-<Devices>-<Device>-<Image16x14>
  1002         #  element5-1; <EtherCATInfo>-<Descriptions>-<Devices>-<Device>-<Image16x14>
  1001         if device.getcontent() is not None:
  1003         if device.getcontent() is not None:
  1002             data = device.getcontent()
  1004             data = device.getcontent()
  1003             if data is not None and isinstance(data, unicode):
  1005             if data is not None and isinstance(data, text):
  1004                 for vendor_spec_string in vendor_spec_strings:
  1006                 for vendor_spec_string in vendor_spec_strings:
  1005                     if data == vendor_spec_string:
  1007                     if data == vendor_spec_string:
  1006                         self.ImgIdx = vendor_spec_strings.index(data)+1
  1008                         self.ImgIdx = vendor_spec_strings.index(data)+1
  1007                         imageflag = True
  1009                         imageflag = True
  1008                         break
  1010                         break
  1022                 for _vendor_id, vendor in self.Controler.CTNParent.CTNParent.ModulesLibrary.Library.iteritems():
  1024                 for _vendor_id, vendor in self.Controler.CTNParent.CTNParent.ModulesLibrary.Library.iteritems():
  1023                     for group_type, group_etc in vendor["groups"].iteritems():
  1025                     for group_type, group_etc in vendor["groups"].iteritems():
  1024                         for device_item in group_etc["devices"]:
  1026                         for device_item in group_etc["devices"]:
  1025                             if device == device_item[1]:
  1027                             if device == device_item[1]:
  1026                                 data = group_etc
  1028                                 data = group_etc
  1027                 if data is not None and isinstance(data, unicode):
  1029                 if data is not None and isinstance(data, text):
  1028                     for vendor_spec_string in vendor_spec_strings:
  1030                     for vendor_spec_string in vendor_spec_strings:
  1029                         if data == vendor_spec_string:
  1031                         if data == vendor_spec_string:
  1030                             self.ImgIdx = vendor_spec_strings.index(data)+1
  1032                             self.ImgIdx = vendor_spec_strings.index(data)+1
  1031                             imageflag = True
  1033                             imageflag = True
  1032                             break
  1034                             break