called in idle time

def idle_task(self):
        '''called in idle time'''
        try:
            data = self.port.recv(200)
        except socket.error as e:
            if e.errno in [ errno.EAGAIN, errno.EWOULDBLOCK ]:
                return
            raise
        if len(data) > 110:
            print("DGPS data too large: %u bytes" % len(data))
            return
        try:

            self.master.mav.gps_inject_data_send(
                self.target_system,
                self.target_component,
                len(data),
                bytearray(data.ljust(110, '\0')))

        except Exception(e):
            print ("DGPS Failed:", e)