一种单显示多笔交互方法

文档序号:6602933阅读:147来源:国知局
专利名称:一种单显示多笔交互方法
技术领域
本发明属于人机交互领域,具体涉及到一种单显示多笔交互方法。
背景技术
随着计算机的普及,其应用已经渗透到我们日常生活的各个方面,但在一些比较 贫困的学校中,还会出现十几个儿童围在一台计算机面前的场景。在较发达的地区,多人 共享一台计算机的情况还是很常见的。在美国公立学校,共享比率达到了 3.8比1。即使 没有资源上的限制,面对面的合作所带来的社交方面的益处也是人们共享计算机的主要 原因之一。在多人共享计算机的情况下,计算机只能由一个人操作时,旁观者由于没有计 算机的控制权,很容易失去兴趣和注意力。为此目前已经有研究单显示的多人交互技术: SDG Toolkit是给开发人员提供的编写单屏幕多人交互应用的开发包。它从界面层到消息 响应层,提供相应的控件和API,方便开发人员使用;CoSearch是基于Microsoft Windows Multipoint SDK开发的网络查询应用,支持多个用户使用多个鼠标在同一设备上联合查 询,每个用户都可以控制自己的查询和参与他人的查询,查询结果在同一显示设备上;Udai Singh Pawar等人将单显示多人交互应用到教学中,开发了多人学习英文单词的应用,大大 提高了学生们的学习兴趣与学习单词的效率。但是上述研究主要使用是基于鼠标的多人交 互,不适合对电脑使用不熟悉的用户群体,特别是儿童用户使用电脑进行交互。现有的一种 解决方案是采用多触控技术,即使用支持多点触摸控制的特殊显示设备(如多触控桌面) 来支持多个用户同时在一台设备上进行操作。然而,该技术需要特殊的硬件设备支持,成本 比较高,对于普通用户来讲还难以接受。综上所述,由于笔式交互技术简单便于操作的特 性,更适合非专业用户以及儿童使用,以及笔式交互设备在装备改造上相对便宜和易于实 现的优势,因此,本专利提出了一种多笔交互方法,基于该方法和技术,可以使多个用户分 别使用笔与软件进行交互。

