TUIO是什么?
TUIO(Table-Top User Interfaces Objects)是一种简单通用的协议,被设计于特定要求的触摸屏设备人机界面。灵感来自于互连的想法存在于各种表面互动的接口如reacTab或AudioTouch。TUIO协议已经在OpenSound Control上实施,并且可以在支持这种协议任何平台中使用。
简单的说:TUIO是一种格式化OSC数据的标准方法。
基本语法:
当TUIO应用OSC会使用它的基本语法:
/tuio/[profileName] set sessionID [parameterList]
/tuio/[profileName] alive [list of active sessionIDs]
/tuio/[profileName] fseq int32
参数:
我们在表面互动界面非常重视的对象属性在这部分的参数定义中反映了出来。每一个对象都会分配一个session ID,非常必要的唯一标识未加标签在连续帧的对象,在这种情况下,多个对象标记为相同的classID同时出现在表面。
其中的一些参数(id、position和angle)直接由传感器获取。其他的(速度、加速度)派生从这些主要参数使用定时信息。计算这些参数在低水平侧的触摸用户接口系统允许一个更高效的计算,因为必要的计时信息不需要被转移到客户端。
参数允许使用下面一组信息:
s sessionID, temporary ob ject ID, int32
i classID, fiducial ID number, int32
x, y, z position, float32, range 0...1
a, b, c angle, float32, range 0..2PI
X, Y ,Z movement vector (motion speed & direction), float32
A, B, C rotation vector (rotation speed & direction), float32
m motion acceleration, float32
r rotation acceleration, float32
P free parameter, type defined by OSC packet header
配置文件:
我们定义一组配置文件,它适用于大多数桌面可触摸的用户界面。这使得物体跟踪和鼠标在在二维表面,在特殊情况下也在桌面上方三维空间表面。如果其中一个预定义的配置文件不满足系统的要求我们还允许所谓的原始资料,发送原始传感器数据,以及自由形式配置文件,它允许一个用户定义的一组参数传送。
2D的互动表面:
/tuio/2Dobj set s i x y a X Y A m r
/tuio/2Dcur set s x y m r
3D的互动表面:
/tuio/3Dobj set s i x y z a X Y Z A m r
/tuio/3Dcur set s x y z m r
自定义的配置文件:
/tuio/_[formatString]
/tuio/_ixyP set s i x y 0.57
通常情况下,我们接收的数据为2D数据,也就是 ID,Position, Speed, Angle