该应用程序直接将输入的UDP消息转换成TCP流,在这个过程中数据是直接转换的并没有对数据进行任何处理(在0.2.1版本中则有一个可选项,使得开发 者可以在发送数据前在数据包头前添加一个数据包大小前缀,以遵循OSC/TCP规范)。这样就使得一些不支持UDP的程序(比如:flash)能够接受通 过UDP协议发送过来的数据。因为OSC/TUIO通常是通过UDP发送数据的,因此这个程序可以使得flash能够以原始二进制的形式来接受这些消息。
可以在data/settings.xml文件中进行一些必要的设置
源代码及可执行程序地址在:http://code.google.com/p/udp-tcp-bridge/
下面是FAQ:
1 此程序和flosc做的事情不一样吗?
答:不一样,flosc只是针对osc的,它负责将输入的数据转换成xml格式,然后通过tcp发送出去,然后flash就可以接收并解析这些xml数 据。这个方法虽然很有创意,但是目前已不是最有效的方式,因为我们知道flash目前已经有一个flash.net.socket’s类(库)使得我们可 以创建一个tcp的socket来接收二值数据(raw binary data)。
2 难道我不能直接在ccv/tbeta中通过tcp发送tuio消息吗?
答:虽然我们可以在ccv/tbeta中直接通过tcp来发送数据,flash也可以直接的监听这些数据,我们也可以就此不再需要中间的通信协议转换程序 了(比如flosc),但是通过tcp发送的数据依旧是xml格式的,而不是原始的、二值的tuio消息(即flash需要从xml中解析出tuio消 息)。因此通过ccv/tbeta发送的数据只是一个包含有tuio数据的xml字符串,根本算不上是纯粹的tuio消息。
3 我如何在flash中接收这些数据?
答:使用flash.net.Socket就可以了,使用方法在adobe的官方帮助上可以找到:
http://livedocs.adobe.com/flex/2/langref/flash/net/Socket.html
4 我可以继续使用NUIGroup的flash touch api吗?
答:可以,但是你需要覆盖一些文件,如果你使用的跟踪器是通过UDP发送tuio数据(几乎所有的跟踪器都以这种方式发送的),并且你使用udp- tcp-brige将数据转换成tcp方式,那么通过tcp发送的数据就是纯粹的tuio数据(不是xml字符串,tuio的消息格式可以详细tuio相 关文档)。因此NUIGroup的flash touchapi 是无法解析它的。值得庆幸的是,在http://www.touchgateway.com/?p=70上有一些可替代的类,这些类负责进行必要的二值数据解析并产生相同的tuio事件(up down move等),因此除了解析数据部分外你可以使用NUIGroup中其它部分的touch api。你也可以修改/重写zip文件中的那些as3文件,这样你就可以将多点触摸flash程序无缝的集成进来。
编译源码:
这个应用程序在openframework 006下完成,使用了以下附加组件:
?ofxNetwork
?ofxThread
?ofxXMLSettings
下面内容值得提及一下:
flosc: 一个java应用程序,将通过UDP发送过来的OSC消息转换成xml数据并通过tcp发送出去
oscar:native max osx应用程序,做的工作同flosc类似(osc(UDP)->xml(TCP))
toxy :本地的windows/linux应用程序,据我所知是将输入的tuio数据按照预定的二进制格式转换成tcp流
touchgateway:java应用程序,将所有输入的UDP转换成TCP。和我的udp-tcp-bridge做的工作相同,只不过是用java写的。



猜您还喜欢:
- 马云的无人餐厅今天开业,没有没有一个点菜员、收银员 (此文被围观2249次)
- 多点触控简介 (此文被围观5582次)
- 吃出新高度 上海首家深海沉浸式体验餐厅 (此文被围观5919次)
- 蓝牙定位技术 (此文被围观3868次)
- 常见电阻触摸屏故障排除 (此文被围观4718次)
- 无锡5D全息投影凡泰意境餐厅隆重开业 (此文被围观605次)
- 多点触摸概述与发展 (此文被围观2394次)
- 布置一场全息婚礼最快要多久,答案是… (此文被围观1887次)
多更新,要不然还以为您老人家去保卫钓鱼岛了呢