传感器数据处理方法及装置与流程

文档序号:12824537阅读:456来源:国知局
传感器数据处理方法及装置与流程

本发明涉及传感器技术领域,具体而言,涉及一种传感器数据处理方法及装置。



背景技术:

现有的终端设备使用一个传感器加载驱动(sensordevice)加载一个传感器动态链接(sensorso)库,一个传感器组件对应一个sensorso库,因而不能同时处理多个不同种类的传感器组件的传感数据。若终端设备配置有两个或多个传感器组件,且两个或多个sensorso库不同,现有的这种方式便不能满足。因此,如何提供一种可同时处理两个或多个传感器组件传感数据的处理方法已成为本领域技术人员亟需解决的问题。



技术实现要素:

为了克服上述现有技术中的不足,本发明提供一种可同时获取至少两个传感器组件数据的传感器数据处理方法及装置,以解决上述问题。

为了实现上述目的,本发明较佳实施例所提供的技术方案如下所示:

本发明较佳实施例提供一种传感器数据处理方法,应用于终端设备,所述终端设备配置有至少两个传感器组件,所述方法包括:

建立至少两个数据获取进程,每个所述数据获取进程被配置为用于获取至少一个所述传感器组件的传感数据;

调用至少两个所述数据获取进程,以同时获取所述数据获取进程对应的传感器组件的传感数据;

将获取到的所述传感器组件的传感数据输出。

在本发明的较佳实施例中,上述建立至少两个数据获取进程的步骤,包括:

建立至少两个传感器加载驱动,以分别加载对应的所述传感器组件所对应的传感器动态链接库,每个所述数据获取进程对应的传感器组件具有相同的传感器动态链接库,所述传感器动态链接库用于获取对应的传感器组件的传感数据;

建立与每个传感器动态链接库对应的线程循环,所述线程循环用以传输所述传感器组件的传感数据。

在本发明的较佳实施例中,上述建立与每个传感器动态链接库对应的线程循环的步骤之前,该方法包括:

判断所述传感器组件是否采集到实时数据;

若所述传感器组件没有采集到实时数据,则所述传感器加载驱动将处于等待状态;

若所述传感器组件采集到实时数据,所述传感器加载驱动加载对应的传感器动态链接库以从对应的传感器组件读取所述实时数据。

在本发明的较佳实施例中,上述将获取到的传感器组件的传感数据输出的步骤,该方法还包括:

整合每个所述数据获取进程获取到的所述传感数据,并将整合后的所述传感数据发送至对应的应用。

在本发明的较佳实施例中,上述整合每个所述数据获取进程获取到的所述传感数据,并将整合后的所述传感数据发送至对应的应用的步骤,包括:

将每个所述传感器组件对应的传感数据分别存储在不同的缓冲区中;

每隔预设时间,将每个所述缓冲区中的所述传感数据复制到一个预设的总缓冲区;

将所述总缓冲区中的传感数据分别发送至对应的应用。

本发明的较佳实施例还提供一种传感器数据处理装置,应用于终端设备,所述终端设备配置有至少两个传感器组件,所述装置包括:

构建模块,用于建立至少两个数据获取进程,每个所述数据获取进程被配置为用于获取至少一个所述传感器组件的传感数据;

调用模块,用于调用至少两个所述数据获取进程,以同时获取所述数据获取进程对应的传感器组件的传感数据;

输出模块,用于将获取到的所述传感器组件的传感数据输出。

在本发明的较佳实施例中,上述构建模块包括:

第一构建单元,用于建立至少两个传感器加载驱动,以分别加载对应的所述传感器组件所对应的传感器动态链接库,每个所述数据获取进程对应的传感器组件具有相同的传感器动态链接库,所述传感器动态链接库用于获取对应的传感器组件的传感数据;

第二构建单元,用于建立与每个传感器动态链接库对应的线程循环,所述线程循环用以传输所述传感器组件的传感数据。

在本发明的较佳实施例中,上述第二构建单元包括:

判断单元,用于判断所述传感器组件是否采集到实时数据;

若所述传感器组件没有采集到实时数据,则所述传感器加载驱动将处于等待状态;

若所述传感器组件采集到实时数据,所述传感器加载驱动加载对应的传感器动态链接库以从对应的传感器组件读取所述实时数据。

在本发明的较佳实施例中,上述输出模块包括:

整合单元,用于整合每个所述数据获取进程获取到的所述传感数据,并将整合后的所述传感数据发送至对应的应用。

