etherlab/CommonEtherCATFunction.py
changeset 2400 7afecc27db95
parent 2398 0ae721a79654
child 2405 af050469fc5c
equal deleted inserted replaced
2399:a9a6dbc506e9 2400:7afecc27db95
   885         vendor_specific_data = ""
   885         vendor_specific_data = ""
   886         #   vendor_spec_strings : list of vendor specific "strings" for preventing duplicated strings
   886         #   vendor_spec_strings : list of vendor specific "strings" for preventing duplicated strings
   887         vendor_spec_strings = []
   887         vendor_spec_strings = []
   888         for element in device.getType().getcontent():
   888         for element in device.getType().getcontent():
   889             data += element
   889             data += element
   890         if data is not "" and type(data) == unicode:
   890         if data is not "" and isinstance(data, unicode):
   891             for vendor_spec_string in vendor_spec_strings:
   891             for vendor_spec_string in vendor_spec_strings:
   892                 if data == vendor_spec_string:
   892                 if data == vendor_spec_string:
   893                     self.OrderIdx = vendor_spec_strings.index(data)+1
   893                     self.OrderIdx = vendor_spec_strings.index(data)+1
   894                     typeflag = True
   894                     typeflag = True
   895                     break
   895                     break
   904                     vendor_specific_data += "{:0>2x}".format(ord(data[character]))
   904                     vendor_specific_data += "{:0>2x}".format(ord(data[character]))
   905         data = ""
   905         data = ""
   906 
   906 
   907         #  element2-1; <EtherCATInfo>-<Descriptions>-<Devices>-<Device>-<GroupType>
   907         #  element2-1; <EtherCATInfo>-<Descriptions>-<Devices>-<Device>-<GroupType>
   908         data = device.getGroupType()
   908         data = device.getGroupType()
   909         if data is not None and type(data) == unicode:
   909         if data is not None and isinstance(data, unicode):
   910             for vendor_spec_string in vendor_spec_strings:
   910             for vendor_spec_string in vendor_spec_strings:
   911                 if data == vendor_spec_string:
   911                 if data == vendor_spec_string:
   912                     self.GroupIdx = vendor_spec_strings.index(data)+1
   912                     self.GroupIdx = vendor_spec_strings.index(data)+1
   913                     grouptypeflag = True
   913                     grouptypeflag = True
   914                     break
   914                     break
   929                 for vendor_id, vendor in self.Controler.CTNParent.CTNParent.ModulesLibrary.Library.iteritems():
   929                 for vendor_id, vendor in self.Controler.CTNParent.CTNParent.ModulesLibrary.Library.iteritems():
   930                     for group_type, group_etc in vendor["groups"].iteritems():
   930                     for group_type, group_etc in vendor["groups"].iteritems():
   931                         for device_item in group_etc["devices"]:
   931                         for device_item in group_etc["devices"]:
   932                             if device == device_item[1]:
   932                             if device == device_item[1]:
   933                                 data = group_type
   933                                 data = group_type
   934                 if data is not None and type(data) == unicode:
   934                 if data is not None and isinstance(data, unicode):
   935                     for vendor_spec_string in vendor_spec_strings:
   935                     for vendor_spec_string in vendor_spec_strings:
   936                         if data == vendor_spec_string:
   936                         if data == vendor_spec_string:
   937                             self.GroupIdx = vendor_spec_strings.index(data)+1
   937                             self.GroupIdx = vendor_spec_strings.index(data)+1
   938                             grouptypeflag = True
   938                             grouptypeflag = True
   939                             break
   939                             break
   954             for vendorId, vendor in self.Controler.CTNParent.CTNParent.ModulesLibrary.Library.iteritems():
   954             for vendorId, vendor in self.Controler.CTNParent.CTNParent.ModulesLibrary.Library.iteritems():
   955                 for group_type, group_etc in vendor["groups"].iteritems():
   955                 for group_type, group_etc in vendor["groups"].iteritems():
   956                     for device_item in group_etc["devices"]:
   956                     for device_item in group_etc["devices"]:
   957                         if device == device_item[1]:
   957                         if device == device_item[1]:
   958                             data = group_etc["name"]
   958                             data = group_etc["name"]
   959         if data is not "" and type(data) == unicode:
   959         if data is not "" and isinstance(data, unicode):
   960             for vendor_spec_string in vendor_spec_strings:
   960             for vendor_spec_string in vendor_spec_strings:
   961                 if data == vendor_spec_string:
   961                 if data == vendor_spec_string:
   962                     groupnameflag = True
   962                     groupnameflag = True
   963                     break
   963                     break
   964             if groupnameflag is False:
   964             if groupnameflag is False:
   973 
   973 
   974         #  element4; <EtherCATInfo>-<Descriptions>-<Devices>-<Device>-<Name(LcId is "1033" or "1"?)>
   974         #  element4; <EtherCATInfo>-<Descriptions>-<Devices>-<Device>-<Name(LcId is "1033" or "1"?)>
   975         for element in device.getName():
   975         for element in device.getName():
   976             if element.getLcId() == 1 or element.getLcId() == 1033:
   976             if element.getLcId() == 1 or element.getLcId() == 1033:
   977                 data = element.getcontent()
   977                 data = element.getcontent()
   978         if data is not "" and type(data) == unicode:
   978         if data is not "" and isinstance(data, unicode):
   979             for vendor_spec_string in vendor_spec_strings:
   979             for vendor_spec_string in vendor_spec_strings:
   980                 if data == vendor_spec_string:
   980                 if data == vendor_spec_string:
   981                     self.NameIdx = vendor_spec_strings.index(data)+1
   981                     self.NameIdx = vendor_spec_strings.index(data)+1
   982                     devnameflag = True
   982                     devnameflag = True
   983                     break
   983                     break
   993         data = ""
   993         data = ""
   994 
   994 
   995         #  element5-1; <EtherCATInfo>-<Descriptions>-<Devices>-<Device>-<Image16x14>
   995         #  element5-1; <EtherCATInfo>-<Descriptions>-<Devices>-<Device>-<Image16x14>
   996         if device.getcontent() is not None:
   996         if device.getcontent() is not None:
   997             data = device.getcontent()
   997             data = device.getcontent()
   998             if data is not None and type(data) == unicode:
   998             if data is not None and isinstance(data, unicode):
   999                 for vendor_spec_string in vendor_spec_strings:
   999                 for vendor_spec_string in vendor_spec_strings:
  1000                     if data == vendor_spec_string:
  1000                     if data == vendor_spec_string:
  1001                         self.ImgIdx = vendor_spec_strings.index(data)+1
  1001                         self.ImgIdx = vendor_spec_strings.index(data)+1
  1002                         imageflag = True
  1002                         imageflag = True
  1003                         break
  1003                         break
  1017                 for vendor_id, vendor in self.Controler.CTNParent.CTNParent.ModulesLibrary.Library.iteritems():
  1017                 for vendor_id, vendor in self.Controler.CTNParent.CTNParent.ModulesLibrary.Library.iteritems():
  1018                     for group_type, group_etc in vendor["groups"].iteritems():
  1018                     for group_type, group_etc in vendor["groups"].iteritems():
  1019                         for device_item in group_etc["devices"]:
  1019                         for device_item in group_etc["devices"]:
  1020                             if device == device_item[1]:
  1020                             if device == device_item[1]:
  1021                                 data = group_etc
  1021                                 data = group_etc
  1022                 if data is not None and type(data) == unicode:
  1022                 if data is not None and isinstance(data, unicode):
  1023                     for vendor_spec_string in vendor_spec_strings:
  1023                     for vendor_spec_string in vendor_spec_strings:
  1024                         if data == vendor_spec_string:
  1024                         if data == vendor_spec_string:
  1025                             self.ImgIdx = vendor_spec_strings.index(data)+1
  1025                             self.ImgIdx = vendor_spec_strings.index(data)+1
  1026                             imageflag = True
  1026                             imageflag = True
  1027                             break
  1027                             break