code: def _encode_transfer_block_data(self):
          
          assert self.get_empty() is False
          buf = bytearray(self._size)
          transfer_count = self._read_count + self._write_count
          assert not (self._read_count != 0 and self._write_count != 0)
          assert self._block_request is not None
          pos = 0
          buf[pos] = Command.DAP_TRANSFER_BLOCK
          pos += 1
          buf[pos] = self._dap_index
          pos += 1
          buf[pos] = transfer_count & 0xff
          pos += 1
          buf[pos] = (transfer_count >> 8) & 0xff
          pos += 1
          buf[pos] = self._block_request
          pos += 1
          for count, request, write_list in self._data:
              assert write_list is None or len(write_list) <= count
              assert request == self._block_request
              write_pos = 0
              if not request & READ:
                  for _ in range(count):
                      buf[pos] = (write_list[write_pos] >> (8 * 0)) & 0xff
                      pos += 1
                      buf[pos] = (write_list[write_pos] >> (8 * 1)) & 0xff
                      pos += 1
                      buf[pos] = (write_list[write_pos] >> (8 * 2)) & 0xff
                      pos += 1
                      buf[pos] = (write_list[write_pos] >> (8 * 3)) & 0xff
                      pos += 1
                      write_pos += 1
          return buf
docs: Encode this command into a byte array that can be sent
  
          The data returned by this function is a bytearray in
          the format that of a DAP_TransferBlock CMSIS-DAP command.