在本发明的较佳实施例中,上述整合单元,还用于将每个所述传感器组件对应的传感数据分别存储在不同的缓冲区中;每隔预设时间,将每个所述缓冲区中的所述传感数据复制到一个预设的总缓冲区;

所述总缓冲区中的传感数据通过所述输出模块分别发送至对应的应用。

本发明提供的传感器数据处理方法及装置,通过建立至少两个数据获取进程,调用多个所述数据获取进程,并将从多个数据获取进程所获取到的传感数据输出。每个所述数据获取进程被配置为可获取至少一个所述传感器组件的传感数据,且至少两个所述数据获取进程被配置为可同时获取对应的所述传感器组件的传感数据,可实现同时处理多个传感器组件的传感数据。另外,多个传感器组件同时采集数据,可提高传感精度,提升用户的体验感。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举本发明较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明较佳实施例提供的终端设备的示意性结构框图。

图2为本发明较佳实施例提供的一种传感器数据处理方法的流程图。

图3为图2中步骤s210的子步骤的流程图。

图4为图3中步骤s212的子步骤的流程图。

图5为图2中步骤s230的子步骤的流程图。

图6为本发明较佳实施例提供的一种传感器数据处理装置的功能模块框图。

图7为本发明较佳实施例提供的构建模块的功能模块框图。

图标:10-终端设备;11-存储器;12-存储控制器;13-处理器;14-外设接口;15-射频模块;16-音频模块;17-显示模块;100-传感器数据处理装置;110-构建模块;111-第一构建单元;112-第二构建单元;1121-判断单元;120-调用模块;130-输出模块;131-整合单元。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本发明的描述中,需要说明的是,术语“中”、“上”、“下”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

此外,术语“水平”、“竖直”等术语并不表示要求部件绝对水平或悬垂,而是可以稍微倾斜。如“水平”仅仅是指其方向相对“竖直”而言更加水平,并不是表示该结构一定要完全水平,而是可以稍微倾斜。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“设置”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接。可以是机械连接,也可以是电性连接。可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

请参照图1,是本发明较佳实施例提供的终端设备10的示意性结构框图。如图1所示,所述终端设备10包括传感器数据处理装置100、存储器11、存储控制器12、处理器13、外设接口14、射频模块15、音频模块16以及显示模块17。这些组件通过一条或多条通信总线/信号线相互通信。

存储器11可以用于存储软件程序以及模块,如本发明实施例中的传感器数据处理装置100中对应的程序指令/模块,处理器13通过运行存储在存储器11内的软件程序以及模块,从而执行各种功能应用以及数据处理,如本发明实施例提供的传感器数据处理方法。

所述存储器11可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。处理器13以及其他可能的组件对存储器11的访问可在存储控制器12的控制下进行。

所述处理器13可能是一种集成电路芯片,具有信号的处理能力。上述处理器13可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

外设接口14连接处理器13以及存储器11。在一些实施例中,外设接口14、处理器13以及存储控制器12可以在单个芯片中实现。在其他一些实例中,它们可以分别由独立的芯片实现。

射频模块15用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通信网络或者其他设备进行通信。

音频模块16向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。

显示模块17在终端设备10与用户之间提供一个显示界面。具体地,显示模块17向用户显示视频输出,这些视频输出的内容可包括文字、图形、视频及其任意组合。

于本发明实施例中,所述终端设备10可以为安装有android系统、ios系统或linux系统或windows系列系统的智能终端。终端设备10可以是个人电脑(personalcomputer,pc)、平板电脑、智能手机、手柄、遥控器等。所述终端设备10可与其他设备进行交互,比如,和基于android系统的电视或投影设备等进行交互。

可以理解,图1所示的结构仅为示意,终端设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。

请参照图2,是本发明较佳实施例提供的一种传感器数据处理方法的流程图。所述传感器数据处理方法用于终端设备10,所述终端设备10配置有至少两个传感器组件。可理解地,所述传感器组件可以是所述终端设备10自身具有的,也可以是通过外设接口14接入的。所述传感器(sensor)组件可以包括:光敏传感器、红外传感器、加速度传感器(又称重力传感器)、角速度传感器等。在本实施例中,可选地,所述传感器组件为加速度传感器、角速度传感器。

在本实施例中,仅以终端设备10基于android系统作为优选实施例进行描述,而并不用于限制本实施例的其他实现方式。下面将对图2中示出的各个步骤进行详细说明。

步骤s210,建立至少两个数据获取进程,每个所述数据获取进程被配置为用于获取至少一个传感器组件的传感数据。

