code: def get_message(self, timeout=0.5):
          
          try:
              return self.buffer.get(block=not self.is_stopped, timeout=timeout)
          except Empty:
              return None
docs: Attempts to retrieve the latest message received by the instance. If no message is
          available it blocks for given timeout or until a message is received, or else
          returns None (whichever is shorter). This method does not block after
          :meth:`can.BufferedReader.stop` has been called.
  
          :param float timeout: The number of seconds to wait for a new message.
          :rytpe: can.Message or None
          :return: the message if there is one, or None if there is not.