操作系统中控制硬件设备的方法和模块技术方案

技术编号:11480960 阅读:75 留言:0更新日期:2015-05-20 15:02
一种操作系统中控制硬件设备的方法和模块,在获取到用于控制硬件设备动作的状态数据后,先将状态数据下发并存储到缓冲单元中,之后,再调用硬件设备驱动,硬件设备驱动读取保存在缓冲单元中的状态数据,根据状态数据控制硬件设备动作的状态。由于状态数据存储在缓冲单元中,硬件设备驱动被调用后,便直接读取存储在缓冲单元中的状态数据,该读取过程是连续的,避免了硬件设备驱动在驱动硬件设备动作的过程中出现中断、延迟等现象,从而提高了数据传输的准确性,并为高速数据传输提供了保证。

【技术实现步骤摘要】
操作系统中控制硬件设备的方法和模块
本申请涉及电子设备操作系统的开发,具体涉及一种操作系统中控制硬件设备的方法和模块。
技术介绍
请参考图1,为安卓系统的架构示意图。第一层101为Linux内核驱动层(Linuxkernel),其由C/C++实现。安卓核心系统服务依赖于Linux内核,包括安全性、内存管理、进程管理、网络协议、驱动模型等。Linux内核也作为硬件和软件栈之间的抽象层,除了标准的Linux内核外,安卓还增加了内核的驱动程序,例如:Binder(IPC)驱动、camera驱动、电源管理等。第二层为组件库和虚拟机层,其中,102为组件库层(Libraries),103为虚拟机层(AndroidRuntime),组件库层102通过C/C++实现,包含C/C++库,用于安卓系统中不同的组件使用,它们通过安卓应用程序框架为开发者进行服务。虚拟机层103作为安卓系统的运动环境,其提供了Java编程语言核心库的大多数功能,由DalvikJava虚拟机和基础的Java类库组成。第三层104为应用框架层(ApplicationFramework),在安卓系统中,开发人员也可以完全访问核心应用程序所使用的API(ApplicationProgrammingInterface,应用程序编程接口)框架。第四层105为应用程序层(Applications),安卓应用程序都是采用Java语言编写的,用户开发的安卓应用程序和安卓的核心应用程序是同一层次的,它们都是基于安卓的系统API构建的。目前,众多的电子设备采用安卓系统,且设备硬件上都安装有闪光灯,在很多情况下,用户具有使用闪光灯的需求,因此,如何在安卓系统上实现闪光灯的控制,是本领域技术人员正在研究的问题。随着光通信的发展,越来越多的电子设备通过使用闪光灯来进行光通信。在安卓系统中,例如,用户在应用程序层控制将某一数据通过闪光灯以光通信的方式发送出去,则该数据作为待发送数据,根据相应的编码规则将该数据转换成控制闪光灯亮灭的时间数据,即在应用程序层产生了控制闪光灯开关的时间数据。然而应用程序层在获取到控制闪光灯的指令后,对闪光灯驱动的调用指令是一条一条发送的,闪光灯驱动执行完一条指令后,等待应用程序层发送的下一条指令,加上应用程序层将指令传达到驱动层需要经过应用框架层、组件库层和虚拟机层等层级,其间,必然会出现一定的时间延迟,从而影响光通信过程中数据传输的准确性。在光通信中,通常采用的是可见光通信,该可见光即可用于进行数据传输,又可以作为照明用。然而,由于上述时间延迟问题,使得数据传输过程中,为了保证数据的准确性,需要适当限制其传输速度(可见光的闪烁频率)。因此,对于需要对数据进行高速传输时,无法很好地适用。
技术实现思路
本申请提供一种操作系统中控制硬件设备的方法和模块,解决了信息传输延迟、中断的问题。根据本申请的第一方面,本申请提供了一种操作系统中控制硬件设备的方法,包括:获取用于控制硬件设备动作的状态数据;将所述状态数据下发并存储到缓冲单元中;调用硬件设备驱动,所述发光器件驱动读取保存在缓冲单元中的状态数据,根据所述状态数据控制硬件设备动作的状态。在一实施例中,获取用于控制硬件设备动作的状态数据,具体为:获取原始数据,对原始数据编码后得到所述状态数据。在一实施例中,所述硬件设备为发光器件、震动器、摄像头、传感器或麦克风。在一实施例中,所述状态数据为表示时间数据、亮度数据或强度数据的数组。在一实施例中,所述硬件设备为发光器件时,所述硬件设备驱动为发光器件驱动,所述状态数据为表示时间数据的数组;所述硬件设备驱动根据所述状态数据控制硬件设备动作的状态,具体为:发光器件驱动按照所述数组中数据元素的顺序控制发光器件开启或关闭的时间。在一实施例中,所述操作系统为安卓系统、BlackberryOS系统、windowsphone系统、windowsmobile系统、IOS系统或MacOS系统。根据本申请的第二方面,本申请提供了一种操作系统中控制硬件设备的模块,包括:状态数据获取单元,用于控制应用程序层获取用于控制硬件设备动作的状态数据;传输单元,用于控制应用程序层将所述状态数据下发;缓冲单元,用于存储应用程序层下发的状态数据;执行单元,用于控制应用程序层调用位于内核驱动层中的硬件设备驱动,并控制硬件设备驱动读取保存在缓冲单元中的状态数据,根据所述状态数据控制硬件设备动作的状态。在一实施例中,所述状态数据获取单元还包括编码子单元,用于控制应用程序层获取原始数据,对原始数据编码后得到所述状态数据。在一实施例中,所述硬件设备为发光器件、震动器、摄像头、传感器或麦克风。在一实施例中,所述状态数据为表示时间数据、亮度数据或强度数据的数组。在一实施例中,所述硬件设备为发光器件时,所述硬件设备驱动为发光器件驱动,所述状态数据为表示时间数据的数组;所述执行单元控制硬件设备驱动根据所述状态数据控制硬件设备的状态时:执行单元控制发光器件驱动按照所述数组中数据元素的顺序控制发光器件开启或关闭的时间。在一实施例中,所述操作系统为安卓系统、BlackberryOS系统、windowsphone系统、windowsmobile系统、IOS系统或MacOS系统。本申请提供的操作系统中控制硬件设备的方法和模块,在获取到用于控制硬件设备动作的状态数据后,先将状态数据下发并存储到缓冲单元中,之后,再调用硬件设备驱动,硬件设备驱动读取保存在缓冲单元中的状态数据,根据状态数据控制硬件设备动作的状态。由于状态数据存储在缓冲单元中,硬件设备驱动被调用后,便直接读取存储在缓冲单元中的状态数据,该读取过程是连续的,避免了硬件设备驱动在驱动硬件设备动作的过程中出现中断、延迟等现象,从而提高了数据传输的准确性,并为高速数据传输提供了保证。附图说明图1为安卓系统的架构示意图;图2为本申请一种实施例中操作系统中控制硬件设备的方法流程图;图3为本申请一种实施例中操作系统中控制硬件设备的模块的结构示意图。具体实施方式本申请的专利技术构思在于:利用缓冲单元将用于控制硬件设备动作的状态数据先存储,该缓冲单元内存储的数据为硬件设备驱动可直接读取的,状态数据存储完毕后,再调用硬件设备驱动,硬件设备驱动读取保存在缓存单元中的状态数据,根据状态数据控制硬件设备动作的状态。硬件设备驱动读取缓存单元中的状态数据是连续的,不会出现时间延迟、中断等现象,从而保证了数据传输的准确性,同时也为高速数据传输提供了保证。本申请实施例中硬件设备可以为发光器件、震动器、摄像头、传感器或麦克风。为了便于对本申请进行说明,本申请实施例主要以硬件设备为发光器件进行说明,相应的,硬件设备驱动为发光器件驱动,状态数据为时间数据,硬件设备动作为发光器件的开启或关闭。下面通过具体实施方式结合附图对本申请作进一步详细说明。实施例一请参见图1,本实施例提供了一种操作系统中控制硬件设备的方法,硬件设备为发光器件,包括下面步骤:步骤201:获取原始数据。具体的,原始数据可以是用户输入的数据,例如用户输入的银行卡账号。在安卓系统中,可以由应用程序层获取原始数据。步骤202:对原始数据进行编码,以得到用于控制发光器件开启或关闭的时间数据,例如,控制发光器件开5s、关2s、开3s……在本文档来自技高网
...
操作系统中控制硬件设备的方法和模块

