TUIO是一个用途广泛,支持厂商众多的多点触摸协议。 其编码采用XML抽象描述,所以任何支持XML的语言都可以使用TUIO协议的触摸设备。另外,TUIO不受windows触摸点上限限制,即设备支持多少个点,你就能使用多少个。
现在最新的TUIO协议版本是2.0 , 但是仍然没有普及,现有设备还是以1.0为默认支持。
希望在设备中使用TUIO,必须要与TUIO服务建立一个连接,TUIO协议的默认端口为 3000,这里跳过连接直接进入主题。
这是一个TUIO协议的一个数据包,其包含至少3个名为MESSAGE子项,每个子项的第一个子项的value属性定义了此子项的数据类型,
以此例为示,它有3个子项,第1个子项(alive)代表着当前存在的触摸点,这里是指所有在设备上的触摸点,包括那些正在移动的和静止的。第2个子项(set)对应了一个触摸点的详细数据,第3个子项(fseq)定义了包的序列ID。
<OSCPACKET ADDRESS="127.0.0.1" PORT="55448" TIME="-3736546999771946328">
<MESSAGE NAME="/tuio/2Dcur">
<ARGUMENT TYPE="s" VALUE="alive"/>
<ARGUMENT TYPE="i" VALUE="4"/>
</MESSAGE>
<MESSAGE NAME="/tuio/2Dcur">
<ARGUMENT TYPE="s" VALUE="set"/>
<ARGUMENT TYPE="i" VALUE="4"/>
<ARGUMENT TYPE="f" VALUE="0.014778325123152709"/>
<ARGUMENT TYPE="f" VALUE="0.03414634146341464"/>
<ARGUMENT TYPE="f" VALUE="0"/>
<ARGUMENT TYPE="f" VALUE="0"/>
<ARGUMENT TYPE="f" VALUE="0"/>
</MESSAGE>
<MESSAGE NAME="/tuio/2Dcur">
<ARGUMENT TYPE="s" VALUE="fseq"/>
<ARGUMENT TYPE="i" VALUE="3"/>
</MESSAGE>
</OSCPACKET>
事实上,我们只需要使用alive和set消息,其他的消息都不在我们的考虑之内,
set消息传过来的参数只是TUIO设备上的坐标比例,从0-1,将其与本地舞台大小相乘才能得到舞台坐标。
alive消息描述了当前存在的点,根据这个参