具体实施方式
在本发明以下说明书中要参照附图,这些附图形成本说明书的一部分,且其中作为说明示出了本发明可实践的特定示例。要理解可利用其它实施例,且可作结构和功能的修改而不背离本发明的范围。
图1示出了可在其中实现本发明的适当计算系统环境100。该计算系统环境100仅是适当计算环境的一个示例,并非旨在提出对本发明使用或功能性范围作任何限制。计算环境100也不应被解释为对示例性操作环境100中所示的任一组件或其组合有任何依赖性或任何需求。
本发明也可在很多其它通用或专用计算系统环境或配置中操作。适于本发明使用的众所周知的计算系统、环境、和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持式或膝上型装置、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电器、网络PC、小型计算机、大型机、包括任一种以上系统或装置的分布式计算环境等等。
本发明可在计算机可执行指令的一般环境中进行说明,诸如由计算机执行的程序模块。一般而言,程序模块包括执行具体任务或实现具体抽象数据类型的例程、程序、对象、组件、数据结构等等。本发明还可在任务由经通信网络连接的远程处理装置执行的分布式计算环境中实践。在分布式计算环境中,程序模块可置于包括存储器存储设备的本地和远程计算机存储介质中。
参照图1A,实现本发明的示例性系统包括以计算机110形式的通用计算装置。计算机110的组件可包括,但不限于,处理单元120、系统存储器130以及把包括系统存储器在内的各种系统组件耦合到处理单元120的系统总线121。系统总线121可能是若干总线结构类型中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用多种总线结构的任一种的本地总线。作为示例,而非限制,这些结构包括工业标准结构(ISA)总线、微信道结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和也称为Mezzanine总线的外围部件互连(PCI)总线。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能被计算机110访问的任何可用介质,并包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现、用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性介质、可移动和不可移动介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字化多功能光盘(DVD)或其它光学存储技术、磁盒、磁带、磁盘存储器或其它磁性存储设备、或任何其它可用于存储所需信息并可由计算机110访问的介质。通信介质通常在诸如载波或其它传输机制的已调制数据信号中体现计算机可读指令、数据结构、程序模块、或其它数据,且包括任何信息传输介质。术语“已调制数据信号”意指在信号中用对信息编码方式设置或改变其一个或多个特征的信号。作为示例,而非限制,通信介质包括诸如有线网络或直接连线连接的有线介质,和诸如声学、射频(RF)、红外线和其它无线介质的无线介质。以上任何介质的组合也应包括在计算机可读介质的范围中。
系统存储器130包括诸如只读存储器(ROM)131和随机存取存储器(RAM)132的易失性和/或非易失性存储器形式的计算机可读介质。包含有助于计算机110如起动时在元件间传送信息的基本例程的基本输入/输出系统(BIOS)133通常存储在ROM 131中。RAM 132通常包含可被处理单元120立即访问和/或当时正被操作的数据和/或程序模块。作为示例,而非限制,图1A示出了操作系统134、应用程序135、其它程序模块136、和程序数据137。
计算机110还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1A图示了读取和写入不可移动、非易失性磁性介质的硬盘驱动器141,读取和写入可移动、非易失性磁盘152的磁盘驱动器151,读取和写入可移动、非易失性光盘156,诸如CD-ROM或其它光学介质的光盘驱动器155。其它也用在示例性计算环境中的可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,如磁带、闪存卡、数字化视频光盘、数字化录像带、固态RAM、固态ROM等等。硬盘驱动器141通常通过诸如接口140的不可移动存储器接口与系统总线121连接,而磁盘驱动器151和光盘驱动器155通常通过诸如接口150的可移动存储器接口与系统总线121连接。
如上所述并如图1A所示的驱动器及其相关联的计算机存储介质为计算机110提供计算机可读指令、数据结构、程序模块、和其它数据的存储。在图1A中,例如,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146、和程序数据147。注意这些组件可以与操作系统134、应用程序135、其它程序模块136、和程序数据137相同或不同。在此给予操作系统144、应用程序145、其它程序模块146、和程序数据147的不同数字至少说明他们是不同的副本。用户可通过诸如数码相机163、键盘162和通常指为鼠标、跟踪球或触摸板的定点装置161的输入装置向计算机110输入命令和信息。其它输入装置(未示出)可包括笔、电子笔和书写板、话筒、操纵杆、游戏垫、卫星接收器、扫描仪等等。这些和其它输入设备常常通过与系统总线耦合的用户输入接口160与处理单元120相连,但也可通过例如并行端口、游戏端口或通用串行总线(USB)的其它接口连接。监视器191或其它类型的显示设备也可通过诸如视频接口190的接口与系统总线121相连。除显示器以外,计算机还可包括诸如扬声器197和打印机196的其它输出设备,它们通过输出外围接口195相连。
计算机110可以在使用与一台或多台远程计算机,诸如远程计算机180的逻辑连接的网络化环境中运行。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等装置或其它公共网络节点,而且通常包括上述与个人计算机110相关的许多或全部组件,尽管在图1A中仅图示了存储器存储设备181。图1A中所描绘的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这样的网络化环境在办公室、企业范围计算机网络、内联网和因特网上是常见的。
当用于LAN网络化环境中时,计算机110通过网络接口或适配器170与LAN171连接。当用于WAN网络化环境中时,计算机110通常包括调制解调器172或其它用于在广域网173,诸如因特网中建立通信的装置。可以是内置式或外置式的调制解调器172与系统总线121通过用户输入接口160或其它适当机制连接。在网络化环境中,与计算机110相关的程序模块或其一部分可存储在远程存储器存储装置中。作为示例,而非限制,图1A示出了驻留于远程计算机180中的远程应用程序185。应当理解,所示网络连接是示例性的,且其它用于在计算机间建立通信连接的技术也可以使用。
可以理解,所示网络连接是示例性的,且可使用在计算机之间建立通信链接的其它装置。假定存在诸如TCP/IP、以太网、FTP、HTTP等的各种众所周知协议的任一种,且可用客户机-服务器配置来操作系统以允许用户从基于web的服务器中检索网页。可使用各种常规web浏览器的任一种来在网页上显示和处理数据。
编程接口(或更简称为接口)可被视为使一个或多个代码分段能与一个或多个其它代码分段通信,或能访问其所提供的功能性的任意机制、进程、和协议。或者,编程接口可被视为系统组件的能够与其它组件的一个或多个机制、方法、函数调用、模块等通信耦合的一个或多个机制、方法、函数调用、模块、对象等。前面句子中的术语“代码分段”旨在包括一个或多个指令或代码行,并包括例如代码模块、对象、子程序、函数等等,无论所应用的是何种术语,或者是否单独编译代码分段,或者代码分段是否被提供为源、中间体、或对象代码,或者是否在运行时系统或进程中利用代码分段,或者它们是否位于同一机器或不同机器或分布在多个机器上,或者代码分段所表示的功能是否整个地在软件中、硬件中、还是硬件和软件的合成中实现。
在概念上,编程接口一般可如图1B或1C所示。图1B示出接口1为第一代码分段和第二代码分段通信的通道。图1C示出包括接口对象I1和I2(可以是或不是第一和第二代码分段一部分)的一接口,使得系统的第一和第二代码分段能通过媒体M通信。在图1C的视图中,可将接口对象I1和I2视为同一系统的独立接口,也可视为对象I1和I2加上媒体M组成了接口。尽管图1B和1C示出了双向流和流每一侧上的接口,某些实现可仅具有单向的信息流(或如以下所述的无信息流),或者可仅在一侧具有接口对象。作为示例,而非限制,诸如应用程序编程接口(API)、进入点、方法、函数、子程序、远程过程调用、以及组件对象模型(COM)接口的术语,都被包括在编程接口的定义中。
这种编程接口的各个方面可包括:第一代码分段向第二代码分段传送信息(其中在最广泛意义上使用“信息”,并包括数据、命令、请求等)的方法;第二代码分段接收信息的方法;以及信息的结构、序列、语法、组织、模式、信息的定时、和内容。这样,不管媒体是有线、无线、或两者合成,只要信息以接口定义的方式传输,基层的传输媒体本身对接口的操作就不重要了。在某些情况中,信息不在常规意义上的一个方向或两个方向上传递,因为当一代码分段仅访问由第二代码分段执行的功能时,信息传递可通过另一机制(例如信息置于与代码分段之间与信息流分开的缓存器、文件等)进行或者不存在。任意或所有这些方面在给定情况中可能是重要的,例如,取决于代码分段是否是松散耦合或紧密耦合配置中系统的一部分,因此该列表应被视为是说明性且非限制的。
该编程接口的概念对本领域技术人员是众所周知的,且在本发明以上详细描述中显然。然而,可有实现编程接口的其它方法,并且除非被确切排除,它们也将被包括在本说明书结束处陈述的权利要求书中。这些其它方法会显得比图1B和1C的简化视图更深奥或更复杂,但即便如此它们仍执行完成相同总体结果的相似功能。我们将简要描述编程接口的部分说明性任选实施例。
A.分解
通过将通信分成多个离散通信可间接地完成从一个代码分段到另一代码分段的通信。这在图1D和1E中进行示意描述。如图所示,可根据可划分功能组来描述某些接口。因而,可分解图1B和1C的接口功能以获取同样的结果,正如数学上可提供24,或者为2x2x3x2。相应地,如图1D所示,可划分由接口1提供的功能以将该接口的通信转换成多个接口:接口1A、接口1B、接口1C等而获取同样的结果。如图1E所示,可再次将接口I1提供的功能划分成多个接口:I1a、I1b、I1c等而获取同样的结果。类似地,从第一代码分段接收信息的第二代码分段的接口I2也可被分解成多个接口:I2a、I2b、I2c等。在分解时,包括在第一代码分段中的接口数量不需要匹配包括在第二代码分段中的接口数量。在图1D和1E的任一情形中,接口1和I1的功能实质分别与图1B和1C的一样。接口的分解也可遵从结合、交换、以及其它数学属性使得分解难以识别。例如,操作的顺序在某些应用中并不重要,且因而由接口实现的功能可在到达接口之前由另一段代码或接口很好地实现,或者由系统的独立组件执行。此外,编程领域技术人员可理解,有各种各样获取同样结果而作不同函数调用的方法。
B.重新定义
在某些情形中,略去、添加、或重新定义编程接口的某些方面(例如参数)而仍完成所要结果是可能的。这如图1F和1G所示。例如,假设图1B的接口1包括一函数调用Square(input,precision,output),它包括三个参数input(输入),precision(精度)和output(输出),并从第一代码分段发往第二代码分段。如果中间参数precision在给定情形中无关紧要,如图1F所示,则可略去它甚至用meaningless(无意义)参数替换它(在此情形中)。也可添加不重要的additional(附加)参数。在任一情形中,只要在输入由第二代码分段进行square(平方)之后返回输出,就可获得square的功能。对计算机系统某些下游部分或其它部分precision可以是非常好的有意义的参数;然而,一旦认为precision对于计算square的有限目的而言是不必要的,则替换或略去它。例如,替代传送有效的precision值,可传送诸如生日的无意义值而不会不利地影响结果。类似地,如图1G所示,由接口I1’替换接口I1,它进行了对接口略去或添加参数的重新定义。接口I2可类似地被重定义为接口I2’,它进行了略去不必要参数或在其它地方进行处理的参数的重新定义。此处的要点是,在某些情形中,编程接口可包括某些目的所不需要的一些方面,诸如参数,因此可略去或重新定义它们,或者在其它地方进行处理用于其它目的。
C.内联编码
合并两个独立代码模块的部分或所有功能从而使它们之间的“接口”改变形式也是可行的。例如,可将图1B和1C的功能分别转换成图1H和1I的功能。在图1H中,先前图1B的第一代码分段和第二代码分段被合并成一包含它们两者的模块。在此情形中,代码分段仍然可互相通信,但接口则被调整为更适于单个模块的形式。因而,例如,正式的调用和返回语句不再必要,但是依照接口1的类似处理或响应仍然有效。类似地,如图1I所示,图1C的接口I2的一部分(或全部)可被写入I1内以形成接口I1”。如图所示,接口I2被划分成I2a和I2b,而接口部分I2a被与接口I1内联编码以形成接口I1”。作为具体示例,考虑lzi图1C的接口I1执行函数调用square(input,output),它在由第二代码分段处理用input传送的值(以平方之)之后由接口I2接收,并用output传送回平方后的值。在此情形中,由第二代码分段(平方input)执行的处理无需调用接口就可由第一代码分段执行。
D.分离
通过将通信分成多个离散通信可间接地完成从一个代码分段到另一代码分段的通信。这在图1J和1K中进行示意描述。如图1J所示,提供一个或多个中间件(分离接口,因为它们从原始接口中分离功能和/或接口功能)以转换第一接口接口1上的通信以使它们遵从一不同接口(在此情形中为接口2A、接口2B和接口2C)。可这样完成:例如,有已安装的应用程序基础根据接口1协议被设计为与操作系统通信,但是随后操作系统被更改成使用一不同接口(在此情形中为接口2A、接口2B和接口2C)。要点是,由第二代码分段使用的原始接口被更改,从而它不再与第一代码分段使用的接口兼容,且因而使用一中间体使得新旧接口兼容。类似地,如图1K所示,可用分离接口DI1引入第三代码分段以接收来自接口I1的通信,并用分离接口DI2以将接口功能传送给例如经重新设计与DI2一起工作的接口I2a和I2b,但仍提供同样的功能结果。类似地,DI1和DI2可一起工作以将图1C接口I1和I2的功能翻译成一新操作系统,而仍提供同样的或相似的功能结果。
E.重写
另一可能变体是动态地重写代码以用其它东西替换接口功能而仍取得同样的总体结果。例如,可有一系统,其中以中间语言(例如微软IL、JavaByteCode等)呈现的代码分段被提供给执行环境中的运行时(JIT)编译器或解释器(诸如由.Net框架、Java运行时间环境、或其它类似运行时间类型环境所提供的)。可编写JIT编译器以动态转换从第一代码分段到第二代码分段的通信,即让它们遵从第二代码分段(原始或不同的第二代码分段)所需的一不同接口。这在图1L和1M中描述。如图1L所示,该方法类似于上述分离情形。可这样完成:例如,其中已安装的应用程序基础根据接口1协议被设计为与操作系统通信,但是随后操作系统被更改成使用一不同接口。可使用JIT编译器以遵从已安装了基础的应用程序到操作系统的新接口在运行中的通信。如图1M所示,动态地重写接口的方法可被应用于动态分解,或用其它方法改变接口。
还要注意,用于通过任选实施例获取与接口相同或相似结果的上述情形也可以各种方法组合,串行地和/或并行地,或者用其它介入代码。因而,以上呈现的任选实施例并非互相排斥,而是可以加以混合、匹配和组合以产生与图1B和1C所示一般情形相同或等效的情形。还要注意,由于使用大多数编程结构,有许多未在此描述的可获取接口相同或相似功能的其它类似方法,但虽然如此仍可由本发明的精神和范围来表示,即,要注意,在接口值之下的接口至少代表部分功能,并使能有利结果。
图2A是带有内部组件的示意表示的计算机输入装置200的侧视图。计算机输入装置200包括一外壳205。外壳205的底部实质上是被安排置于桌子或桌子顶部表面上的平面,但也可由用户握住。外壳205上部的形状适于与人手舒适交互并支持它。计算机输入装置200可以是在图1A示为鼠标的计算机输入装置161。计算机输入装置200可包括可驱动按键,使用户能按压和单击一条目和/或用计算机输入装置200执行一动作。计算机输入装置200还可包括一滚动轮209。计算机输入装置200还可被示为包括控制系统210、相对跟踪子系统220、绝对跟踪子系统230、以及传感器240。标记元素210、220、230和240以虚线形式示出以表示这些元素在计算机输入装置200内部。本领域技术人员应理解,众多输入装置可被包括在术语计算机输入装置中。示例计算机输入装置包括鼠标、跟踪球鼠标、触摸板、操纵杆、以及附加在人身上的电子装置,诸如手套,戴上后它可用来跟踪用于将信息输入计算机的人手或手指的运动。
控制系统210可以是用于数据计算、信号处理、并与主计算机通过接口相连的硅片、数字组件、和/或微处理器组件(未示出)。控制系统210被示为与每个子系统-相对跟踪子系统220和绝对跟踪子系统230相连接。每个跟踪子系统220和230被示为与传感器240相连。如图2A所示,每个子系统使用传感器240用于捕捉跟踪计算机输入装置200运动的数据。尽管未在图2A中示出,每个跟踪子系统可具有独立的用于跟踪目的的传感器240。此外,应理解传感器240可被包括在每个子系统220和230中。应理解,如果在两个子系统220和230中使用了一个公共传感器240,每个子系统的帧速率可能会不同,且提供给每个子系统的数据质量也会不同。例如,对于绝对位置解码可捕捉并需要较大的数据集,而对于相对跟踪则可使用该数据的子集从而允许较快的处理。
传感器240捕捉对应于计算机输入装置200运动的数据。该数据通过相对跟踪子系统220和/或绝对跟踪子系统230传送,其中数据被处理以确定表示计算机输入装置200近似位置的位置数据。然后位置数据被发送到控制系统210,随后数据被发送到主计算机(未示出)用于在应用程序中使用。例如,计算机输入装置200的运动可对应于主计算机的显示屏上光标位置的移动,如图8所示并在下面描述。尽管未在图2A中示出,控制系统210可包括一存储器,用于存储在后来发送给主计算机的位置数据。
计算机输入装置200示出被配置成通过相对跟踪方法和/或绝对跟踪方法来跟踪计算机输入装置200的运动的复合跟踪装置的说明性示例。基于相对跟踪方法和/或绝对跟踪方法进行跟踪的能力包含在计算机输入装置200的同一物理外壳205中。本领域技术人员应理解,控制系统210、相对跟踪子系统220、以及绝对跟踪子系统230可通过硬件组件、软件组件、固件组件、和/或硬件、软件、和固件组件的任意组合来实现。
图2B是带有内部组件示意表示的计算机输入装置201的侧视图。计算机输入装置201包括一外壳206。计算机输入装置201可以是电子笔类型的装置。计算机输入装置201可包括可驱动按键和/或诸如零行程二进制接触传感器或压敏电阻器(FSR)的传感器,使用户能按击一条目和/或用计算机输入装置201执行一动作。计算机输入装置201还可被示为包括控制系统210、相对跟踪子系统220、绝对跟踪子系统230、以及传感器240。标记元素210、220、230和240以虚线形式示出以表示这些组件在计算机输入装置201内部。
控制系统210可以是用于计算数据、处理信号、并与主计算机通过接口相连的硅片、数字组件、和/或微处理器组件(未示出)。控制系统210被示为与每个子系统-相对跟踪子系统220和绝对跟踪子系统230相连接。每个跟踪子系统220和230被示为与传感器240相连。如图2B所示,每个子系统使用传感器240用于捕捉跟踪计算机输入装置201运动的数据。尽管未在图2B中示出,每个跟踪子系统220和230可具有独立的用于跟踪目的的传感器240。此外,应理解传感器240可被包括在每个子系统220和230中。应理解,如果在两个子系统220和230中使用了一个公共传感器240,每个子系统的帧速率可能会不同,且提供给每个子系统的数据质量也会不同。例如,对于绝对位置解码可捕捉并需要较大的数据集,而对于相对跟踪则可使用该数据的子集从而允许较快的处理。
传感器240捕捉对应于计算机输入装置201运动的数据。该数据通过相对跟踪子系统220和/或绝对跟踪子系统230传送,其中数据被处理以确定表示计算机输入装置201近似位置的位置数据。然后位置数据被发送到控制系统210,随后数据被发送到主计算机(未示出)用于在应用程序中使用。例如,计算机输入装置201的运动可对应于主计算机的显示屏上光标位置的移动,如图8所示并在下面描述。尽管未在图2B中示出,控制系统210可包括一存储器,用于存储在后来发送给主计算机的位置数据。
计算机输入装置201示出被配置成通过相对跟踪方法和/或绝对跟踪方法来跟踪计算机输入装置201的运动的复合跟踪装置的说明性示例。基于相对跟踪方法和/或绝对跟踪方法进行跟踪的能力包含在计算机输入装置201的同一物理外壳206中。本领域技术人员应理解,控制系统210、相对跟踪子系统220、以及绝对跟踪子系统230可通过硬件组件、软件组件、固件组件、和/或硬件、软件、和固件组件的任意组合来实现。
图3A示出由两个跟踪子系统220和230组成的复合跟踪装置300。每个子系统包含收集数据的传感器240a和240b,以及控制传感器240a和240b并收集和处理来自传感器240a和240b的数据的处理器324和334。传感器240a和240b可以是由跟踪子系统220和230共享的同一传感器。传感器240a和240b可以是光学和/或磁性传感器或某些其它类型的传感器。复合跟踪装置300被示为与主计算机390通信。复合跟踪装置300通过控制系统210与主计算机390通信。控制210系统可包括一存储器(未示出),它可存储用于后来处理和/或传送到主计算机390的已捕捉数据。控制系统210可通过各种方法与主计算机390通信,包括通过串行端口或USB端口的硬接线连接、通过诸如蓝牙的无线通信路径、和/或任意其它类型的通信方法。
控制系统210被示为分别通过跟踪引擎324和334与每个子系统220和230收发信号和数据。相对跟踪引擎324是相对跟踪子系统220的一部分。相对跟踪引擎324接收来自控制系统210的控制信号,并响应以向传感器240a发送适当信号。相对跟踪引擎324还接收来自传感器240a的数据。数据可包括用以跟踪复合跟踪装置300的位置的光学信息和/或测量数据。在接收来自传感器240a的数据之后,相对跟踪引擎324可处理数据以确定要通过控制系统210发送给主计算机390的位置数据。或者,相对跟踪引擎324可向控制系统210传递从传感器240a接收的数据,该控制系统210可执行计算以根据相对跟踪方法确定装置300的位置,和/或可通过控制系统210向主计算机390传递数据,该主计算机可执行计算以根据相对跟踪方法确定装置300的位置。根据各个实施例,计算可由相对跟踪引擎324、控制系统210和/或主计算机390执行。
类似于相对跟踪子系统220,绝对跟踪子系统230可包括传感器240b和绝对跟踪引擎334。绝对跟踪引擎334接收来自控制系统210的控制信号,并响应以向传感器240b发送适当信号。绝对跟踪引擎334还接收来自传感器240b的数据。在接收来自传感器240b的数据之后,绝对跟踪引擎334可处理数据以确定要通过控制系统210发送给主计算机390的位置数据。或者,绝对跟踪引擎334可向控制系统210传递从传感器240b接收的数据,该控制系统210可执行计算以根据绝对跟踪方法确定位置,和/或可通过控制系统210向主计算机390传递数据,该主计算机可执行必要的计算以根据绝对跟踪方法确定复合跟踪装置300的位置。根据各个实施例,计算可由绝对跟踪引擎334、控制系统210和/或主计算机390执行。
控制系统210吸收数据并用某些方法将其传送出去。如在这里所述,跟踪子系统220和230的组件可用某些方法进行组合和/或共享。例如,每个子系统中的传感器240a和240b可以是一公共传感器240。该绝对子系统230向控制系统210提供绝对位置数据,而相对跟踪子系统220提供相对运动数据。取决于用户需要、两个跟踪子系统的效率、和/或要确定装置300的更精确位置,可分开或一起使用相对运动数据和绝对运动数据。
在本发明另一实施例中,可使用传感器240a来捕捉由相对跟踪引擎324使用的数据。相对跟踪子系统220可以是由复合跟踪装置300使用的缺省跟踪子系统。在起动绝对跟踪子系统之前,相对跟踪子系统220可操作预定时间和/或距离。例如,相对跟踪子系统220可捕捉数据,且两秒后传感器240b捕捉一图像。绝对跟踪引擎334可立即处理数据,以确定用于最终通过控制系统210传送到主计算机390的绝对位置数据。绝对位置数据和/或相对位置数据可存储在复合跟踪装置300内的存储器中(未示出)。在另一实施例中,绝对跟踪子系统230可以是缺省跟踪子系统。
图3B是根据本发明至少一方面用于跟踪装置360的位置的复合跟踪系统350的说明性实施例的功能框图。复合跟踪系统350包括一装置360。装置360可以是基于相对跟踪方法跟踪其位置的计算机输入装置。相对跟踪子系统220包括传感器240和相对跟踪引擎324。如上在图3A所述,传感器240捕捉数据并向相对跟踪引擎324发送数据。相对跟踪引擎324处理数据并向控制系统210发送已处理的位置数据,而控制系统则将位置数据发送给主计算机390。类似地,控制系统210通过控制信号来控制传感器240和相对跟踪引擎324的操作。
如图3B所示,主机390包括一绝对跟踪引擎370。绝对跟踪引擎370可基于绝对跟踪方法来计算装置360的位置。可由绝对跟踪引擎370使用从传感器240接收的数据,以根据绝对跟踪方法确定装置360的运动。如图所示,装置360和主计算机390组成复合跟踪系统350。尽管未在图中示出,本领域技术人员应理解,用来基于绝对和/或相对跟踪方法确定位置数据的数据计算可完全由诸如计算机鼠标、电子笔、或个人数字助理的装置执行,或完全由主计算机或两者的组合执行。
在本发明另一实施例中,传感器240可用来捕捉由相对跟踪引擎324使用的数据。相对跟踪子系统220可以是由装置360使用的缺省跟踪子系统。在为了进行绝对跟踪处理而捕捉图像快照之前,相对跟踪子系统220可操作预定时间和/或距离。例如,相对跟踪子系统220可捕捉数据,且两秒后传感器240b捕捉一图像。被捕捉数据可存储在装置360内的存储器中(未示出)。有时数据可通过控制系统210传送到主计算机390。在主计算机上,可基于所接收的捕捉数据和绝对跟踪引擎370来确定绝对位置数据。在另一实施例中,绝对跟踪子系统230可以是缺省跟踪子系统。
图3C示出由两个跟踪子系统220和230组成的复合跟踪装置380。复合跟踪装置380还包括收集数据的传感器240。每个子系统220和230包含控制传感器240并收集和处理来自传感器240的数据处理器324和334。传感器240可以是光学和/或磁性传感器或某些其它类型的传感器。复合跟踪装置380被示为与主计算机390通信。复合跟踪装置380通过控制系统210与主计算机390通信。控制系统210可通过各种方法与主计算机390通信,包括硬接线通信路径、无线通信路径、和/或任意其它类型的通信路径。
控制系统210被示为分别通过跟踪引擎324和334与每个子系统220和230收发信号和数据。相对跟踪引擎324是相对跟踪子系统220的一部分。相对跟踪引擎324接收来自控制系统210的控制信号,并响应以向传感器240发送适当信号。相对跟踪引擎324还接收来自传感器240的数据。数据可包括用以跟踪复合跟踪装置380的位置的光学信息和/或测量数据。在接收来自传感器240的数据之后,相对跟踪引擎324可处理数据以确定要通过控制系统210发送给主计算机390的位置数据。或者,相对跟踪引擎324可向控制系统210传递从传感器240接收的数据,该控制系统210可执行计算以根据相对跟踪方法确定装置380的位置,和/或可通过控制系统210向主计算机390传递数据,该主计算机可执行计算以根据相对跟踪方法确定装置380的位置。根据各个实施例,计算可由相对跟踪引擎324、控制系统210和/或主计算机390执行。
类似于相对跟踪子系统220,绝对跟踪子系统230可包括绝对跟踪引擎334。绝对跟踪引擎334接收来自控制系统210的控制信号,并响应以向传感器240发送适当信号。绝对跟踪引擎334还接收来自传感器240的数据。在接收来自传感器240的数据之后,绝对跟踪引擎334可处理数据以确定要通过控制系统210发送给主计算机390的位置数据。或者,绝对跟踪引擎334可向控制系统210传递从传感器240接收的数据,该控制系统210可执行计算以根据绝对跟踪方法确定位置,和/或可通过控制系统210向主计算机390传递数据,该主计算机可执行必要的计算以根据绝对跟踪方法确定复合跟踪装置380的位置。根据各个实施例,计算可由绝对跟踪引擎334、控制系统210和/或主计算机390执行。
控制系统210吸收数据并用某些方法将其传送出去。该绝对子系统230向控制系统210提供绝对位置数据,而相对跟踪子系统220提供相对运动数据。取决于用户需要、两个跟踪子系统的效率、和/或要确定装置380的更精确位置,可分开或一起使用相对运动数据和绝对运动数据。
图4A和4B是根据本发明至少一方面跟踪接触点位置的说明性实施例的示意图。图4A是使用绝对跟踪子系统以及相对跟踪子系统以确保装置运动的精确确定的系统的说明性示例。图4A示出由绝对跟踪子系统相对不频繁地(在机器的时间尺度上)计算的各位置以确定装置的绝对位置(waypoint)。然后使用相对跟踪子系统以确定被示为相对路径的中间位置。如果在所分配的时隙内绝对跟踪子系统诸如由于遮盖而不能确定装置位置,则装置位置可基于相对跟踪子系统持续更新。图4B就示出了这样的情形。如图所示,waypoint 2不见了,例如因为下层的编码图案被遮盖而不能基于绝对跟踪子系统准确确定。例如,如图9所示和后面所述,文本数据可遮蔽底层的编码图案,从而限制系统准确确定装置绝对位置的能力。由于waypoint 2在图4B中不见了,相对跟踪方法继续跟踪装置位置到waypoint 3。
由航位推测法的导航被定义为通过计算从已知地点行进的距离、方向和时间量来估算一位置。Waypoint是由绝对子系统确定的绝对位置,而航位推测法导航确定这些waypoint之间的路径。由航位推测法计算的位置易发生由距离、方向和时间的计算误差所组合成的误差。然而,根据本发明至少一方面,绝对跟踪子系统可提供绝对位置参量,从而使控制系统能校正任何先前确定的中间位置误差。然后重建装置所行进的真实路径,如图5所示。因而,相对跟踪子系统向控制系统提供跟踪数据,而绝对跟踪子系统提供周期性的waypoint数据以与相对跟踪数据同步,从而允许误差校正。
按照处理功率、尺寸、价格和功率消耗每个子系统有不同成本。取决于给定复合跟踪装置或系统的架构和/或目的,对这些成本的权衡将不同。因此,相应地改变两个子系统之间的权衡是有用的。为了大部分和/或全部目的用户可能想要某一类型的跟踪发生。或者,可使用缺省的跟踪系统,和/或基于某些类型的效率(经济、节约能量、和/或计算时间)来作实现特定跟踪系统的决定。
为了有助于装置的检测和/或定位,装置置于其上的对象表面可包括指示该表面区域位置的图像数据。在一示例性实施例中,成像或扫描的表面可包括主计算机或其它外部计算装置的显示屏,它可对应于台式计算机、膝上型计算机、书写板PCTM、个人数据助理、电话、数码相机、或可显示信息的任何装置的显示器。相应地,在书写板PCTM屏幕上产生的空白文档或其它图像可包括对应于表示整个文档中该文档部分或图像的任意其它部分位置的代码的数据。该信息可由图像组成,这些图像可包括字母字符、编码图案、或可由于表示位置的图像数据的任意可辨别图案。被选择在指示对象表面上的区域位置中使用的图像可取决于扫描装置的灵敏性,诸如传感器的象素分辨率,和/或包含在要扫描表面中的图像数据的象素分辨率。然后可使用从该表面提取的位置信息来基于绝对跟踪方法跟踪装置在表面上的运动。使用该位置信息,可准确产生对应于装置运动的电子墨水或其它信息。可使用位置信息来检测输入受影响的表面位置,并提供装置在表面上运动的指示。结果位置信息可与字处理软件交互使用以产生例如文档中的变化。
在一可选实施例中,结合装置使用的对象由纸张与例如包括在背景中的位置信息组成。该位置信息可以代码、光学表示、或可由与装置相关联的传感器感应的并用以表示纸张上特定点的绝对位置的其它形式结合。
图6示出一种用于编码文档位置的技术示例。在此示例中,图像的背景可包括以较大组合看形成类似迷宫图案600的细线。迷宫设计600中的每组线条由具有例如与文档的另一部分604相比较可指示迷宫图案部分位置602的独特方向和位置的一些细线组成。对在被捕捉图像中发现的迷宫图案600的解码可根据许多解码方案执行。迷宫图案600是稍微可见的。迷宫图案600被配置成不与写、画、和/或读相干扰。例如,用户可将迷宫图案600置于白色打印纸上。用户可将纸张与一表面连接在一起,诸如办公室和/或会议室的墙面,并在纸张上作标记从而使装置能跟踪其在纸张上的绝对运动。迷宫图案600可用激光打印机或任何其它打印进程打印在透明胶片上。另一方面,迷宫图案可被打印在一张纸上。本领域技术人员应理解,放置迷宫图案600的介质不限于如上所述的透明胶片和/或纸张的示例,且可包括任何类型用于写和/或画的介质,诸如但不限于建筑图纸、墙、木质表面、黑板表面、计算机屏幕、以及地板。本领域技术人员应理解,将编码图案置于表面之上的墨水对用户而言是可见或不可见的。如果对用户不可见,则需要红外或紫外光源来使下层图案可见。
在一实施例中,可解码线条的特定排列和组合以产生位置信息。在另一实施例中,被捕捉数据位置的指示可通过从图像中提取对应于采样图案的代码,并使用该代码对包含标识该区域位置的数据的查询表格寻址来导出。一种类型的图案600称为水印图案。水印图案可以是叠加在显示于计算机屏幕的正常图像上的低可见度的两维(2D)比特图案。对比特图案进行编码使得位于屏幕上任何地方的其较小子集可被解码以产生该子集区域的位置。这使诸如手持式笔或其它装置的成像装置能确定其在图案上的绝对位置。在水印图案中,可解码位置在表面上用给定间距或间隔被规则地隔开。该间隔定义可解码每个位置地点进而装置位置的精度。这些位置是绝对的,因为它们不随时间改变或不依赖于与其它位置的相对关系。在另一实施例中,诸如PC、笔记本电脑、或TabletPC屏幕上的水印可改变。在这样的实施例中,可使用屏幕象素而不是打印在纸张上来显示水印和文档内容,使应用程序能基于与用户的交互而显示经更改的水印。尽管示图中的说明性示例示出了各种两维配置的编码图案600,本领域技术人员应理解该编码图案600可以是包括一维配置中可解码位置的点型图案。示图中示出的示例并不限于特定类型的编码图案600。
此外,水印图案也可嵌于诸如纸张文档或计算机显示器的表面上,从而图案在该表面上的每个“位置”是可唯一解码的。尽管水印图案的一个用途是跟踪装置在表面内位置的装置能力,该水印也可编码附加数据。可在图案中编码位置数据和/或附加数据。附加数据可以与解码位置数据方法相似的方式进行解码。该附加数据可在较低层次上进行编码,但在表面上比编码位置数据占用了更大的空间。可使用单个或多个应用程序来仅恢复位置数据、仅恢复附加数据、或恢复位置数据和附加数据。附加信息的某些示例包括图像、文件标识、音频文件和/或片断、视频文件和/或片断、安全特征、密码特征、生物统计信息、和/或与其它信息的链接。
诸如图案600的水印图案的设计可有众多考虑因素。这些考虑因素之一是表面上水印图案的密度。水印图案需要足够淡从而对装置用户而言是不引人注意的,同时还编码数量和质量足够的信息用于发挥装置的正常功能。此外,可设计编码信息以符合允许可接受的差错检测/校正程度的对冗余和完整性的最低要求。为了尝试最小化使图案600的用户转移注意力的程度,需要编码尽可能少的信息,而在尝试最大化装置功能时,需要最大化信息的数量和冗余。任何特定需要都可通过权衡可能的位置信息密度(从而增大了位置精度)以最小化由于图案使用户的注意力转移来获得。
基于水印的绝对跟踪系统缺乏在缺少或遮盖水印图案的情形中跟踪位置的能力。其上跟踪系统可能有用的许多表面包含非水印图案、印刷品、或数据。这样的示例如图9所示并如下所述。这些遮盖可包括文本或图像、表面上的纹理、以及阴影。这些遮盖可遮去嵌于该表面上的水印图案,它们可降低装置捕捉和处理水印图案以解码唯一固定的位置或其它数据的能力。在这样的情形中,装置将丢失对其当前位置的跟踪,这可导致功能降低。
相对跟踪系统对于跟踪大量表面上的运动是有用的。即使缺少位置数据,仍可分析由传感器240捕捉的图像以确定装置在图像捕捉时的位置。可使用连续图像来计算装置相对位置在不同时间的变化。这些图像的相互关系可产生装置在表面上的准确跟踪。使用该跟踪信息,可产生例如准确标识手写笔划的电子墨水。
在本发明一实施例中,诸如电子笔201的电子笔类计算机输入装置捕捉由相对跟踪子系统使用的数据。在起动绝对跟踪子系统之前,相对跟踪子系统捕捉用于预定时间和/或距离的相对跟踪处理的数据。预定时间和/或距离可触发绝对跟踪字系统的起动。该绝对跟踪子系统可立即处理数据,以确定用于最终传送到主计算机的绝对位置数据。或者,绝对位置数据和/或相对位置数据可存储在电子笔内的存储器中用于随后传送到主计算机。在另一实施例中,电子笔类计算机输入装置捕捉随后在主计算机上处理的用于跟踪的绝对数据作为应用程序的输入。
图7是根据本发明至少一方面跟踪编码表面600上接触点720位置的计算机输入装置200的说明性实施例的示意图。计算机输入装置200被示为在编码表面600之上,仅作说明。计算机输入装置200可置于编码表面600上,诸如在编码表面600嵌入鼠标垫的情形中。如图所示,传感器240可以是一光学传感器,它捕捉对应于从计算机输入装置200发射并从表面600反射回计算机输入装置200的光线710的数据。光线710包括有关编码表面600上接触点720位置的图像数据。光学系统仅是检测接触点720位置的一种方法,而本领域技术人员应理解可采用其它类型的导航系统,诸如雷达和基于磁性系统。
图8是根据本发明至少一方面用于计算机应用程序的计算机装置跟踪系统的说明性实施例的示意图。图8示出如何基于相对跟踪方法和绝对跟踪方法使用计算机输入装置800来跟踪计算机输入装置800的运动。图8将计算机输入装置800示为电子笔800。用户可在笔记本类型计算机810的屏幕805上使用电子笔800。屏幕805是其中可跟踪电子笔800位置的预定区域。当用户在屏幕805的表面上移动电子笔800时,可基于相对跟踪系统来跟踪电子笔的位置。接触点822和824可相对其它位置、接触点的轨迹、和/或某些其它相关特征来确定。
根据本发明至少一方面,用户可在诸如包括如图6所示嵌入图案600的纸张的编码纸830上使用同一电子笔800。当用户在纸张830的表面上移动电子笔800时,可跟踪电子笔800的接触点在纸张830表面上的运动840。运动840可基于绝对跟踪方法利用编码表面信息来跟踪。例如,用户可在纸张830上绘制一对象,而该对象被输入到运行于主计算机上的应用程序。与主计算机相连的监视器850显示相应对象842。电子笔800与主计算机通信以发送由运行于主计算机上的应用程序使用的绝对位置数据。本领域技术人员应理解,应用程序也可在主计算机之外。因此,在至少一实施例中,可无需主计算机将复合跟踪装置800用于绝对跟踪和/或相对跟踪。
图9是根据本发明至少一方面被遮盖编码表面600的说明性实施例的示意图。图9示出本发明复合跟踪系统的一实施例。如图所示,文本910写在编码表面600的某些部分920之上。例如,用户可用黑色墨水将一字母写在编码表面600上,它遮盖了某些区域中的下层图案930。在这种情形中,仅仅绝对跟踪系统将不能准确跟踪装置在被遮盖部分920上的运动。根据本发明至少一实施例,系统可利用相对跟踪子系统来确定装置在被遮盖部分920上的位置。这样,可获得装置位置和运动的更准确表示。
图10是根据本发明至少一方面用于跟踪复合跟踪装置运动的说明性方法的流程图。过程开始,且在步骤1002确定用户是否已指定了特定的跟踪方法选择。例如,用户可确定她想要复合跟踪装置通过相对跟踪方法进行跟踪。如果存在用户定义的选择,则过程移到步骤1004,其中该用户定义跟踪方法由复合跟踪装置实现。如果不存在用户定义的选择,则过程移到步骤1012。在步骤1012,确定是否要实现缺省跟踪方法。例如,可由用户和/或制造商对复合跟踪装置预先编程以实现特定的缺省跟踪方法。如果要实现缺省跟踪方法,过程移到步骤1014,其中实现缺省跟踪方法。如果没有缺省方法存在,则过程移到步骤1022。
在步骤1022,确定最有效的跟踪方法。该最有效跟踪方法的确定可基于任何数量的参数。例如,绝对跟踪方法可能较准确,但可能需要较多的处理功率和/或花较长的时间处理数据,而相对跟踪方法的实现可能较便宜且使用较少的功率但提供较不准确的结果。基于预先的设置和/或有效设置的用户输入,例如处理时间、节约能量、准确率等等,可由系统确定最有效的方法。在步骤1024,实现在步骤1022中确定的最有效方法。
对于所采取的任一路径,过程移到步骤1030,其中确定传感器是否捕捉数据。例如,步骤1030可包括确定传感器是否可使用绝对跟踪方法捕捉下层的编码图案。步骤1030还可包括确定传感器整合得是否长到足以捕捉图像数据。如果传感器不能捕捉数据,则过程继续到步骤1032,其中作另一确定是否已达超时设定。例如,装置可具有在执行另一操作前尝试捕捉数据的一预定时间段。如果已达超时设定,过程结束。如果未到超时设定,过程返回到步骤1030。如果在步骤1030传感器可以捕捉数据,则过程移到步骤1034捕捉数据。
在步骤1036,确定已实现的跟踪方法是否可使用被捕捉的图像数据。如果已实现的跟踪方法可使用被捕捉的图像数据,则在步骤1038确定装置的位置。确定步骤1038可由复合跟踪装置、主计算机、和/或由来自步骤1004、1014、或1024的已实现跟踪方法作出。对此示例,复合跟踪装置在步骤1038作出确定。然后过程继续到步骤1046。如果,在步骤1036已实现的跟踪方法不能使用已捕捉的图像,则过程继续到步骤1040。
在步骤1040,实现可选的跟踪方法。例如,如果用户选择在步骤1002实现的绝对跟踪方法,在步骤1040,系统实现相对跟踪方法。当下层编码图形被遮盖且不能由绝对跟踪系统准确标识时,这样的情形会发生。在步骤1042,确定复合跟踪装置的位置。该确定是基于就在步骤1040实现的备选跟踪方法而作出的。过程继续到步骤1044,其中系统返回到在步骤1030实现的先前的跟踪方法。过程继续到步骤1046。
所确定的位置数据在步骤1046被发送给主计算机,然后在步骤1048在运行于主计算机之上或其外部的应用程序中使用。过程移到步骤1050,其中确定是否还有数据要捕捉,例如装置是否已移动。如果还有数据要捕捉,过程返回到步骤1030。如果没有,则过程结束。本领域技术人员应理解,可存储位置数据而在后来传送给主机,且在图10中示出的示例过程仅是一个示例。
图11A是根据本发明至少一方面用于跟踪装置运动的另一说明性方法的流程图。过程开始,且在步骤1102检测装置的运动。在检测运动之后,相对跟踪系统在步骤1110捕捉数据而绝对跟踪系统在步骤1120捕捉数据。然后在步骤1130使用相对位置数据和绝对位置数据以确定装置的位置。可使用这样的实现来产生精确的位置信息。在步骤1140,向主计算机发送位置数据。在步骤1150,主计算机将数据用于运行于主计算机之上或其外部的应用程序中。过程移到步骤1160,其中确定是否还有数据需要捕捉。如果还有数据需要捕捉,过程返回到步骤1102。如果没有,过程结束。本领域技术人员应理解,在将位置数据发送给主计算机之前可将其存储在装置上的存储器中,且如图11A所示的示例仅是一个示例。
图11B是根据本发明至少一方面用于跟踪装置运动的可选说明性方法的流程图。该说明性过程可由电子笔类型的计算机输入装置实现。过程开始,且在步骤1102检测装置的运动。在检测运动之后,相对跟踪系统在步骤1110捕捉数据而绝对跟踪系统在步骤1120捕捉数据。然后在步骤1130使用相对位置数据和绝对位置数据以确定装置的位置。可使用这样的实现来产生精确的位置信息。过程移到步骤1160,其中确定是否要捕捉更多数据。如果需要捕捉更多数据,则过程返回到步骤1102。如果没有,则过程继续到步骤1140。在步骤1140,向主计算机发送位置数据。在步骤1150,主计算机将数据用于运行于主计算机之上或其外部的应用程序中。在这样的示例中,来自步骤1130的已确定位置数据可存储在电子笔类计算机输入装置内的存储器中,直到数据在步骤1140被发送给主计算机。本领域技术人员应理解,在发送给主计算机之前可将位置数据存储在装置上的存储器中。
图12是根据本发明至少一方面用于跟踪装置运动的另一说明性方法的流程图。过程开始,且在步骤1202,确定装置所使用的下层表面是否是一编码表面。如果该表面是一编码表面,则系统在步骤1210实现绝对跟踪方法。如果不是,则系统在步骤1220实现相对跟踪方法。在任一情形中,过程移到步骤1232。在步骤1232,传感器捕捉数据。
在步骤1234,确定是否需要更高精度。当用户想要装置运动的更准确表示时,这种情形会产生。如果需要更高精度,则在步骤1236选择替换在步骤1232所实现方法的可选跟踪方法。如果不需要更高精度,则过程直接移到步骤1240。在步骤1240确定装置位置,而在步骤1242已确定的位置数据被发送给主计算机。在另一实施例中,位置数据在发送给主计算机之前可存储在装置上的存储器中。在步骤1244,位置数据在运行于主计算机之上或其外部的应用程序中使用。过程继续到步骤1250,其中确定是否还要捕捉数据。如果还有数据存在,过程返回到步骤1210或1220。如果不存在,过程结束。
图13是根据本发明至少一方面用于跟踪装置运动的另一说明性方法的流程图。过程开始,且在步骤1302,确定是否到了捕捉图像数据的时间。该时间可以是预定时间和/或装置的运动距离。如果时间未到,过程返回到步骤1302。如果时间已到,则过程移到步骤1304。在步骤1304,捕捉图像数据。
在步骤1306,确定是否已触发绝对跟踪方法。当装置的移动已达预定距离和/或预定时间已过,这样的情形会产生。如果在步骤1306已触发了绝对跟踪方法,则过程移到步骤1308,其中实现绝对跟踪方法。如果绝对跟踪方法未在步骤1306触发,则过程继续到步骤1310。
在步骤1310,在被捕捉的图像数据上实现相对跟踪方法。在步骤1312,确定装置位置的相对变化是否会引起对绝对跟踪方法的触发。如果装置位置的相对变化的确会引起对绝对跟踪方法的触发,则过程继续到步骤1316,其中设置绝对跟踪方法的触发。然后过程返回到步骤1308。如果装置位置的相对变化不会引起对绝对跟踪方法的触发,则过程继续到步骤1314。在步骤1314,确定从已确定最后的绝对跟踪位置起是否过了预定时间和/或距离。如果时间已过,过程继续到步骤1316,其中设置绝对跟踪方法的触发。如果没有,过程结束。
在一实施例中,相对跟踪子系统仅在有不充分可见的水印图案时才实现,以有效解码绝对位置。当控制系统确定来自绝对子系统的位置数据不充足和/或缺少时,实现相对跟踪子系统。在另一实施例中,相对跟踪子系统可比绝对子系统需要较少时间来处理被捕捉数据。在这样的情形中,可利用相对跟踪子系统来收集大部分数据,而绝对跟踪子系统则提供周期性的waypoint用于误差校正。在又一实施例中,绝对跟踪子系统和下层水印图案提供粗略的路径信息,而相对跟踪子系统内插附加的路径信息以提供更高的位置精度。
来自每个子系统的数据提供了有用的信息以简化其它方的处理。例如,对于多自由度系统的方向,可使用由绝对跟踪子系统计算的数据来降低相对跟踪子系统中的处理载荷。类似地,来自相对跟踪子系统的预计位置数据可在绝对位置的解码中允许较好的初始条件估算以及较有限的处理要求。
尽管示出了包括本发明各方面的说明性系统和方法,本领域技术人员将理解本发明并不限于这些实施例。特别是根据以上教学,本领域技术人员可作更改。可以理解和认为,可作更改而不背离本发明的真实精神和范围。因而本说明书被视为对本发明是说明性的而不是限制性的。