CN101853129A - 一种单显示多笔交互方法 - Google Patents
一种单显示多笔交互方法 Download PDFInfo
- Publication number
- CN101853129A CN101853129A CN201010180816A CN201010180816A CN101853129A CN 101853129 A CN101853129 A CN 101853129A CN 201010180816 A CN201010180816 A CN 201010180816A CN 201010180816 A CN201010180816 A CN 201010180816A CN 101853129 A CN101853129 A CN 101853129A
- Authority
- CN
- China
- Prior art keywords
- message
- interactive device
- target interactive
- cursor
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000003993 interaction Effects 0.000 title claims abstract description 22
- 230000002452 interceptive effect Effects 0.000 claims abstract description 87
- 238000001514 detection method Methods 0.000 claims abstract description 21
- 230000015572 biosynthetic process Effects 0.000 claims description 23
- 238000012360 testing method Methods 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 6
- 238000005538 encapsulation Methods 0.000 claims description 3
- 230000001788 irregular Effects 0.000 claims description 3
- 238000001914 filtration Methods 0.000 abstract description 6
- 230000029087 digestion Effects 0.000 abstract 1
- 238000012856 packing Methods 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000003786 synthesis reaction Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000009418 renovation Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种单显示多笔交互方法,属于人机交互领域。本方法为:1)计算机系统中过滤出若干目标交互设备,并获取每个目标交互设备的信息对ID和I/O data;2)隐藏系统光标,并绘制每个目标交互设备的光标;3)对I/O data信息进行封装,并将ID作为附加数据发送到目标消息队列中;4)根据ID对封装后的消息进行分发,并更新光标显示;5)对消息进行冲突检测与消解;6)生成目标交互设备的原语,并根据原语生成目标交互设备的手势消息类型,发送到应用程序的目标消息队列;7)应用程序根据接收的ID数据和手势消息类型,驱动相应的目标交互设备。本发明在提供多人多笔交互的同时,也定义了潜在的冲突检测与消解方法,且操作简单、易于实现。
Description
技术领域
本发明属于人机交互领域,具体涉及到一种单显示多笔交互方法。
背景技术
随着计算机的普及,其应用已经渗透到我们日常生活的各个方面,但在一些比较贫困的学校中,还会出现十几个儿童围在一台计算机面前的场景。在较发达的地区,多人共享一台计算机的情况还是很常见的。在美国公立学校,共享比率达到了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)资源竞争冲突消解,即根据设备的DeviceID顺序执行目标交互设备的资源请求;b)操作冲突消解,即将相互对立的并行操作分解,按Device ID顺序串行依次执行各个目标交互设备的当前操作请求。
进一步的,绘制目标交互设备的光标的方法为:
1)载入初始注册信息;其中初始注册信息包括:光标资源的位置、各个状态的光标资源的定义;
2)对每一个目标交互设备,分配与其状态相对应的光标资源,并在显示设备上绘制出该设备的光标。
进一步的,采用不规则Windows窗口绘制方法绘制光标。
进一步的,所述步骤5)中,进行消息分发的方法为:首先将每个目标交互设备从输入开始到输入结束时间内的消息存储到一光标记录表中,然后根据Device ID对消息进行分类,最后从光标记录表中提取分类后的消息进行分发。
进一步的,所述步骤6)中,将每个目标交互设备的I/O data信息封装为计算机系统所能识别的消息的方法为:首先从I/O data中分解出目标交互设备的设备类型信息、坐标类型信息、坐标位置信息,然后将其封装成PEN_DEVICE_INFO结构;最后将封装后的PEN_DEVICE_INFO结构按照计算机系统的消息格式封装为Windows操作系统所能识别的消息;其中PEN_DEVICE_INFO结构包括:目标交互设备输入类型、目标交互设备的光标位置绝对值、目标交互设备的光标位置变化值。
进一步的,所述原语包括点击原语和笔划原语;对于点击原语,将其直接发送到应用程序的目标消息队列中;对于笔划原语,利用分类器和设定的手势集合,识别出手势消息类型后发送到应用程序的目标消息队列中。
进一步的,通过连续两次调用GetRawInputDeviceInfo函数以读取输入设备的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,I/Odata>配对方式作为设备驱动层输出结果。以下详细说明设备驱动层各模块的功能:
(1)笔式设备输入模块
笔式设备是本交互方法的基础,为了实现多个笔式设备同时操作,需要将接入计算机系统中的各个笔式设备,鼠标设备以及其他设备区分开来,过滤系统设备,获得目标交互设备信息:笔式设备和鼠标设备(在没有连接笔式设备时,鼠标设备也被支持)。
1.该模块枚举出系统中的所有HID设备。通过操作系统底层API,取得所有的HID设备信息。如图2所示,这些信息包括系统中的鼠标,笔式设备如手写板,手写屏,键盘设备,游戏操作杆等。
2.设备过滤。通过连续两次调用GetRawInputDeviceInfo以读取设备的RIDI_DEVICENAME,通过该值可以判断当前设备是否为本交互方法所支持的交互设备,进而过滤掉不支持的设备。
(2)设备输入与监听模块
过滤出笔式交互设备之后,系统将对这些交互设备的I/O进行监听。由于这些设备都是输入设备,实际上就是监听这些设备的INPUT信息。INPUT信息来源就是来自操作系统的笔式交互设备底层驱动的处理结果。该模块只监听(1)中模块所得到的目标交互设备的INPUT,然后将这些INPUT传递到下一个模块。
1.取得底层交互设备的输入。通过调用GetRawInputData,取得输入设备的输入信息,并分析设备类型和ID,与(1)中获得的设备进行匹配。
2.将INPUT信息传递到下一个模块。
(3)笔式消息过滤模块
该模块获取来自上层的设备输入信息以及设备信息,对这些信息进行封装配对,以<DeviceID,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;
};
解析完毕的I/O 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信息。通过SetMessageExtraInfo,将当前的活动笔式输入设备ID作为附加信息设置到目标消息队列的附加数据中(应用程序具有多个窗口,每个窗口有一个消息队列,在不同窗口操作的目标交互设备的ID信息需要发送到相应窗口的消息队列中,即目标消息队列)。之所以要将设备ID作为附加数据送到目标消息队列,是因为标准的Windows消息只包含指点输入设备(鼠标,笔式设备,触摸屏等)输入进来的光标位置信息而去掉了具体设备信息,而要实现多个笔式输入设备同时操作,必须再加入具体设备ID才能将各个设备的光标位置信息和设备本身关联起来。这样,在实际的应用程序响应该消息的时候,就可以通过GetMessageExtraInfo获得相应的设备ID,从而实际区分出各个笔式输入设备。
(3)笔式消息传递模块
当所有消息合成工作做完之后,消息处理层的消息需要传递到下一层中进行进一步的处理。由于在下一层需要做两个大方面的工作,所以需要这一模块将笔式消息合成模块所产生的消息分别传递到下一层两个不同功能模块当中进行处理。
(4)多笔光标显示模块
在普通的Windows系统下,无论硬件设备上接入多少笔式设备,鼠标等,其显示设备始终只会显示一个光标。这是由Windows操作系统本身的特性决定的。要支持多笔交互,在接入了多个笔式输入设备的前提下,还需要相应的对每一个设备在显示设备上显示出与之想匹配的光标,以引导用户操作笔式设备进行自然的交互。要实现显示多个光标,首先需要做的是隐藏系统光标。然后,该模块根据来自设备驱动层的原始笔式设备输入数据,以及消息处理层处理后的消息,取得每一个笔式输入设备的状态信息:当前绝对位置,偏移量,设备按键状态。最后,根据这些笔式交互设备状态信息,绘制出各个笔式交互设备的最终光标显示。绘制的方法是:a,载入初始注册信息。这个注册信息是在本交互方法的实现配置文件中记录的。内容是光标资源的位置,各个状态的光标资源的定义。b,对每一个笔式输入设备,分配与其状态相对应的光标资源,并在显示设备上绘制出光标。光标的绘制采用不规则Windows窗口绘制方法,以避免频繁移动光标所产生的闪烁现象。
本交互方法的光标显示模块的实现效果如图5所示,在应用程序的窗口中有两个按钮:按钮1和按钮2。系统接入了3个笔式交互设备,那么就可以在显示设备上看到3个光标(光标1~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开发,实现应用相关的基于多笔交互的应用程序。
Claims (10)
1.一种单显示多笔交互方法,其步骤为:
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所述的方法,其特征在于通过连续两次调用GetRawInputDeviceInfo函数以读取输入设备的RIDI_DEVICENAME,通过输入设备的RIDI_DEVICENAME值过滤出所述目标交互设备。
10.如权利要求1或9所述的方法,其特征在于所述目标交互设备包括:手写板、手写屏、鼠标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101808169A CN101853129B (zh) | 2010-05-18 | 2010-05-18 | 一种单显示多笔交互方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101808169A CN101853129B (zh) | 2010-05-18 | 2010-05-18 | 一种单显示多笔交互方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101853129A true CN101853129A (zh) | 2010-10-06 |
CN101853129B CN101853129B (zh) | 2012-08-22 |
Family
ID=42804644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101808169A Expired - Fee Related CN101853129B (zh) | 2010-05-18 | 2010-05-18 | 一种单显示多笔交互方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101853129B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096551A (zh) * | 2011-01-21 | 2011-06-15 | 百度在线网络技术(北京)有限公司 | 一种在同一工作窗口中实现多指针设备操作的方法与设备 |
CN102984590A (zh) * | 2012-11-07 | 2013-03-20 | Tcl集团股份有限公司 | 一种鼠标光标的显示方法、系统及电视 |
CN109358958A (zh) * | 2018-10-09 | 2019-02-19 | 深圳点猫科技有限公司 | 一种基于教育系统的多设备操作方法及电子设备 |
CN110209448A (zh) * | 2019-05-14 | 2019-09-06 | 李航 | 一种多输入共享视窗并发操作装置及方法 |
CN112965617A (zh) * | 2021-01-15 | 2021-06-15 | 聚融医疗科技(杭州)有限公司 | 一种多屏超声诊断设备多鼠标输入控制方法与系统 |
CN113407241A (zh) * | 2020-03-16 | 2021-09-17 | 阿里巴巴集团控股有限公司 | 交互配置方法、装置、系统及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1263302A (zh) * | 2000-03-13 | 2000-08-16 | 中国科学院软件研究所 | 基于笔和手势的文稿编辑技术 |
-
2010
- 2010-05-18 CN CN2010101808169A patent/CN101853129B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1263302A (zh) * | 2000-03-13 | 2000-08-16 | 中国科学院软件研究所 | 基于笔和手势的文稿编辑技术 |
Non-Patent Citations (2)
Title |
---|
《计算机工程与设计》 20091231 彭芳,王丹力 《基于多笔交互的儿童讲故事系统》 计算机工程与设计编辑部 全文 1-10 第30卷, 第13期 2 * |
《软件学报》 20081031 周明骏,徐礼爽,田丰,戴国忠 《协作笔式用户界面开发工具研究》 软件学报编辑部 全文 1-10 第19卷, 第10期 2 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096551A (zh) * | 2011-01-21 | 2011-06-15 | 百度在线网络技术(北京)有限公司 | 一种在同一工作窗口中实现多指针设备操作的方法与设备 |
CN102096551B (zh) * | 2011-01-21 | 2013-09-18 | 百度在线网络技术(北京)有限公司 | 一种在同一工作窗口中实现多指针设备操作的方法与设备 |
CN102984590A (zh) * | 2012-11-07 | 2013-03-20 | Tcl集团股份有限公司 | 一种鼠标光标的显示方法、系统及电视 |
CN102984590B (zh) * | 2012-11-07 | 2016-09-21 | Tcl集团股份有限公司 | 一种鼠标光标的显示方法、系统及电视 |
CN109358958A (zh) * | 2018-10-09 | 2019-02-19 | 深圳点猫科技有限公司 | 一种基于教育系统的多设备操作方法及电子设备 |
CN110209448A (zh) * | 2019-05-14 | 2019-09-06 | 李航 | 一种多输入共享视窗并发操作装置及方法 |
CN113407241A (zh) * | 2020-03-16 | 2021-09-17 | 阿里巴巴集团控股有限公司 | 交互配置方法、装置、系统及电子设备 |
CN112965617A (zh) * | 2021-01-15 | 2021-06-15 | 聚融医疗科技(杭州)有限公司 | 一种多屏超声诊断设备多鼠标输入控制方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101853129B (zh) | 2012-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101853129B (zh) | 一种单显示多笔交互方法 | |
CN109542008B (zh) | 一种用于智能全面屏黑板的多屏显示控制方法及其系统 | |
CN108055704A (zh) | 交互控制方法、系统、终端及存储介质 | |
WO2021072926A1 (zh) | 文件共享方法、装置、系统、交互智能设备、源端设备及存储介质 | |
CN107193794A (zh) | 显示内容的批注方法和装置 | |
CN1849578A (zh) | 通过屏幕拼合在两个计算机之间产生对象处理平台 | |
CN108829327A (zh) | 交互智能设备的书写方法和装置 | |
US20130014028A1 (en) | Method and system for drawing | |
CN104615366B (zh) | 一种面向多设备的手势交互方法 | |
CN101295264B (zh) | 一种在多区域内同时显示鼠标指针的装置和方法 | |
CN103019602A (zh) | 一种实现多人分屏操作的方法 | |
CN111103982A (zh) | 基于体感交互的数据处理方法以及装置、系统 | |
CN103389876A (zh) | 基于触摸显示设备的功能切换方法及触摸显示设备 | |
CN102004610A (zh) | 以拖曳行为执行或结束程序的使用者界面、系统及其方法 | |
CN108845757A (zh) | 一种智能交互平板的触控输入方法及装置、计算机可读存储介质、智能交互平板 | |
Robertson et al. | Virtual mouse vision based interface | |
CN104020853A (zh) | 基于Kinect的操纵网络浏览器的系统及方法 | |
CN106909300A (zh) | 一种触屏点击识别方法及系统 | |
CN102541331B (zh) | 触控显示器中多区域滑动点击响应方法及系统 | |
CN106201323B (zh) | 基于触摸屏的书写方法及装置 | |
CN106648432A (zh) | 用于大屏显示设备的控制方法和控制装置 | |
CN207516974U (zh) | 一种非居边投影一体式电子触控白板 | |
Coutaz et al. | Software infrastructure for distributed migratable user interfaces | |
Bi et al. | Facilitating interaction with large displays in smart spaces | |
CN102467371B (zh) | 一种测量资源控制方法和测量资源控制系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120822 |
|
CF01 | Termination of patent right due to non-payment of annual fee |