def next_blob(self):
        """Generate next blob in file"""
        try:
            length = struct.unpack('<i', self.blob_file.read(4))[0]
        except struct.error:
            raise StopIteration
        header = CLBHeader(file_obj=self.blob_file)
        blob = {'CLBHeader': header}
        remaining_length = length - header.size
        pmt_data = []
        pmt_raw_data = self.blob_file.read(remaining_length)
        pmt_raw_data_io = BytesIO(pmt_raw_data)
        for _ in range(int(remaining_length / 6)):
            channel_id, time, tot = struct.unpack(
                '>cic', pmt_raw_data_io.read(6)
            )
            pmt_data.append(PMTData(ord(channel_id), time, ord(tot)))
        blob['PMTData'] = pmt_data
        blob['PMTRawData'] = pmt_raw_data
        return blob