CN106155653A - 操作系统中控制硬件设备的方法和模块 - Google Patents
操作系统中控制硬件设备的方法和模块 Download PDFInfo
- Publication number
- CN106155653A CN106155653A CN201510157739.8A CN201510157739A CN106155653A CN 106155653 A CN106155653 A CN 106155653A CN 201510157739 A CN201510157739 A CN 201510157739A CN 106155653 A CN106155653 A CN 106155653A
- Authority
- CN
- China
- Prior art keywords
- hardware device
- output code
- system file
- code flow
- process output
- 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.)
- Pending
Links
Abstract
一种操作系统中控制硬件设备的方法和模块,查找单元查找获取用于控制硬件设备动作的系统文件;码流获取单元获取用于修改系统文件的进程输出码流,进程输出码流包括用于控制硬件设备动作的编码序列;执行单元执行进程输出码流以控制硬件设备根据编码序列进行动作。本申请提供的操作系统中控制硬件设备的方法和模块通过修改用于控制硬件设备动作的系统文件,来对硬件设备进行控制,从而提高硬件设备的控制效率。
Description
技术领域
本申请涉及电子设备操作系统的开发,具体涉及一种操作系统中控制硬件设备的方法和模块。
背景技术
目前,众多的电子设备上都安装有闪光灯,在很多情况下,用户具有使用闪光灯的需求,因此,如何在电子设备上实现闪光灯的控制,是本领域技术人员正在研究的问题。以安卓系统为例,当需要控制闪光灯的开关时,通常是先调用camera driver,利用camera自带的接口,通过设置camera的参数,来实现闪光灯的开关。而这种对闪光灯的控制方式,属于间接控制,其对闪光灯的调用具有一定的时间延迟。并且,这种控制方式在不同手机上表现不同,有的打开关闭闪光灯动作耗时比较小,闪烁速度比较快,时间短,效率高。而有的打开关闭闪光灯动作耗时比较长或长短不一,闪烁速度相对较慢,效率也较低。
随着光通信的发展,例如可见光通信,需要使用电子设备上的闪光灯,通过控制闪光灯闪烁来实现信息的传输。而光通信的过程中,要求闪光灯闪烁的频率较快,目前的闪光灯控制速度难以达到光通信的要求。
发明内容
本申请提供了一种操作系统中控制硬件设备的方法和模块,解决了操作系统中对硬件设备控制效率低的问题。
根据本申请的第一方面,本申请提供了一种操作系统中控制硬件设备的方法,包括:
查找获取用于控制硬件设备动作的系统文件;
获取用于修改所述系统文件的进程输出码流,所述进程输出码流包括用于控制硬件设备动作的编码序列;
执行所述进程输出码流以控制硬件设备根据所述编码序列进行动作。
根据本申请的第二方面,本申请提供了一种操作系统中控制硬件设备的模块,包括:
查找单元,用于查找获取用于控制硬件设备动作的系统文件
码流获取单元,用于获取用于修改所述系统文件的进程输出码流,所述进程输出码流包括用于控制硬件设备动作的编码序列;
执行单元,用于执行所述进程输出码流以控制硬件设备根据所述编码序列进行动作。
本申请提供的操作系统中控制硬件设备的方法和模块,查找单元查找获取用于控制硬件设备动作的系统文件;码流获取单元获取用于修改系统文件的进程输出码流,进程输出码流包括用于控制硬件设备动作的编码序列;执行单元执行进程输出码流以控制硬件设备根据编码序列进行动作。本申请提供的操作系统中控制硬件设备的方法和模块通过修改用于控制硬件设备动作的系统文件,来对硬件设备进行控制,从而提高硬件设备的控制效率。
附图说明
图1为本申请一种实施例中安卓系统中控制手机闪光灯的方法流程图;
图2为本申请一种实施例中安卓系统中控制手机闪光灯的模块示意图。
具体实施方式
本申请实施例提供了一种操作系统中控制硬件设备的方法和模块,该操作系统可以是电子设备,例如手机、平板电脑等设备内的系统,硬件设备可以是闪光灯,或其他发光器件,或震动器、摄像头、传感器、麦克风等。
为了便于对本申请进行说明,本申请实施例以硬件设备为手机闪光灯进行说明,相应的,硬件设备动作为闪光灯的开启或关闭。
下面通过具体实施方式结合附图对本申请作进一步详细说明。
实施例一
请参考图1,本实施例提供了一种安卓系统中控制手机闪光灯的方法,包括下面步骤:
步骤1.1:查找获取用于控制手机闪光灯开启或关闭的系统文件,通常,该系统文件为brightness系统文件,且其在手机内的存储路径通常为下面三种:
sys/class/leds/torch/brightness;
sys/class/leds/torch-light/brightness;
sys/class/leds/flashlight/brightness。
因此,本步骤中,可以直接查询上述三个路径,以查找到brightness系统文件,在其他实施例中,也可以采用其他查找方法,例如,直接搜索整个手机存储;或者在查询上述三个路径后,依然没有查找到brightness系统文件,再搜索整个手机存储。
步骤1.2:判断当前用户是否有修改brightness系统文件的权限,如果有,直接转到步骤1.4,如果没有,转到步骤1.3。
步骤1.3:获取修改brightness系统文件的权限,通常,可以直接获取手机ROOT权限(超级用户权限),例如,采用手机刷机工具ROOT手机,以得到修改brightness系统文件的权限。
步骤1.4:获取用于修改brightness系统文件的进程输出码流,进程输出码流包括用于控制闪光灯动作的编码序列。本实施例中,为提高闪光灯的控制效率,编码序列采用NRZI编码。
步骤1.5:进入DOS命令模式。
步骤1.6:执行进程输出码流以控制闪光灯根据编码序列进行动作,实现循环控制闪光灯的开和关。进程输出码流中采用ECHO命令来修改brightness系统文件,在其他实施例中,亦可以根据操作系统的不同,选择不同的修改命令。
在编码序列中修改brightness系统文件,实现打开和关闭闪光灯的方式如下:
Process p=Runtime.getRuntime().exec(“su”);//获得最高权限并进入dos命令模式
DataOutputStream dos=new DataOutputStream(p.getOutputStream());//获得进程输出流
//把1写入brightness文件打开闪光灯
dos.writeByte(“echo 1>/sys/class/leds/torch/brightness”+”\n”);
dos.flush();
//把0写入brightness文件关闭闪光灯
dos.writeByte(“echo 0>/sys/class/leds/torch/brightness”+”\n”);
dos.flush();
//退出dos命令模式
dos.writeByte(“exit\n”);
dos.flush();
在完成对闪光灯的控制后,操作系统退出DOS命令模式。
步骤1.5中,可以是系统执行预先设置的指令,以进入DOS命令模式;也可以是,进程输出码流包括进入DOS命令模式的指令,系统执行进程输出码流时,进入DOS命令模式。
需要说明的是,在某些实施例中,如果手机已设定为当前用户具有修改brightness系统文件的权限,则可以省略步骤1.2和步骤1.3,不对权限进行判断。
实施例二
请参考图2,本实施例提供了一种安卓系统中控制手机闪光灯的模块,包括查找单元201、权限获取单元202、码流获取单元203和执行单元204。
查找单元201用于查找获取用于控制手机闪光灯开启或关闭的系统文件,通常,该系统文件为brightness系统文件,且其在手机内的存储路径通常为下面三种:
sys/class/leds/torch/brightness;
sys/class/leds/torch-light/brightness;
sys/class/leds/flashlight/brightness。
因此,查找单元201可以直接查询上述三个路径,以查找到brightness系统文件,在其他实施例中,也可以采用其他查找方法,例如,查找单元201直接搜索整个手机存储;或者在查询上述三个路径后,依然没有查找到brightness系统文件,再搜索整个手机存储。
权限获取单元202判断当前用户是否有修改brightness系统文件的权限,如果没有,则获取修改brightness系统文件的权限,通常,可以直接获取手机ROOT权限(超级用户权限),例如,权限获取单元202执行手机刷机工具ROOT手机,以得到修改brightness系统文件的权限。
码流获取单元203用于获取用于修改brightness系统文件的进程输出码流,进程输出码流包括用于控制闪光灯动作的编码序列。本实施例中,为提高闪光灯的控制效率,编码序列采用NRZI编码。
执行单元204用于执行进程输出码流以控制闪光灯根据编码序列进行动作,实现循环控制闪光灯的开和关。进程输出码流中采用ECHO命令来修改brightness系统文件,在其他实施例中,亦可以根据操作系统的不同,选择不同的修改命令。
在编码序列中修改brightness系统文件,实现打开和关闭闪光灯的方式如下:
Process p=Runtime.getRuntime().exec(“su”);//获得最高权限并进入dos命令模式
DataOutputStream dos=new DataOutputStream(p.getOutputStream());//获得进程输出流
//把1写入brightness文件打开闪光灯
dos.writeByte(“echo 1>/sys/class/leds/torch/brightness”+”\n”);
dos.flush();
//把0写入brightness文件关闭闪光灯
dos.writeByte(“echo 0>/sys/class/leds/torch/brightness”+”\n”);
dos.flush();
//退出dos命令模式
dos.writeByte(“exit\n”);
dos.flush();
执行单元204还用于控制操作系统先进入DOS命令模式,再执行进程输出码流以控制硬件设备动作;在完成对闪光灯的控制后,退出DOS命令模式。
执行单元204可以是执行预先设置的指令,以进入DOS命令模式;也可以是,进程输出码流包括进入DOS命令模式的指令,执行进程输出码流时,进入DOS命令模式。
需要说明的是,在某些实施例中,如果手机已设定为当前用户具有修改brightness系统文件的权限,则可以省略权限获取单元202,不对权限进行判断。
下面为使用本申请实施例提供的方法和模块对型号分别为htc x515d和Nx505j的手机的闪光灯进行控制,与使用现有技术对其闪光灯进行控制的对比数据。
(1)htc x515d手机:
通过修改brightness系统文件来控制闪光灯开关,设置同一组编码序列内开和关的时间为8ms,实际的延时是7~10ms;设置两组编码序列间开和关的时间为25ms,实际的延时是22~25ms。
通过camera来控制闪光灯开关,设置同一组编码序列内开和关的时间为1ms,实际的延时是14~34ms;设置两组编码序列间开和关的时间为25ms,实际的延时是36~72ms。
(2)Nx505j手机:
通过修改brightness文件来控制闪光灯开关,设置同一组编码序列内开和关的时间为8ms,实际的延时是7~9ms;设置两组编码序列间开和关的时间为25ms,实际的延时是24~26ms,总的发光时间是1.25s。
通过camera来控制闪光灯开关,设置同一组编码序列内开和关的时间为1ms,实际的延时是14~45ms;设置两组编码序列间开和关的时间为25ms,实际的延时是36~72ms,总的发光时间是3.2s。
本申请实施例中,通过修改用于控制手机闪光灯开关的brightness系统文件来实现对手机闪光灯开关的准确控制,解决了手机闪光灯闪光速度过慢和闪光总时间过长的问题,即打开和关闭闪光灯动作所耗的时间比较短,可以减少到两三毫秒。而使用camera打开关闭的动作一般需要消耗十几毫秒,有的甚至三四十毫秒。
在使用手机闪光灯进行光通信时,要求能够精准地控制闪光灯的发光时间,以发光时间长短代表对应的数字信号,从而实现数据的正确传输和正确解码。通过本实施例提供的闪光灯控制方法和模块,能够较好地满足光通信对闪光灯闪烁频率和发光时间的要求。
本领域技术人员可以理解,上述实施方式中各种方法的全部或部分步骤可以通过程序来指令相关硬件完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存取存储器、磁盘或光盘等。
以上内容是结合具体的实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请发明构思的前提下,还可以做出若干简单推演或替换。
Claims (10)
1.一种操作系统中控制硬件设备的方法,其特征在于,包括:
查找获取用于控制硬件设备动作的系统文件;
获取用于修改所述系统文件的进程输出码流,所述进程输出码流包括用于控制硬件设备动作的编码序列;
执行所述进程输出码流以控制硬件设备根据所述编码序列进行动作。
2.如权利要求1所述的方法,其特征在于,查找获取用于控制硬件设备动作的系统文件之后,还包括:判断当前用户是否有修改所述系统文件的权限,在判断到没有时,先获取修改所述系统文件的权限。
3.如权利要求2所述的方法,其特征在于,获取修改所述系统文件的权限,具体为:获取操作系统的ROOT权限。
4.如权利要求1所述的方法,其特征在于,先进入DOS命令模式,再执行所述进程输出码流以控制硬件设备动作;执行完所述进程输出码流后,退出DOS命令模式。
5.如权利要求1所述的方法,其特征在于,所述进程输出码流中采用ECHO命令来修改所述系统文件。
6.一种操作系统中控制硬件设备的模块,其特征在于,包括:
查找单元,用于查找获取用于控制硬件设备动作的系统文件
码流获取单元,用于获取用于修改所述系统文件的进程输出码流,所述进程输出码流包括用于控制硬件设备动作的编码序列;
执行单元,用于执行所述进程输出码流以控制硬件设备根据所述编码序列进行动作。
7.如权利要求6所述的模块,其特征在于,还包括权限获取单元,用于判断当前用户是否有修改所述系统文件的权限,在判断到没有时,先获取修改所述系统文件的权限。
8.如权利要求7所述的模块,其特征在于,权限获取单元在到当前用户没有修改所述系统文件的权限时,先获取操作系统的ROOT权限。
9.如权利要求6所述的模块,其特征在于,执行单元还用于控制操作系统先进入DOS命令模式,再执行所述进程输出码流以控制硬件设备动作,执行完所述进程输出码流后,退出DOS命令模式。
10.如权利要求6-9任一项所述的模块,其特征在于,所述硬件设备为闪光灯、震动器、摄像头、传感器或麦克风。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510157739.8A CN106155653A (zh) | 2015-04-03 | 2015-04-03 | 操作系统中控制硬件设备的方法和模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510157739.8A CN106155653A (zh) | 2015-04-03 | 2015-04-03 | 操作系统中控制硬件设备的方法和模块 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106155653A true CN106155653A (zh) | 2016-11-23 |
Family
ID=57338487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510157739.8A Pending CN106155653A (zh) | 2015-04-03 | 2015-04-03 | 操作系统中控制硬件设备的方法和模块 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106155653A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8046776B1 (en) * | 2006-11-30 | 2011-10-25 | Marvell International Ltd. | Method and apparatus for transferring firmware between an operating system device in a host |
CN102929613A (zh) * | 2012-10-16 | 2013-02-13 | 无锡江南计算技术研究所 | 操作系统的调优装置和方法 |
CN104156217A (zh) * | 2014-08-15 | 2014-11-19 | 广东欧珀移动通信有限公司 | 一种屏幕内容共享的方法、装置及移动终端 |
-
2015
- 2015-04-03 CN CN201510157739.8A patent/CN106155653A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8046776B1 (en) * | 2006-11-30 | 2011-10-25 | Marvell International Ltd. | Method and apparatus for transferring firmware between an operating system device in a host |
CN102929613A (zh) * | 2012-10-16 | 2013-02-13 | 无锡江南计算技术研究所 | 操作系统的调优装置和方法 |
CN104156217A (zh) * | 2014-08-15 | 2014-11-19 | 广东欧珀移动通信有限公司 | 一种屏幕内容共享的方法、装置及移动终端 |
Non-Patent Citations (2)
Title |
---|
匿名: "Android 运行底层linux外部命令的实现", 《CSDN博客》 * |
匿名: "android打开闪光灯", 《CSDN博客》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105491754B (zh) | 发光二极管驱动电路以及具有其的照明设备 | |
US20120290853A1 (en) | Indicator light control circuuit | |
CN112114832A (zh) | 车辆升级控制方法、终端设备、车辆和计算机存储介质 | |
CN107171661A (zh) | 引脚复用方法及装置、光模块和通信设备 | |
TWI600286B (zh) | 可見光通訊裝置與其驅動方法 | |
CN108390728B (zh) | 光模块上电控制方法及装置 | |
CN115021812B (zh) | 一种基于光器件射频性能的测试方法及系统 | |
CN105045371A (zh) | 电子设备和信息处理方法 | |
CN106155653A (zh) | 操作系统中控制硬件设备的方法和模块 | |
CN102375475A (zh) | 一种便携式电子设备及其光效显示方法 | |
CN112232089B (zh) | 语义表示模型的预训练方法、设备和存储介质 | |
CN110874215B (zh) | 电器或电气设备的驱动控制方法及系统 | |
CN106782266B (zh) | 一种显示屏驱动控制方法、装置和显示屏驱动控制电路 | |
CN106357986B (zh) | 一种柔光灯亮度控制方法及电子设备 | |
US20090303072A1 (en) | Multi-use light indicators | |
CN109510950A (zh) | 补光光源控制方法、装置、摄像组件、电子设备及介质 | |
CN109587900A (zh) | 一种照明灯的控制方法、系统、装置和介质 | |
CN110837720B (zh) | 指令执行的方法、装置及相关产品 | |
CN110149746B (zh) | Led光源电路、具有光源的设备及设备的亮度控制方法 | |
CN202931640U (zh) | 一种移动终端键盘灯的驱动电路和系统 | |
CN106020416B (zh) | 屏幕显示方法、装置及智能设备 | |
CN106960660A (zh) | 一种液晶显示装置及背光灯控制方法 | |
CN108124098A (zh) | 电子设备和用于自动聚焦的方法 | |
CN107193444A (zh) | 移动终端的灯控制方法和装置 | |
CN104407668A (zh) | 一种控制基于x86系统架构的板卡自动上电的板卡 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161123 |
|
RJ01 | Rejection of invention patent application after publication |