CN106576106B - 用于利用中间件交换传感器信息的方法、装置和*** - Google Patents

用于利用中间件交换传感器信息的方法、装置和*** Download PDF

Info

Publication number
CN106576106B
CN106576106B CN201480079502.6A CN201480079502A CN106576106B CN 106576106 B CN106576106 B CN 106576106B CN 201480079502 A CN201480079502 A CN 201480079502A CN 106576106 B CN106576106 B CN 106576106B
Authority
CN
China
Prior art keywords
sensor data
platform
value
middleware
sensor
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.)
Expired - Fee Related
Application number
CN201480079502.6A
Other languages
English (en)
Other versions
CN106576106A (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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN106576106A publication Critical patent/CN106576106A/zh
Application granted granted Critical
Publication of CN106576106B publication Critical patent/CN106576106B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/122Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Environmental & Geological Engineering (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

用于利用中间件在设备之间传输传感器信息的技术和机构。在实施例中,在计算机平台处执行的中间件逻辑单元接收基于平台的传感器设备的操作而生成的传感器数据。参与传感器数据在传感器驱动器过程与中间件逻辑单元之间的交换的任何过程是除了平台的任何用户应用的过程之外的过程。传感器数据的处理包括中间件逻辑单元基于传感器数据生成包括信息的数据分组。在另一个实施例中,数据分组从该平台发送到另一个平台,其中,另一个平台的中间件独立于在其它平台处执行的一些或全部用户应用而接收和处理数据分组。

Description

用于利用中间件交换传感器信息的方法、装置和***
技术领域
实施例涉及移动和固定位置计算***和设备中的操作。一些实施例涉及在多个***和设备之间交换传感器信息。
背景技术
许多人每天与多于一个的计算设备进行交互。这些设备中的一些设备是静止的或位于固定位置,包括台式计算机、工作站、个人数据服务器、以及智能电视。这些设备中的一些设备是移动的,包括蜂窝电话、平板计算机、超极本计算机、膝上型计算机、以及音乐播放器。
这些平台中的一些平台包括各种运动(或其它)传感器机构中的任何机构。然而,由于它们的尺寸和重量,相对静止的计算机平台,以及甚至一些相对大的移动平台不容易旋转或线性移动以利用移动传感器功能。其它平台可能完全缺乏移动传感器功能。然而,存在用户想要使用移动感测以用于与在这些平台上运行的应用进行交互的增长的趋势。
附图说明
通过示例的方式,而不是通过限制性的方式在附图的图中示出了本发明的各种实施例,在附图中:
图1是根据实施例的示出了用于传输传感器数据的***的要素的功能性框图。
图2是根据实施例的示出了用于传输传感器数据的方法的要素的流程图。
图3A是根据实施例的示出了用于发送传感器数据的设备的要素的功能方框图。
图3B是根据实施例的示出了用于接收传感器数据的设备的要素的功能方框图。
图4是根据实施例的示出了用于处理所接收到的传感器数据的设备的要素的功能方框图。
图5是根据实施例的示出了用于交换传感器信息的计算机***的要素的功能方框图。
图6是根据实施例的示出了用于交换传感器信息的移动设备的要素的功能方框图。
具体实施方式
本文中所讨论的实施例以多种方式提供了用于独立于一些或全部应用层处理而使设备之间的传感器信息的传输自动化的技术和/或机构。这种传感器信息的自动传输(在本文中被称为传感器数据共享)可以跨不同的平台扩展传感器的使用。
在实施例中,传感器数据共享(sensor tethering)的中间件被制造为可供一个或多个应用使用——例如,作为可经由应用编程接口(API)访问的框架,以促进用于在不同类型的设备(例如,智能手机和膝上型电脑)之间共享传感器能力的协作。来自Santa Clara,Calif.的
Figure GDA0002369343700000021
公司的通用连接框架(CCF)例如提供了接近度检测、设备发现、设备连接、数据传输以及平台间连接管理的一些自动化。然而,当前不存在用于应用开发者利用的通用的传感器数据共享框架。各种实施例的传感器处理中间件实现了用于可靠的和带宽有效的传感器信息的独立于应用的、运行时通信的框架。这种框架可以被制造为可用于各种平台上——例如,包括AndriodTM
Figure GDA0002369343700000022
或其它这样的平台——和/或跨各种处理器(或其它硬件)配置可用。
图1示出了根据实施例的用于交换传感器数据的***100的要素。***100可以包括经由网络彼此耦合的第一平台110和第二平台150——例如,如通过所示出的说明性无线网络所表示的。平台110(以及类似地,平台150)表示多个计算***中的任何计算***——例如,包括服务器、台式设备、平板设备、移动设备、智能电话、游戏设备等等——其以多种方式支持如本文中所讨论的传感器数据处理和通信功能。网络140表示多种一个或多个无线网络和/或有线网络(包括,例如,Wifi网络、局域网(LAN)、虚拟LAN(VLAN)、广域网(WAN)、互联网等等)中的任何网络。在某些实施例中,平台110、150可以独立于任何中间的联网硬件直接彼此通信。
平台110可以包括通用处理器和存储器(未示出)和/或其它硬件资源以执行诸如包括所示出的说明性OS核126的一个操作***之类的主操作***(OS)。这种主机OS可以包括来自Redmond,Washington的微软公司的
Figure GDA0002369343700000031
OS、来自Cupertino,California的苹果公司的OS
Figure GDA0002369343700000032
操作***、来自Mountain View,California的谷歌公司的AndroidTM OS、Linux OS等等。在运行时操作期间,平台110可以实现软件栈,该软件栈包括在软件栈的相对低的层处的OS核126,以及在软件栈的较高层级处以多种方式执行的一个或多个其它过程。例如,一个或多个应用——如通过所示出的说明性用户应用124所表示的——可以在软件栈的应用层处执行。尽管某些实施例不限于这点,但是用户应用124可以在应用框架128(例如,利用Android操作***实现的应用框架)内执行。
平台110的硬件可以包括一个或多个传感器——如用说明性传感器120所表示的——其例如可以检测平台110的状态和/或接***台110的环境的状态。例如,传感器120可以包括陀螺仪、线性加速度计、或者本领域中公知的各种其它运动传感器设备中的任何设备。替代地或另外地,传感器120可以包括用于感测压力、光、热、振动等等的各种其它常规硬件中的任何硬件。在某些实施例中,这种传感器硬件可以被配置为直接或间接接收来自平台110的用户的输入。例如,传感器120可以包括麦克风、触摸板、触摸屏、照相机或其它这种传感器设备中的一个或多个。
根据常规的技术,基于传感器120的操作生成的信息可以被提供为在由OS核126提供的应用层处执行的一个或多个过程。例如,常规技术典型地需要这些传感器信息被提供给诸如用户应用124之类的应用,以用于在经由平台110的网络输入/输出(I/O)硬件136进行通信之前进行处理。尽管某些实施例不限于这点,但是网络I/O硬件136可以包括网卡、无线调制解调器、和/或其它这种硬件来经由天线138交换(例如,接收和/或发送)信息。
相比之下,某些实施例以多种方式提供中间件——如用平台110的说明性中间件130所表示的——其允许处理至少一些传感器数据的责任从应用层被卸下。通过说明而非限制的方式,平台110的软件栈可以包括驱动器过程——如用说明性传感器驱动器122所表示的——以驱动传感器120的操作(和/或其它传感器硬件)。根据平台110的特定软件架构,传感器驱动器122可以例如是主机OS的部分或中间件130的部分。然而,某些实施例并不关于传感器驱动器122相对于软件栈的其它部件的特定配置而受到限制。
具有传感器驱动器122的传感器120的操作可以导致传感器数据从传感器驱动器122交换到中间件130的逻辑单元,例如说明性传感器数据处理(SDP)逻辑单元132。传感器数据可以包括用于一个或多个点、矢量、矩阵和/或表示利用传感器120感测到的一种或多种情况的其它数据的一个或多个值。在实施例中,参与传感器数据的交换的任何过程是除了用户应用124的任何过程以外的过程。例如,传感器数据可以独立于在平台110的应用层中同时执行的任何过程在传感器驱动器122与SDP逻辑单元132之间进行交换。
在功能上,中间件130可以被认为是位于包括OS核126的主机OS与应用层之间,在应用层中执行诸如用户应用124之类的一个或多个应用。中间件130可以包括编译代码、库和/或可用于提供传感器数据处理(和/或其它)功能的其它这样的软件资源。中间件130可以为能够调用这种功能的一个或多个应用提供框架,而不需要每个这种应用必须独立地在内部实现功能。
例如,用户应用124可以访问中间件130的应用编程接口(API)以通过SDP逻辑单元132来配置传感器数据处理。尽管某些实施例不限于这点,但是用户应用124可以包括图形用户接口(GUI),利用该图形用户接口,用户可以请求这种配置。可以利用在随后经由SDP逻辑单元处理传感器数据期间执行的应用来执行SDP逻辑单元132的配置。然而,在另一个实施例中,可以不在随后的数据处理期间执行配置SDP逻辑单元132的应用。
在实施例中,配置SDP逻辑单元132包括交换命令,该命令指定SDP逻辑单元132将开始处理由传感器驱动器122提供的传感器数据。替代地或另外地,配置SDP逻辑单元132可以包括中间件130接收信令,该信令例如以一些规则的间隔限定或以其它方式指示将由中间件130评估的一个或多个条件,以确定这种传感器数据的一些未来的处理是否要开始。例如,中间件130可以包括用于自动检测另一个平台与平台110的接近度的逻辑单元。这种逻辑单元的一个示例由中间件130的说明性连通性逻辑单元134表示。连通性逻辑单元134可以提供功能(例如,英特尔公司的CCF的连通性逻辑单元),以自动检测另一个平台(例如平台150)的存在,并且作为响应将平台110连接到该另一个平台。在这种实施例中,SDP逻辑单元132可以被配置为响应于由连通性逻辑单元134对平台150的检测(或其它这种接近的平台)来自动开始接收和处理传感器数据。然而,某些实施例并不关于特定条件而受到限制,在该特定条件下将开始由SDP逻辑单元132进行的传感器数据处理。
在实施例中,来自传感器驱动器122的一些或全部传感器数据可以针对代替平台110的一些应用(例如,任何应用)的SDP逻辑单元132,但是针对SDP逻辑单元132的可用性,这种应用可能以其它方式必须支持传感器数据的处理。由SDP逻辑单元132进行的传感器数据的处理可以包括初步转换、格式化和/或其它操作以将传感器数据修改为来自传感器驱动器122的输出。例如,SDP逻辑单元132可以基于这样的传感器数据值来将所接收到的传感器数据值和/或SDP逻辑单元132计算的其它数据分组化。所得到的数据分组可以包括分组报头和/或尾部以及被报头/尾部包封的有效载荷部分。分组报头/尾部可以包括元数据,其例如向平台150指示有效载荷包括传感器数据。替代地或另外地,这种元数据可以指示传感器数据的特定格式、与传感器数据相关联的传感器的特定类型、有效载荷和/或其它这种信息的长度。
由SDP逻辑单元132进行的处理可以例如与用于支持所得到的经处理的传感器数据在平台110、150之间的通信的其它处理区分开。例如,由SDP逻辑单元132生成的传感器数据分组可以随后被提供给平台110的通信协议栈,从而使传感器数据分组到平台150的传输可以满足通信协议的一个或多个要求。尽管某些实施例不限于这点,但是通信协议可以包括各种无线通信协议中的任何通信协议,这些无线通信协议包括例如但不限于,电气电子工程师学会(IEEE)的各种802.11标准中的任何标准、移动行业处理器接口
Figure GDA0002369343700000051
联盟的那些标准等等。对来自SDP逻辑单元132的数据的一些或全部通信协议处理(例如,包括链路层处理和/或物理(PHY)层处理)可以例如由中间件130的连通性逻辑单元134或其它逻辑单元来提供。基于这种通信协议处理,平台110可以交换信号以向另一设备(例如,说明性平台150)传输包括由SDP逻辑单元132生成的经处理的传感器数据的信息。
在一个或多个方面中,平台150可以提供与由平台110提供的功能中的一些或全部功能相反的功能。例如,可以利用包括OS核166的主机OS来实现平台150的软件栈,其中,主机OS支持一个或多个应用在栈的应用层中的执行。一个这种应用的示例由说明性用户应用164来表示。平台150的软件栈还可以包括中间件170,中间件170例如可以接收和处理由平台110提供的传感器数据。
通过说明而非限制的方式,平台150可以包括天线178以用于接收从平台110发送的信号。在由诸如说明性I/O设备驱动器162之类的驱动器过程的控制下,网络I/O硬件176可以根据特定的通信协议来向用于接收器处理的通信协议栈(未示出)提供所接收到的信号。尽管某些实施例并不限于这点,但是可以至少部分地利用平台150的中间件170(例如,利用具有连通性逻辑单元134的特征中的一些或全部特征的连通性逻辑单元174)来实现这种通信协议栈。
通信协议栈对所接收到的信号的处理可以包括例如对来自在天线138、178之间交换的多个网络分组的传感器数据进行重建。例如,传感器数据分组可以由连通性逻辑单元174重建并随后被发送到SDP逻辑单元172以进行进一步处理。在一个或多个方面中,由SDP逻辑单元172进行的传感器数据分组处理可以与由SDP逻辑单元132提供的传感器数据分组处理相反。在实施例中,SDP逻辑单元172将分组的一部分识别为包括传感器数据,例如通过评估报头/尾部部分或者分组的部分。SDP逻辑单元172随后可以提取这些有效载荷传感器数据,并且例如基于所提取的数据来执行一个或多个操作以生成将被传输给用户应用162的信息。
在一个实施例中,SDP逻辑单元172执行操作以转换所提取的传感器数据以向用户应用160提供操作已经在平台150发生或者利用平台150发生的模拟。例如,SDP逻辑单元172可以接收指示平台110已经在具体的一个或多个方向上移动的运动传感器数据。这种运动传感器数据可以被SDP逻辑单元172转换成随后作为表示平台150的运动的传感器数据而被呈现给用户应用164的数据。替代地或另外地,运动传感器数据可以被转换成作为表示在平台150的用户I/O设备(未示出)处的用户输入(例如,一个或多个击键)而被呈现给用户应用164的数据。根据不同的实施例,可以由SDP逻辑单元172另外地或替代地执行各种其它类型的传感器数据转换中的任何转换。
图2示出了根据实施例的用于传输传感器信息的方法200的要素。方法200可以例如由具有***100的特征中的一些或全部特征的一个或多个设备来执行。通过说明而非限制的方式,方法200可以包括由诸如平台110之类的发射器平台执行的操作205。替代地或另外地,方法200可以包括由诸如平台150之类的接收器平台执行的操作235。
在实施例中,在210,操作205包括在第一(例如,接收器)平台的第一中间件逻辑单元处接收传感器数据。第一中间件逻辑单元例如可以提供SDP逻辑单元132的功能中的一些或全部功能。传感器数据可以由基于第一平台的传感器设备的操作的第一平台的传感器驱动器过程来提供。传感器数据的交换可以独立于在交换期间执行任何用户应用来执行。在这样的实施例中,参与传感器数据在传感器驱动器过程与第一中间件逻辑单元之间的交换的任何过程是除了任何用户应用的过程之外的过程。
在220,操作205还可以包括在第一中间件逻辑单元处处理传感器数据。传感器数据在220的处理可以生成数据分组(也被称为传感器数据分组),其包括经处理的传感器数据。在该特定的背景下,术语“经处理的传感器数据”指代基于对由中间件逻辑单元接收的传感器数据进行操作的格式化、转换、数学计算和/或其它这种处理而生成的数据。
例如,在220进行的传感器数据的处理可以包括格式化数据值,例如,以多种方式表示一个或多个点、矢量、矩阵和/或其它数据实例,其中的每个均表示相应的一个或多个所感测到的条件值。尽管某些实施例不限于这点,但是这种格式化可以生成这些数据值的串,其中,这些值被预定的符号(例如,逗号“,”)以多种方式分隔开,另一个平台将把该符号识别为与彼此区分的传感器数据。
替代地或另外地,在220的处理可以包括将传感器数据从一个单位的测量结果转换为另一个单位的测量结果。替代地或另外地,在220的处理可以包括基于多个传感器数据值(中间值、平均值(例如,移动窗口平均值)、积分值、一阶微分值、二阶微分值等等中的一个或多个)来进行计算。某些实施例并不关于特定类型的数学操作而受到限制,这些数学操作可以由基于传感器数据的第一中间件逻辑单元来执行。
在各种文件中,在220的处理可以包括评估最新接收到的传感器数据以确定相对新的传感器数据是否被传输,例如,包括确定相对较早的传感器数据是否代替被重新使用。例如,较新的传感器数据可以在220与由第一中间件逻辑单元在时间上较早接收到的传感器数据进行比较。基于这种比较,可以作出关于较早的传感器数据是否将从第一平台被重新发送的确定。在一些实施例中,可以通过发送专用的一个或多个字符而非较早的传感器数据自身来指示较早的传感器数据的重新使用,这些字符被预定为指示先前传输的传感器数据的重新使用。用于重新使用相对早的传感器数据的这些技术可以允许明显的传感器抖动的减少和/或用于平台间通信的改进的信道利用。
在220的传感器数据的处理之后,操作205可以在230执行从第一平台发送数据分组。在230的发送可以包括由第一平台的通信协议栈发送用于另外的处理的传感器数据分组。
在实施例中,操作235包括在240在第二平台的第二中间件逻辑单元处接收数据分组。第二中间件逻辑单元例如可以包括SDP逻辑单元172的特征中的一些或全部特征。通过说明而非限制的方式,在230发送的数据分组可以由第二平台的网络I/O硬件接收,以用于由第二平台的通信协议栈来进行接收处理。这种接收处理可以包括根据由网络I/O硬件接收到的一个或多个网络分组来重新组成传感器数据分组。传感器数据分组可以独立于在第二平台处执行的任何应用被提供给第二中间件逻辑单元。在这种实施例中,参与传感器数据分组在网络I/O硬件与第二平台的第二中间件逻辑单元之间的交换的任何过程是除了任何用户应用的过程之外的过程。
操作235还可以包括在250在第二中间件逻辑单元处处理数据分组。在250的处理可以包括例如从传感器数据分组提取传感器数据并执行所提取的传感器数据的转换的操作。这些操作可以包括评估传感器数据分组的报头/尾部部分以识别传感器数据的格式类型。替代地或另外地,这些操作可以包括识别一个或多个传感器数据值是否将被重新使用,例如,以传感器数据值的顺序重复。所提取的传感器数据的转换可以包括例如基于多个传感器数据值(中间值、平均值、积分值、微分值等等中的一个或多个)来进行计算。
在实施例中,操作235还包括在260将基于传感器数据在250的转换的信息从第二中间件逻辑单元发送到第二平台的用户应用。在260发送的信息可以向用户应用模拟由第二平台采取的或者利用第二平台的动作。例如,可以向用户应用将这种信息表示为由第二平台的用户提供的一个或多个输入。响应于这种模拟,第二平台的用户应用可以经由图形用户接口、扬声器、触觉(例如,振动)设备和/或第二平台的其它这种输出机构来提供一些输出。
图3A示出了根据实施例的用于生成和发送传感器数据的发射器设备300的要素。发射器设备300可以例如包括平台110的特征中的一些或全部特征。更具体来说,图3A示出了诸如由中间件130提供的逻辑单元之类的逻辑单元的特征。
发射器设备300的软件资源可以包括传感器处理器模块310、数据分组器模块320和连接器模块330中的一个或多个。传感器处理器模块310可以提供诸如传感器驱动器122的功能之类的功能,以驱动发射器设备300的一个或多个传感器(未示出)。传感器处理器模块310可以包括传感器初始化API 312,将使该传感器初始化API 312对于一个或多个用户应用和/或发射器设备300的中间件逻辑单元可用。传感器初始化API 312可以提供传感器处理器模块310的配置,例如,以限定一个或多个条件,该条件限定了发射器设备300的传感器(未示出)开始还是停止感测操作/何时开始或停止感测操作。
数据分组器模块320可以提供诸如SDP逻辑单元132的功能之类的功能。在实施例中,数据分组器模块320包括传感器数据处理器API 322和/或分组API 324。传感器数据处理器API 322可以提供对数据分组器模块320的访问,以用于限定或以其它方式指示用于转换、格式化、计算和/或以其它方式处理传感器数据的操作。分组API 324可以提供对数据分组模块320的访问以指定分组结构、元数据格式和/或在对传感器数据进行分组中使用的其它信息。
连接器模块330可以包括连通性逻辑单元134的特征中的一些或全部特征。例如,连接器模块330可以提供自动接近度检测和诸如由英特尔公司的CCF技术提供的功能之类的连接功能。连接器模块330的数据通信API 332可以对用户应用和/或发射器设备300的中间件可用,例如,以用于提供特定的通信协议和/或这种通信协议的一个或多个操作参数的连接器模块330的配置。替代地或另外地,连接器模块330的连接API 334可以提供自动操作的配置,以在发射器设备330与另一个平台(例如,图3B中的说明性接收器设备350)之间建立通信信道。在一个实施例中,单个平台包括发射器设备330的特征和接收器设备350的特征两者。
图3B示出了根据实施例的用于接收和处理传感器数据的接收器设备350的要素。接收器设备350例如可以包括平台150的特征中的一些或全部特征。更具体来说,图3B示出了诸如由中间件170提供的逻辑单元之类的软件逻辑单元的特征。
接收器设备350的软件资源可以包括数据操作模块360、数据解分组器模块370和连接器模块380中的一个或多个。连接器模块380可以提供接收通信协议的功能,例如连通性逻辑单元174的功能,在一个或多个方面,其与由连接器模块330提供的发送功能相反。例如,连接器模块380的连接API 384可以提供自动平台检测/连接功能的配置,并且连接器模块380的数据通信API 382可以提供通信协议的特定通信协议和/或操作参数的配置。
数据解分组器模块370例如可以提供诸如SDP逻辑单元172的功能之类的功能。在实施例中,解分组化API 374可以提供对分组结构、元数据格式和/或在经由连接器模块380提供的解分组化传感器数据中使用的其它信息的指定。传感器数据处理器API 372可以允许对数学、格式化、转换和/或对解分组化传感器数据执行的其它操作的限定。
数据操作模块360可以提供用于为在接收器设备350的应用层处执行的用户应用(未示出)提供模拟的功能。通过说明而非限制的方式,数据操作模块360的模拟API 362可以基于由发射器设备提供的传感器数据来提供数据操作模块360的配置以用于模拟用户输入(例如,在接收器设备350的触摸屏、键盘或其它用户I/O机构处的击键)。例如,数据操作模块360可以提供在另一个设备处的所感测的状态(例如,在发射器设备300处的旋转、线性移动等等)到接收器设备350处的本地键盘动作(“左”、“右”、“上”、“下”或其它键按压)的映射。基于这种映射,用户能够经由远程传感器控制来玩基于键盘的游戏,从而丰富了游戏体验。这种模拟功能可以提供在功能的中间件层级处的自动化以将现有的基于键盘的游戏应用转换为基于传感器的游戏。因此,传感器数据的这种基于中间件的处理减轻了游戏(或其它应用)开发并允许游戏模型得以扩展。
图4示出了根据实施例的用于利用中间件处理传感器数据的方法400的要素。方法400可以由诸如提供SDP逻辑单元132的功能和/或SDP逻辑单元172的功能的中间件之类的中间件来执行。例如,方法400可以包括操作205的在220的处理中的一些或全部处理和/或操作235的在250的处理中的一些或全部处理。
方法400随后可以对多组传感器数据进行操作,这些传感器数据相对于彼此由中间件随着时间按照顺序来接收。这些数据组均可以包括相应的m个参数值(其中,m为一些正整数),这些参数值表示线性运动、旋转运动、声音、压力、温度和/或一些其它所感测到的条件。通过说明而非限制的目的,在405,方法400可以发送状态参数(x0,x1,x2)的最新(例如,最近接收到的)组的值——即,在该场景中,m等于三。参数(x0,x1,x2)例如可以表示三维空间中的运动矢量、速度或加速度的分量。在实施例中,在405的发送包括发送用于由通信协议栈或者由用户应用处理的数据值。
在405进行发送之后,方法400在410确定新的传感器数据是否是可用的。在410的确定可以重复执行,直到识别新的传感器数据。响应于在410检测到新的传感器数据,方法400可以设置m个占位符变量——如用说明性变量(y0,y1,y2)所表示的——每个均等于数据组的前m个值中的相应的一个值。方法400随后可以得到参数的最新的m个值,如在420针对(x0,x1,x2)所示出的。
在实施例中,方法400执行用于将参数的较新值(x0,x1,x2)与这些参数值的相对较早的组进行比较的操作。基于这种比较,方法400可以确定是否放弃较新的参数值的传输——例如,以减少明显的传感器抖动和/或改进平台间信道利用。
通过说明而非限制的方法,方法400可以在425将计数器变量n设置为等于零。计数器值n可以相继增加(例如,在440)以针对一个或多个迭代中的每个迭代,以在430以多种方式评估x0与y0之间的差值是否大于一些阈值t0、x1与y1之间的差值是否大于一些阈值t1、或者x2与y2之间的差值是否大于一些阈值t2。这些阈值t0、t1、t2可以被提供为先验值,这取决于特定于实施方式的细节,并且不限于某些实施例。如果在一个这种迭代处确定已经超过阈值差(和/或在一些实施例中满足),或者在435确定已经评估了所有m个参数,则在430的迭代评估可以结束。
如果在430针对(x0,x1,x2)满足阈值条件中的任何条件,则与先前的值(y0,y1,y2)相比,(x0,x1,x2)的最新值之间的差值足够大,以保证最新值之间的传输。因此,方法400可以响应于超过阈值差值(或者在一些实施例中满足)而发送(x0,x1,x2)的最新值,如在450所示出的。如果在未超过(或满足)任何这种阈值条件的情况下已经评估了所有m个参数,则方法400可以在445确定先前的参数值(当前储存在变量(y0,y1,y2)中)将被重新使用。例如,在445的重新使用可以包括中间件向通信协议栈或用户应用重新发送参数(x0,x1,x2)的先前发送的值。替代地,在445的重新使用可以包括中间件发送一个或多个信号而不是先前发送的参数值,其中,接收中间件过程或用户应用将被识别为指示先前发送的值将被重新用作为参数(x0,x1,x2)的当前值。在又一个实施例中,在445的重新使用可以包括中间件简单地放弃参数(x0,x1,x2)的新的值的传输——例如,其中,接收用户应用将把新的参数值的缺乏识别为指示先前发送的值将在参数的值的序列中被重新使用。
图5是计算***的实施例的方框图,利用该计算***可以传输传感器信息。***500表示根据本文中所描述的任何实施例的计算设备,并且可以是膝上计算机、台式计算机、服务器、游戏或娱乐控制***、或者其它电子设备。***500可以包括处理器520,其为***500提供了处理、操作管理、以及指令的执行。处理520可以包括任何类型的微处理器、中央处理单元(CPU)、处理核、或者其它处理硬件来为***500提供处理。处理器520控制***500的整体操作,并且可以是或包括一个或多个可编程通用或专用微处理器、数字信号处理器(DSP)、可编程控制器、专用集成电路(ASIC)、可编程逻辑器件(PLD)等等、或者这样的设备的组合。
存储器子***530表示***500的主存储器,并且为将由处理器520执行的代码、或者将在执行例程时使用的数据值提供临时储存。存储器子***530可以包括一个或多个存储器设备,例如只读存储器(ROM)、闪速存储器、一种或多种随机存取存储器(RAM)、或者其它存储器设备、或者这样的设备的组合。除了其它方面以外,存储子***530还储存并容纳操作***(OS)536以提供用于在***500中执行指令的软件平台。另外,从存储子***530储存和执行其它指令538,以提供***500的逻辑单元和处理。OS 536和指令538由处理器520执行。
存储器子***530可以包括储存数据、指令、程序、或其它项目的存储器设备532——例如,对于中间件和利用OS 536执行的一个或多个用户应用(未示出)。在一个实施例中,存储器子***包括存储器控制器534,该存储器控制器是根据本文中所描述的实施例的存储器控制器,并且其提供用于访问存储器设备532的机构。在一个实施例中,存储器控制器534提供命令以访问存储设备532。
处理器520和存储器子***530耦合到总线/总线***510。总线510是表示通过适当的桥、适配器、和/或控制器连接的任何一个或多个单独的物理总线、通信线路/接口、和/或点到点连接的抽象概念。因此,总线510可以包括例如以下各项中的一项或多项:***总线、外设部件互连(PCI)总线、超传输或工业标准架构(ISA)总线、小型计算机***接口(SCSI)总线、通用串行总线(USB)、或电气电子工程师学会(IEEE)标准1394总线(通常被称为“火线”)。总线510的总线还可以对应于网络接口550中的接口。
***500还可以包括一个或多个输入/输出(I/O)接口540、网络接口550、一个或多个内部大容量储存设备550、以及耦合到总线510的外设接口570。I/O接口540可以包括一个或多个接口部件,通过该接口部件,用户与***500进行交互(例如,视频、音频、和/或字母数字接口)。网络接口550为***500提供通过一个或多个网络与远程设备(例如,服务器、其它计算设备)通信的能力。网络接口550可以包括以太网适配器、无线互连部件、USB(通用串行总线)、或其它基于有线或无线标准的接口或专用接口。
储存器560可以是或包括用于以非易失性方式储存大量数据的常规介质,例如一个或多个磁性、固态、或基于光学的盘、或者组合。储存器560将代码或指令和数据562保持在持续状态(即,保持值,而不管对***500的供电的中断)。储存器560可以通常被认为是“存储器”,尽管存储器530是用于为处理器520提供指令的执行或操作存储器。然而储存器560是非易失性的,存储器530可以包括易失性存储器(即,如果对***500的供电中断,则数据的值或状态是不定的)。
外设接口570可以包括上面未具体提及的任何硬件接口。外设通常指代独立地连接到***500的设备。独立连接是***500提供软件和/或硬件平台的***500的连接,在所述在软件和/或硬件平台上执行操作并且与用户进行交互。尽管某些实施例不限于这点,但是***500的一个或多个传感器(未示出)可以耦合到总线510,例如,经由外设接口570。
图6是移动设备的实施例的方框图,利用该移动设备可以传输传感器信息。设备600表示移动计算设备,例如计算平板设备、移动电话或智能电话、启用无线的电子阅读器、或其它移动设备。将理解的是,总体上示出了部件中的某些部件,并且在设备600中未示出这种设备的所有部件。
设备600可以包括处理器610,该处理器执行设备600的主要处理操作。处理器610可以包括一个或多个物理设备,例如,微处理器、应用处理器、微控制器、可编程逻辑器件、或其它处理模块。由处理器610执行的处理操作包括操作平台或操作***的执行,在所述操作平台或操作***上执行应用和/或设备功能。处理操作包括与同人类用户或其它设备的I/O(输入/输出)相关的操作、与功率管理相关的操作、和/或与将设备600连接到另一设备相关的操作。处理操作还可以包括与音频I/O和/或显示I/O相关的操作。
在一个实施例中,设备600包括音频子***620,其表示与向计算设备提供音频功能相关联的硬件(例如,音频硬件和音频电路)和软件(例如,驱动器、编解码器)部件。音频功能可以包括扬声器和/或头戴式耳机输出,以及麦克风输入。用于这些功能的设备可以被集成到设备600中,或者连接到设备600。在一个实施例中,用户通过提供由处理器610接收和处理的音频命令来与设备600进行交互。
显示子***630表示为用户提供视觉和/或触觉显示以与计算设备进行交互的硬件(例如,显示设备)和软件(例如,驱动器)部件。显示子***630可以包括显示界面632,其可以包括用于向用户提供显示的特定屏幕或硬件设备。在一个实施例中,显示界面632包括与处理器610分隔开的逻辑单元,以执行与显示相关的至少一些处理。在一个实施例中,显示子***630包括向用户提供输出和输入两者的触摸屏设备。
I/O控制器640表示与和用户的交互相关的硬件设备和软件部件。I/O控制器640可以操作用于管理硬件,该硬件为音频子***620和/或显示子***630的部分。另外,I/O控制器640示出了用于连接到设备600的另外的设备的连接点,通过该连接点,用户可以与***进行交互。例如,可以附接到设备600的设备可以包括麦克风设备、扬声器或立体声***、视频***或其它显示设备、键盘或小键盘设备、或者用于与诸如读卡器或其它设备之类的具体应用一起使用的其它I/O设备。
如以上所提及的,I/O控制器640可以与音频子***620和/或显示子***630进行交互。例如,通过麦克风或其它音频设备的输入可以为一个或多个应用或设备600的功能提供输入或命令。另外,代替显示输出或者除了显示输出之外,可以提供音频输出。在另一个示例中,如果显示子***包括触摸屏,则显示设备还作为输入设备,其可以至少部分地由I/O控制器640来进行管理。在设备600上还可以存在附加的按钮或开关,以提供由I/O控制器640管理的I/O功能。
在一个实施例中,I/O控制器640管理诸如加速度计、相机、光传感器或其它环境传感器、陀螺仪、全球定位***(GPS)、或可以包括在设备600中的其它硬件之类的设备。输入可以是直接用户交互的部分,并向***提供环境输入以影响其操作(例如,针对噪声过滤、针对亮度检测调整显示、针对相机应用闪光灯、或者其它特征)。
在一个实施例中,设备600包括管理电池用电量、电池充电、以及与省电操作相关的特征的功率管理650。存储器子***660可以包括用于将信息储存在设备600中的(多个)存储器设备662。存储器子***660可以包括非易失性(如果对存储器设备的供电中断,则状态不改变)和/或易失性(如果对存储器设备的供电中断,则状态是不定的)存储设备。存储器660可以储存中间件代码和/或其它数据、应用数据、用户数据、音乐、照片、文件、或其它数据、以及与应用和***600的功能的执行相关的***数据(不管是长期的还是临时的)。在一个实施例中,存储器子***660包括存储器控制器664(其可以被认为是***600的控制的部分,并可以潜在地被认为是处理器610的部分)以控制存储器662。
连接670可以包括硬件设备(例如,无线和/或有限连接器和通信硬件)和软件部件(例如,驱动器、协议栈)以使得设备600能够与外部设备进行通信。该设备可以是单独的设备,例如其它计算设备、无线接入点或基站、以及诸如头戴式耳机、打印机、或其它设备之类的外设。
连接670可以包括多种不同类型的连接。概括来说,设备600被示出为具有蜂窝连接672和无线连接674。蜂窝连接672通常指代由无线载波提供的(例如经由GSM(全球移动通信***)或变型或派生物、CDMA(码分多址)或变型或派生物、TDM(时分多址)或变型或派生物、LTE(长期演进——也被称为“4G”)、或其它蜂窝服务标准提供的)蜂窝网络连接。无线连接674指代不是蜂窝式的无线连接,并且可以包括个域网(例如蓝牙)、局域网(例如WiFi)、和/或广域网(例如WiMax)、或其它无线通信。无线通信指代通过使用经调制电磁辐射、经由非固态介质传送数据。无线通信通过固态通信介质发生。
外设连接680包括硬件接口和连接器,以及软件部件(例如,驱动器、协议栈)以进行外设连接。将理解的是,设备600可以是至其它计算设备的外设设备(“至”682)并具有连接到其的外设设备(“从”684)。设备600通常具有“对接”连接器以连接到其它计算设备,以用于诸如在设备600上管理(例如,下载和/或上传、改变、同步)内容的目的。另外,对接连接器可以允许设备600连接到某些外设,这些外设允许设备600控制例如至视听或其它***的内容输出。尽管某些实施例不限于这点,但是设备600的一个或多个传感器(未示出)可以耦合到处理器610——例如,每个均经由相应的“从”连接684。
除了专用对接连接器或其它专用连接硬件以外,设备600还可以经由通常的或基于标准的连接器来进行外设连接680。通常的类型可以包括通用串行总线(USB)连接器(其可以包括多个不同的硬件接口中的任何接口)、包括微型显示端口(MDP)的显示端口、高清多媒体接口(HDMI)、火线、或其它类型。
在一个实施方式中,一种方法包括在第一中间件逻辑单元处接收来自传感器驱动器过程的传感器数据,第一中间件逻辑单元利用第一平台的处理器和存储器来进行执行,传感器数据是基于第一平台的传感器设备的操作而生成的,其中,参与传感器数据在传感器驱动器过程与第一中间件逻辑单元之间的交换的任何过程是除了任何用户应用的过程之外的过程。该方法还包括在第一中间件逻辑单元处执行对传感器数据的处理,处理包括第一中间件逻辑单元基于传感器数据生成包括信息的数据分组,以及从第一平台发送数据分组。
在实施例中,发送数据分组包括,在第一中间件逻辑单元处对传感器数据进行处理之后,从第一中间件逻辑单元向第一平台的通信协议栈发送数据分组。在另一个实施例中,在第一中间件逻辑单元处接收传感器数据分组括接收由传感器设备感测到的状态的参数的第一值,以及在接收到第一值之后,接收参数的第二值,其中,在第一中间件逻辑单元处对传感器数据的处理包括基于第一值和第二值来执行比较,以及基于比较结果,确定是否在第一值的第一传输之后传输第二值。在另一个实施例中,确定是否传输第二值包括确定是否代替第二值的传输执行第一值的第二传输。
在另一个实施例中,方法还包括,在第一中间件逻辑单元处,从第一平台的第一用户应用接收指示一个或多个条件的信号,以及响应于接收到该信号,评估是否已经满足一个或多个条件,以及基于评估,确定第一中间件逻辑单元自动开始传感器数据处理。在另一个实施例中,一个或多个条件包括检测到第二平台。在另一个实施例中,传感器设备包括运动传感器。
在另一个实施方式中,计算机可读储存介质具有储存在其上的指令,该指令在由一个或多个处理单元执行时,使得一个或多个处理单元执行一种方法,该方法包括在第一中间件逻辑单元处接收来自传感器驱动器过程的传感器数据,第一中间件逻辑单元利用第一平台的处理器和存储器来进行执行,传感器数据是基于第一平台的传感器设备的操作而生成的,其中,参与传感器数据在传感器驱动器过程与第一中间件逻辑单元之间的交换的任何过程是除了任何用户应用的过程之外的过程。方法还包括在第一中间件逻辑单元处执行对传感器数据的处理,处理包括第一中间件逻辑单元基于传感器数据生成包括信息的数据分组,以及从第一平台发送数据分组。
在实施例中,发送数据分组包括,在第一中间件逻辑单元处对传感器数据进行处理之后,从第一中间件逻辑单元向第一平台的通信协议栈发送数据分组。在另一个实施例中,在第一中间件逻辑单元处接收传感器数据分组括接收由传感器设备感测到的状态的参数的第一值,以及在接收到第一值之后,接收参数的第二值,其中,在第一中间件逻辑单元处对传感器数据的处理包括基于第一值和第二值来执行比较,以及基于比较结果,确定是否在第一值的第一传输之后传输第二值。在另一个实施例中,确定是否传输第二值包括确定是否代替第二值的传输执行第一值的第二传输。
在另一个实施例中,方法还包括,在第一中间件逻辑单元处,从第一平台的第一用户应用接收指示一个或多个条件的信号,以及响应于接收到该信号,评估是否已经满足一个或多个条件,以及基于评估,确定第一中间件逻辑单元自动开始传感器数据处理。在另一个实施例中,一个或多个条件包括检测到第二平台。在另一个实施例中,传感器设备包括运动传感器。
在另一个实施方式中,一种方法包括在第一中间件逻辑单元处接收数据分组,该第一中间件逻辑单元利用第一平台的处理器和存储器来进行执行,数据分组经由第一平台的网络输入/输出(I/O)硬件来提供,其中,参与数据分组在网络I/O硬件与第一中间件逻辑单元之间的交换的任何过程是除了任何用户应用的过程以外的过程。方法还包括在第一中间件逻辑单元处处理数据分组,其包括:第一中间件逻辑单元从数据分组提取传感器数据,以及执行传感器数据的转换,以及基于传感器数据的转换来从第一中间件逻辑单元向第一平台的用户应用发送信息。
在实施例中,在第一中间件逻辑单元处接收数据分组包括第一中间件逻辑单元从第二平台的通信协议栈接收数据分组。在另一个实施例中,在第一中间件逻辑单元处处理数据分组包括基于所感测到的状态的参数的第一值和所感测到的状态的参数的第二值来执行比较,第二值是在第一值之后被接收到的,并且基于比较结果,确定是否在第一值的第一传输之后传输第二值。在另一个实施例中,确定是否传输第二值包括确定是否代替第二值的传输执行第一值的第二传输。
在另一个实施例中,该方法还包括,在第一中间件逻辑单元处,从第一平台的第一用户应用接收指示一个或多个条件的信号,以及响应于接收到该信号,评估是否已经满足一个或多个条件,以及基于评估,确定第一中间件逻辑单元自动开始传感器数据处理。在另一个实施例中,一个或多个条件包括检测到第二平台。在另一个实施例中,传感器设备包括运动传感器。
在另一个实施方式中,计算机可读储存介质具有储存在其上的指令,该指令在由一个或多个处理单元执行时,使得一个或多个处理单元执行一种方法,该方法包括在第一中间件逻辑单元处接收数据分组,该第一中间件逻辑单元利用第一平台的处理器和存储器来进行执行,数据分组经由第一平台的网络输入/输出(I/O)硬件来提供,其中,参与数据分组在网络I/O硬件与第一中间件逻辑单元之间的交换的任何过程是除了任何用户应用的过程以外的过程。该方法还包括在第一中间件逻辑单元处处理数据分组,其包括:第一中间件逻辑单元从数据分组提取传感器数据,以及执行传感器数据的转换,以及基于传感器数据的转换来从第一中间件逻辑单元向第一平台的用户应用发送信息。
在实施例中,在第一中间件逻辑单元处接收数据分组包括第一中间件逻辑单元从第二平台的通信协议栈接收数据分组。在另一个实施例中,在第一中间件逻辑单元处处理数据分组包括基于所感测到的状态的参数的第一值和所感测到的状态的参数的第二值来执行比较,第二值是在第一值之后被接收到的,并且基于比较结果,确定是否在第一值的第一传输之后传输第二值。在另一个实施例中,确定是否传输第二值包括确定是否代替第二值的传输执行第一值的第二传输。
在另一个实施例中,该方法还包括,在第一中间件逻辑单元处,从第一平台的第一用户应用接收指示一个或多个条件的信号,以及响应于接收到该信号,评估是否已经满足一个或多个条件,以及基于评估,确定第一中间件逻辑单元自动开始传感器数据处理。在另一个实施例中,一个或多个条件包括检测到第二平台。在另一个实施例中,传感器设备包括运动传感器。
本文中描述了用于传输传感器信息的技术和架构。在以上描述中,为了解释的目的,阐述了许多具体细节,以便于提供对某些实施例的透彻理解。然而,对本领域技术人员来说将显而易见的是,可以在没有这些具体细节的情况下实践某些实施例。在其它实例中,用框图形式示出了结构和设备,以免使本说明书难以理解。
在说明书中对“一个实施例”或“一实施例”的引用表示结合实施例所描述的特定特征、结构、或特性包括在本发明的至少一个实施例中。在说明书中各个地方出现短语“在一个实施例中”并非一定全都指代相同的实施例。
从对计算机存储器内的数据位上的操作的算法和符号表示方面呈现了本文中的具体实施方式的一些部分。这些算法描述和表示是由计算领域的技术人员所使用的表示,以最有效地向本领域技术人员传输他们的工作实质。算法在这里并通常被认为是引起期望结果的步骤的自相容的顺序。这些步骤是需要对物理量的物理操纵的那些步骤。通常,但是不是必须,这些量采用能够被储存、转移、组合、比较、以及以其它方式操纵的电信号或磁信号的形式。有时已经证实是方便的是,主要针对通常使用的原因,将这些信号指代为位、值、要素、符号、字符、术语、数字等等。
然而,应当记住的是,所有这些和类似的术语都应当与适当的物理量相关联,并且仅是应用于这些量的方便的符号。除非如根据本文中的讨论显而易见的以其它方式明确说明,应当意识到,贯穿本说明书,利用诸如“处理”或“计算”或“运算”或“确定”或“显示”等等之类的术语指代计算机***或类似的电子计算设备的动作和处理,该计算机***或类似的电子计算设备对被表示为计算机***的寄存器和存储器内的物理(电子)量的数据进行操纵并将这些数据转换成类似地被表示为计算机***的存储器或寄存器或其它这种信息储存、传输、或显示设备内的物理量的其它数据。
某些实施例还涉及用于执行本文中的操作的装置。该装置可以针对所需要的目的专门被构建,或者其可以包括由储存在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可以储存在计算机可读储存介质中,例如,但不限于,任何类型的盘,包括例如软盘、光盘、CD-ROM、以及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)(例如,动态RAM(DRAM))、EPROM、EEPROM、磁卡或光卡,或者用于储存电子指令并耦合到计算机***总线的任何类型的介质。
本文中所呈现的算法和显示并不固有地与任何特定计算机或其它装置相关。根据本文中的教导,各种通用***可以与程序一起使用,或者可以证明构建一个或多个专用装置来执行所需要的方法步骤是方便的。多种这些***的所需要的结构将根据本文中的描述而出现。此外,某些实施例并非参照任何特定的编程语言来进行描述。将意识到的是,可以使用多种编程语言来执行如本文中所描述的这些实施例的教导。
除了本文中所描述的以外,在不脱离它们的范围的情况下,可以对所公开的实施例及其实施方式进行各种修改。因此,本文中的说明和示例应当被理解为说明性的而不是限制性的意义。本发明的范围应当仅参照所附权利要求来限定。

Claims (40)

1.一种用于交换信息的方法,包括:
在第一平台的第一中间件逻辑单元处接收来自传感器驱动器过程的传感器数据,所述第一中间件逻辑单元利用所述第一平台的处理器和存储器来进行执行,所述传感器数据是基于所述第一平台的传感器设备的操作而生成的,其中,与所述传感器设备相关联的传感器驱动器过程将所述传感器数据提供给独立于任何用户应用的过程的所述第一中间件逻辑单元;
在所述第一中间件逻辑单元处执行对所述传感器数据的处理,所述处理包括所述第一中间件逻辑单元基于所述传感器数据生成包括信息的数据分组,其中,所述处理包括确定是否将接收的传感器数据提供给第二平台,并且响应于确定不将接收的传感器数据提供给所述第二平台,所述数据分组中的所述信息包括先前处理的传感器数据的表示,否则所述数据分组中的所述信息包括接收的传感器数据的表示;
将所述数据分组提供给所述第一平台的与所述第一中间件逻辑单元不同的通信协议栈,以用于所述数据分组到所述第二平台的传输;以及
从所述第一平台发送所述数据分组到所述第二平台。
2.根据权利要求1所述的方法,其中,先前处理的传感器数据的所述表示包括一个或多个字符,所述字符指示先前处理和发送的传感器数据将被所述第二平台重新使用。
3.根据权利要求1所述的方法,其中,在所述第一中间件逻辑单元处接收所述传感器数据包括:
接收由所述传感器设备感测到的状态的参数的第一值;以及
在接收到所述第一值之后,接收所述参数的第二值;并且
其中,在所述第一中间件逻辑单元处对所述传感器数据的处理包括:
基于所述第一值和所述第二值来执行比较;以及
基于所述比较,确定是否在所述第一值的第一传输之后传输所述第二值。
4.根据权利要求1所述的方法,其中,确定是否将接收的传感器数据传输到所述第二平台包括确定接收的传感器数据的值大于所述先前处理的传感器数据的对应值达至少阈值量。
5.根据权利要求1所述的方法,其中,处理所述传感器数据包括相对于先前接收的传感器数据计算传感器数据的积分或微分中的至少一项。
6.根据权利要求1所述的方法,其中,所述第一中间件逻辑单元包括连通性逻辑单元,其被配置为检测所述第二平台的存在,并且所述第一中间件逻辑单元被配置为响应于检测到所述第二平台的存在而自动开始向所述通信协议栈提供传感器数据分组,以用于到所述第二平台的传输,其中,所述第一平台和所述第二平台都是同一用户的设备。
7.根据权利要求1所述的方法,其中,所述传感器设备包括运动传感器。
8.一种计算机可读储存介质,其具有储存在其上的指令,所述指令在由一个或多个处理单元执行时,使得所述一个或多个处理单元执行一种方法,所述方法包括:
在第一平台的第一中间件逻辑单元处接收来自传感器驱动器过程的传感器数据,所述第一中间件逻辑单元利用所述第一平台的处理器和存储器来进行执行,所述传感器数据是基于所述第一平台的传感器设备的操作而生成的,其中,与所述传感器设备相关联的传感器驱动器过程将所述传感器数据提供给独立于任何用户应用的过程的所述第一中间件逻辑单元;
在所述第一中间件逻辑单元处执行对所述传感器数据的处理,所述处理包括所述第一中间件逻辑单元基于所述传感器数据生成包括信息的数据分组,其中,所述处理包括确定是否将接收的传感器数据提供给第二平台,并且响应于确定不将接收的传感器数据提供给所述第二平台,所述数据分组中的所述信息包括先前处理的传感器数据的表示,否则所述数据分组中的所述信息包括接收的传感器数据的表示;
将所述数据分组提供给所述第一平台的与所述第一中间件逻辑单元不同的通信协议栈,以用于所述数据分组到所述第二平台的传输;以及
从所述第一平台发送所述数据分组到所述第二平台。
9.根据权利要求8所述的计算机可读储存介质,其中,先前处理的传感器数据的所述表示包括一个或多个字符,所述字符指示先前发送的传感器数据将被重新使用。
10.根据权利要求8所述的计算机可读储存介质,其中,在所述第一中间件逻辑单元处接收所述传感器数据包括:
接收由所述传感器设备感测到的状态的参数的第一值;以及
在接收到所述第一值之后,接收所述参数的第二值;并且
其中,在所述第一中间件逻辑单元处对所述传感器数据的处理包括:
基于所述第一值和所述第二值来执行比较;以及
基于所述比较,确定是否在所述第一值的第一传输之后传输所述第二值。
11.根据权利要求8所述的计算机可读储存介质,其中,确定是否将接收的传感器数据提供给所述第二平台包括响应于确定接收的传感器数据的参数的值大于先前接收的传感器数据的参数的值达至少阈值量而将接收的传感器数据提供给所述第二平台。
12.根据权利要求8所述的计算机可读储存介质,其中,所述传感器设备包括运动传感器。
13.一种用于交换信息的装置,包括:
用于在第一平台的第一中间件逻辑单元处接收来自传感器驱动器过程的传感器数据的单元,所述第一中间件逻辑单元利用所述第一平台的处理器和存储器来进行执行,所述传感器数据是基于所述第一平台的传感器设备的操作而生成的,其中,与所述传感器设备相关联的传感器驱动器过程将所述传感器数据提供给独立于任何用户应用的过程的所述第一中间件逻辑单元;
用于在所述第一中间件逻辑单元处执行对所述传感器数据的处理的单元,所述处理包括所述第一中间件逻辑单元基于所述传感器数据生成包括信息的数据分组,其中,所述处理包括确定是否将接收的传感器数据提供给第二平台,并且响应于确定不将接收的传感器数据提供给所述第二平台,所述数据分组中的所述信息包括先前处理的传感器数据的表示,否则所述数据分组中的所述信息包括接收的传感器数据的表示;
用于将所述数据分组提供给所述第一平台的与所述第一中间件逻辑单元不同的通信协议栈,以用于所述数据分组到所述第二平台的传输的单元;以及
用于从所述第一平台发送所述数据分组到所述第二平台的单元。
14.根据权利要求13所述的装置,其中,先前处理的传感器数据的所述表示包括一个或多个字符,所述字符指示先前处理和发送的传感器数据将被所述第二平台重新使用。
15.根据权利要求13所述的装置,其中,用于在所述第一中间件逻辑单元处接收所述传感器数据的单元包括:
用于接收由所述传感器设备感测到的状态的参数的第一值的单元;以及
用于在接收到所述第一值之后,接收所述参数的第二值的单元;并且其中,在所述第一中间件逻辑单元处对所述传感器数据的处理包括:
基于所述第一值和所述第二值来执行比较,以及
基于所述比较,确定是否在所述第一值的第一传输之后传输所述第二值。
16.根据权利要求13所述的装置,其中,用于确定是否将接收的传感器数据传输到所述第二平台的单元包括:用于确定接收的传感器数据的值大于所述先前处理的传感器数据的对应值达至少阈值量的单元。
17.根据权利要求13所述的装置,其中,处理所述传感器数据包括相对于先前接收的传感器数据计算传感器数据的积分或微分中的至少一项。
18.根据权利要求13所述的装置,其中,所述第一中间件逻辑单元包括连通性逻辑单元,其被配置为检测所述第二平台的存在,并且所述第一中间件逻辑单元被配置为响应于检测到所述第二平台的存在而自动开始向所述通信协议栈提供传感器数据分组,以用于到所述第二平台的传输,其中,所述第一平台和所述第二平台都是同一用户的设备。
19.根据权利要求13所述的装置,其中,所述传感器设备包括运动传感器。
20.一种用于交换信息的设备,包括:
存储指令的存储器;以及
耦合到所述存储器的处理器,所述指令在被所述处理器执行时执行根据权利要求1-7中的任一项所述的方法。
21.一种用于交换信息的方法,包括:
在第一中间件逻辑单元处接收传感器数据的数据分组,所述第一中间件逻辑单元利用第一平台的处理器和存储器来进行执行,所述数据分组是从第二平台接收的并且是经由与所述第一平台的所述第一中间件逻辑单元不同的所述第一平台的网络输入/输出(I/O)硬件提供给所述第一平台的,其中,参与所述数据分组在所述网络I/O硬件与所述第一中间件逻辑单元之间的交换的任何过程是除了任何用户应用的过程以外的过程;
在所述第一中间件逻辑单元处处理接收的传感器数据的数据分组,包括:所述第一中间件逻辑单元从接收的数据分组提取所述第二平台的传感器数据,以及执行所述传感器数据的转换,其中,响应于提取的传感器数据包括一个或多个预定字符,使用先前接收的传感器数据执行所述转换;以及
基于所述传感器数据的所述转换,将信息从所述第一中间件逻辑单元发送到所述第一平台的用户应用。
22.根据权利要求21所述的方法,其中,所述信息包括至少一个经处理的传感器数据的值到所述第一平台的本地键盘动作的映射。
23.根据权利要求21所述的方法,其中,在所述第一中间件逻辑单元处处理所述数据分组包括:
基于感测到的状态的参数的第一值和感测到的状态的参数的第二值来执行比较,所述第二值是在所述第一值之后被接收到的;以及
基于所述比较指示所述参数的第二值大于所述参数的第一值达至少阈值量,在所述第一值的第一传输之后传输所述第二值,否则执行所述第一值的第二传输来代替所述第二值的传输。
24.根据权利要求21所述的方法,其中,处理所述传感器数据包括相对于先前接收的传感器数据计算所述传感器数据的积分或所述传感器数据的微分中的至少一项。
25.根据权利要求21所述的方法,还包括在所述第一中间件逻辑单元处:
从所述第一平台的第一用户应用接收指示一个或多个条件的信号;
响应于接收到所述信号,评估是否已经满足所述一个或多个条件;以及
基于所述评估,确定所述第一中间件逻辑单元将自动开始传感器数据处理。
26.根据权利要求21所述的方法,其中,所述第一中间件逻辑单元包括连通性逻辑单元,所述连通性逻辑单元被配置为检测所述第二平台的存在,并且所述第一中间件逻辑单元被配置为响应于检测到所述第二平台的存在,自动开始从第一通信协议栈获得传感器数据分组以由所述第一中间件逻辑单元进行处理,其中,所述第一平台和所述第二平台都是同一用户的设备。
27.根据权利要求21所述的方法,其中,所述传感器数据包括来自运动传感器的数据。
28.一种计算机可读储存介质,其具有储存在其上的指令,所述指令在由一个或多个处理单元执行时,使得所述一个或多个处理单元执行一种方法,所述方法包括:
在第一中间件逻辑单元处接收传感器数据的数据分组,所述第一中间件逻辑单元利用第一平台的处理器和存储器来进行执行,所述数据分组是从第二平台接收的并且是经由与所述第一平台的所述第一中间件逻辑单元不同的所述第一平台的网络输入/输出(I/O)硬件提供给所述第一平台的,其中,参与所述数据分组在所述网络I/O硬件与所述第一中间件逻辑单元之间的交换的任何过程是除了任何用户应用的过程以外的过程;
在所述第一中间件逻辑单元处处理接收的传感器数据的数据分组,包括:所述第一中间件逻辑单元从接收的数据分组提取所述第二平台的传感器数据,以及执行所述传感器数据的转换,其中,响应于提取的传感器数据包括一个或多个预定字符,使用先前接收的传感器数据执行所述转换;以及
基于所述传感器数据的所述转换,将信息从所述第一中间件逻辑单元发送到所述第一平台的用户应用。
29.根据权利要求28所述的计算机可读储存介质,其中,所述信息包括至少一个经处理的传感器数据的值到所述第一平台的本地键盘动作的映射。
30.根据权利要求28所述的计算机可读储存介质,其中,在所述第一中间件逻辑单元处处理所述数据分组包括:
基于感测到的状态的参数的第一值和感测到的状态的参数的第二值来执行比较,所述第二值是在所述第一值之后被接收到的;以及
基于所述比较指示所述参数的第二值大于所述参数的第一值达至少阈值量,在所述第一值的第一传输之后传输所述第二值,否则执行所述第一值的第二传输来代替所述第二值的传输。
31.根据权利要求28所述的计算机可读储存介质,所述方法还包括在所述第一中间件逻辑单元处:
从所述第一平台的第一用户应用接收指示一个或多个条件的信号;
响应于接收到所述信号,评估是否已经满足所述一个或多个条件;以及
基于所述评估,确定所述第一中间件逻辑单元将自动开始传感器数据处理。
32.根据权利要求28所述的计算机可读储存介质,其中,所述传感器数据包括来自运动传感器的数据。
33.一种用于交换信息的装置,包括:
用于在第一中间件逻辑单元处接收传感器数据的数据分组的单元,所述第一中间件逻辑单元利用第一平台的处理器和存储器来进行执行,所述数据分组是从第二平台接收的并且是经由与所述第一平台的所述第一中间件逻辑单元不同的所述第一平台的网络输入/输出(I/O)硬件提供给所述第一平台的,其中,参与所述数据分组在所述网络I/O硬件与所述第一中间件逻辑单元之间的交换的任何过程是除了任何用户应用的过程以外的过程;
用于在所述第一中间件逻辑单元处处理接收的传感器数据的数据分组的单元,包括:用于所述第一中间件逻辑单元从接收的数据分组提取所述第二平台的传感器数据的单元,以及用于执行所述传感器数据的转换的单元,其中,响应于提取的传感器数据包括一个或多个预定字符,使用先前接收的传感器数据执行所述转换;以及
用于基于所述传感器数据的所述转换,将信息从所述第一中间件逻辑单元发送到所述第一平台的用户应用的单元。
34.根据权利要求33所述的装置,其中,所述信息包括至少一个经处理的传感器数据的值到所述第一平台的本地键盘动作的映射。
35.根据权利要求33所述的装置,其中,用于在所述第一中间件逻辑单元处处理所述数据分组的单元包括:
用于基于感测到的状态的参数的第一值和感测到的状态的参数的第二值来执行比较的单元,所述第二值是在所述第一值之后被接收到的;以及
用于基于所述比较指示所述参数的第二值大于所述参数的第一值达至少阈值量,在所述第一值的第一传输之后传输所述第二值,否则执行所述第一值的第二传输来代替所述第二值的传输的单元。
36.根据权利要求33所述的装置,其中,处理所述传感器数据包括相对于先前接收的传感器数据计算所述传感器数据的积分或所述传感器数据的微分中的至少一项。
37.根据权利要求33所述的装置,还包括在所述第一中间件逻辑单元处:
用于从所述第一平台的第一用户应用接收指示一个或多个条件的信号的单元;
用于响应于接收到所述信号,评估是否已经满足所述一个或多个条件的单元;以及
用于基于所述评估,确定所述第一中间件逻辑单元将自动开始传感器数据处理的单元。
38.根据权利要求33所述的装置,其中,所述第一中间件逻辑单元包括连通性逻辑单元,所述连通性逻辑单元被配置为检测所述第二平台的存在,并且所述第一中间件被配置为响应于检测到所述第二平台的存在,自动开始从第一通信协议栈获得传感器数据分组以由所述第一中间件逻辑单元进行处理,其中,所述第一平台和所述第二平台都是同一用户的设备。
39.根据权利要求33所述的装置,其中,所述传感器数据包括来自运动传感器的数据。
40.一种用于交换信息的设备,包括:
存储指令的存储器;以及
耦合到所述存储器的处理器,所述指令在被所述处理器执行时执行根据权利要求21-27中的任一项所述的方法。
CN201480079502.6A 2014-07-02 2014-07-02 用于利用中间件交换传感器信息的方法、装置和*** Expired - Fee Related CN106576106B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/081499 WO2016000225A1 (en) 2014-07-02 2014-07-02 Method, apparatus and system for exchanging sensor information with middleware

Publications (2)

Publication Number Publication Date
CN106576106A CN106576106A (zh) 2017-04-19
CN106576106B true CN106576106B (zh) 2020-09-04

Family

ID=55018304

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480079502.6A Expired - Fee Related CN106576106B (zh) 2014-07-02 2014-07-02 用于利用中间件交换传感器信息的方法、装置和***

Country Status (3)

Country Link
US (1) US10581971B2 (zh)
CN (1) CN106576106B (zh)
WO (1) WO2016000225A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10693962B1 (en) * 2015-12-18 2020-06-23 EMC IP Holding Company LLC Language and mechanism for modeling and exporting storage platform topologies, attributes, and behaviors
EP3442174B1 (en) * 2016-04-05 2021-01-20 Nippon Telegraph And Telephone Corporation Sensor relay device and sensor relay system
US11169585B2 (en) * 2019-08-16 2021-11-09 Apple Inc. Dashboard with push model for receiving sensor data
WO2021186351A1 (en) * 2020-03-18 2021-09-23 Behr Technologies Inc. Sensor data interpreter/converter methods and apparatus for use in low power wide area networks (lpwans)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101146129A (zh) * 2007-10-31 2008-03-19 北京航空航天大学 基于中间件思想实现节点软件的传感器网络及通信方法
CN101170573A (zh) * 2007-11-21 2008-04-30 湖南大学 主动无线传感器网络中间件***与实现方法
CN103024059A (zh) * 2012-12-19 2013-04-03 北京时代凌宇科技有限公司 一种物联网中间件***

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719327B2 (en) * 2005-10-25 2014-05-06 Fisher-Rosemount Systems, Inc. Wireless communication of process measurements
US8014970B2 (en) * 2006-04-08 2011-09-06 Vialogy Corporation Software enabled video and sensor interoperability system and method
US9202357B2 (en) * 2007-03-13 2015-12-01 Oracle International Corporation Virtualization and quality of sensor data
KR100954503B1 (ko) * 2008-04-29 2010-04-22 제주대학교 산학협력단 알에프아이디 미들웨어 기반의 센서 데이터 스트림 처리시스템 및 방법
CN102547965B (zh) * 2011-12-22 2014-04-30 中国科学院上海微***与信息技术研究所 一种gps授时脉冲在中高速传感器网络中的应用***
US9201815B2 (en) * 2012-06-27 2015-12-01 Ubiquiti Networks, Inc. Method and apparatus for maintaining network connections between devices
CN104936513B (zh) * 2012-11-01 2018-01-12 蓝色火花科技有限公司 体温记录贴片
GB201304219D0 (en) * 2013-03-08 2013-04-24 Tomtom Int Bv Methods for communicating sensor data between devices
US9357492B2 (en) * 2013-08-05 2016-05-31 Qualcomm Incorporated WLAN-capable remote control device
CN103415052B (zh) * 2013-08-14 2016-06-29 吉林大学 面向服务的无线传感器网络能量管理中间件及工作方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101146129A (zh) * 2007-10-31 2008-03-19 北京航空航天大学 基于中间件思想实现节点软件的传感器网络及通信方法
CN101170573A (zh) * 2007-11-21 2008-04-30 湖南大学 主动无线传感器网络中间件***与实现方法
CN103024059A (zh) * 2012-12-19 2013-04-03 北京时代凌宇科技有限公司 一种物联网中间件***

Also Published As

Publication number Publication date
US20170163735A1 (en) 2017-06-08
CN106576106A (zh) 2017-04-19
WO2016000225A1 (en) 2016-01-07
US10581971B2 (en) 2020-03-03

Similar Documents

Publication Publication Date Title
KR101771910B1 (ko) 통합 프로토콜 통신에서 에러 정보를 교환하는 장치, 방법 및 시스템
US11789889B2 (en) Mechanism for device interoperability of switches in computer buses
KR101355058B1 (ko) 블루투스 저에너지 디바이스들을 위한 윈도우즈 포터블 디바이스 인터페이스
US8798541B1 (en) System and method for socket backed host controller interface emulation for virtual bluetooth adapter
TWI614608B (zh) 用於觸控感測器資訊的通訊之設備、系統及方法
CN106576106B (zh) 用于利用中间件交换传感器信息的方法、装置和***
CN107926075B (zh) 支持异构环境下的数据通信的***和方法
US9264284B2 (en) Virtual desktop access using wireless devices
EP3217279A1 (en) Module system, module-based robot system, and update method for module system
JP6250842B2 (ja) Usbオーバーipを用いた、別のデバイスとの非usbセンサの共有
US10862730B2 (en) Selective connection for interface circuitry
CN101763324B (zh) 设备模拟的实现方法和装置
US20170168796A1 (en) Method and electronic apparatus for transferring application program from pc to mobile apparatus
EP4202696A1 (en) Storage class memory device including a network
US9824059B2 (en) Child serial device discovery protocol
US20220334878A1 (en) Generating a shared virtual resource pool
US20220376948A1 (en) Monitoring controller area network (can) xl nodes
CN106664304B (zh) 用于验证分组的技术
CN114328362A (zh) 一种支持不同gpu高速互联的方法及***
CN116803068A (zh) 通信装置及数据传输方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200904

Termination date: 20210702

CF01 Termination of patent right due to non-payment of annual fee