发明内容
本项发明解决了在单显示计算机设备上实现多人使用笔设备同时操作的难题,使 得在强调协同合作,如儿童教学等相关环境下的多人合作成为可能,极大地提高这些环境
下的用户体验。
为实现上述目的,单显示多笔交互方法实现了如下特性
1.支持多用户同时进行操作
2.有区别的显示各个笔设备到显示设备上
3.支持差异化操作
4.支持冲突检测与解决
5.支持在已有的应用程序基础上实现单显示多笔交互
6.支持SDK开发
7.采用驱动式支持方式实现单显示多笔交互的支持
本发明的技术方案为一种单显示多笔交互方法,其步骤为1)计算机系统从识别出的各输入设备中过滤出若干目标交互设备;2)计算机系统对每个目标交互设备的I/O端口进行监听,获得每个目标交互设备 的信息对Device ID和I/O data ;其中,Device ID为目标交互设备的ID,I/O data为目 标交互设备输入信息;3)计算机系统隐藏系统光标,并根据目标交互设备的信息绘制每个目标交互设备 的光标;4)将每个目标交互设备的I/O data信息封装为Windows操作系统所能识别的消 息,并将Device ID作为附加数据发送到应用程序的目标消息队列中;5)根据Device ID对步骤4)封装后的消息进行分发,并提取光标位置信息更新目 标交互设备的光标显示;6)根据预定义的冲突检测规则对消息进行冲突检测,如果存在冲突则利用预定义 的冲突消解规则对冲突消息进行消解;7)根据步骤6)处理后的消息生成目标交互设备的原语;8)根据原语生成目标交互设备的手势消息类型,发送到应用程序的目标消息队 列;9)应用程序根据接收的Device ID数据和手势消息类型,驱动相应的目标交互设备。进一步的,所述预定义的冲突检测规则包括a)资源竞争检测,即测试所有目标 交互设备对系统资源的请求,如果在同一时刻有两个以上的目标交互设备同时请求一个系 统资源,则判定为存在资源竞争冲突;b)操作冲突检测,即测试所有目标交互设备的当前 操作,如果检测到在同一时刻有两个以上的目标交互设备进行相互对立的操作,则判定为 存在操作冲突。进一步的,所述预定义的冲突消解规则包括a)资源竞争冲突消解,即根据设备 的DevicelD顺序执行目标交互设备的资源请求;b)操作冲突消解,即将相互对立的并行操 作分解,按Device ID顺序串行依次执行各个目标交互设备的当前操作请求。进一步的,绘制目标交互设备的光标的方法为1)载入初始注册信息;其中初始注册信息包括光标资源的位置、各个状态的光 标资源的定义;2)对每一个目标交互设备,分配与其状态相对应的光标资源,并在显示设备上绘 制出该设备的光标。进一步的,采用不规则Windows窗口绘制方法绘制光标。进一步的,所述步骤5)中,进行消息分发的方法为首先将每个目标交互设备从 输入开始到输入结束时间内的消息存储到一光标记录表中,然后根据Device ID对消息进 行分类,最后从光标记录表中提取分类后的消息进行分发。进一步的,所述步骤6)中,将每个目标交互设备的I/O data信息封装为计算机系 统所能识别的消息的方法为首先从I/O data中分解出目标交互设备的设备类型信息、坐 标类型信息、坐标位置信息,然后将其封装成PEN_DEVICE_INFO结构;最后将封装后的PEN_DEVICE_INF0结构按照计算机系统的消息格式封装为Windows操作系统所能识别的消息; 其中PEN_DEVICE_INFO结构包括目标交互设备输入类型、目标交互设备的光标位置绝对 值、目标交互设备的光标位置变化值。进一步的,所述原语包括点击原语和笔划原语;对于点击原语,将其直接发送到应 用程序的目标消息队列中;对于笔划原语,利用分类器和设定的手势集合,识别出手势消息 类型后发送到应用程序的目标消息队列中。进一步的,通过连续两次调用GetRawInputDevicelnfo函数以读取输入设备的 RIDI_DEVICENAME,通过输入设备的RIDI_DEVICENAME值过滤出所述目标交互设备。进一步的,所述目标交互设备包括手写板、手写屏、鼠标。实现本方法的具体模块结构如图1所示,包含设备驱动层,消息处理层,应用层。 这三层之间的关系是设备驱动层在硬件层面上识别各个笔式输入设备的消息,过滤成对 应于各个设备自身的消息,该驱动工作在操作系统对应驱动基础之上,对笔设备消息起到 过滤作用,并将过滤之后的消息传递到下一层;消息处理层负责做两件事情,首先它会屏蔽 操作系统自身的光标绘制,从而根据设备驱动层传来的消息绘制各个笔设备的光标,此外 的功能是对设备驱动层过滤后的消息做合成,已使得下一层即应用层能够识别消息。在这 一层合成后的消息与普通的windows操作系统笔设备消息的区别是,它带有附加信息,用 于在应用层识别不同的笔设备标识;应用层有两个功能,其一是将上层的消息分发到目标 消息队列之前,进行冲突检测和冲突消解,之后将正确的消息发送到目标消息队列,以驱动 实际的应用程序运行,其二是在上层合成后的消息的基础上识别出手势,将识别结果也以 更高级的消息(自定义级别)发送到具体的应用程序,驱动这些应用完成更高级的功能。本交互方法在单显示单笔设备或者单鼠标设备的计算系统上实现了对多笔设备 的支持,从而可以支持多人同时使用多个笔设备在单显示设备上进行交互。这是多传统的 计算交互模式的一大扩展,极大的方便了在需要多人同时交互的环境下的人机交互。由于 本交互方法的易于实现和成本上的相对低廉,所以本交互方法具有很好的普及潜力。在儿 童教学、会议交流等环境下,本交互方法的应用,将极大增强参与者的协同合作能力,方便 了他们在单个计算机设备上共同完成任务。与现有技术相比,本发明具有如下的优点和技术效果1.在单显示设备上实现了多笔交互方法。本交互方法在传统的计算机设备上实现了多笔交互的支持,是对传统单显示单笔 /鼠标交互的一大扩展。2.单显示计算设备上的多人协同操作。引入多笔多人同时操作,必然会存在冲突。该多笔交互方法在提供多人多笔交互 的同时,也定义了潜在的冲突检测方法和相应冲突的解决规则。3.驱动式软件支持。本交互方法从硬件层面上做设备消息过滤进而实现最终的多笔支持。4.简单易行,无需昂贵硬件设备支持。本交互方法的实现不需要特别的交互设备,省去了昂贵的硬件设备费用。而且简 单,容易在常用的计算机环境下实现。