【技术保护点】
一种操作系统中控制硬件设备的方法,其特征在于,包括:获取用于控制硬件设备动作的状态数据;将所述状态数据下发并存储到缓冲单元中;调用硬件设备驱动,所述发光器件驱动读取保存在缓冲单元中的状态数据,根据所述状态数据控制硬件设备动作的状态。

【技术特征摘要】
1.一种操作系统中控制硬件设备的方法,其特征在于,包括:应用程序层获取原始数据,并对原始数据进行编码来得到状态数据;应用程序层将所述状态数据下发到内核驱动层;并存储到设置在内核驱动层的缓冲单元中;应用程序层调用硬件设备驱动,所述硬件设备驱动读取保存在缓冲单元中的状态数据,根据所述状态数据控制硬件设备动作的状态。2.如权利要求1所述的方法,其特征在于,所述硬件设备为发光器件、震动器、摄像头、传感器或麦克风。3.如权利要求1所述的方法,其特征在于,所述状态数据为表示时间数据、亮度数据或强度数据的数组。4.如权利要求2所述的方法,其特征在于,所述硬件设备为发光器件时,所述硬件设备驱动为发光器件驱动,所述状态数据为表示时间数据的数组;所述硬件设备驱动根据所述状态数据控制硬件设备动作的状态,具体为:发光器件驱动按照所述数组中数据元素的顺序控制发光器件开启或关闭的时间。5.一种操作系统中控制硬件设备的装置,其特征在于,包括:状态数据获...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:深圳光启创新技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1