etherlab/CommonEtherCATFunction.py
changeset 2365 bc07b9910cdb
parent 2363 9c7da6ff6a34
child 2366 d635680e4c2c
equal deleted inserted replaced
2364:4ea781f30555 2365:bc07b9910cdb
   580         self.BinaryCode = return_val
   580         self.BinaryCode = return_val
   581         self.Controler.SiiData = self.BinaryCode
   581         self.Controler.SiiData = self.BinaryCode
   582 
   582 
   583         # append zero-filled padding data up to EEPROM size
   583         # append zero-filled padding data up to EEPROM size
   584         for index in range(self.SmartViewInfosFromXML["eeprom_size"] - len(self.BinaryCode)):
   584         for index in range(self.SmartViewInfosFromXML["eeprom_size"] - len(self.BinaryCode)):
   585             self.BinaryCode = self.BinaryCode +'ff'.decode('hex')
   585             self.BinaryCode = self.BinaryCode + 'ff'.decode('hex')
   586 
   586 
   587         return self.BinaryCode
   587         return self.BinaryCode
   588 
   588 
   589     def HexRead(self, binary):
   589     def HexRead(self, binary):
   590         """
   590         """
   609                 tempvar2 = digithexstr[2:4]
   609                 tempvar2 = digithexstr[2:4]
   610                 if len(tempvar2) == 1:
   610                 if len(tempvar2) == 1:
   611                     tempvar2 = "0" + tempvar2
   611                     tempvar2 = "0" + tempvar2
   612                 row_code.append(tempvar2)
   612                 row_code.append(tempvar2)
   613 
   613 
   614                 if int(digithexstr, 16)>=32 and int(digithexstr, 16)<=126:
   614                 if int(digithexstr, 16) >= 32 and int(digithexstr, 16) <= 126:
   615                     row_text = row_text + chr(int(digithexstr, 16))
   615                     row_text = row_text + chr(int(digithexstr, 16))
   616                 else:
   616                 else:
   617                     row_text = row_text + "."
   617                     row_text = row_text + "."
   618 
   618 
   619                 if index != 0 :
   619                 if index != 0 :
   971                     vendor_specific_data += "{:0>2x}".format(ord(data[character]))
   971                     vendor_specific_data += "{:0>2x}".format(ord(data[character]))
   972         data = ""
   972         data = ""
   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 type(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
  1123         #  category length (word); 1 word is 4 bytes. "+2" is the length of string's total number
  1123         #  category length (word); 1 word is 4 bytes. "+2" is the length of string's total number
  1124         length = len(vendor_specific_data + dc_related_elements + input_elements + output_elements) + 2
  1124         length = len(vendor_specific_data + dc_related_elements + input_elements + output_elements) + 2
  1125         if length % 4 == 0:
  1125         if length % 4 == 0:
  1126             pass
  1126             pass
  1127         else:
  1127         else:
  1128             length +=length % 4
  1128             length += length % 4
  1129             padflag = True
  1129             padflag = True
  1130         eeprom.append("{:0>4x}".format(length/4)[2:4])
  1130         eeprom.append("{:0>4x}".format(length/4)[2:4])
  1131         eeprom.append("{:0>4x}".format(length/4)[0:2])
  1131         eeprom.append("{:0>4x}".format(length/4)[0:2])
  1132         #  total numbers of strings
  1132         #  total numbers of strings
  1133         eeprom.append("{:0>2x}".format(count))
  1133         eeprom.append("{:0>2x}".format(count))