code: async def future_command(self, cmd):
          
  
          if self._asyncio_cmd_lock is None:
              raise HardwareError("Cannot use future_command because no event loop attached")
  
          async with self._asyncio_cmd_lock:
              return await self._future_command_unlocked(cmd)
docs: Run command as a coroutine and return a future.
  
          Args:
              loop (BackgroundEventLoop): The loop that we should attach
                  the future too.
              cmd (list): The command and arguments that we wish to call.
  
          Returns:
              asyncio.Future: An awaitable future with the result of the operation.