CN101893989A - 利用邻近传感进行分布式计算的方法和装置 - Google Patents

利用邻近传感进行分布式计算的方法和装置 Download PDF

Info

Publication number
CN101893989A
CN101893989A CN2010102056963A CN201010205696A CN101893989A CN 101893989 A CN101893989 A CN 101893989A CN 2010102056963 A CN2010102056963 A CN 2010102056963A CN 201010205696 A CN201010205696 A CN 201010205696A CN 101893989 A CN101893989 A CN 101893989A
Authority
CN
China
Prior art keywords
mobile device
input
mobile
touch
contiguous
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
Application number
CN2010102056963A
Other languages
English (en)
Other versions
CN101893989B (zh
Inventor
胡伟强
陈筱敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hong Kong Applied Science and Technology Research Institute ASTRI
Original Assignee
Hong Kong Applied Science and Technology Research Institute ASTRI
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hong Kong Applied Science and Technology Research Institute ASTRI filed Critical Hong Kong Applied Science and Technology Research Institute ASTRI
Publication of CN101893989A publication Critical patent/CN101893989A/zh
Application granted granted Critical
Publication of CN101893989B publication Critical patent/CN101893989B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/20Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel
    • H04W4/21Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel for social networking applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明涉及用于接收和处理来自多个移动装置的一个或多个输入的方法和装置。在一些实施例里,一个移动装置识别其邻近的移动装置。基于每个移动装置的邻近移动装置的信息,建立由多个移动装置组成的一个拓扑。如果提供一个输入到一个移动装置,该移动装置将确定该输入是否是一个支援的分布式事件。如果该输入是一个支援的分布式事件,该移动装置将聚集来自其它移动装置的输入,并将它们集合成一个集合输入。基于该集合输入,产生一个输出以控制拓扑内的一个或多个移动装置。

Description

利用邻近传感进行分布式计算的方法和装置
【技术领域】
本发明通常涉及相互交互作用的多个装置,特别涉及触摸屏用户界面和分布式计算以及邻近传感。
【背景技术】
触摸屏作为多种电子装置的输入,已经越来越受大众欢迎。用户能够以直观且简单的方式输入指令到装置,只要触摸显示屏并在显示屏上选择看到的内容。
其它触摸感应输入装置如触控板同样方便人与电子装置进行互动。通过触摸一个触控探测区域,用户能够给出指令来控制装置并方便地运行软件应用程序。
因此,需要增强触摸输入。例如,除了触摸,允许使用手势来表达各种输入指令,如在美国专利7,657,849里,披露了利用手势执行解锁。除了使用单点触控作为一个输入指令,也可使用多点触控来表示各种输入命令,如在美国专利7,479,949里,披露了多点触控的实施。有越来越多的输入控制技术出现,如美国专利7,469,381里披露的缩放和旋转的触控输入,以及美国专利7,614,008里披露的打字。即使一个装置最初并不支援多点触控,但有一些方法可用来提供多点触控接口给那些仅具有单点触控物理界面的装置和/或相关驱动器软件,如在美国专利申请文献US 2009/0309847里所披露的那样。在此上述文献通过引用被结合到本发明。
仍然需要有更创新的触摸输入,从而能够提供更复杂且先进的输入指令。例如,需要一种输入命令,其由多个装置的各种触摸输入组成。还需要一种技术,其允许多个装置的触摸输入能够控制同一应用程序,从而同一应用程序能够在不同用户中间共享,并同时受用户控制。此外,现有的触摸输入技术仍然受制于诸如触控探测区域大小等因素。例如,可用来进行选择的项目受制于装置触摸屏的大小,卷页或移动以找到期望项,可以是非常缓慢而煩人的。
【发明内容】
本发明第一方面是允许多个装置能够提供输入到一个或多个共享的运算、程序或应用程式。
本发明第二方面是允许由多点触控表示的多种指令,例如,一个由集合的多个装置的多点触控输入所表示的指令。各种输入次序和各种输入组合使许多指令成为可能。
依照本发明第一方面,提供一个移动装置,用于接收并处理来自多个移动装置的一个分布式输入事件。移动装置有一个输入界面,在一些实施例里,其可以是一个触摸屏。移动装置同样有一个或多个处理器以及一个或多个存储器单元。每个存储器单元可以存储一个或多个程序,其可以是代码、函数、软件、应用程序,被设置由一个或多个处理器执行。这些程序包括用于在一个搜索范围内识别一个或多个邻近移动装置的指令;基于来自每个移动装置的邻近移动装置的信息,用于形成多个移动装置的一个拓扑的指令;如果移动装置有一个输入,用于确定输入是否是一个支援的分布式输入事件的指令;如果该输入不是一个支援的分布式输入事件时,移动装置将使用指令产生一个输出给一个或多个移动装置以在其上运行。那些支援的分布式输入事件是被预先设定的。
依照本发明第二方面,如果输入是一个支援的分布式输入事件,移动装置将等待拓扑内其它移动装置的其它输入。在接收其它输入达一段时间之后,移动装置将所有相关输入集合成一个集合输入。基于该集合输入,移动装置将产生一个输出给一个或多个移动装置,以在其上运行。
移动装置可以是任何电子装置或便携式多功能装置,或可以是任何异构装置(heterogeneous device),其能够通过一些方式(如IR,有线、RF无线)与其邻近的装置进行通信。
对这种移动装置,假设所有数据传输或交换仅是与其邻近的装置进行,并且没有直接方式来发送或接收不在其直接邻近装置列表里的任何装置的任何消息或数据(如逐跳传输)。本发明其它方面是提供一个分布式传输方法,其通过逐跳传输机制的单播、多播或广播在移动装置之间分发消息。通过使用一个收发器,移动装置与其它装置交换数据。在一些实施例里,移动装置可以在其每侧都有一个收发器,从而能够沿着那个侧面与邻近装置交换数据。
本发明另一个方面是计算多个移动装置的拓扑质心。基于多个移动装置的拓扑质心,可以分配一个坐标给每个移动装置。因此,当一个分布式应用程序是在拓扑内一组/子集的装置上执行时,能够通过它们的坐标来识别这些移动装置。
本发明另一个方面是利用指数超时重发数据来可靠且一致地提供一种集合相关输入刺激的方法。
如果来自不同装置的集合的输入刺激对应分布式输入事件,本发明另一个方面是提供一种识别主装置和从装置的方法。
在某些实施例里,本发明被实施在用户空间或核心空间内的一个系统库里。该系统库的一个非限制性例子是在MID如Android MP2里使用的系统库。
依照某些实施例,分布式多点触控能够以软件应用程序如图像浏览器应用程序进行。这种分布式多点触控被实施用来进行缩小和放大。
本发明其它方面也将通过以下实施例进行披露和描述。
【附图说明】
以下将参照以下附图,描述本发明的目标、详情和实施例,其中:
图1描述一些实施例的具有触摸屏的多个装置的示意图;
图2描述一些实施例的具有多个收发器的移动装置的示意图;
图3描述一些实施例的在移动装置之间交换数据;
图4描述一些实施例的形成一个移动装置拓扑的示例方法;
图5描述一些实施例的处理一个分布式输入事件的流程图;
图6描述在一个分布式输入事件期间多个移动装置之间的一个示例运算;
图7描述在拓扑内多个装置之间传输缩小/放大命令;
图8描述使用来自多个装置的多个多点触控输入以形成一个用于缩小/放大的分布式事件。
【发明详述】
图1描述本发明一些实施例的具有触摸屏的多个装置的示意图。在一些实施例里,不止一个移动装置被安置靠近另一个移动装置。通常,靠近是指一个移动装置的传感装置或收发器所覆盖的一个搜索范围。如图1所示的例子,有四个移动装置,即移动装置110,移动装置120,移动装置130和移动装置140。每个移动装置包括至少一个触摸屏111、121、131或141;一个处理器113、123、133或143;以及一个收发器112、122、132或142。处理器被设置用于执行任何与该移动装置相关的指令、过程和运算。处理器被设置用于与该移动装置相连的其它元件相互作用或进行控制,如存储器(图中未显示)、触摸屏和收发器。处理器能够输出数据到与该移动装置相连的其它元件,并从与该移动装置相连的其它元件输入数据。
触摸屏是一个触摸界面的非限制性例子,其可用于每个移动装置。这种触摸界面包括但不限于一个触敏区、或触控板、或能够探测到触摸及其位置或能够提供触摸/手势控制的任何装置或技术,包括那些在此发明申请日还没有出现的装置或技术。一些适当的输入装置或技术的非限制性例子包括电阻式触摸屏、声表面波技术、电容式触摸屏、表面电容技术、投影电容技术、应变仪/压力板技术、光学成像技术、红外线(IR)传感技术、扩散信号技术、声学脉冲波识别、以及编码LCD/双向屏技术。触摸输入的一些非限制性例子可以通过各种触点如指端、手部、触笔、物理刺激用户的自适应触摸装置等进行输入。在某些实施例里,除了触摸输入,非触摸输入也可以是输入刺激的一个非限制性例子。非触摸输入的一个非限制性例子可以包括语音、通过照相机摄取眼球运动或摄取手部运动,由此计算机程序分析该运动图像或视频,并将它们映射成相应的输入。包括有触摸输入的移动装置的一些非限制性例子包括移动互联网装置(MID)、智能电话、笔记本电脑、移动计算装置等。
触摸屏可以是一个独立组件,或可以与一个显示器装置集成在一起。一些适当的显示器装置或技术的非限制性例子包括液晶显示器(LCD),如薄膜晶体管(TFT-LCD)显示器和HPA-LCD显示器、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、和电致发光显示器(ELD)等。[0030]在一些实施例里,触摸屏可以是一个单点触控输入装置或一个多点触控输入装置。
如在此所述,内部和外部收发器能够应用到本系统。适合本系统的内部或外部收发器可以是本领域技术人员所熟知的任何形式或技术。一些适当的收发器或技术的非限制性例子包括IR收发器、无线射频(RF)收发器、蓝牙收发器、Wi-Fi收发器、任何有线或无线通信装置、或能够进行邻近传感和数据通讯的任何收发器或技术。
在一些实施例里,每个移动装置通过与其它移动装置交换数据而确定其它移动装置的相对拓扑位置。相对位置可以用二维空间或甚至三维空间表示。每个位置可以用x坐标、y坐标或z坐标或各种不同坐标组合来表示。
在一些实施例里,通过逐跳(hop-by-hop)机制在不同移动装置中间进行数据交换。每个移动装置有其邻近移动装置的列表。例如,移动装置110有一个邻近装置的列表。根据一个收发器的搜索区域范围或不同设置,移动装置110可以仅考虑正好靠近其四个侧面的那些移动装置。例如,移动装置120邻近移动装置110,因为其正好靠近移动装置120的右侧。移动装置130邻近移动装置110,因为其正好靠近移动装置110的底侧。但是,移动装置140不被看作邻近移动装置110,因为移动装置140不靠近装置110的任何一侧。
在逐跳机制下,通过与列表上的那些邻近移动装置直接连接,并通过邻近移动装置间接地连接到非邻近移动装置,一个移动装置可以与其它移动装置交换数据。例如,移动装置110通过直接连接移动装置120,与移动装置120交换数据。为了与非邻近移动装置交换数据,移动装置110检查其邻近移动装置(120,130),查看其任一邻近移动装置(120,130)是否与其想进行交换数据的非邻近移动装置有直接连接。因此,移动装置110通过发送数据到移动装置120或130,通过它们数据被发送到移动装置140;并接收来自移动装置120或130的数据,通过它们接收来自移动装置140的数据;而能够与移动装置140交换数据。
在一些实施例里,逐跳传输可以通过任何无线连接或任何有线连接进行。无线连接的一些非限制性例子包括蓝牙、IR、Wi-Fi、ZigBee等。有线连接的一些非限制性例子包括IEEE 1394、RS-232、USB和LAN。
在一些实施例里,多个移动装置如110、120、130、140被用来显示一个图像。在一个示范性例子里,字母“W”的图像被显示在四个移动装置110、120、130和140上。不同用户能够使用其指端125、135和145(或其它输入装置)来控制图像显示。控制的一些非限制性例子包括调整大小、旋转/翻转、拖拽、选择和编辑,通过分别观看并触摸触摸屏111、121、131和141来进行。例如,如果在触摸屏131上指端135将字母“W”向左拖拽50个像素,显示在移动装置110、120、130和140上的图像将被向左拖拽50个像素。
在一些实施例里,每个移动装置可靠地并一致地集合相关的输入刺激,并确定该集合输入是否对应支援的分布式输入事件。每个移动装置包括一个存储器或计算机可读媒质,其存储一个相关输入刺激的数据库以及一个支援的分布式输入事件的数据库。当一个输入刺激出现在一个移动装置上时,该输入刺激是通过该移动装置被转换成一个输入数据。该输入数据可以与一个时间戳相关。该输入数据在移动装置之间进行交换,这些移动装置要么直接连接要么间接连接。在与其它移动装置交换输入数据之前,或在从其它移动装置接收任何输入数据之后,通过检查相关输入刺激数据库,每个移动装置能够确定该输入数据是否属于一个相关的输入刺激。如果确定输入数据不是相关的,该输入数据将不与其它移动装置进行交换。如果一个移动装置从其它移动装置接收到一个输入数据,其不是相关的,该输入数据将被忽略。使用来自其它移动装置、或其自身的相关输入数据,一个移动装置将相关输入数据集合成一个集合输入。每个移动装置通过检查支援的分布式输入事件的数据库,能够确定该集合输入是否属于一个支援的分布式输入事件。
在一些实施例里,输入刺激可以是一个触摸或一个手势。手势的一些非限制性例子可以是一个或多个触摸、敲击、划动、拖拽、旋转或在触摸屏上持续一段时间的任何运动。在一些实施例里,集合输入数据可能与输入数据有关的时间戳一致,如以时间顺序。或者,集合输入数据可能与从源移动装置到目标移动装置的跳数一致。输入刺激不受限于基于触摸的本实施例,可以是基于非触摸输入或非触摸手势,这主要取决于需要。非触摸输入或非触摸手势的一些非限制性例子可以包括语音、通过照相机摄取眼球运动或摄取手部运动,由此计算机程序分析运动图像或视频,并将它们连系成相应的输入。
图2描述一些实施例的一个具有多个收发器的移动装置的示意图。在一些实施例里,移动装置200可以包括一个或多个收发器。在一些实施例里,在多个移动装置200系统里的一个或多个移动装置200可以包括一个或多个收发器。在一些实施例里,每个收发器被安置在移动装置200的每一侧上。例如,如果移动装置200上的一个触摸屏210有四个侧边,即顶侧、左侧、右侧和底侧。一个收发器221被安置在移动装置200的触摸屏210顶侧上。一个收发器222被安置在移动装置200的触摸屏210右侧上。一个收发器223被安置在移动装置200的触摸屏210底侧上。一个收发器224被安置在移动装置200的触摸屏210左侧上。
图3描述一些实施例的移动装置之间的数据交换。在这些实施例里,数据可以包括各种消息,如但不限于以下类型的请求(REQ)和回应(RESP):·BIND-定位并找出邻近装置(REQ/RESP)·ACT-通过由应用程序层定义的用户输入所触发的分布式动作(REQ/RESP)·SPREAD-被分发到拓扑内其它装置的动作消息(REQ/RESP)
在一些实施例里,一个移动装置需要通过在该移动装置及其邻近装置之间交换绑定请求(BIND REQ)和绑定回应(BIND RESP)来找到其邻近装置以及其邻近装置的方位。基于消息交换,建立一个绑定请求/回应。绑定请求/回应被存储在每个移动装置内。每个绑定请求或绑定回应可以包含以下项:·源移动装置的身份·源移动装置的方位·目标移动装置的身份·目标移动装置的方位
在一个非限制性例子里,移动装置310发出一个绑定请求到移动装置320,以便提供其身份(MID 1)及其相对于移动装置320(东)的方位到移动装置320,并请求移动装置320提供身份及其相对于移动装置310的方位。移动装置320通过发出一个绑定回应到移动装置310以回应,以便确认身份和移动装置310的方位,并提供其身份(MID 2)及其相对于移动装置310(北)的方位给移动装置310。在此情景下,绑定请求是“BINDREQ(“MID1”,EAST,?,?)”格式,绑定回应是“BIND RESP(“MID1”,EAST,“MID2”,NORTH)”格式。如果绑定请求首先是从移动装置320发出,并且移动装置310通过提供一个绑定回应给移动装置320回应绑定请求,可以产生相同的绑定信息。
通过移动装置310和320的其余收发器(即不同于被用于在移动装置310和320之间进行传输的收发器)进行群发,绑定信息(“MID1”,EAST,“MID2”,NORTH)被可靠地分发到其它移动装置。
在一些实施例里,任何信息包或消息的可靠传输都是通过具有指数超时的重传得到保证。在一个非限制性的实施例里,CRC(循环冗余校验)被用来检查计算机网络内的信息包误码(REQ)。如果信息包被损坏,接收方将不会提供确认(RESP),发送方在一段时间之后将重发该信息包。在传输期间丢失信息包(REQ)的情况下,如果在一段时间之后没有收到确认(RESP),发送方也将重发该信息包。这段时间也被称为超时,其持续时间在每次超时之后呈指数级增加。
在一些实施例里,如果在交换绑定信息的移动装置之间有RF无线,分发绑定信息可以直接通过广播到所有正在聆听的移动装置上而不是使用逐跳传输进行。
图4描述一些实施例的建立一个移动装置拓扑的示例方法。在收集所有绑定请求/回应之后,每个移动装置能够导出相对于拓扑质心的x,y坐标(最接近的整数)及其方位。拓扑可以通过各种方法建立,如深度优先搜索或宽度优先搜索。在一个实施例里,搜索优先级是依照向北1、向东2、向南3和向西4的次序。例如,移动装置434首先沿着向北方向搜索任何邻近装置,从而发现移动装置435。移动装置400沿着向北方向搜索而没有发现任何移动装置之后,移动装置400沿着向东方向搜索任一邻近装置,发现移动装置411。移动装置420在沿着向北方向和向东方向搜索之后,再沿着向南方向搜索邻近装置,发现移动装置421。移动装置400在沿着向北方向和向东方向以及向南方向搜索之后,沿着向西方向搜索邻近装置,发现移动装置414。例如,移动装置的一个拓扑将按照以下次序由移动装置400建立:移动装置411、移动装置414、移动装置420、移动装置421、移动装置422、移动装置423、移动装置424、移动装置432、移动装置430、移动装置433、移动装置434以及移动装置435。拓扑将时时更新,例如当一个新的移动装置靠近这些邻近移动装置时,或者当其中一个邻近移动装置被移离时。
基于移动装置400的位置,坐标将被分配到拓扑内的每个移动装置,并在所有移动装置之间进行共享。结果,所有移动装置共享共同的坐标系统。例如,如果移动装置400的坐标初始被设置为(0,0),那么移动装置411的坐标将是(1,0),移动装置422的坐标将是(1,-1),以此类推。
在建立了移动装置的拓扑之后,也被称为搜索树,每个移动装置都将根据网络拓扑来确定搜索树的质心450及其关于质心450的坐标。在一个实施例里,假设有许多装置,其坐标为(xi,yi),其中i=1...n。质心450将是:
质心的x坐标=∑(xi)/n。
质心的y坐标=∑(yi)/n。
最靠近质心坐标的移动装置是质心装置。如果两个或多个移动装置有相同的距离,具有最小ID的移动装置被选择为质心。移动装置的ID可以是任何合适的装置,如MAC地址或装置ID。在一个实施例里,拓扑内移动装置的坐标根据质心450的坐标而变换,从而将质心450的坐标设置成(0,0)。结果,移动装置400的坐标将是(-1,2),而移动装置411的坐标将是(0,2),如图4所示。
在一些实施例里,一个移动装置能够以逐跳单播方式可靠地发送一个消息到另一个移动装置。在建立如以上所述的网络拓扑之后,网络内的每个移动装置都知道该拓扑,并计算到拓扑内每个移动装置的最短路径。消息的源ID(身份)被确定为发送消息的移动装置(发送方)的装置ID。如果消息是一个单播消息,消息的目标ID被确定为移动装置的装置ID,其是消息的接收方。
发送方(根节点)分发消息给其子节点(邻近移动装置),其遵循到达接收方的最短路径。沿着最短路径,中间节点接收到该消息,然后根据最短路径转发该消息到其子节点。
通过获得从接收方到发送方的确认回应(ACK RESP),能够可靠地发送消息。如果在某个时间段内发送方没有收到确认回应,那么该消息将被重新发送。单播消息可用于两个装置之间交换消息以建立一次会话。
在一些实施例里,移动装置能够可靠地以逐跳广播/多播方式分发一个消息到其它移动装置。如果该消息是一个广播消息,该消息的目标ID被指定为广播模式。广播消息的移动装置(发送方/根节点)分发消息到其所有子节点。每个子节点接收该消息,然后转发该消息到其所有子节点,除了发送该消息给其的节点之外。
如果该消息是一个多播消息,多个移动装置的装置ID被分配给消息的目标ID。在拓扑里的中间节点接收该消息,然后转发该消息到其子节点,遵循最短路径到达这些移动装置,装置ID是消息的目标ID。
在一些实施例里,一个或多个移动装置可以分布式地在一个分布式输入事件上运行。一个移动装置将来自网络拓扑里其它移动装置的输入刺激集合成一个集合输入。图5描述了一些实施例里的如何处理一个分布式输入事件的流程图。图6描述了在一个分布式输入事件期间多个移动装置中之间的一个示例操作。当移动装置610运行一个应用程序时接收到一个输入刺激,如长时间按压(作为一个非限制性例子),移动装置610从应用程序510接收一个输入事件601。在步骤520,移动装置610检查应用层以确定输入事件601是否是一个支援的分布式输入事件。如果不是,移动装置610不需要等待来自其它移动装置的其它输入事件,而将所有输入事件集合成一个支援的分布式输入事件。因此,在步骤570,移动装置610能够根据输入事件601来确定采取哪种动作,并发送SPREAD消息给其它移动装置,例如,如果该动作需要其它移动装置的参与。如果输入事件601是一个支援的分布式输入事件,那么发送一个ACT REQ到其它移动装置,如ACT REQ A到移动装置620,ACT REQ A’到移动装置630。当接收到一个ACT REQ消息时,移动装置回应发送一个ACT RESP消息。例如,移动装置620将回应发送ACK RESP A到移动装置610,而移动装置630将回应发送ACT REQ A’到移动装置620。
同时,在步骤530,移动装置610等待来自其它移动装置的其它ACTREQ消息。一个ACT REQ消息表示一个输入刺激。换言之,每个移动装置等待来自其它装置的输入事件以将它们集合起来而产生一个分布式输入事件消息。在步骤540,当时间周期结束时,确认参与的移动装置,并且如果移动装置接收到不止一个ACT REQ消息,那么在参与的移动装置中间随意选择一个主装置。以下是选择一个移动装置作为主装置的方法的一些非限制性例子:比较装置ID并使用最小ID作为主装置,或者使用在质心的移动装置作为主装置。装置ID可以是每个ACT REQ的源ID,如MAC地址,或可以是用户设定的ID。主装置负责协调建立和分发分布式输入事件消息。因此,在步骤550,如果一个移动装置未被选择作为主装置,它将仅等待来自主装置的其它输入事件或指令,并且这些移动装置被称为从装置。主装置收集来自从装置的ACT REQ达一段时间,就将它们合并成一个集合输入。结果,在步骤560,主装置根据集合输入分发一个SPREAD消息到其它移动装置,从而一个分布式动作能够在移动动装置之间执行。
在一些实施例里,一个分布式输入事件可以作为一个输入指令如缩小/放大。图7描述了缩小/放大命令如何通过拓扑里的多个装置进行传输和处理。图8描述了如何使用多个装置的多个多点触控输入来形成一个分布式事件用于缩小/放大。
例如,用户在移动装置710的触摸屏上移动其手指(或其它输入装置如触笔)从一个点(X1,Y1)到另一个点(X2,Y2)。这种手指移动触发一个输入刺激701。
例如,另一个用户在移动装置730的触摸屏上移动其手指从一个点(X3,Y3)到另一个点(X4,Y4)。这个手指移动触发一个输入刺激702。
因为输入刺激701,移动装置710的应用程序产生一个输入事件。移动装置710检查其应用层以查看该输入事件是否需要与其它移动装置的其它输入事件集合在一起,如检查该输入事件是否是一个支援的分布式输入事件。如果不是,移动装置710仅发送一个SPREAD消息到其它移动装置以命令它们采取任何必需的措施。如果该输入事件是一个支援的分布式输入事项,移动装置710发送一个ACT REQ消息到其它移动装置,并等待一段时间以收集来自其它移动装置的其它ACT REQ消息以便形成集合输入。
因为输入刺激702,移动装置730的应用程序产生一个输入事件。移动装置730检查其应用层以查看该输入事件是否需要与其它移动装置的其它输入事件集合在一起,如检查改输入事件是否是一个支援的分布式输入事项。如果不是,移动装置730仅发送一个SPREAD消息到其它移动装置以命令它们采取任何必需的措施。如果该输入事件是一个支援的分布式输入事件,移动装置730发送一个ACT REQ消息到其它移动装置,并等待一段时间以收集来自其它移动装置的其它ACT REQ消息以便形成集合输入。
当一定时间周期结束时,就能确认参与分布式输入事件的移动装置,因为ACT REQ消息已经传遍整个网络。基于ACT REQ消息的源ID,可以确定移动装置710是主装置,其将各种输入事件集合起来以产生一个集合输入,从而可以基于集合输入而产生一个SPREAD消息以执行分布式输入事件。
例如,移动装置710被选择作为主装置810。主装置810负责计算缩放比率和缩放中心。例如:
缩放中心830的x坐标是依照以下等式(1)由主装置810的处理器进行计算:
1 2 × ( ( X 1 + X 2 ) / 2 W m + ( X m - 0.5 ) + ( X 3 + X 4 ) / 2 W s + ( X s - 0.5 ) ) - - - ( 1 )
其中Wm是主装置810的宽度,而Ws是从装置820的宽度。Xm是主装置810的x坐标,而Xs是从装置820的x坐标。
缩放中心830的y坐标是依照以下等式(2)由主装置810的处理器进行计算:
1 2 × ( ( Y 1 + Y 2 ) / 2 H m + ( Y m - 0.5 ) + ( Y 3 + Y 4 ) / 2 H s + ( Y s - 0.5 ) ) - - - ( 2 )
其中Hm是主装置810的高度,而Hs是从装置820的高度。Ym是主装置810的y坐标,而Ys是从装置820的y坐标。
缩放程度是依照以下等式(3)由主装置810的处理器进行计算:
( X 1 - X 2 ) 2 + ( Y 1 - Y 2 ) 2 + ( X 3 - X 4 ) 2 + ( Y 3 - Y 4 ) 2 - - - ( 3 )
主装置810广播该SPREAD消息到拓扑里的其它移动装置,其载有缩放参数,如缩放程度、缩放中心。
本发明的实施可以以软件、硬件、应用逻辑、或一个软件、硬件和应用逻辑的组合的方式来实施。软件、应用逻辑和/或硬件可以安置在集成电路芯片、模块或存储器上。如果需要的话,部分软件、硬件和/或应用逻辑可以安置在集成电路芯片上,部分软件、硬件和/或应用逻辑可以安置在存储器上。在一个示例实施例里,应用逻辑、软件或指令集合被保留在任何一种传统非暂时性计算机可读媒质上。
在本说明书里描述的过程和逻辑流程可以通过一个或多个可编程处理器实施,其执行一个或多个计算程序以运行输入数据并产生输出。过程和逻辑流程也可以通过专用逻辑电路如FPGA(现场可编程栅极阵列)或ASIC(专用集成电路)实施。
在本说明书里描述的装置或设备可以通过可编程处理器、计算机、系统单晶片或其组合实施,从而运行输入数据并产生输出。装置或设备可能包括专用逻辑电路,如FPGA(现场可编程栅极阵列)或ASIC(专用集成电路)。除了硬件,装置或设备可能也包括代码,其建立一个适合计算机编程的执行环境,如构成处理器固件、协议堆栈、数据库管理系统、运行系统、交互平台子程序环境如虚拟机器、或其一个或多个组合的代码。
适合执行计算机程序的处理器包括通用和专用微处理器,以及任何数字计算机类型的任何一个或多个处理器。通常处理器将从只读存储器或随机访问存储器或两者接收指令。计算机元件通常包括一个处理器,用于运行和执行指令,以及一个或多个存储器装置,用于存储指令和数据。
在本说明书里描述的计算机可读媒介可以是任何媒质或装置,其能够包含、存储、传送、传播或递送指令,该指令由一个指令执行系统、装置、或设备如计算机使用。计算机可读媒介可以包括一个计算机可读存储媒介,其可能是包含或存储由一个指令执行系统、装置、或设备如计算机使用的指令的任何媒质或装置。计算机可读媒介可以包括所有形式的非易失性存储器、媒质和存储器装置,包括示范性的半导体存储器装置如EPROM、EEPROM、和闪存装置,磁碟如内部硬盘或可移动盘,磁光盘,和CD-ROM和DVD-ROM盘。
计算机程序(也被称为程序、软件、软件应用程序、脚本、或代码)能够以任何编程语言撰写,包括编译性或解释性语言、说明性或过程性语言,并且其能够以任何形式来实施,包括独立程序或模块、组件、子程序、对象、或其它适用于计算环境的单元。计算机程序能够在一个计算机或多个计算机上运行,计算机可以安置在单个地点或分布在多个地点,并通过一个通信网络互连。
在说明书里描述的实施例和/或特征可以在一个计算系统里实施,其包括一个后端组件,如数据服务器,或包括一个中间件组件,如应用程序服务器,或包括一个前端组件,如一个具有图形用户界面或网页浏览器的客户计算机,由此用户能够与说明书里描述的一个实施例,或一个或多个这种后端、中间件、或前端组件的任何组合进行交互。系统组件可以通过任何数字数据通信形式或介质如通信网络进行互连。通信网络的例子包括局域网(LAN)和广域网(WAN),如互联网。
计算系统可以包括客户机和服务器。客户机和服务器通常互相远离,并且通常通过一个通信网络相互作用。借助在各个计算机上运行的计算机程序,出现客户机和服务器的关系,从而相互有一个客户机-服务器的关系。
整个说明书包括许多具体的实施细节。这些具体的实施细节不是意在被演绎作为限制本发明范围或权利要求,而是用来描述本发明特定实施例的具体特征。
在各个实施例的上下文里描述的某些特征也可以被组合,并作为单个实施例。相反,在单个实施例的上下文里描述的各个特征也可以分别在多个实施例里实施,或以任何适当子组合方式实施。而且,尽管特征可以描述作为某些实施例里的动作,甚至最初已经作出权利要求,但是所述组合里的或一个权利要求组合里的一个或多个特征在某些情况下可能被排除在组合之外,并且权利要求组合可以是一个子组合并或一个子组合的变化。尽管本发明的各个方面将在独立权利要求里进行阐述,但本发明的其它方面包括来自实施例和/或具有独立权利要求特征的从属权利要求的其它特征集合,而不是仅在权利要求里明确地阐述这些组合。
在说明书里描述的某些功能可以以不同次序和/或并行执行。此外,如果需要的话,一个或多个上述功能可以是可选的或可以进行组合。
上述提供了本发明的示例实施例,但不应被看作是限制性含义。此外,在不脱离如所附权利要求所定义的本发明范围,可以对其作出改变和修改。

Claims (20)

1.一个移动装置,用于接收并处理来自多个移动装置的一个分布式输入事件,包括:
一个输入界面;
一个或多个处理器;
一个或多个存储器单元;和
一个或多个程序,其中一个或多个程序被存储在一个或多个存储器单元内,并被设置由一个或多个处理器执行,该程序包括:
用于在一个搜索范围内确认一个或多个邻近移动装置的指令;
基于来自每个移动装置的邻近移动装置的信息,用于形成多个移动装置的拓扑的指令;
如果移动装置有一个输入,用于确定该输入是否是一个支援的分布式输入事件的指令;和
根据输入是否是一个支援的分布式事件的确定,用于产生一个输出给一个或多个移动装置以在其上面运行的指令,如果该输入是一个支援的分布式输入事件,指示该移动装置从一个或多个邻近移动装置接收输入。
2.根据权利要求1所述的移动装置,其中程序还包括:用于计算多个移动装置的拓扑质心的指令。
3.根据权利要求2所述的移动装置,其中程序还包括:用于依照拓扑分配一个坐标给每个移动装置的指令。
4.根据权利要求1所述的移动装置,其中程序还包括:为回应支援的分布式输入事件,接收来自多个移动装置的多个输入并集合成一个集合输入的指令;其中
所述输出是依根据集合输入产生的。
5.根据权利要求1所述的移动装置,其中输入界面是一个用于产生输入的触摸屏。
6.根据权利要求5所述的移动装置,其中输入是一个使用触摸屏的多点触控输入,触摸屏是一个多点触控输入装置。
7.根据权利要求1所述的移动装置,其中移动装置包括一个收发器,用于与邻近移动装置交换数据。
8.根据权利要求7所述的移动装置,其中移动装置的每个侧面包括收发器,其沿着移动装置的每一侧与邻近移动装置交换数据。
9.根据权利要求8所述的移动装置,其中移动装置通过逐跳传输与其它移动装置交换数据。
10.根据权利要求9所述的移动装置,其中移动装置利用指数超时重发数据。
11.一种接收并处理来自多个移动装置的一个或多个输入的方法,包括:
多个移动装置中的每个移动装置在一个搜索范围内识别一个或多个邻近移动装置;
基于来自每个移动装置的邻近移动装置的信息,形成多个移动装置的一个拓扑;
如果一个移动装置有一个输入,确定该输入是否是一个支援的分布式输入事件;和
基于该输入是否是一个支援的分布式输入事件的确定,产生一个输出给一个或多个移动装置以在其运行,如果该输入是一个支援的分布式输入事件,指示该移动装置从一个或多个邻近移动装置接收输入。
12.根据权利要求11所述的方法,还包括:
计算多个移动装置的拓扑质心。
13.根据权利要求12所述的方法,还包括:
依照拓扑分配一个坐标给每个移动装置。
14.根据权利要求11所述的方法,还包括:
为响应支援的分布式输入事件,接收来自多个移动装置的多个输入并集合成一个集合输入;其中
输出是依照集合输入而产生的。
15.根据权利要求11所述的方法,其中移动装置包括一个用于产生输入的触摸屏。
16.根据权利要求15所述的方法,其中输入是一个使用触摸屏的多点触控输入,触摸屏是一个多点触控输入装置。
17.根据权利要求11所述的方法,其中移动装置包括一个收发器,用于与邻近移动装置交换数据。
18.根据权利要求17所述的方法,其中移动装置的每个侧面包括收发器,其沿着移动装置的每一侧与邻近移动装置交换数据。
19.根据权利要求18所述的方法,其中移动装置通过逐跳传输与其它移动装置交换数据。
20.根据权利要求19所述的方法,其中移动装置利用指数超时重发数据。
CN2010102056963A 2010-05-06 2010-06-08 利用邻近传感进行分布式计算的方法和装置 Active CN101893989B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/775,335 2010-05-06
US12/775,335 US20110273393A1 (en) 2010-05-06 2010-05-06 Method and Apparatus for Distributed Computing with Proximity Sensing

Publications (2)

Publication Number Publication Date
CN101893989A true CN101893989A (zh) 2010-11-24
CN101893989B CN101893989B (zh) 2013-02-13

Family

ID=43103195

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102056963A Active CN101893989B (zh) 2010-05-06 2010-06-08 利用邻近传感进行分布式计算的方法和装置

Country Status (2)

Country Link
US (1) US20110273393A1 (zh)
CN (1) CN101893989B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105656961A (zh) * 2014-11-13 2016-06-08 中国移动通信集团公司 一种多个用户设备间的无线互动方法和设备

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5884282B2 (ja) * 2011-03-29 2016-03-15 ソニー株式会社 情報処理装置および情報処理方法、記録媒体、並びにプログラム
US9560504B2 (en) * 2011-08-01 2017-01-31 Samsung Electronics Co., Ltd. Secondary mobile device
US20130052954A1 (en) * 2011-08-23 2013-02-28 Qualcomm Innovation Center, Inc. Data transfer between mobile computing devices
TWI575990B (zh) * 2014-03-25 2017-03-21 國立臺灣大學 利用網路拓樸綁定裝置之方法與系統

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101444007A (zh) * 2006-05-15 2009-05-27 微软公司 我附近的服务:利用邻近发现来发现并连接至可用无线服务
CN101674364A (zh) * 2009-09-28 2010-03-17 深圳华为通信技术有限公司 一种无线屏幕拼接显示方法、移动通信终端和装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001276373A1 (en) * 2000-07-03 2002-01-14 Ecole Polytechnique Federale De Lausanne (Epfl) Method and wireless terminal for generating and maintaining a relative positioning system
US20020116355A1 (en) * 2001-02-21 2002-08-22 Jeremy Roschelle System, method and computer program product for establishing collaborative work groups using networked thin client devices
US6744740B2 (en) * 2001-12-21 2004-06-01 Motorola, Inc. Network protocol for wireless devices utilizing location information
US8364148B2 (en) * 2005-07-07 2013-01-29 Qualcomm Incorporated Methods and devices for interworking of wireless wide area networks and wireless local area networks or wireless personal area networks
US7515544B2 (en) * 2005-07-14 2009-04-07 Tadaaki Chigusa Method and system for providing location-based addressing
US8265047B2 (en) * 2007-09-13 2012-09-11 Samsung Electronics Co., Ltd. System and method for device discovery in a wireless network of devices having directional antennas
US20110066971A1 (en) * 2009-09-14 2011-03-17 Babak Forutanpour Method and apparatus for providing application interface portions on peripheral computing devices
US8359181B2 (en) * 2010-03-01 2013-01-22 Qualcomm Incorporated Fast clustering of position data for user profiling

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101444007A (zh) * 2006-05-15 2009-05-27 微软公司 我附近的服务:利用邻近发现来发现并连接至可用无线服务
CN101674364A (zh) * 2009-09-28 2010-03-17 深圳华为通信技术有限公司 一种无线屏幕拼接显示方法、移动通信终端和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105656961A (zh) * 2014-11-13 2016-06-08 中国移动通信集团公司 一种多个用户设备间的无线互动方法和设备
CN105656961B (zh) * 2014-11-13 2019-07-05 中国移动通信集团公司 一种多个用户设备间的无线互动方法和设备

Also Published As

Publication number Publication date
CN101893989B (zh) 2013-02-13
US20110273393A1 (en) 2011-11-10

Similar Documents

Publication Publication Date Title
CN103929464B (zh) 用于检测三维手势以发起和完成联网设备间应用数据传送的系统和方法
CN100501657C (zh) 一种触摸屏装置及触摸屏装置的定位方法
CN106933472A (zh) 一种基于手机app的用户行为数据采集系统及其控制方法
CN101893989B (zh) 利用邻近传感进行分布式计算的方法和装置
US9380148B2 (en) Screen unlocking method, device and terminal
KR20130081068A (ko) 복수의 휴대 단말들을 이용하여 멀티 비전 시스템을 구축하는 방법 및 이를 위한 장치
CN102404641A (zh) 使用智能手机遥控电视机的方法和系统
CN102419689A (zh) 一种基于触摸屏的手势滑动传送文件方法和系统
CN102402379A (zh) 移动终端及其控制方法
EP3709147A1 (en) Method and apparatus for determining fingerprint collection region
CN102819391B (zh) 一种多场景下具有并行性的多点触摸手势反馈系统及方法
CN104144184A (zh) 一种控制远端设备的方法及电子设备
CN106909297A (zh) 一种数据通信处理方法、装置及电子设备、触摸显示设备
CN103492983A (zh) 交互式输入系统及其工具盘
CN103530043A (zh) 一种触摸屏应用程序运行方法及设备
CN103036962A (zh) 一种文件的共享方法及手持设备
CN108920204A (zh) 一种界面显示方法及终端设备
CN102937861A (zh) 用于显示环境的共享边缘
CN107678717A (zh) 一种分屏显示方法、移动终端及计算机可读存储介质
CN109656450A (zh) 一种图像显示方法及终端设备
CN104854574A (zh) 在实时通信和共享体验会话期间更新服务
CN105493018A (zh) 用于触控板操纵和双击缩放的独立命中测试
CN110233929A (zh) 一种显示控制方法及终端设备
CN105955513A (zh) 信息处理方法、电子设备及无线鼠标
CN109460170A (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