我正在用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应用程序中绘制动作。这是我的第一个问题,请问格式是否有任何错误