CN105117270B - 一种用于模拟传感器的方法和装置 - Google Patents
一种用于模拟传感器的方法和装置 Download PDFInfo
- Publication number
- CN105117270B CN105117270B CN201510456938.9A CN201510456938A CN105117270B CN 105117270 B CN105117270 B CN 105117270B CN 201510456938 A CN201510456938 A CN 201510456938A CN 105117270 B CN105117270 B CN 105117270B
- Authority
- CN
- China
- Prior art keywords
- server
- client
- sensing data
- predetermined format
- data
- 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.)
- Active
Links
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本发明的目的是提供一种用于模拟传感器的方法和装置。客户端2获取外部传感器数据,转换成与服务端1间可通信的预定格式并发送至该服务端1,服务端1获取该客户端2发送的预定格式的传感器数据,再转换成对应的应用可用的设备相关格式,并提供至对应的应用使用,使得不具备传感器硬件模块的设备也可以获得并使用传感器数据,提高了设备运作的效率,提升了用户的使用体验。本发明具有较好的安全性和灵活性,外部传感器事件源不直接与服务端1交流,客户端2与服务端1之间的通信格式不需要对外暴露。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种用于模拟传感器的方法和装置。
背景技术
目前,若想要在不具备传感器硬件模块的设备上使用需要传感器数据的应用,通常都需要修改应用源代码。这些应用不能使用Android框架提供的传感器相关API,而要使用方案本身提供的API,如传感器模拟装置,它们都会提供一套与Android框架相类似的API接口。
这些方案最大的缺陷在于需要改动应用本身,在无法获取应用源代码,或者无法更改应用的情况下,这些方案完全失效。然而,绝大部分应用的应用源代码几乎无法得到。
因此,如何模拟传感器,使得用户可以在不具备传感器硬件模块的设备上使用需要传感器数据的应用,成为本领域技术人员亟需解决的问题之一。
发明内容
本发明的目的是提供一种用于模拟传感器的方法和装置。
根据本发明的一个方面,提供了一种用于在服务端模拟传感器的方法,其中,该方法包括以下步骤:
a获取对应的客户端所发送的传感器数据,其中,所述传感器数据以预定格式进行发送;
b将预定格式的所述传感器数据转换成设备相关格式的传感器数据,并提供至对应的应用。
根据本发明的另一个方面,还提供了一种用于在客户端模拟传感器的方法,其中,该方法包括以下步骤:
A获取外部传感器数据;
B将所述外部传感器数据转换成预定格式的传感器数据;
C将所述传感器数据以所述预定格式发送给对应的服务端。
根据本发明的又一个方面,还提供了一种用于模拟传感器的服务端,其中,该服务端包括:
第一获取装置,用于获取对应的客户端所发送的传感器数据,其中,所述传感器数据以预定格式进行发送;
提供装置,用于将预定格式的所述传感器数据转换成设备相关格式的传感器数据,并提供至对应的应用。
根据本发明的再一个方面,还提供了一种用于模拟传感器的客户端,其中,该客户端包括:
第二获取装置,用于获取外部传感器数据;
转换装置,用于将所述外部传感器数据转换成预定格式的传感器数据;
发送装置,用于将所述传感器数据以所述预定格式发送给对应的服务端。
根据本发明的再一个方面,还提供了一种电视盒子,包括如上所述的服务端,及如上所述的客户端。
与现有技术相比,本发明中,客户端2获取外部传感器数据,转换成与服务端1间可通信的预定格式并发送至该服务端1,服务端1获取该客户端2发送的预定格式的传感器数据,再转换成对应的应用可用的设备相关格式,并提供至对应的应用使用,使得不具备传感器硬件模块的设备也可以获得并使用传感器数据,提高了设备运作的效率,提升了用户的使用体验。
本发明实现了模拟传感器,使得在电视盒子这些缺少传感器硬件模块的设备上,依然能够产生传感器数据给上层应用使用,且上层应用完全不需要作任何更改。其中模拟传感器包括但不限于重力传感器、加速度传感器、磁场传感器、方向传感器、温度传感器等传感器。
本发明具有较好的安全性和灵活性,外部传感器事件源不直接与服务端1交流,客户端2与服务端1之间的通信格式不需要对外暴露。
进一步地,服务端1或客户端2,或其两者同时位于电视盒子中,客户端2获取外部传感器数据,转换成与服务端1间可通信的预定格式并发送至该服务端1,服务端1获取该客户端2发送的预定格式的传感器数据,再转换成对应的应用可用的设备相关格式,并提供至对应的应用使用,解决了在电视盒子上无法使用传感器的问题,使得在电视盒子上可使用的应用的类别和数量大大增加,原本在电视盒子上无法使用的应用(例如需要重力感应、加速度、方向传感器等的应用)可以轻松在电视盒子上使用。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明一个实施例的用于模拟传感器的服务端的装置的结构示意图;
图2为本发明一个实施例的用于模拟传感器的客户端的装置的结构示意图;
图3为本发明一个实施例的用于在服务端模拟传感器的方法的流程示意图;
图4为本发明另一个实施例的用于在客户端模拟传感器的方法的流程示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图对本发明作进一步详细描述。
图1为本发明一个实施例的用于模拟传感器的服务端的装置的结构示意图。服务端1包括第一获取装置101和提供装置102。
其中,服务端1的第一获取装置101获取对应的客户端2所发送的传感器数据,其中,所述传感器数据以预定格式进行发送。
具体地,客户端2获取外部传感器数据;将所述外部传感器数据转换成预定格式的传感器数据;进而,将所述传感器数据以所述预定格式发送给对应的服务端1;服务端1中的第一获取装置101即可通过与该客户端2约定的通信方式,获取该客户端2以该预定格式所发送的传感器数据。
较佳地,该第一获取装置101还可结合模拟传感器数据库,获取该客户端2以该预定格式所发送的传感器数据,具体的结合方式将在下文中进行详细描述。
在此,传感器数据包括但不限于重力传感器数据、加速度传感器数据、磁场传感器数据、方向传感器数据、温度传感器数据等。需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何其他现有的或今后可能出现的传感器数据如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
服务端1的提供装置102将预定格式的所述传感器数据转换成设备相关格式的传感器数据,并提供至对应的应用。
具体地,提供装置102根据该第一获取装置101所获取的具有该预定格式的传感器数据,将其转换成设备相关格式的传感器数据,并通过与对应的应用约定的通信方式,将具有该设备相关格式的传感器数据提供至该对应的应用。
在此,该服务端1将传感器数据转换成对应的应用可使用的设备相关格式,以方便应用进行使用。在此,应用包括但不限于利用重力感应的平衡球、利用磁场的指南针、利用加速度和方向控制的赛车等。需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何其他现有的或今后可能出现的应用如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
例如,假设应用为赛车,用户通过手机进行操控,则该手机与客户端2进行连接,并将其自身产生的诸如加速度传感器数据、方向传感器数据等传感器数据发送至该客户端2,客户端2获取这些外部传感器数据并转换成预定格式的传感器数据,进而发送至该服务端1;服务端1的第一获取装置101获取该预定格式的加速度传感器数据、方向传感器数据等,提供装置102将这些传感器数据转换成该赛车应用可使用的设备相关格式,并提供给该赛车应用进行使用。
在此,客户端2获取外部传感器数据,转换成与服务端1间可通信的预定格式并发送至该服务端1,服务端1获取该客户端2发送的预定格式的传感器数据,再转换成对应的应用可用的设备相关格式,并提供至对应的应用使用,使得不具备传感器硬件模块的设备也可以获得并使用传感器数据,提高了设备运作的效率,提升了用户的使用体验。
在此,服务端1和客户端2可以位于任何需要传感器数据而缺少相关传感器硬件模块的设备中。
优选地,该服务端1可以位于电视盒子中,该客户端2也可以位于电视盒子中。更优选地,该服务端1和客户端2可以同时位于电视盒子中。
在此,服务端1或客户端2,或其两者同时位于电视盒子中,客户端2获取外部传感器数据,转换成与服务端1间可通信的预定格式并发送至该服务端1,服务端1获取该客户端2发送的预定格式的传感器数据,再转换成对应的应用可用的设备相关格式,并提供至对应的应用使用,解决了在电视盒子上无法使用传感器的问题,使得在电视盒子上可使用的应用的类别和数量大大增加,原本在电视盒子上无法使用的应用(例如需要重力感应、加速度、方向传感器等的应用)可以轻松在电视盒子上使用。
优选地,该服务端1还包括监听装置(未示出),该监听装置创建本地socket并进行监听;其中,所述第一获取装置101当所述客户端2发送所述传感器数据时,通过所述本地socket,获取所述客户端2所发送的所述传感器数据,其中,所述传感器数据以所述预定格式进行发送。
具体地,服务端1的监听装置创建本地socket,并监听该socket,一旦客户端2通过该本地socket,向该服务端1以上述预定格式发送传感器数据,该监听装置例如以约定的通信方式,通知该服务端1的第一获取装置101,该第一获取装置101即通过该本地socket,获取该客户端2所发送的传感器数据。较佳地,该第一获取装置101还可结合模拟传感器数据库,获取该客户端2通过该本地socket以该预定格式所发送的传感器数据。
更优选地,该服务端1还包括添加装置(未示出),该添加装置当具有新客户端连接至所述本地socket时,将所述新客户端添加至监听队列。
具体地,当具有新的客户端连接至该本地socket时,服务端1的添加装置即将该新客户端添加至监听队列。服务端1的监听装置监听该监听队列中的各个客户端,当这些客户端通过该本地socket,以预定格式向该服务端1发送传感器数据时,该服务端1的第一获取装置101即通过该本地socket,获取这些客户端所发送的传感器数据。
在此,服务端1还可以创建本地socket并进行监听,当有新客户端连接至该本地socket时,将该新客户端添加至监听队列进行监听,当客户端有传感器数据发送时,通过该socket进行获取。
优选地,该服务端1还包括加载装置(未示出),该加载装置加载模拟传感器数据库,其中,所述模拟传感器数据库中定义有模拟传感器数据;其中,所述第一获取装置101基于所述模拟传感器数据库,获取所述客户端所发送的传感器数据。
具体地,服务端1的加载装置加载模拟传感器数据库,例如,在该服务端1启动时,该加载装置即加载模拟传感器数据库,该模拟传感器数据库例如以sensors.so共享库的形式存在,其中,所述模拟传感器数据库中定义有模拟传感器数据,包括但不限于名称、厂商信息、类别、范围、精度等信息。
随后,服务端1的第一获取装置101基于所述模拟传感器数据库,获取所述客户端2所发送的传感器数据。例如,客户端2在发送传感器数据时,仅发送了数值信息,而并未发送单位信息,第一获取装置101获取客户端2所发送的传感器数据时,确定该传感器数据所对应的厂商信息,假设各个厂商生产的传感器都具有固定的单位信息,该第一获取装置101即可根据该厂商信息,自该模拟传感器数据库中确定对应该厂商信息的单位信息,进而最终确定对应的传感器数据。
在此,模拟传感器数据库可以位于该服务端1中,也可以位于与该服务端1通过网络相连接的第三方设备中。
在此,假设该服务端1采用Android协议,则服务端1遵循Android HAL框架规范,模拟传感器数据库在Android ROM中例如以sensors.so共享库的形式存在,Android***会在启动完成时以模块的形式加载该模拟传感器数据库。在sensors.so中定义了各种传感器数据,包括但不限于名称、厂商信息、类别、范围、精度等信息。Sensors.so在HAL的activate阶段创建一个本地unix local socket并监听该socket。为了提高效率,该服务端1可以采用Linux epoll机制监听是否有客户端连接。之后,每次HAL层在poll调用时,都会通过epoll检查是否有客户端连接以及客户端是否有数据发送,如果有客户端连接,则将新客户端加入到epoll监听队列;如果有新的客户端数据,则读取到缓存后以特定格式解析传感器数据,返回给HAL层。HAL层会进一步将传感器数据通过Android框架的Sensors API传递给上层应用。
图2为本发明一个实施例的用于模拟传感器的客户端的装置的结构示意图。该客户端2包括第二获取装置201、转换装置202和发送装置203。
其中,第二获取装置201获取外部传感器数据。
具体地,客户端2通过约定的连接方式,连接外部传感器,当该外部传感器产生传感器数据时,该客户端2的第二获取装置201即可通过约定的通信方式,获取其外部传感器数据。在此,外部传感器事件源的存在形式多种多样,例如以手机作为载体,将手机本身产生的各种外部传感器数据发送给客户端2,客户端2的第二获取装置201即可获取这些外部传感器数据。
例如,假设应用为赛车,用户通过手机进行操控,则该手机与客户端2进行连接,并将其自身产生的诸如加速度传感器数据、方向传感器数据等传感器数据发送至该客户端2,客户端2的第二获取装置201即可获取这些加速度传感器数据、方向传感器数据等外部传感器数据。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何其他现有的或今后可能出现的获取外部传感器数据的方式,如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
转换装置202将所述外部传感器数据转换成预定格式的传感器数据。
具体地,转换装置202将该第二获取装置201所获取的外部传感器数据转换成预定格式的传感器数据,该预定格式方便该客户端2与服务端1进行通信。
随后,发送装置203将所述传感器数据以所述预定格式发送给对应的服务端1。
具体地,发送装置203将该转换装置202所转换得到的预定格式的传感器数据,发送至对应的服务端1。在此,所述预定格式例如仅为服务端1与客户端2之间进行内部通信的格式,而不需对外暴露。
优选地,所述发送装置203通过所述服务端1的socket,将所述传感器数据以所述预定格式发送给所述服务端1。
具体地,服务端1建立了本地socket,例如,其上的监听装置创建本地socket并进行监听,客户端2的发送装置203即可通过该服务端1的socket,将该转换装置202所转换得到的预定格式的传感器数据,以预定格式发送至对应的服务端1。
优选地,所述客户端2在启动时连接所述服务端1的socket。
具体地,该客户端2在启动时,即可连接至该服务端1的socket,而该服务端1当该客户端2连接时,将该客户端2加入监听队列进行监听,若该客户端2以预定格式向该服务端1发送传感器数据,则进行获取。
在此,客户端2作为数据通道,沟通外部传感器事件源和服务端1。客户端2启动时会连接服务端1的socket。客户端2获取外部传感器数据,转换成与服务端1间专用的预定格式并发送至该服务端1,服务端1获取该客户端2发送的预定格式的传感器数据,再转换成对应的应用可用的设备相关格式,并提供至该对应的应用。
例如,假设应用为赛车,用户通过手机进行操控,则该手机与客户端2进行连接,并将其自身产生的诸如加速度传感器数据、方向传感器数据等传感器数据发送至该客户端2。客户端2的第二获取装置201获取这些外部传感器数据;转换装置202将这些外部传感器数据转换成预定格式的传感器数据;进而,发送装置203通过该服务端1的本地socket,以该预定格式,将这些传感器数据发送至该服务端1。服务端1的监听装置监听该本地socket并获知该客户端2以预定格式发送传感器数据;第一获取装置101获取该预定格式的加速度传感器数据、方向传感器数据等;随后,提供装置102将这些传感器数据转换成该赛车应用可使用的设备相关格式,并提供给该赛车应用进行使用。
图3为本发明一个实施例的用于在服务端模拟传感器的方法的流程示意图。
在步骤S301中,服务端1获取对应的客户端2所发送的传感器数据,其中,所述传感器数据以预定格式进行发送。
具体地,客户端2获取外部传感器数据;将所述外部传感器数据转换成预定格式的传感器数据;进而,将所述传感器数据以所述预定格式发送给对应的服务端1;在步骤S301中,服务端1即可通过与该客户端2约定的通信方式,获取该客户端2以该预定格式所发送的传感器数据。
较佳地,该服务端1还可结合模拟传感器数据库,获取该客户端2以该预定格式所发送的传感器数据,具体的结合方式将在下文中进行详细描述。
在此,传感器数据包括但不限于重力传感器数据、加速度传感器数据、磁场传感器数据、方向传感器数据、温度传感器数据等。需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何其他现有的或今后可能出现的传感器数据如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在步骤S302中,服务端1将预定格式的所述传感器数据转换成设备相关格式的传感器数据,并提供至对应的应用。
具体地,在步骤S302中,服务端1根据在步骤S301中所获取的具有该预定格式的传感器数据,将其转换成设备相关格式的传感器数据,并通过与对应的应用约定的通信方式,将具有该设备相关格式的传感器数据提供至该对应的应用。
在此,该服务端1将传感器数据转换成对应的应用可使用的设备相关格式,以方便应用进行使用。在此,应用包括但不限于利用重力感应的平衡球、利用磁场的指南针、利用加速度和方向控制的赛车等。需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何其他现有的或今后可能出现的应用如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
例如,假设应用为赛车,用户通过手机进行操控,则该手机与客户端2进行连接,并将其自身产生的诸如加速度传感器数据、方向传感器数据等传感器数据发送至该客户端2,客户端2获取这些外部传感器数据并转换成预定格式的传感器数据,进而发送至该服务端1;在步骤S301中,服务端1获取该预定格式的加速度传感器数据、方向传感器数据等,在步骤S302中,服务端1将这些传感器数据转换成该赛车应用可使用的设备相关格式,并提供给该赛车应用进行使用。
在此,客户端2获取外部传感器数据,转换成与服务端1间可通信的预定格式并发送至该服务端1,服务端1获取该客户端2发送的预定格式的传感器数据,再转换成对应的应用可用的设备相关格式,并提供至对应的应用使用,使得不具备传感器硬件模块的设备也可以获得并使用传感器数据,提高了设备运作的效率,提升了用户的使用体验。
在此,服务端1和客户端2可以位于任何需要传感器数据而缺少相关传感器硬件模块的设备中。
优选地,该服务端1可以位于电视盒子中,该客户端2也可以位于电视盒子中。更优选地,该服务端1和客户端2可以同时位于电视盒子中。
在此,服务端1或客户端2,或其两者同时位于电视盒子中,客户端2获取外部传感器数据,转换成与服务端1间可通信的预定格式并发送至该服务端1,服务端1获取该客户端2发送的预定格式的传感器数据,再转换成对应的应用可用的设备相关格式,并提供至对应的应用使用,解决了在电视盒子上无法使用传感器的问题,使得在电视盒子上可使用的应用的类别和数量大大增加,原本在电视盒子上无法使用的应用(例如需要重力感应、加速度、方向传感器等的应用)可以轻松在电视盒子上使用。
优选地,该方法还包括步骤S303(未示出),在步骤S303中,服务端1创建本地socket并进行监听;其中,当所述客户端2发送所述传感器数据时,在步骤S301中,服务端1通过所述本地socket,获取所述客户端2所发送的所述传感器数据,其中,所述传感器数据以所述预定格式进行发送。
具体地,在步骤S303中,服务端1创建本地socket,并监听该socket,一旦客户端2通过该本地socket,向该服务端1以上述预定格式发送传感器数据,在步骤S301中,服务端1即通过该本地socket,获取该客户端2所发送的传感器数据。较佳地,在步骤S301中,服务端1还可结合模拟传感器数据库,获取该客户端2通过该本地socket以该预定格式所发送的传感器数据。
更优选地,该方法还包括步骤S304(未示出),当具有新客户端连接至所述本地socket时,在步骤S304中,服务端1将所述新客户端添加至监听队列。
具体地,当具有新的客户端连接至该本地socket时,在步骤S304中,服务端1即将该新客户端添加至监听队列。在步骤S304中,服务端1监听该监听队列中的各个客户端,当这些客户端通过该本地socket,以预定格式向该服务端1发送传感器数据时,在步骤S301中,服务端1即通过该本地socket,获取这些客户端所发送的传感器数据。
在此,服务端1还可以创建本地socket并进行监听,当有新客户端连接至该本地socket时,将该新客户端添加至监听队列进行监听,当客户端有传感器数据发送时,通过该socket进行获取。
优选地,该方法还包括步骤S305(未示出),在步骤S305中,服务端1加载模拟传感器数据库,其中,所述模拟传感器数据库中定义有模拟传感器数据;其中,在步骤S301中,服务端1基于所述模拟传感器数据库,获取所述客户端所发送的传感器数据。
具体地,在步骤S305中,服务端1加载模拟传感器数据库,例如,在该服务端1启动时,服务端1即加载模拟传感器数据库,该模拟传感器数据库例如以sensors.so共享库的形式存在,其中,所述模拟传感器数据库中定义有模拟传感器数据,包括但不限于名称、厂商信息、类别、范围、精度等信息。
随后,在步骤S301中,服务端1基于所述模拟传感器数据库,获取所述客户端2所发送的传感器数据。例如,客户端2在发送传感器数据时,仅发送了数值信息,而并未发送单位信息,在步骤S301中,服务端1获取客户端2所发送的传感器数据时,确定该传感器数据所对应的厂商信息,假设各个厂商生产的传感器都具有固定的单位信息,该服务端1即可根据该厂商信息,自该模拟传感器数据库中确定对应该厂商信息的单位信息,进而最终确定对应的传感器数据。
在此,模拟传感器数据库可以位于该服务端1中,也可以位于与该服务端1通过网络相连接的第三方设备中。
在此,假设该服务端1采用Android协议,则服务端1遵循Android HAL框架规范,模拟传感器数据库在Android ROM中例如以sensors.so共享库的形式存在,Android***会在启动完成时以模块的形式加载该模拟传感器数据库。在sensors.so中定义了各种传感器数据,包括但不限于名称、厂商信息、类别、范围、精度等信息。Sensors.so在HAL的activate阶段创建一个本地unix local socket并监听该socket。为了提高效率,该服务端1可以采用Linux epoll机制监听是否有客户端连接。之后,每次HAL层在poll调用时,都会通过epoll检查是否有客户端连接以及客户端是否有数据发送,如果有客户端连接,则将新客户端加入到epoll监听队列;如果有新的客户端数据,则读取到缓存后以特定格式解析传感器数据,返回给HAL层。HAL层会进一步将传感器数据通过Android框架的Sensors API传递给上层应用。
图4为本发明另一个实施例的用于在客户端模拟传感器的方法的流程示意图。
在步骤S401中,客户端2获取外部传感器数据。
具体地,客户端2通过约定的连接方式,连接外部传感器,当该外部传感器产生传感器数据时,在步骤S401中,客户端2即可通过约定的通信方式,获取其外部传感器数据。在此,外部传感器事件源的存在形式多种多样,例如以手机作为载体,将手机本身产生的各种外部传感器数据发送给客户端2,在步骤S401中,客户端2即可获取这些外部传感器数据。
例如,假设应用为赛车,用户通过手机进行操控,则该手机与客户端2进行连接,并将其自身产生的诸如加速度传感器数据、方向传感器数据等传感器数据发送至该客户端2,在步骤S401中,客户端2即可获取这些加速度传感器数据、方向传感器数据等外部传感器数据。
需要说明的是,上述举例仅为更好地说明本发明的技术方案,而非对本发明的限制,本领域技术人员应该理解,任何其他现有的或今后可能出现的获取外部传感器数据的方式,如可适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
在步骤S402中,客户端2将所述外部传感器数据转换成预定格式的传感器数据。
具体地,在步骤S402中,客户端2将在步骤S401中所获取的外部传感器数据转换成预定格式的传感器数据,该预定格式方便该客户端2与服务端1进行通信。
随后,在步骤S403中,客户端2将所述传感器数据以所述预定格式发送给对应的服务端1。
具体地,在步骤S403中,客户端2将在步骤S402中所转换得到的预定格式的传感器数据,发送至对应的服务端1。在此,所述预定格式例如仅为服务端1与客户端2之间进行内部通信的格式,而不需对外暴露。
优选地,在步骤S403中,客户端2通过所述服务端1的socket,将所述传感器数据以所述预定格式发送给所述服务端1。
具体地,服务端1建立了本地socket,例如,其创建本地socket并进行监听,在步骤S403中,客户端2即可通过该服务端1的socket,将在步骤S402中所转换得到的预定格式的传感器数据,以预定格式发送至对应的服务端1。
优选地,所述客户端2在启动时连接所述服务端1的socket。
具体地,该客户端2在启动时,即可连接至该服务端1的socket,而该服务端1当该客户端2连接时,将该客户端2加入监听队列进行监听,若该客户端2以预定格式向该服务端1发送传感器数据,则进行获取。
在此,客户端2作为数据通道,沟通外部传感器事件源和服务端1。客户端2启动时会连接服务端1的socket。客户端2获取外部传感器数据,转换成与服务端1间专用的预定格式并发送至该服务端1,服务端1获取该客户端2发送的预定格式的传感器数据,再转换成对应的应用可用的设备相关格式,并提供至该对应的应用。
例如,假设应用为赛车,用户通过手机进行操控,则该手机与客户端2进行连接,并将其自身产生的诸如加速度传感器数据、方向传感器数据等传感器数据发送至该客户端2。在步骤S401中,客户端2获取这些外部传感器数据;在步骤S402中,客户端2将这些外部传感器数据转换成预定格式的传感器数据;进而,在步骤S403中,客户端2通过该服务端1的本地socket,以该预定格式,将这些传感器数据发送至该服务端1。服务端1监听该本地socket并获知该客户端2以预定格式发送传感器数据;接着,获取该预定格式的加速度传感器数据、方向传感器数据等;随后,将这些传感器数据转换成该赛车应用可使用的设备相关格式,并提供给该赛车应用进行使用。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,本发明的各个装置可采用专用集成电路(ASIC)或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。***权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (13)
1.一种用于在服务端模拟传感器的方法,其中,该方法包括以下步骤:
在服务端启动时即加载模拟传感器数据库,其中,所述模拟传感器数据库以sensors.so共享库的形式存在,其中定义有模拟传感器数据;
a基于所述模拟传感器数据库,获取对应的客户端所发送的传感器数据,其中,所述服务端与所述客户端同时位于电视盒子中,所述传感器数据以预定格式进行发送,所述预定格式仅为所述服务端与所述客户端之间进行内部通信的格式,而不需对外暴露;
b将预定格式的所述传感器数据转换成设备相关格式的传感器数据,并提供至对应的应用。
2.根据权利要求1所述的方法,其中,该方法还包括:
-创建本地socket并进行监听;
其中,所述步骤a包括:
-当所述客户端发送所述传感器数据时,通过所述本地socket,获取所述客户端所发送的所述传感器数据,其中,所述传感器数据以所述预定格式进行发送。
3.根据权利要求2所述的方法,其中,该方法还包括:
-当具有新客户端连接至所述本地socket时,将所述新客户端添加至监听队列。
4.一种用于在客户端模拟传感器的方法,其中,该方法包括以下步骤:
A获取外部传感器数据;
B将所述外部传感器数据转换成预定格式的传感器数据,其中,所述预定格式仅为服务端与所述客户端之间进行内部通信的格式,而不需对外暴露;
C将所述传感器数据以所述预定格式发送给对应的服务端,以使所述服务端基于启动时即加载的模拟传感器数据库获取所述传感器数据,其中,所述服务端与所述客户端同时位于电视盒子中,所述模拟传感器数据库以sensors.so共享库的形式存在,其中定义有模拟传感器数据。
5.根据权利要求4所述的方法,其中,所述步骤C包括:
-通过所述服务端的socket,将所述传感器数据以所述预定格式发送给所述服务端。
6.根据权利要求5所述的方法,其中,所述客户端在启动时连接所述服务端的socket。
7.一种用于模拟传感器的服务端,其中,该服务端包括:
加载装置,用于在服务端启动时即加载模拟传感器数据库,其中,所述模拟传感器数据库以sensors.so共享库的形式存在,其中定义有模拟传感器数据;
第一获取装置,用于基于所述模拟传感器数据库,获取对应的客户端所发送的传感器数据,其中,所述服务端与所述客户端同时位于电视盒子中,所述传感器数据以预定格式进行发送,所述预定格式仅为所述服务端与所述客户端之间进行内部通信的格式,而不需对外暴露;
提供装置,用于将预定格式的所述传感器数据转换成设备相关格式的传感器数据,并提供至对应的应用。
8.根据权利要求7所述的服务端,其中,该服务端还包括:
监听装置,用于创建本地socket并进行监听;
其中,所述第一获取装置用于:
-当所述客户端发送所述传感器数据时,通过所述本地socket,获取所述客户端所发送的所述传感器数据,其中,所述传感器数据以所述预定格式进行发送。
9.根据权利要求8所述的服务端,其中,该服务端还包括:
添加装置,用于当具有新客户端连接至所述本地socket时,将所述新客户端添加至监听队列。
10.一种用于模拟传感器的客户端,其中,该客户端包括:
第二获取装置,用于获取外部传感器数据;
转换装置,用于将所述外部传感器数据转换成预定格式的传感器数据,其中,所述预定格式仅为服务端与所述客户端之间进行内部通信的格式,而不需对外暴露;
发送装置,用于将所述传感器数据以所述预定格式发送给对应的服务端,以使所述服务端基于启动时即加载的模拟传感器数据库获取所述传感器数据,其中,所述服务端与所述客户端同时位于电视盒子中,所述模拟传感器数据库以sensors.so共享库的形式存在,其中定义有模拟传感器数据。
11.根据权利要求10所述的客户端,其中,所述发送装置用于:
-通过所述服务端的socket,将所述传感器数据以所述预定格式发送给所述服务端。
12.根据权利要求11所述的客户端,其中,所述客户端在启动时连接所述服务端的socket。
13.一种电视盒子,包括如权利要求7至9中任一项所述的服务端,及如权利要求10至12中任一项所述的客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510456938.9A CN105117270B (zh) | 2015-07-29 | 2015-07-29 | 一种用于模拟传感器的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510456938.9A CN105117270B (zh) | 2015-07-29 | 2015-07-29 | 一种用于模拟传感器的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105117270A CN105117270A (zh) | 2015-12-02 |
CN105117270B true CN105117270B (zh) | 2019-04-12 |
Family
ID=54665271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510456938.9A Active CN105117270B (zh) | 2015-07-29 | 2015-07-29 | 一种用于模拟传感器的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105117270B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776057B (zh) * | 2016-11-22 | 2020-04-17 | 北京云知声信息技术有限公司 | 事件处理方法及装置 |
CN107342981B (zh) * | 2017-06-07 | 2021-11-12 | 北京小鸟看看科技有限公司 | 传感器数据的传输方法及装置、虚拟现实头戴设备 |
CN108089881A (zh) * | 2017-12-04 | 2018-05-29 | 北京小鸟看看科技有限公司 | 传感器数据的传输方法、装置及虚拟现实设备 |
CN108363609B (zh) * | 2018-02-07 | 2021-11-30 | 腾讯科技(深圳)有限公司 | 模拟传感器的方法、装置和存储介质 |
CN111737269B (zh) * | 2020-08-26 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 数据查询响应方法、装置及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102802081A (zh) * | 2012-07-24 | 2012-11-28 | 四川长虹电器股份有限公司 | 基于智能电视终端与手持设备实现虚拟外设的方法 |
CN102869123A (zh) * | 2012-08-02 | 2013-01-09 | Tcl集团股份有限公司 | 应用于智能显示设备的虚拟外设数据采集方法及*** |
CN103713934A (zh) * | 2012-09-29 | 2014-04-09 | 京信通信***(中国)有限公司 | 应用程序访问物理外设的方法和*** |
-
2015
- 2015-07-29 CN CN201510456938.9A patent/CN105117270B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102802081A (zh) * | 2012-07-24 | 2012-11-28 | 四川长虹电器股份有限公司 | 基于智能电视终端与手持设备实现虚拟外设的方法 |
CN102869123A (zh) * | 2012-08-02 | 2013-01-09 | Tcl集团股份有限公司 | 应用于智能显示设备的虚拟外设数据采集方法及*** |
CN103713934A (zh) * | 2012-09-29 | 2014-04-09 | 京信通信***(中国)有限公司 | 应用程序访问物理外设的方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN105117270A (zh) | 2015-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105117270B (zh) | 一种用于模拟传感器的方法和装置 | |
Sommer et al. | Veins: The open source vehicular network simulation framework | |
US8627204B2 (en) | Custom optimization of web pages | |
CN104702665B (zh) | 信息分享方法和信息分享装置 | |
CN109995877A (zh) | 信息推送方法和装置 | |
CN108388988A (zh) | 基于区块链的协同办公方法、***及计算机可读存储介质 | |
CN109992732A (zh) | 信息分享方法、装置、电子设备及存储介质 | |
CN112788589B (zh) | 基于已处理信道数量确定ue能力的方法和装置 | |
CN106293765A (zh) | 一种布局更新方法及装置 | |
US20180253190A1 (en) | Device, system, and method of composing logical computing platforms | |
CN109510881A (zh) | 文件分享的方法、装置、电子设备及可读存储介质 | |
CN112242885A (zh) | 用于提供动态混合自动重传请求(harq)码本的***和方法 | |
CN105894600A (zh) | 考勤方法、装置和*** | |
US9380001B2 (en) | Deploying and modifying a service-oriented architecture deployment environment model | |
CN102884508A (zh) | 分层地分解消息 | |
CN105554750B (zh) | 一种数据帧的传输方法及终端 | |
CN107092559A (zh) | 基于Jmeter的测试平台中间件、测试***及方法 | |
EP3907897A2 (en) | System and method for managing collisions in multiple-transmission-and-reception-points communications | |
CN117149665B (zh) | 持续集成方法、控制设备、持续集成***及存储介质 | |
CN103617645A (zh) | 一种渲染方法及装置 | |
JP6301936B2 (ja) | 位置に基づくソーシャルネットワーキングシステムおよび方法 | |
CN104978162B (zh) | 拼接显示***及其拼接显示控制方法 | |
CN115022106B (zh) | 一种群信息处理方法、装置、设备及介质 | |
CN113791766B (zh) | 组合数据接口的方法、电子设备和可读存储介质 | |
CN108667902A (zh) | iOS设备的远程控制***、方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |