def format_file(self): data = bytearray(64<<10) memview = memoryview(data) hdr = Pch2File.standard_text_header % (self.type, self.binary_version, self.build_version) memview[:len(hdr)] = hdr memview = memview[len(hdr):] #memview = self.format_header(memview) memview[0] = chr(self.binary_version) memview[1] = chr(self.binary_revision) fmemview = self.format(memview[2:]) bytes = len(memview) - len(fmemview) data_crc = crc(memview[:bytes]) memview[bytes:bytes+2] = pack('>H', crc(memview[:bytes])) bytes = len(data) - len(fmemview) + 2 return data[:bytes]
def format_file(self): data = bytearray(64 << 10) memview = memoryview(data) hdr = Pch2File.standard_text_header % (self.type, self.binary_version, self.build_version) memview[:len(hdr)] = hdr memview = memview[len(hdr):] #memview = self.format_header(memview) memview[0] = chr(self.binary_version) memview[1] = chr(self.binary_revision) fmemview = self.format(memview[2:]) bytes = len(memview) - len(fmemview) data_crc = crc(memview[:bytes]) memview[bytes:bytes + 2] = pack('>H', crc(memview[:bytes])) bytes = len(data) - len(fmemview) + 2 return data[:bytes]
def read(self, filename): self.filename = filename self.data = bytearray(open(filename, 'rb').read()) memview = self.parse_header(memoryview(self.data), filename) bytes = len(self.parse(memview[2:-2])) ecrc = unpack('>H', self.data[-2:])[0] acrc = crc(memview[:-2]) if ecrc != acrc: printf('Bad CRC 0x%x 0x%x\n' % (ecrc, acrc))