Python鼠标位置通过OSC慢速发送

Python鼠标位置通过OSC慢速发送,python,udp,position,mouse,osc,Python,Udp,Position,Mouse,Osc,我正在使用raspberry pi,运行debian,使用Python通过OSC发送鼠标位置数据。信息发送正确,但一两分钟后,流速度越来越慢。。。我不明白为什么 我组合了这两组代码 老鼠 OSC 我试着只运行鼠标代码,它不会慢下来,所以我假设它与OSC数据有关,缓存中正在生成什么东西 我对Python不是很有经验,有很多东西需要学习。我尝试过在这里和其他地方搜索答案,但在搜索OSC或UDP时没有找到答案 有什么想法吗 #!/usr/bin/env python """ Corrected,

我正在使用raspberry pi,运行debian,使用Python通过OSC发送鼠标位置数据。信息发送正确,但一两分钟后,流速度越来越慢。。。我不明白为什么

我组合了这两组代码

老鼠

OSC

我试着只运行鼠标代码,它不会慢下来,所以我假设它与OSC数据有关,缓存中正在生成什么东西

我对Python不是很有经验,有很多东西需要学习。我尝试过在这里和其他地方搜索答案,但在搜索OSC或UDP时没有找到答案

有什么想法吗

#!/usr/bin/env python

"""
Corrected, the thread stops now.
"""

import sys
import os
from OSC import OSCClient, OSCMessage

from time import sleep

import gtk
gtk.gdk.threads_init()

import threading

# uses the package python-xlib
# from http://snipplr.com/view/19188/mouseposition-on-linux-via-xlib/
# or: sudo apt-get install python-xlib
from Xlib import display


old_stdout = sys.stdout
sys.stdout = open(os.devnull, 'w')

client = OSCClient()
client.connect( ("192.168.1.183", 7110) )


def mousepos():
    """mousepos() --> (x, y) get the mouse coordinates on the screen (linux, Xlib)."""
    data = display.Display().screen().root.query_pointer()._data
    return data["root_x"], data["root_y"]


class MouseThread(threading.Thread):
    def __init__(self, parent, label):
        threading.Thread.__init__(self)
        self.label = label
        self.killed = False

    def run(self):
        try:
            while True:
                if self.stopped():
                    break
                text = "{0}".format(mousepos())
                self.label.set_text(text)
                sleep(0.01)
                client.send( OSCMessage("/MousePos", ["{0}".format(mousepos())] ) )
        except (KeyboardInterrupt, SystemExit):
            sys.exit()




    def kill(self):
        self.killed = True

    def stopped(self):
        return self.killed



class PyApp(gtk.Window):

    def __init__(self):
        super(PyApp, self).__init__()

        self.set_title("Mouse coordinates 0.1")
        self.set_size_request(250, 50)
        self.set_position(gtk.WIN_POS_CENTER)
        self.connect("destroy", self.quit)

        label = gtk.Label()

        self.mouseThread = MouseThread(self, label)
        self.mouseThread.start()


        fixed = gtk.Fixed()
        fixed.put(label, 10, 10)

        self.add(fixed)
        self.show_all()

    def quit(self, widget):
        self.mouseThread.kill()
        gtk.main_quit()


if __name__ == '__main__':
    app = PyApp()
    gtk.main()

你好,杰罗姆。它在接收端(您可能在那里绘制值)或在收集和发送数据的同一python接口中变慢?