• 8691阅读
  • 6回复

[提问]tuio通信协议 [复制链接]

上一主题 下一主题
离线axylp123
 

只看楼主 倒序阅读 楼主  发表于: 2014-09-22
已经使用udp socket从一台设备中获取到了数据 内容如下
#bundle           /tuio/2Dcur ,s  alive      /tuio/2Dcur ,si fseq     Ρ
关系公司的程序员说这个东东要用 tuio协议来解析
找了一会也没找到有用的资料
求大神们指教
给份资料
最好能给个demo

离线roywillow

只看该作者 1楼 发表于: 2014-09-22
没听过这协议的路过……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线begboy

只看该作者 2楼 发表于: 2014-09-23
axylp123,你好!
你的设备是多点触控的平板?
或是大屏展示触摸设备?

刚问了做这行的朋友,结合网上查的情况如下:

TUIO协议(Table-Top User Interfaces Objects),
是一套简单且通用的,特别为满足可感知桌面用户界面需要所设计的协议。因为TUIO协议本身是基于 OSC(OpenSound Control)的,所以TUIO协议可以看做是OSC数据的一种标准化实现,可以用于所有支持该协议的设备上。
TUIO协议定义了两类主要的消息,即set消息和alive消息。其中,set消息用于目标对象特定状态,如位置、姿态或其他任何可以识别状态的通讯;alive消息则用于通过系列的sessionID来标识当前目标对象。TUIO使用下面的格式来进行数据通讯:
  /tuio/[profileName] set sessionID [parameterList]
  /tuio/[profileName] alive [list of active sessionIDs]
  /tuio/[profileName] fseq int32
TUIO原生是通过UDP进行数据传送的,因此还必需通过Flosc网关将UDP(OSC)数据转换为TCP协议数据。
上层程序读取TCP数据进行处理。


由于我们没有做过相关项目,无法提供完整信息。
祝好运。
begboy





离线toby520

只看该作者 3楼 发表于: 2014-09-23
QtQML多多指教开发社区 http://qtclub.heilqt.com
将QtCoding进行到底
关注移动互联网,关注金融
开发跨平台客户端,服务于金融行业
专业定制界面
群号:312125701   373955953(qml控件定做)
离线labhome

只看该作者 4楼 发表于: 2014-09-23
离线axylp123

只看该作者 5楼 发表于: 2014-09-25
回 begboy 的帖子
begboy:axylp123,你好!
你的设备是多点触控的平板?
或是大屏展示触摸设备?
刚问了做这行的朋友,结合网上查的情况如下:
....... (2014-09-23 10:06) 

首先感谢您的回复,然后还要继续向您请教,先描述一下我的情况吧。
我这有一台设备(xbox 360) ,设备提供商给我写了一个接口,他说是用的tuio协议,他说把osc和tco转换了,他说我可以用udp 接收,可是我用qt里面的 QUdpSocket读取到了,他接口发来的数据,可是显示出来是乱码。和设备商的程序沟通了几次,他挺不耐烦的,也懒得问他了,想自己找找办法怎么解决,不知道是不是涉及到网络大端小端的问题,还请大神指教,小弟扣扣343264652
离线begboy

只看该作者 6楼 发表于: 2014-09-29
回 axylp123 的帖子
axylp123:首先感谢您的回复,然后还要继续向您请教,先描述一下我的情况吧。
我这有一台设备(xbox 360) ,设备提供商给我写了一个接口,他说是用的tuio协议,他说把osc和tco转换了,他说我可以用udp 接收,可是我用qt里面的 QUdpSocket读取到了,他接口发来的数据,可是显示出来是乱码。和 .. (2014-09-25 22:37)

axylp123,你好!
     首先不用客气,目前还没能帮上忙。


     关于你的项目,我们的开发意见是:
     1、首先确定对方接口的编码是什么?
           这一点很重要,比协议重要,否则出来的永远乱码;
     2、如果怀疑大端小端问题,一般是由对方硬件设计决定的,
           例如: 对方是使用IBM等大机系统(使用POWER PC等中央处理器)的,
           而自身是使用intel处理器的,就需要考虑这个问题了;
       如需转换可使用C语言中的大小端转换函数:htonl()和ntohl()函数。
        另外,如果对方可使用C语言,也可请他们使用以下程序测试一下是否大端:

    int checkCPU()
    {
       {
       union w
       {
          int a;
          char b;
       } c;
       c.a = 1;
       return (c.b == 1);
       }
    }
    程序返回1,为小端;反之,为大端;


   祝好运!
   begboy



快速回复
限100 字节
 
上一个 下一个