def METHOD_NAME(self):
    '''called on idle'''
    if self.start_pending and self.ntrip is None and self.pos is not None:
        self.cmd_start()
    if self.ntrip is None:
        return
    data = self.ntrip.read()
    if data is None:
        now = time.time()
        if (self.last_pkt is not None and
            now - self.last_pkt > 15 and
            (self.last_restart is None or now - self.last_restart > 30)):
            print("NTRIP restart")
            self.ntrip = None
            self.start_pending = True
            self.last_restart = now
        return
    if time.time() - self.ntrip.dt_last_gga_sent > 2:
        self.ntrip.setPosition(self.pos[0], self.pos[1])
        self.ntrip.send_gga()
    self.log_rtcm(data)
    rtcm_id = self.ntrip.get_ID()
    if not rtcm_id in self.id_counts:
        self.id_counts[rtcm_id] = 0
        self.last_by_id[rtcm_id] = data[:]
    self.id_counts[rtcm_id] += 1
    blen = len(data)
    if blen > 4*180:
        # can't send this with GPS_RTCM_DATA
        return
    total_len = blen
    self.rate_total += blen * self.ntrip_settings.sendmul
    if blen > 180:
        flags = 1 # fragmented
    else:
        flags = 0
    # add in the sequence number
    flags |= (self.pkt_count & 0x1F) << 3
    fragment = 0
    while blen > 0:
        send_data = bytearray(data[:180])
        frag_len = len(send_data)
        data = data[frag_len:]
        if frag_len < 180:
            send_data.extend(bytearray([0]*(180-frag_len)))
        if self.ntrip_settings.sendalllinks:
            links = self.mpstate.mav_master
        else:
            links = [self.master]
        for link in links:
            for d in range(self.ntrip_settings.sendmul):
                if random.random() * 100 < self.ntrip_settings.frag_drop_pct:
                    continue
                link.mav.gps_rtcm_data_send(flags | (fragment<<1), frag_len, send_data)
        fragment += 1
        blen -= frag_len
    self.pkt_count += 1
    now = time.time()
    if now - self.last_rate > 1:
        dt = now - self.last_rate
        rate_now = self.rate_total / float(dt)
        self.rate = 0.9 * self.rate + 0.1 * rate_now
        self.last_rate = now
        self.rate_total = 0
    self.last_pkt = now