code: def recv_match(self, condition=None, type=None, blocking=False):
          '''recv the next message that matches the given condition
          type can be a string or a list of strings'''
          if type is not None and not isinstance(type, list):
              type = [type]
          while True:
              m = self.recv_msg()
              if m is None:
                  return None
              if type is not None and not m.get_type() in type:
                  continue
              if not mavutil.evaluate_condition(condition, self.messages):
                  continue
              return f recv_match(self, condition=None, type=None, blocking=False):
          '''recv the next message that matches the given condition
          type can be a string or a list of strings'''
          if type is not None and not isinstance(type, list):
              type = [type]
          while True:
              m = self.recv_msg()
              if m is None:
                  return None
              if type is not None and not m.get_type() in type:
                  continue
              if not mavutil.evaluate_condition(condition, self.messages):
                  continue
              return m
docs: recv the next message that matches the given condition
          type can be a string or a list of strings