进一步地,每个数据获取进程对应的sensorso库可以不同,即,不同数据进程对应的传感器组件种类可以不相同。具有相同sensorso库的多个传感器组件可以通过同一个数据获取进程获取对应的传感数据,也可以通过多个数据获取进程获取对应的传感数据。具有不同sensorso库的多个传感器组件通过对应的数据获取进程以获取相应的传感数据。

在执行步骤s210之前,所述终端设备10可以是已经处于启动状态,也可以是处于待机状态或关机状态。若所述终端设备10处于关机状态,则所述终端设备10在接收到用户通过点击设备开机键或者是用户通过遥控器控制设备开机的开机触发命令,以使终端设备10开始启动。在终端设备10启动之后,开始执行步骤s210。

具体地,请参照图3,在本实施例中,所述步骤s210可以包括步骤s211、步骤s212两个子步骤。

步骤s211,建立至少两个传感器加载驱动,以分别加载对应的传感器组件所对应的传感器动态链接库,每个数据获取进程对应的传感器组件具有相同的传感器动态链接库,所述传感器动态链接库用于获取对应的传感器组件的传感数据。

进一步地,所述传感器加载驱动在本实施例中可以称为sensordevice,多个独立的sensordevice分别加载一个sensorso库。可理解地,一个sensordevice加载一个与该sensordevice对应的sensorso库。sensorso库作为sensordevice获取所述传感数据的桥梁,sensordevice通过加载sensorso库便可获取对应的传感器组件所采集的实时数据。

具体地,所述数据获取进程可根据sensorso库中的指令打开、启用、查询、禁用和关闭对应的传感器组件的驱动程序,进而获取所述传感数据。

步骤s212,建立与每个传感器动态链接库对应的线程循环,所述线程循环用以传输所述传感器组件的传感数据。

进一步地,所述sensordevice都存在与该sensordevice对应的线程循环(threadloop),每个线程循环将循环获取对应的sensordevice所获得的传感数据,并将该传感数据输出。

可理解地,数据获取进程为从传感器组件、sensorso库、以及传感器加载驱动以及线程循环获取传感数据的进程。比如,传感器组件采集传感数据;sensorso库可作为传感器加载驱动获取所述传感数据的桥梁;所述传感器加载驱动通过加载sensorso库进而获取到传感数据;而所述线程循环将获取到的传感数据输出,以对传感数据进行下一步操作(比如,整合传感数据),上述整个进程可以理解为数据获取进程。

请参照图4,在本实施例中,步骤s212还可以包括步骤s2121、步骤s2122、步骤s2123三个子步骤。

步骤s2121,判断传感器组件是否采集到实时数据。

步骤s2122,若所述传感器组件没有采集到实时数据,则传感器加载驱动将处于等待状态。

步骤s2123若所述传感器组件采集到实时数据,所述传感器加载驱动加载对应的传感器动态链接库以从对应的传感器组件读取所述实时数据。

通过上述判断处理过程,sensordevice可以不用一直获取传感数据,可节省处理器13的处理空间,有利于处理器13处理更多的数据。

步骤s220,调用至少两个所述数据获取进程,以同时获取所述数据获取进程对应的传感器组件的传感数据。

具体地,当终端设备10配置有多个具有不同sensorso库的传感器组件时,通过调用与传感器组件对应的数据获取进程,传感器组件的个数与数据获取进程的个数相对应。比如,传感器组件为两个,与之对应的数据获取进程也为两个,且两个数据获取进程可同时读取对应的传感器组件的传感数据。

需要说明的是,在本实施例中,所述的多个可以理解为两个或两个以上的个数

步骤s230,将获取到的所述传感器组件的传感数据输出。

具体地,步骤s230包括整合每个所述数据获取进程获取到的所述传感数据,并将整合后的所述传感数据发送至对应的应用的步骤,

请参照图5,在本实施例中,整合每个所述数据获取进程获取到的所述传感数据,并将整合后的所述传感数据发送至对应的应用的步骤还可以包括步骤s231、步骤s232、步骤s233三个子步骤。

步骤s231,将每个传感器组件对应的传感数据分别存储在不同的缓冲区中。

具体地,根据传感器组件的个数,将传感器组件采集的数据存储在对应的缓冲区中。对应的缓冲区可称为buff1,buff2,……buffn。例如,配置有三个传感器组件,三个传感器组件对应有采集有三组传感数据。而三组传感数据分别存储在buff1、buff2、buff3中,一个缓冲区可以用于存储一组传感数据。上述的n代表大于2的整数。传感器组件与缓冲区的对应关系可根据具体情况而设计,比如先采集到数据先后情况而对应不同的缓冲区,这里不再赘述。