图1本交互方法的实现架构图;图2本交互方法的设备分析过程图;图3本交互方法的实现流程图;图4本交互方法的手势生成与识别流程图;图5本交互方法的效果图。
具体实施例方式为了使本技术领域的技术人员更好的理解,下面结合附图和实施方式对本交互方 法作进一步的详细说明本发明的实现流程如图3所示。首先构建设备驱动层。如图1所示,该层接受系统 笔式设备,鼠标等设备驱动程序输出的设备I/O信息,通过该层的设备消息过滤驱动模块, 对设备I/O进行初步过滤,分离出各个笔式设备,鼠标设备的I/O信息,然后以〈Device ID, l/0data>配对方式作为设备驱动层输出结果。以下详细说明设备驱动层各模块的功能(1)笔式设备输入模块笔式设备是本交互方法的基础,为了实现多个笔式设备同时操作,需要将接入计 算机系统中的各个笔式设备,鼠标设备以及其他设备区分开来,过滤系统设备,获得目标交 互设备信息笔式设备和鼠标设备(在没有连接笔式设备时,鼠标设备也被支持)。1.该模块枚举出系统中的所有HID设备。通过操作系统底层API,取得所有的HID 设备信息。如图2所示,这些信息包括系统中的鼠标,笔式设备如手写板,手写屏,键盘设 备,游戏操作杆等。2.设备过滤。通过连续两次调用GetRawInputDevicelnfo以读取设备的RIDI_ DEVICENAME,通过该值可以判断当前设备是否为本交互方法所支持的交互设备,进而过滤 掉不支持的设备。(2)设备输入与监听模块过滤出笔式交互设备之后,系统将对这些交互设备的I/O进行监听。由于这些设 备都是输入设备,实际上就是监听这些设备的INPUT信息。INPUT信息来源就是来自操作系 统的笔式交互设备底层驱动的处理结果。该模块只监听(1)中模块所得到的目标交互设备 的INPUT,然后将这些INPUT传递到下一个模块。1.取得底层交互设备的输入。通过调用GetRawInputData,取得输入设备的输入 信息,并分析设备类型和ID,与(1)中获得的设备进行匹配。2.将INPUT信息传递到下一个模块。(3)笔式消息过滤模块该模块获取来自上层的设备输入信息以及设备信息,对这些信息进行封装配对, 以〈DevicelD,I/O data)的配对形式作为整个设备驱动层的输出结果输出到下一层。在设备驱动层构建完毕的基础之上,获得了带有设备ID的设备输入信息,即实现 了设备信息的过滤,做到了在底层区分各个笔式输入设备的输入信息。下一步就是在此基 础之上,将上一层所获得的信息包装成消息,以驱动应用程序的实际运行;此外另一项工作 是根据上层设备输入信息,绘制各个笔式输入设备的光标显示即对于每个笔式输入设备,都有一个对应的设备光标显示在单显示设备上。这就是消息处理层的主要功能。下面将详 细介绍消息处理层各个功能模块(1)笔式消息分析模块消息处理层所接收到的从设备驱动层传递过来的底层设备输入信息并不能被 windows应用程序所使用,需要以消息的形式发送到具体的应用程序消息循环队列中去。在 笔式消息合成模块,对接收到的上层笔式设备输入信息进行解析,按照其中的笔式设备输 入数据(I/O data)部分进行分类处理。如,上层输入信息是以〈Device ID, I/O data〉的 形式传递过来的,首先需要分离出I/O data,然后对I/O data数据结构进行处理,分解出其 中的笔式设备类型信息、坐标类型信息和坐标位置信息,封装成PEN_DEVICE_INFO结构。即 解析成能够为下一级模块识别的数据结构。这里定义的数据结构如下enum INPUTTYPE {MOVE = 0,LBD = 1,RBD = 2,LBU = 4,RBU = 8};Typedef struct PEN_DEVICE_INFO{DWORD uType ;DWORD x ;DWORD y ;DWORD cType ;};解析完毕的1/0 data被包装成上述数据结构的形式,MOVE表示笔或鼠标设备当 前状态是在移动;LBD表示笔或者鼠标设备当前是左键按下状态;RDB表示笔或鼠标设备的 当前状态是右键按下(如果特定的笔设备没有右键功能,则不会产生此状态);LBU表示笔 或鼠标设备的当前状态是左键抬起状态;RBU表示笔或鼠标设备的当前状态是右键抬起状 态(同样,如果特定的笔设备没有右键功能,也不会产生此状态)。其中uType是笔式设备 输入类型,如笔的移动,按下,抬起等动作,其取值可以是INPUTTYPE类型的组合。由于需要 兼容鼠标消息,所以区分了左右键。cType决定了 x,y分量的意义。cType指示x,y分量是 光标位置的绝对值还是光标位置变化值。(2)笔式消息合成模块上层设备信息分析完毕,得到了更高层的接近于消息的设备动作数据结构。进入 笔式消息合成模块,就可以在此基础之上完成消息合成任务,组装出最终能够被放入到具 体应用程序消息循环队列中的消息,进而驱动具体的应用程序的消息循环。在这里,需要同 Windows操作系统的消息机制进行兼容,必须将消息的中间形态转化成最终的Windows系 统消息形态。按照Windows系统消息的格式封装最终的笔式设备消息。由于Windows操 作系统并不能识别“笔式消息”,而只能识别“鼠标消息”,所以无论是来自底层的笔式设备 的中间形态输入信息还是来自实际鼠标的中间形态输入信息,在笔式消息合成模块中,都 最终被转化为Windows系统的标准鼠标消息类型。该模块所处的消息处理层以及应用层实 际是一个Windows全局钩子(Global Hook),可以在这里拦截到所有来自底层驱动模块发 送来的数据,以及这些数据所要到达的目标句柄(hwnd)。在经过上述处理模块处理之后, 符合系统要求的消息已经形成,同时获得了设备ID信息。通过SetMessageExtralnfo,将 当前的活动笔式输入设备ID作为附加信息设置到目标消息队列的附加数据中(应用程序 具有多个窗口,每个窗口有一个消息队列,在不同窗口操作的目标交互设备的ID信息需要发送到相应窗口的消息队列中,即目标消息队列)。之所以要将设备ID作为附加数据送到 目标消息队列,是因为标准的Windows消息只包含指点输入设备(鼠标,笔式设备,触摸屏 等)输入进来的光标位置信息而去掉了具体设备信息,而要实现多个笔式输入设备同时操 作,必须再加入具体设备ID才能将各个设备的光标位置信息和设备本身关联起来。这样, 在实际的应用程序响应该消息的时候,就可以通过GetMessageExtralnfo获得相应的设备 ID,从而实际区分出各个笔式输入设备。(3)笔式消息传递模块当所有消息合成工作做完之后,消息处理层的消息需要传递到下一层中进行进一 步的处理。由于在下一层需要做两个大方面的工作,所以需要这一模块将笔式消息合成模 块所产生的消息分别传递到下一层两个不同功能模块当中进行处理。(4)多笔光标显示模块在普通的Windows系统下,无论硬件设备上接入多少笔式设备,鼠标等,其显示设 备始终只会显示一个光标。这是由Windows操作系统本身的特性决定的。要支持多笔交互, 在接入了多个笔式输入设备的前提下,还需要相应的对每一个设备在显示设备上显示出与 之想匹配的光标,以引导用户操作笔式设备进行自然的交互。要实现显示多个光标,首先需 要做的是隐藏系统光标。然后,该模块根据来自设备驱动层的原始笔式设备输入数据,以及 消息处理层处理后的消息,取得每一个笔式输入设备的状态信息当前绝对位置,偏移量, 设备按键状态。最后,根据这些笔式交互设备状态信息,绘制出各个笔式交互设备的最终光 标显示。绘制的方法是a,载入初始注册信息。这个注册信息是在本交互方法的实现配置 文件中记录的。内容是光标资源的位置,各个状态的光标资源的定义。b,对每一个笔式输 入设备,分配与其状态相对应的光标资源,并在显示设备上绘制出光标。光标的绘制采用不 规则Windows窗口绘制方法,以避免频繁移动光标所产生的闪烁现象。本交互方法的光标显示模块的实现效果如图5所示,在应用程序的窗口中有两个 按钮按钮1和按钮2。系统接入了 3个笔式交互设备,那么就可以在显示设备上看到3个 光标(光标广3),分别对应相应的笔式交互设备。这3个笔式交互设备可以同时操作该应 用程序界面,如图中所示,光标1在窗口中移动,光标2和光标3分别点击按钮1和按钮2。 每个操作笔式交互设备的用户都可以按照自己的意图完成自己预想的操作而不会被别人 干扰。应用层有两大功能冲突检测与消解和手势识别。它们的输出都是Windows消息 类型,即将处理结果以消息的形式放到应用程序消息队列中去,驱动应用程序运行。冲突检 测与消解建立在冲突检测规则以及冲突消解算法的基础之上。应用层接收消息处理层传递 过来的消息,经过上述两大模块的处理,最终输出处理完毕的消息到应用程序消息队列中; 手势识别建立在自定义手势消息以及训练好的手势库和分类器的基础之上。以下将详细说 明各个子模块的功能(1)冲突检测与消解模块本交互方法使用了多个笔式交互设备,允许这些笔式交互设备同时操作。在这些 笔式设备进行实际操作的时候,通常会产生冲突。比如,两个笔设备同时操作一个窗口,由 于操作方式不同,这时需确定允许哪个设备操作,禁止哪个设备操作。冲突产生的根源在于 有两个以上的笔式交互设备请求对同一个交互元素进行操作。所进行的操作可能是相同类型的操作,也可能是不同类型的操作。在这些情况下,冲突是可能产生而不是必然产生。因 此需要建立一组冲突检测规则,对这些可能的冲突进行检测;再依据相应规则下的冲突消 解策略发生的冲突进行消解。这个检测和消解的过程为上层的消息首先进入冲突检测单 元,这个单元存储有在最近一段很短的时间内(300ms)所有笔式交互设备的消息,基于这 些消息数据,以及预定义的冲突检测规则,可以检测出最新的笔设备消息是否与已有的笔 设备消息冲突。冲突检测规则有a.资源竞争检测,即检测是否有多个笔式设备操作同一 系统资源(如窗口,按钮等),其判断方法是测试所有笔式设备对系统资源的请求,如果在 同一时刻有两个以上的笔式设备同时请求一个系统资源则判定为资源竞争冲突。b.操作 冲突检测,即检测不同笔式设备操作之间是否存在操作意图冲突,其判断方法是测试所有 笔式设备的当前操作,如果检测到在同一时刻有两个以上的目标交互设备进行相互对立的 操作,则判定为操作冲突。由于消息冲突意味着笔设备交互时的冲突,从而也就检测出了 笔设备交互的冲突;冲突检测单元的检测结果进入到冲突消解单元,如果上一单元没有检 测到冲突,则笔消息直接通过冲突消解单元,如果检测到冲突,则根据规则库中的冲突消解 规则,决定是否允许通过当前的笔消息。与冲突检测规则对于的冲突消解规则有a.资源 竞争冲突消解,其消解原则是根据设备ID的顺序,优先满足ID号靠前的笔式设备的资源请 求。b.操作冲突消解,其消解原则是将相互对立的并行操作分解,按ID顺序串行依次执行 各个设备的当前请求操作。(2)手势分析处理模块如图4所示,手势处理模块接收上层的输入消息,经过模块内部,根据设备ID进行 数据分发,提取设备光标位置信息更新光标记录,根据光标记录中的光标位置数据产生原 语;使用分类器以及预定义手势集合,经过手势识别子过程识别出各个笔设备的手势类型; 通过上述处理之后,输出自定义的手势消息类型,加入到应用程序的目标消息队列。首先上层消息处理层传递过来的消息经过预提取,进入数据分发单元。因为手势 识别的过程是对最近一段时间内,从笔设备按下到抬起这个过程中的消息数据的识别,分 类,处理过程,所以在识别开始的时候就需要经过数据分发单元将当前数据存储到光标记 录中。这样在光标记录中存储有当前识别过程中的所有光标数据。数据分发单元还要提取 光标记录中的所有数据,将这些数据传递到下一处理单元。此外,在这一过程中,对于笔设 备的移动,需要实时更新光标显示,所以需要将相应的手势消息传递到光标显示模块中。原语生成单元接收上一单元传递过来的当前手势数据集合。根据这一集合,原语 产生单元产生两种基本的笔原语Tap (点击)和Stroke (笔划)。对于Tap原语,直接输出相 应的笔消息类型,加入到应用程序消息队列中去,由应用程序做进一步处理;对于Stroke 原语,则需要经过手势识别单元做进一步识别,以产生最终的手势消息。末端的手势识别单元接收Stroke原语,使用预定义的分类器对当前的Stroke进 行分类,从手势集合中找出与当前Stroke的最佳匹配。根据不同的匹配结果,输出不同的 手势消息类型。这些手势消息类型最终也被加入到应用程序的目标消息队列,由应用程序 做相应的处理。分类器的功能是根据输入的笔迹信息产生相应的手势识别结果,分类器通 过前期的样本训练,在训练的基础上得到一个能够真正使用的分类器。上述所有模块实现完毕之后,生成一个驱动文件,一份动态链接库以及相应的API 头文件。如果用户需要在本交互方法的实现上做进一步开发,就可以基于API进行相应的SDK开发,实现应用相关的基于多笔交互的应用程序。
权利要求
一种单显示多笔交互方法,其步骤为1)计算机系统从识别出的各输入设备中过滤出若干目标交互设备;2)计算机系统对每个目标交互设备的I/O端口进行监听,获得每个目标交互设备的信息对Device ID和I/O data;其中,Device ID为目标交互设备的ID,I/O data为目标交互设备输入信息;3)计算机系统隐藏系统光标,并根据目标交互设备的信息绘制每个目标交互设备的光标;4)将每个目标交互设备的I/O data信息封装为Windows操作系统所能识别的消息,并将Device ID作为附加数据发送到应用程序的目标消息队列中;5)根据Device ID对步骤4)封装后的消息进行分发,并提取光标位置信息更新目标交互设备的光标显示;6)根据预定义的冲突检测规则对消息进行冲突检测,如果存在冲突则利用预定义的冲突消解规则对冲突消息进行消解;7)根据步骤6)处理后的消息生成目标交互设备的原语;8)根据原语生成目标交互设备的手势消息类型,发送到应用程序的目标消息队列;9)应用程序根据接收的Device ID数据和手势消息类型,驱动相应的目标交互设备。
2.如权利要求1所述的方法,其特征在于所述预定义的冲突检测规则包括a)资源竞 争检测,即测试所有目标交互设备对系统资源的请求,如果在同一时刻有两个以上的目标 交互设备同时请求一个系统资源,则判定为存在资源竞争冲突;b)操作冲突检测,即测试 所有目标交互设备的当前操作,如果检测到在同一时刻有两个以上的目标交互设备进行相 互对立的操作,则判定为存在操作冲突。
3.如权利要求2所述的方法,其特征在于所述预定义的冲突消解规则包括a)资源竞 争冲突消解,即根据设备的Device ID顺序执行目标交互设备的资源请求;b)操作冲突消 解,即将相互对立的并行操作分解,按Device ID顺序串行依次执行各个目标交互设备的当 前操作请求。
4.如权利要求1所述的方法,其特征在于绘制目标交互设备的光标的方法为1)载入初始注册信息;其中初始注册信息包括光标资源的位置、各个状态的光标资 源的定义;2)对每一个目标交互设备,分配与其状态相对应的光标资源,并在显示设备上绘制出 该设备的光标。
5.如权利要求1或4所述的方法,其特征在于采用不规则Windows窗口绘制方法绘制 光标。
6.如权利要求1所述的方法,其特征在于所述步骤5)中,进行消息分发的方法为首 先将每个目标交互设备从输入开始到输入结束时间内的消息存储到一光标记录表中,然后 根据Device ID对消息进行分类,最后从光标记录表中提取分类后的消息进行分发。
7.如权利要求1所述的方法,其特征在于所述步骤6)中,将每个目标交互设备的I/O data信息封装为计算机系统所能识别的消息的方法为首先从I/O data中分解出目标交 互设备的设备类型信息、坐标类型信息、坐标位置信息,然后将其封装成PEN_DEVICE_INFO 结构;最后将封装后的PEN_DEVICE_INFO结构按照Windows操作系统的消息格式封装为计算机系统所能识别的消息;其中PEN_DEVICE_INFO结构包括目标交互设备输入类型、目标 交互设备的光标位置绝对值、目标交互设备的光标位置变化值。
8.如权利要求1所述的方法,其特征在于所述原语包括点击原语和笔划原语;对于点 击原语,将其直接发送到应用程序的目标消息队列中;对于笔划原语,利用分类器和设定的 手势集合,识别出手势消息类型后发送到应用程序的目标消息队列中。
9.如权利要求1所述的方法,其特征在于通过连续两次调用GetRawInputDevicelnfo 函数以读取输入设备的RIDI_DEVICENAME,通过输入设备的RIDI_DEVICENAME值过滤出所 述目标交互设备。
10.如权利要求1或9所述的方法,其特征在于所述目标交互设备包括手写板、手写 屏、鼠标。
全文摘要
本发明公开了一种单显示多笔交互方法,属于人机交互领域。本方法为1)计算机系统中过滤出若干目标交互设备,并获取每个目标交互设备的信息对ID和I/O data;2)隐藏系统光标,并绘制每个目标交互设备的光标;3)对I/O data信息进行封装,并将ID作为附加数据发送到目标消息队列中;4)根据ID对封装后的消息进行分发,并更新光标显示;5)对消息进行冲突检测与消解;6)生成目标交互设备的原语,并根据原语生成目标交互设备的手势消息类型,发送到应用程序的目标消息队列;7)应用程序根据接收的ID数据和手势消息类型,驱动相应的目标交互设备。本发明在提供多人多笔交互的同时,也定义了潜在的冲突检测与消解方法,且操作简单、易于实现。
文档编号G06F3/048GK101853129SQ20101018081
公开日2010年10月6日 申请日期2010年5月18日 优先权日2010年5月18日
发明者戴国忠, 王丹力, 王宏安, 詹志征 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1