def METHOD_NAME(self, end_of_response = False, max_attempts = 200):
    """
    Waits much longer for a response. This is the method to use if
    you are sure that the hardware will respond eventually. If you
    don't set end_of_response then it will automatically be the
    end_of_line character, and this will return once it finds the
    first end_of_line character.
    """
    if not end_of_response:
        end_of_response = str(self.end_of_line)
    attempts = 0
    response = ""
    index = -1
    while (index == -1) and (attempts < max_attempts):
        response_len = self.tty.inWaiting()
        if response_len > 0:
            response += self.read(response_len)
        time.sleep(self.wait_time)
        index = response.find(end_of_response)
        attempts += 1
    return response