code: def recv_msg(self):
          '''message receive routine'''
          if self._index >= self._count:
              return None
          m = self._msgs[self._index]
          type = m.get_type()
          self._index += 1
          self.percent = (100.0 * self._index) / self._count
          self.messages[type] = m
          self._timestamp = m._timestamp
  
          if self._flightmode_index < len(self._flightmodes):
              (mode, tstamp, t2) = self._flightmodes[self._flightmode_index]
              if m._timestamp >= tstamp:
                  self.flightmode = mode
                  self._flightmode_index += 1
  
          self.check_param(m)
          return f recv_msg(self):
          '''message receive routine'''
          if self._index >= self._count:
              return None
          m = self._msgs[self._index]
          type = m.get_type()
          self._index += 1
          self.percent = (100.0 * self._index) / self._count
          self.messages[type] = m
          self._timestamp = m._timestamp
  
          if self._flightmode_index < len(self._flightmodes):
              (mode, tstamp, t2) = self._flightmodes[self._flightmode_index]
              if m._timestamp >= tstamp:
                  self.flightmode = mode
                  self._flightmode_index += 1
  
          self.check_param(m)
          return m
docs: message receive routine