code: def iter_data(self, chunk_size=2**16, ftype='normal'):
          
          self._check_type_supported(ftype)
          buf_p = ffi.new("char[{0}]".format(chunk_size))
          size_p = ffi.new("uint64_t*")
          offset_p = ffi.new("uint64_t*")
          for chunk_idx in range(int(math.ceil(self.size/chunk_size))):
              size_p[0] = chunk_size
              lib.gp_camera_file_read(
                  self._cam._cam, self.directory.path.encode(),
                  self.name.encode(), backend.FILE_TYPES[ftype], offset_p[0],
                  buf_p, size_p, self._cam._ctx)
              yield ffi.buffer(buf_p, size_p[0])[:]
docs: Get an iterator that yields chunks of the file content.
  
          :param chunk_size:  Size of yielded chunks in bytes
          :type chunk_size:   int
          :param ftype:       Select 'view' on file.
          :type ftype:        str
          :return:            Iterator