Commit 8c6bc063 authored by Pieter Van Trappen's avatar Pieter Van Trappen

converted to python3

parent ddf02977
#! /usr/bin/env python2 #! /usr/bin/env python3
# coding: utf8 # coding: utf8
# Copyright CERN, 2011 # Copyright CERN, 2011
...@@ -14,7 +14,7 @@ import os ...@@ -14,7 +14,7 @@ import os
def dump_file_to_eeprom(filename): def dump_file_to_eeprom(filename):
eeprom_content = [] eeprom_content = []
eeprom_addr = [] eeprom_addr = []
print filename print(filename)
f = open(filename,"r+") f = open(filename,"r+")
for line in f: for line in f:
addr,data=line.split() addr,data=line.split()
...@@ -34,14 +34,14 @@ def main (default_directory = '.'): ...@@ -34,14 +34,14 @@ def main (default_directory = '.'):
for line in f_in: for line in f_in:
addr,data=line.split() addr,data=line.split()
print "%d 0x%X"%(int(addr,2), int(data,2)) print("%d 0x%X"%(int(addr,2), int(data,2)))
eeprom_content.append(int(data,2)) eeprom_content.append(int(data,2))
eeprom_addr.append(int(addr,2)) eeprom_addr.append(int(addr,2))
print "\nCONTENT" print("\nCONTENT")
print eeprom_content print(eeprom_content)
print "\nADDR" print("\nADDR")
print eeprom_addr print(eeprom_addr)
if __name__ == '__main__' : if __name__ == '__main__' :
main() main()
#!/usr/bin/env python2 #!/usr/bin/env python3
from ctypes import cdll, Structure, POINTER, cast, c_int, \ from ctypes import cdll, Structure, POINTER, cast, c_int, \
c_char_p, c_void_p, c_ubyte, c_ushort, byref c_char_p, c_void_p, c_ubyte, c_ushort, byref
...@@ -79,7 +79,7 @@ class InternalUseArea: ...@@ -79,7 +79,7 @@ class InternalUseArea:
self.set_data(data) self.set_data(data)
def set_data(self, data): def set_data(self, data):
self.struct.data = c_char_p(array.array('B', data).tostring()) self.struct.data = c_char_p(array.array('B', data).tobytes())
self.struct.len = c_int(len(data)) self.struct.len = c_int(len(data))
class CommonHeader: class CommonHeader:
...@@ -121,24 +121,24 @@ class BoardInfoArea: ...@@ -121,24 +121,24 @@ class BoardInfoArea:
self.struct.mfg_date0 = c_ubyte(val[3]) self.struct.mfg_date0 = c_ubyte(val[3])
def set_manufacturer(self, data): def set_manufacturer(self, data):
self.struct.mfgr_data = c_char_p(data) self.struct.mfgr_data = c_char_p(data.encode())
self.struct.mfgr_typelen = (len(bytearray(data)) & 0x3f) | (0x3 << 6) self.struct.mfgr_typelen = (len(bytearray(data, 'utf-8')) & 0x3f) | (0x3 << 6)
def set_product_name(self, data): def set_product_name(self, data):
self.struct.product_data = c_char_p(data) self.struct.product_data = c_char_p(data.encode())
self.struct.product_typelen = (len(bytearray(data)) & 0x3f) | (0x3 << 6) self.struct.product_typelen = (len(bytearray(data, 'utf-8')) & 0x3f) | (0x3 << 6)
def set_serial_number(self, data): def set_serial_number(self, data):
self.struct.serial_data = c_char_p(data) self.struct.serial_data = c_char_p(data.encode())
self.struct.serial_typelen = (len(bytearray(data)) & 0x3f) | (0x3 << 6) self.struct.serial_typelen = (len(bytearray(data, 'utf-8')) & 0x3f) | (0x3 << 6)
def set_part_number(self, data): def set_part_number(self, data):
self.struct.partnum_data = c_char_p(data) self.struct.partnum_data = c_char_p(data.encode())
self.struct.partnum_typelen = (len(bytearray(data)) & 0x3f) | (0x3 << 6) self.struct.partnum_typelen = (len(bytearray(data, 'utf-8')) & 0x3f) | (0x3 << 6)
def set_fru_file_id(self, data): def set_fru_file_id(self, data):
self.struct.fru_fid_data = c_char_p(data) self.struct.fru_fid_data = c_char_p(data.encode())
self.struct.fru_fid_typelen = (len(bytearray(data)) & 0x3f) | (0x3 << 6) self.struct.fru_fid_typelen = (len(bytearray(data,'utf-8')) & 0x3f) | (0x3 << 6)
class DCLoadRecord: class DCLoadRecord:
...@@ -308,7 +308,7 @@ class OEMRecord: ...@@ -308,7 +308,7 @@ class OEMRecord:
def ipmi_open_file(name): def ipmi_open_file(name):
lib.ipmi_file_open(c_char_p(name)) lib.ipmi_file_open(c_char_p(name.encode()))
def ipmi_close_file(): def ipmi_close_file():
lib.ipmi_file_close() lib.ipmi_file_close()
...@@ -369,10 +369,10 @@ def main(): ...@@ -369,10 +369,10 @@ def main():
with open('test.out', 'rb') as testf: with open('test.out', 'rb') as testf:
test = testf.read() test = testf.read()
print ipmi_get_mfg_date(test) print(ipmi_get_mfg_date(test))
d = ipmi_get_internal_use_data(test) d = ipmi_get_internal_use_data(test)
for v in d: for v in d:
print hex(v) print(hex(v))
if __name__ == "__main__": if __name__ == "__main__":
main() main()
......
#! /usr/bin/env python2 #! /usr/bin/env python3
# coding: utf8 # coding: utf8
# Copyright CERN, 2011 # Copyright CERN, 2011
...@@ -32,7 +32,7 @@ def main (default_directory='.'): ...@@ -32,7 +32,7 @@ def main (default_directory='.'):
#================================================== #==================================================
# Serial number # Serial number
serial = SERIAL serial = SERIAL
print "Board's serial number: %s\n" % serial print("Board's serial number: %s\n" % serial)
#================================================== #==================================================
# Calculate number of minutes since 0:00 1/1/96 # Calculate number of minutes since 0:00 1/1/96
...@@ -41,17 +41,17 @@ def main (default_directory='.'): ...@@ -41,17 +41,17 @@ def main (default_directory='.'):
diff_date = now_date - ref_date diff_date = now_date - ref_date
total_seconds = diff_date.days * 86400 + diff_date.seconds total_seconds = diff_date.days * 86400 + diff_date.seconds
current_date = int(total_seconds//60) current_date = int(total_seconds//60)
print "Current date/time: %d minutes (since 0:00 1/1/96)\n" % current_date print("Current date/time: %d minutes (since 0:00 1/1/96)\n" % current_date)
# Manufacturiing date = current date # Manufacturiing date = current date
print "Manufacturing date : %d 0x%06X" % (current_date, current_date) print("Manufacturing date : %d 0x%06X" % (current_date, current_date))
mfg_date = current_date mfg_date = current_date
#================================================== #==================================================
# Create Board Info Area # Create Board Info Area
# FRU field is used to store the date of generation of the eeprom content # FRU field is used to store the date of generation of the eeprom content
# This could be used later to determine if the content has to be udated (bug fix, ...) # This could be used later to determine if the content has to be udated (bug fix, ...)
print "EEPROM content generated: %s\n" % now_date print("EEPROM content generated: %s\n" % now_date)
fru = "%s" % now_date fru = "%s" % now_date
bia = BoardInfoArea(mfg_date, "CERN", "FmcAdc100m14b4cha", serial, PART_NUMBER, fru) bia = BoardInfoArea(mfg_date, "CERN", "FmcAdc100m14b4cha", serial, PART_NUMBER, fru)
...@@ -107,30 +107,30 @@ def main (default_directory='.'): ...@@ -107,30 +107,30 @@ def main (default_directory='.'):
byte = f_eeprom.read(1) # reads one byte byte = f_eeprom.read(1) # reads one byte
f_eeprom.close() f_eeprom.close()
print "Raw EEPROM data:" print("Raw EEPROM data:")
i = 0 i = 0
for data in eeprom_data: for data in eeprom_data:
if i%8 == 0: if i%8 == 0:
print "0x%02X (%3d) : %02X" % (i, i, data), print("0x%02X (%3d) : %02X" % (i, i, data), end=' ')
else: else:
print "%02X" % (data), print("%02X" % (data), end=' ')
i += 1 i += 1
if i%8 == 0: if i%8 == 0:
print "" print("")
print("\n") print("\n")
dsum = 0 dsum = 0
for data in eeprom_data[158:162]: for data in eeprom_data[158:162]:
dsum += data dsum += data
print("0x%02X 0x%X" % (data, dsum)) print(("0x%02X 0x%X" % (data, dsum)))
print("\n\nsum: 0x%02X" % dsum) print(("\n\nsum: 0x%02X" % dsum))
checksum = (0xff & (1 + ~dsum)) checksum = (0xff & (1 + ~dsum))
print("calculated checksum: 0x%02X" % checksum) print(("calculated checksum: 0x%02X" % checksum))
print("data checksum : 0x%02X" % eeprom_data[162]) print(("data checksum : 0x%02X" % eeprom_data[162]))
print("") print("")
print("check data: 0x%02X" % (dsum + eeprom_data[162])) print(("check data: 0x%02X" % (dsum + eeprom_data[162])))
print("check data: 0x%02X" % (dsum + checksum)) print(("check data: 0x%02X" % (dsum + checksum)))
if __name__ == '__main__' : if __name__ == '__main__' :
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment