如何“在猕猴桃中实现TUIO输入”

时间:2019-03-31 10:53:10

标签: python kivy

我正在用kivy开发一个自定义手势识别应用程序,我有两个单独的应用程序,其中一个是kivy touch tracer,另一个是我的手势识别应用程序。我的手势识别应用程序提供了x和y坐标,我需要使用TUIO将该坐标发送到我的奇异应用程序。我阅读了有关OSC协议的信息,并在下面的代码中创建了代码,它可以正确发送OSC数据包,但是我的kivy应用程序未接收或处理它。 我想知道我的OSC数据包语法,Kivy配置中是否有任何错误,以及为什么它不起作用。  请你帮忙

Geasture应用程序简化了:

from oscpy.client import OSCClient
import pyautogui

osc = OSCClient('127.0.0.1', 3334)
while (True):
    (m1,m2)=pyautogui.position()
    s=pyautogui.size()
    m1=m1/s[0]
    m2=m2/s[1]
    osc.send_message(b'/tuio/Gest',(m1,m2))

KIVY应用

TUIO运动事件类:

class TuioGestMotionEvent(MotionEvent):
    def __init__(self, id, args):
        print ('here too')
        super(TuioGestMotionEvent, self).__init__(id, args)

    def depack(self, args):
        self.is_touch = True
        # In this method, implement 'unpacking' for the received
        # arguments. you basically translate from TUIO args to Kivy
        # MotionEvent variables. If all you receive are x and y
        # values, you can do it like this:
        if len(args) <= 5:
            print (args)
            self.sx, self.sy = args[0:2]

            self.profile = ('pos', )
        self.sy = 1 - self.sy
        super(TuioGestMotionEvent, self).depack(args)

内部构建:

def build(self):
        Config.set('input', 'Gesture', 'tuio,127.0.0.1:3334')
        TuioMotionEventProvider.register(b'/tuio/Gest', TuioGestMotionEvent)
        return Touchtracer()

我希望第一个应用程序将OSC数据包发送到KIVY应用程序,并在touchtracer kivy应用程序中绘制动作。这是我的第一个问题,请问格式是否有任何错误

0 个答案:

没有答案