步骤s232,每隔预设时间,将每个所述缓冲区中的所述传感数据复制到一个预设的总缓冲区。

具体地,上述总缓冲区(buffer),buffer的存储空间大于buff1,buff2,……buffn中任意一个的存储空间。通过将buff1,buff2,……buffn中的传感数据复制到buffer中,便形成整合后的传感数据。通过这种方式,便可使多个传感器组件在相同时间或某一相同的时间段内采集的实时数据一起发送出去,进而实现对多个传感器组件实时数据的同步处理。

步骤s233,将所述总缓冲区中的传感数据分别发送至对应的应用。

进一步地,将存储在buffer中的传感数据发送给相对应的应用。例如,该应用为一款体感游戏应用,所述传感器组件为加速度传感器,且为两个具有不同sensorso库的加速度传感器。两个加速度传感器对应两组加速度数据。且两组数据均存储在同一个buffer中,通过线程循环,将buffer中的两组数据发送至相对应的需要对该数据进行处理的体感游戏应用。所述体感游戏应用通过对两组数据进行处理,而输出相应的效果。当然,每组数据可以为一个数据,也可以为两个或多个数据,两组数据也可以分别发送至不同的应用。

比如,用户使用配置有两个加速度传感器的终端设备10玩体感游戏时,左右晃动所述终端设备10,传感器组件采集数据,通过对数据进行处理,对应的终端设备10的显示屏上输出有晃动带来的游戏效果,或者与终端设备10交互的电视机(也可以是投影设备)上输出有相应的游戏效果。通过这种方式可提高对传感数据采集的精准度,另外,这种方式还可以同时对不同种类的传感器组件的传感数据进行处理,进一步提升用户的体验感。

请参照图6,本发明还提供一种传感器数据处理装置100,应用于上述的终端设备10。所述传感器数据处理装置100包括构建模块110、调用模块120以及输出模块130。

所述构建模块110用于建立至少两个数据获取进程。具体地,所述构建模块110用于执行图2中所示的步骤s210,具体的操作方法可参考步骤s210的详细描述。

所述调用模块120用于调用至少两个所述数据获取进程,以同时获取所述数据获取进程对应的传感器组件的传感数据。具体地,所述调用模块120用于执行图2中所示的步骤s220,具体的操作方法可参考步骤s220的详细描述。

所述输出模块130用于将获取到的所述传感器组件的传感数据输出。具体地,所述输出模块130用于执行图2中所示的步骤s230,具体的操作方法可参考步骤s230的详细描述。

请参照图7,在本实施例中,所述构建模块110可以包括第一构建单元111和第二构建单元112。

所述第一构建单元111用于建立至少两个传感器加载驱动,以分别加载对应的所述传感器组件对应的传感器动态链接库(sensorso库)。具体地,所述第一构建单元111可用于执行图3中所示的步骤s211,具体的操作方法可参考步骤s211的详细描述。

所述第二构建单元112用于建立与每个传感器动态链接库对应的线程循环,所述线程循环用以传输传感器的传感数据。具体地,所述第二构建单元112可用于执行图3中所示的步骤s212,具体的操作方法可参考步骤s212的详细描述。

所述第二构建单元112可以包括判断单元1121。所述判断单元1121用于判断所述传感器组件是否采集到实时数据。具体地,所述判断单元1121可用于执行图4中所示的步骤s2121-s2123,具体的操作方法可参考步骤s2121-s2123的详细描述。

在本实施例中,所述输出模块130可以包括整合单元131,所述整合单元131用于整合所述传感数据,整合后的所述传感数据通过所述输出模块130发送至需要处理的应用。具体地,所述整合单元131可用于执行图5中所示的步骤s231以及步骤s232,具体的操作方法可参考步骤s231、步骤s232的详细描述。

所述输出模块130还可以用于将所述总缓冲区中的传感数据分别发送至对应的应用。具体地,所述整合单元131可用于执行图5中所示的步骤s233,具体的操作方法可参考步骤s233的详细描述。

综上所述,本发明提供一种传感器数据处理方法及装置,通过建立至少两个数据获取进程,调用多个所述数据获取进程,并将从多个数据获取进程所获取到的传感数据输出至应用。每个所述数据获取进程被配置为可获取至少一个所述传感器组件的传感数据,且至少两个所述数据获取进程被配置为可同时获取对应的所述传感器组件的传感数据。所述传感器数据处理方法及装置可实现同时使用多个传感器组件的传感数据。另外,多个传感器组件同时采集数据,可提高传感精度,提升用户的体验感。

应当注意,在有些作为替换的实现中,方框中所标注的步骤也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依实际情况而定。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1