CN106231064B - 一种终端及基于虚拟设备的三基色传感器驱动重构方法 - Google Patents

一种终端及基于虚拟设备的三基色传感器驱动重构方法 Download PDF

Info

Publication number
CN106231064B
CN106231064B CN201610452117.2A CN201610452117A CN106231064B CN 106231064 B CN106231064 B CN 106231064B CN 201610452117 A CN201610452117 A CN 201610452117A CN 106231064 B CN106231064 B CN 106231064B
Authority
CN
China
Prior art keywords
data
unit
upper layer
application
layer application
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
Application number
CN201610452117.2A
Other languages
English (en)
Other versions
CN106231064A (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.)
Nubia Technology Co Ltd
Original Assignee
Nubia Technology Co Ltd
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 Nubia Technology Co Ltd filed Critical Nubia Technology Co Ltd
Priority to CN201610452117.2A priority Critical patent/CN106231064B/zh
Publication of CN106231064A publication Critical patent/CN106231064A/zh
Application granted granted Critical
Publication of CN106231064B publication Critical patent/CN106231064B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72454User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to context-related or environment-related conditions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1407General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/02Constructional features of telephone sets
    • H04M1/21Combinations with auxiliary equipment, e.g. with clocks or memoranda pads

Abstract

本发明实施例公开了一种终端及基于虚拟设备的三基色(RGB)传感器驱动重构方法,其中,所述终端包括:RGB传感单元、处理单元及显示单元;其中,所述RGB传感单元,用于采集三色光R、G、B的强度及原色光C的强度,并作为原始数据进行存储,在终端加载操作系统运行后由驱动单元控制其与上层应用间进行数据交互;所述驱动单元,用于创建文件系统中的至少两路数据传输通道,从RGB传感单元中读取原始数据后,经第一路和/或第二路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第一显示数据和/或第二显示数据向应用层的上层应用输出,供上层应用按需自动调节第一显示属性和/或第二显示数据。

Description

一种终端及基于虚拟设备的三基色传感器驱动重构方法
技术领域
本发明涉及驱动技术,尤其涉及一种终端及基于虚拟设备的三基色(RGB)传感器驱动重构方法。
背景技术
随着互联网技术和智能终端技术的发展,越来越多的服务可以通过智能终端来实现,智能终端中可以设置多种传感器来对用户操作及外部环境进行感应。如设置加速度传感器可以感应出智能终端当前的运动幅度和速度,实现摇一摇换歌功能,如设置RGB传感器,可以对智能终端的显示功能进行调节,使得调节后的显示效果更贴近人眼对环境的感知。
利用RGB传感器进行显示功能调节时,存在的问题是:环境光亮度和色温的调整都是分开的,处理起来非常繁琐,也不够精确。在实际应用中,当光源不变,只是亮度变化时,无需调整色调,只需调整亮度,只有当光源变化时,色温才可能需要调节(例如在黄色的钨丝灯光下和白色的白炽灯管下,就需要调整色温)。目前Android设备对RGB传感器的使用,仅限于环境光亮度,并没有使用色温功能,与传统的单色光环境亮度传感器相比,是资源的浪费。如果能充分利用RGB传感器的环境光亮度与色温功能,则能提供更好的自动调节显示效果。而同时使用环境光亮度和色温,采用现有技术的驱动架构不满足Android Framework的接口规范,无法直接使用,需要重构才能满足要求,也就是说,需要对现在的RGB传感器的驱动程序进行重构设计。然而,相关技术中并未有有效的解决方案。
发明内容
本发明实施例提供了一种终端及基于虚拟设备的RGB传感器驱动重构方法,至少解决了上述技术问题。
本发明实施例提供了一种终端,所述终端包括:RGB传感单元、处理单元及显示单元;其中,
所述RGB传感单元,用于采集三色光R、G、B的强度及原色光C的强度,并作为原始数据进行存储,在终端加载操作系统运行后由驱动单元控制其与上层应用间进行数据交互;
所述驱动单元,用于创建文件系统中的至少两路数据传输通道,每一路数据传输通道中至少包括虚拟设备、输入设备和事件节点;从所述RGB传感单元中读取所述原始数据后,经第一路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第一显示数据向应用层的上层应用输出,供上层应用按需自动调节第一显示属性;经第二路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第二显示数据向应用层的上层应用输出,供上层应用按需自动调节第二显示属性;
所述文件系统,为所述应用层的上层应用与所述操作系统间交互的接口。
上述方案中,所述驱动单元,进一步用于通过表征环境光亮度的第一虚拟设备、表征环境光亮度的第一输入设备,及表征环境光亮度的第一事件节点来构建所述第一路数据传输通道。
上述方案中,所述驱动单元,进一步用于从所述RGB传感单元中读取所述原始数据后,调用所述第一虚拟设备,根据所述原始数据运算得到环境光的亮度数据,调用所述第一输入设备将所述环境光的亮度数据上报给所述第一事件节点,由所述第一事件节点将所述环境光的亮度数据向应用层的上层应用输出,供上层应用按需自动调节亮度。
上述方案中,所述驱动单元,进一步用于通过表征环境光色温的第二虚拟设备、表征环境光色温的第二输入设备,及表征环境光色温的第二事件节点来构建所述第二路数据传输通道。
上述方案中,所述驱动单元,进一步用于从所述RGB传感单元中读取所述原始数据后,调用所述第二虚拟设备,根据所述原始数据运算得到环境光的色温数据,调用所述第二输入设备将所述环境光的色温数据上报给所述第二事件节点,由所述第二事件节点将所述环境光的色温数据向应用层的上层应用输出,供上层应用按需自动调节色温。
上述方案中,所述驱动单元,还用于根据同时满足环境光亮度和环境光色温的设备工作频率要求来读取所述原始数据。
本发明实施例提供了一种基于虚拟设备的三基色传感器驱动重构方法,所述方法应用于终端,所述终端至少包括RGB传感单元、处理单元及显示单元,所述方法包括:
RGB传感单元采集三色光R、G、B的强度及原色光C的强度,并作为原始数据进行存储,在终端加载操作系统运行后由驱动单元控制其与上层应用间进行数据交互;
驱动单元创建文件系统中的至少两路数据传输通道,每一路数据传输通道中至少包括虚拟设备、输入设备和事件节点;
驱动单元从所述RGB传感单元中读取所述原始数据后,经第一路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第一显示数据向应用层的上层应用输出,供上层应用按需自动调节第一显示属性;经第二路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第二显示数据向应用层的上层应用输出,供上层应用按需自动调节第二显示属性;
所述文件系统,为所述应用层的上层应用与所述操作系统间交互的接口。
上述方案中,所述方法还包括:通过表征环境光亮度的第一虚拟设备、表征环境光亮度的第一输入设备,及表征环境光亮度的第一事件节点来构建所述第一路数据传输通道。
上述方案中,所述经第一路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第一显示数据向应用层的上层应用输出,供上层应用按需自动调节第一显示属性,包括:
从所述RGB传感单元中读取所述原始数据后,调用所述第一虚拟设备,根据所述原始数据运算得到环境光的亮度数据,调用所述第一输入设备将所述环境光的亮度数据上报给所述第一事件节点,由所述第一事件节点将所述环境光的亮度数据向应用层的上层应用输出,供上层应用按需自动调节亮度。
上述方案中,所述方法还包括:通过表征环境光色温的第二虚拟设备、表征环境光色温的第二输入设备,及表征环境光色温的第二事件节点来构建所述第二路数据传输通道。
上述方案中,所述经第二路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第二显示数据向应用层的上层应用输出,供上层应用按需自动调节第二显示属性,包括:
从所述RGB传感单元中读取所述原始数据后,调用所述第二虚拟设备,根据所述原始数据运算得到环境光的色温数据,调用所述第二输入设备将所述环境光的色温数据上报给所述第二事件节点,由所述第二事件节点将所述环境光的色温数据向应用层的上层应用输出,供上层应用按需自动调节色温。
上述方案中,所述方法还包括:根据同时满足环境光亮度和环境光色温的设备工作频率要求来读取所述原始数据。
本发明实施例的终端,包括:RGB传感单元、处理单元及显示单元;其中,所述RGB传感单元,用于采集三色光R、G、B的强度及原色光C的强度,并作为原始数据进行存储,在终端加载操作系统运行后由驱动单元控制其与上层应用间进行数据交互;所述驱动单元,用于创建文件系统中的至少两路数据传输通道,每一路数据传输通道中至少包括虚拟设备、输入设备和事件节点;从所述RGB传感单元中读取所述原始数据后,经第一路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第一显示数据向应用层的上层应用输出,供上层应用按需自动调节第一显示属性;经第二路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第二显示数据向应用层的上层应用输出,供上层应用按需自动调节第二显示属性;所述文件系统,为所述应用层的上层应用与所述操作系统间交互的接口。
采用本发明实施例,对RGB传感单元的驱动进行重构,并创建包括两个虚拟设备、输入设备和事件节点的至少两路数据传输通道,以两路数据传输通道而言,第一路数据传输通道中包含一个虚拟设备、输入设备和事件节点,用于将运算得到的环境光的亮度传输给上层应用使用,第二路数据传输通道中也包含一个虚拟设备、输入设备和事件节点,用于将运算得到的环境光的色温传输给上层应用使用,除了分别传输上报,也可以将环境光的亮度和色温组合传输上报给上层应用使用,使得上层应用可以根据环境光的亮度和色温来实现显示功能的自动调节功能,从而,使智能终端更加智能化、易用性、处理效率更高。
附图说明
图1为实现本发明各个实施例的一个可选的移动终端的硬件结构示意图;
图2为如图1所示的移动终端的无线通信系统示意图;
图3为目前RGB传感器的一个硬件功能图;
图4为目前驱动程序的架构及其执行流程图;
图5为本发明实施例一的组成结构示意图;
图6为本发明实施例三的硬件结构示意图;
图7为本发明实施例四的方法流程示意图;
图8为应用本发明实施例的驱动重构方案的架构及其执行流程图;
图9为应用本发明实施例的驱动所包含的主要功能模块组成示意图;
图10为应用本发明实施例的驱动重构前的初始化流程图;
图11为应用本发明实施例的驱动重构后的初始化流程图;
图12为应用本发明实施例的关键sys节点的操作流程示意图;
图13为应用本发明实施例的update enable操作的执行流程图;
图14为应用本发明实施例的update chip enable操作的流程图;
图15为应用本发明实施例的update delay操作的流程图。
具体实施方式
现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明实施例的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。
移动终端可以以各种形式来实施。例如,本发明实施例中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、个人数字助理(PDA,PersonalDigital Assistant)、平板电脑(PAD)、便携式多媒体播放器(PMP,Portable MediaPlayer)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
图1为实现本发明各个实施例的一个可选的移动终端的硬件结构示意图。
移动终端100可以包括无线通信单元110、音频/视频(A/V)输入单元120、用户输入单元130、RGB传感单元140、驱动单元141、输出单元150、存储单元160、接口单元170、处理单元180和电源单元190等等。图1示出了具有各种组件的移动终端,但是应理解的是,并不要求实施所有示出的组件。可以替代地实施更多或更少的组件。将在下面详细描述移动终端的元件。
无线通信单元110通常包括一个或多个组件,其允许移动终端100与无线通信系统或网络之间的无线电通信。例如,无线通信单元可以包括广播接收模块111、移动通信模块112、无线互联网模块113、短程通信模块114和位置信息模块115中的至少一个。
广播接收模块111经由广播信道从外部广播管理服务器接收广播信号和/或广播相关信息。广播信道可以包括卫星信道和/或地面信道。广播管理服务器可以是生成并发送广播信号和/或广播相关信息的服务器或者接收之前生成的广播信号和/或广播相关信息并且将其发送给终端的服务器。广播信号可以包括TV广播信号、无线电广播信号、数据广播信号等等。而且,广播信号可以进一步包括与TV或无线电广播信号组合的广播信号。广播相关信息也可以经由移动通信网络提供,并且在该情况下,广播相关信息可以由移动通信模块112来接收。广播信号可以以各种形式存在,例如,其可以以数字多媒体广播(DMB,Digital Multimedia Broadcasting)的电子节目指南(EPG,Electronic Program Guide)、数字视频广播手持(DVB-H,Digital Video Broadcasting-Handheld)的电子服务指南(ESG,Electronic Service Guide)等等的形式而存在。广播接收模块111可以通过使用各种类型的广播系统接收信号广播。特别地,广播接收模块111可以通过使用诸如多媒体广播-地面(DMB-T,Digital Multimedia Broadcasting-Terrestrial)、数字多媒体广播-卫星(DMB-S,Digital Multimedia Broadcasting-Satellite)、数字视频广播手持(DVB-H),前向链路媒体(MediaFLO,Media Forward Link Only)的数据广播系统、地面数字广播综合服务(ISDB-T,Integrated Services Digital Broadcasting-Terrestrial)等等的数字广播系统接收数字广播。广播接收模块111可以被构造为适合提供广播信号的各种广播系统以及上述数字广播系统。经由广播接收模块111接收的广播信号和/或广播相关信息可以存储在存储单元160(或者其它类型的存储介质)中。
移动通信模块112将无线电信号发送到基站(例如,接入点、节点B等等)、外部终端以及服务器中的至少一个和/或从其接收无线电信号。这样的无线电信号可以包括语音通话信号、视频通话信号、或者根据文本和/或多媒体消息发送和/或接收的各种类型的数据。
无线互联网模块113支持移动终端的无线互联网接入。该模块可以内部或外部地耦接到终端。该模块所涉及的无线互联网接入技术可以包括无线局域网络(Wi-Fi,WLAN,Wireless Local Area Networks)、无线宽带(Wibro)、全球微波互联接入(Wimax)、高速下行链路分组接入(HSDPA,High Speed Downlink Packet Access)等等。
短程通信模块114是用于支持短程通信的模块。短程通信技术的一些示例包括蓝牙、射频识别(RFID,Radio Frequency Identification)、红外数据协会(IrDA,InfraredData Association)、超宽带(UWB,Ultra Wideband)、紫蜂等等。
位置信息模块115是用于检查或获取移动终端的位置信息的模块。位置信息模块的典型示例是全球定位系统(GPS,Global Positioning System)。根据当前的技术,GPS模块计算来自三个或更多卫星的距离信息和准确的时间信息并且对于计算的信息应用三角测量法,从而根据经度、纬度和高度准确地计算三维当前位置信息。当前,用于计算位置和时间信息的方法使用三颗卫星并且通过使用另外的一颗卫星校正计算出的位置和时间信息的误差。此外,GPS模块能够通过实时地连续计算当前位置信息来计算速度信息。
A/V输入单元120用于接收音频或视频信号。A/V输入单元120可以包括相机121和麦克风122,相机121对在视频捕获模式或图像捕获模式中由图像捕获装置获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元151上。经相机121处理后的图像帧可以存储在存储单元160(或其它存储介质)中或者经由无线通信单元110进行发送,可以根据移动终端的构造提供两个或更多相机121。麦克风122可以在电话通话模式、记录模式、语音识别模式等等运行模式中经由麦克风接收声音(音频数据),并且能够将这样的声音处理为音频数据。处理后的音频(语音)数据可以在电话通话模式的情况下转换为可经由移动通信模块112发送到移动通信基站的格式输出。麦克风122可以实施各种类型的噪声消除(或抑制)算法以消除(或抑制)在接收和发送音频信号的过程中产生的噪声或者干扰。
用户输入单元130可以根据用户输入的命令生成键输入数据以控制移动终端的各种操作。用户输入单元130允许用户输入各种类型的信息,并且可以包括键盘、锅仔片、触摸板(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆等等。特别地,当触摸板以层的形式叠加在显示单元151上时,可以形成触摸屏。
RGB传感单元140用于采集三色光R、G、B的强度及原色光C的强度,并作为原始数据进行存储,在终端加载操作系统运行后由驱动单元控制其与上层应用间进行数据交互;驱动单元141用于创建sys文件系统中的至少两路数据传输通道,每一路数据传输通道中至少包括虚拟设备、输入设备和事件节点;从所述RGB传感单元中读取所述原始数据后,经第一路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第一显示数据向应用层的上层应用输出,供上层应用按需自动调节第一显示属性;经第二路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第二显示数据向应用层的上层应用输出,供上层应用按需自动调节第二显示属性。其中,所述sys文件系统,为所述应用层的上层应用与所述操作系统间交互的接口。
接口单元170用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。识别模块可以是存储用于验证用户使用移动终端100的各种信息并且可以包括用户识别模块(UIM,User Identify Module)、客户识别模块(SIM,Subscriber Identity Module)、通用客户识别模块(USIM,Universal SubscriberIdentity Module)等等。另外,具有识别模块的装置(下面称为"识别装置")可以采取智能卡的形式,因此,识别装置可以经由端口或其它连接装置与移动终端100连接。接口单元170可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端和外部装置之间传输数据。
另外,当移动终端100与外部底座连接时,接口单元170可以用作允许通过其将电力从底座提供到移动终端100的路径或者可以用作允许从底座输入的各种命令信号通过其传输到移动终端的路径。从底座输入的各种命令信号或电力可以用作用于识别移动终端是否准确地安装在底座上的信号。输出单元150被构造为以视觉、音频和/或触觉方式提供输出信号(例如,音频信号、视频信号、振动信号等等)。输出单元150可以包括显示单元151、音频输出模块152等等。
显示单元151可以显示在移动终端100中处理的信息。例如,当移动终端100处于电话通话模式时,显示单元151可以显示与通话或其它通信(例如,文本消息收发、多媒体文件下载等等)相关的用户界面(UI,User Interface)或图形用户界面(GUI,Graphical UserInterface)。当移动终端100处于视频通话模式或者图像捕获模式时,显示单元151可以显示捕获的图像和/或接收的图像、示出视频或图像以及相关功能的UI或GUI等等。
同时,当显示单元151和触摸板以层的形式彼此叠加以形成触摸屏时,显示单元151可以用作输入装置和输出装置。显示单元151可以包括液晶显示器(LCD,LiquidCrystal Display)、薄膜晶体管LCD(TFT-LCD,Thin Film Transistor-LCD)、有机发光二极管(OLED,Organic Light-Emitting Diode)显示器、柔性显示器、三维(3D)显示器等等中的至少一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明显示器,典型的透明显示器可以例如为透明有机发光二极管(TOLED)显示器等等。根据特定想要的实施方式,移动终端100可以包括两个或更多显示单元(或其它显示装置),例如,移动终端可以包括外部显示单元(未示出)和内部显示单元(未示出)。触摸屏可用于检测触摸输入压力以及触摸输入位置和触摸输入面积。
音频输出模块152可以在移动终端处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将无线通信单元110接收的或者在存储单元160中存储的音频数据转换音频信号并且输出为声音。而且,音频输出模块152可以提供与移动终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出模块152可以包括扬声器、蜂鸣器等等。
存储单元160可以存储由处理单元180执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频等等)。而且,存储单元160可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的数据。
存储单元160可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等等)、随机访问存储器(RAM,Random AccessMemory)、静态随机访问存储器(SRAM,Static Random Access Memory)、只读存储器(ROM,Read Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically ErasableProgrammable Read Only Memory)、可编程只读存储器(PROM,Programmable Read OnlyMemory)、磁性存储器、磁盘、光盘等等。而且,移动终端100可以与通过网络连接执行存储单元160的存储功能的网络存储装置协作。
处理单元180通常控制移动终端的总体操作。例如,处理单元180执行与语音通话、数据通信、视频通话等等相关的控制和处理。又如,处理单元180可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。
电源单元190在处理单元180的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。
这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(ASIC,Application Specific Integrated Circuit)、数字信号处理器(DSP,DigitalSignal Processing)、数字信号处理装置(DSPD,Digital Signal Processing Device)、可编程逻辑装置(PLD,Programmable Logic Device)、现场可编程门阵列(FPGA,FieldProgrammable Gate Array)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在处理单元180中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储单元160中并且由处理单元180执行。
至此,己经按照其功能描述了移动终端。下面,为了简要起见,将描述诸如折叠型、直板型、摆动型、滑动型移动终端等等的各种类型的移动终端中的滑动型移动终端作为示例。因此,本发明能够应用于任何类型的移动终端,并且不限于滑动型移动终端。
如图1中所示的移动终端100可以被构造为利用经由帧或分组发送数据的诸如有线和无线通信系统以及基于卫星的通信系统来操作。
现在将参考图2描述其中根据本发明实施例的移动终端能够操作的通信系统。
这样的通信系统可以使用不同的空中接口和/或物理层。例如,由通信系统使用的空中接口包括例如频分多址(FDMA,Frequency Division Multiple Access)、时分多址(TDMA,Time Division Multiple Access)、码分多址(CDMA,Code Division MultipleAccess)和通用移动通信系统(UMTS,Universal Mobile Telecommunications System)(特别地,长期演进(LTE,Long Term Evolution))、全球移动通信系统(GSM)等等。作为非限制性示例,下面的描述涉及CDMA通信系统,但是这样的教导同样适用于其它类型的系统。
参考图2,CDMA无线通信系统可以包括多个移动终端100、多个基站(BS,BaseStation)270、基站控制器(BSC,Base Station Controller)275和移动交换中心(MSC,Mobile Switching Center)280。MSC280被构造为与公共电话交换网络(PSTN,PublicSwitched Telephone Network)290形成接口。MSC280还被构造为与可以经由回程线路耦接到基站270的BSC275形成接口。回程线路可以根据若干己知的接口中的任一种来构造,所述接口包括例如E1/T1、ATM、IP、PPP、帧中继、HDSL、ADSL或xDSL。将理解的是,如图2中所示的系统可以包括多个BSC275。
每个BS270可以服务一个或多个分区(或区域),由多向天线或指向特定方向的天线覆盖的每个分区放射状地远离BS270。或者,每个分区可以由用于分集接收的两个或更多天线覆盖。每个BS270可以被构造为支持多个频率分配,并且每个频率分配具有特定频谱(例如,1.25MHz,5MHz等等)。
分区与频率分配的交叉可以被称为CDMA信道。BS270也可以被称为基站收发器子系统(BTS,Base Transceiver Station)或者其它等效术语。在这样的情况下,术语“基站”可以用于笼统地表示单个BSC275和至少一个BS270。基站也可以被称为“蜂窝站”。或者,特定BS270的各分区可以被称为多个蜂窝站。
如图2中所示,广播发射器(BT,Broadcast Transmitter)295将广播信号发送给在系统内操作的移动终端100。如图1中所示的广播接收模块111被设置在移动终端100处以接收由BT295发送的广播信号。在图2中,示出了几个卫星300,例如可以采用全球定位系统(GPS)卫星300。卫星300帮助定位多个移动终端100中的至少一个。
在图2中,描绘了多个卫星300,但是理解的是,可以利用任何数目的卫星获得有用的定位信息。如图1中所示的位置信息模块115(如GPS模块)通常被构造为与卫星300配合以获得想要的定位信息。替代GPS跟踪技术或者在GPS跟踪技术之外,可以使用可以跟踪移动终端的位置的其它技术。另外,至少一个GPS卫星300可以选择性地或者额外地处理卫星DMB传输。
作为无线通信系统的一个典型操作,BS270接收来自各种移动终端100的反向链路信号。移动终端100通常参与通话、消息收发和其它类型的通信。特定基站270接收的每个反向链路信号被在特定BS 270内进行处理。获得的数据被转发给相关的BSC275。BSC275提供通话资源分配和包括BS270之间的软切换过程的协调的移动管理功能。BSC275还将接收到的数据路由到MSC280,其提供用于与PSTN290形成接口的额外的路由服务。类似地,PSTN290与MSC280形成接口,MSC280与BSC275形成接口,并且BSC275相应地控制BS 270以将正向链路信号发送到移动终端100。
移动终端中无线通信单元110的移动通信模块112基于移动终端内置的接入移动通信网络(如2G/3G/4G等移动通信网络)的必要数据(包括用户识别信息和鉴权信息)接入移动通信网络为移动终端用户的网页浏览、网络多媒体播放等业务传输移动通信数据(包括上行的移动通信数据和下行的移动通信数据)。
无线通信单元110的无线互联网模块113通过运行无线热点的相关协议功能而实现无线热点的功能,无线热点支持多个移动终端(移动终端之外的任意移动终端)接入,通过复用移动通信模块112与移动通信网络之间的移动通信连接为移动终端用户的网页浏览、网络多媒体播放等业务传输移动通信数据(包括上行的移动通信数据和下行的移动通信数据),由于移动终端实质上是复用移动终端与通信网络之间的移动通信连接传输移动通信数据的,因此移动终端消耗的移动通信数据的流量由通信网络侧的计费实体计入移动终端的通信资费,从而消耗移动终端签约使用的通信资费中包括的移动通信数据的数据流量。
基于上述移动终端100硬件结构以及通信系统,提出本发明方法各个实施例。
随着互联网技术和智能终端技术的发展,越来越多的服务可以通过智能终端来实现,智能终端中可以设置多种传感器来对用户操作及外部环境进行感应。
以传感器具体为RGB传感器为例进行说明如下:
采用本发明实施例的新型RGB传感器,可以使得电子设备的显示调节更为智能化,能根据环境光的亮度、色温等自动调节显示屏的亮度、色温,显示效果更贴近人眼对环境的感知。由于在实际应用中,目前环境光亮度和色温的调整都是分开调节的,因此非常繁琐和不方便。如终端为智能手机或智能电视的LCD显示屏的亮度和色调调节、数码相机的亮度和白平衡调节。对用户而言,当光源不变,只是亮度变化时,无需调整色调,只需调整亮度,只有当光源变化时,色温才可能需要调节(例如在黄色的钨丝灯光下和白色的白炽灯管下,就需要调整色温)。可见:目前这些电子设备主要都还是手动调节的,比较繁琐,在使用本发明实施例的RGB传感器后,可根据环境光的亮度和色温,实现自动调节,使用这些电子设备将会变得更加智能化、更加简洁。
现有技术中,目前RGB传感器的一个硬件功能图如图3所示,图3中,目前RGB传感器一般有4个通道,分别是R/G/B/C,R为RED的简写,G为GREEN的简写,B为BLUE的简写,C为CLEAR的简写,分别可以测量环境中R、G、B三色光的强度和原色光C的强度。通过算法,根据RGBC的强度可以计算出环境光的亮度和色温。
基于I2C总线和linux内核的传感器驱动,一般单个硬件模块对应单个的input设备,所以传感器厂商提供的RGB sensor驱动一般也是对应一个input设备。在此类型的驱动程序中,环境光亮度和色温作为同一个输入(input)设备的两个数据分量上传到事件节点,供应用层的上层应用使用,驱动程序的架构及其执行流程如图4所示。由于目前大多数手机设备厂商并没有使用色温数据,色温数据也并没有上报,RGB传感器仅作为一个环境光亮度传感器使用,功能并未得到充分利用。
图4中,sys代表的是linux操作系统的sys文件系统,是用户应用程序与内核交互的接口。通过读写sys文件系统下/sys/class/目录下的设备device0对应的节点如使能(enable)、延迟(delay),可以实现对设备开关状态、工作参数的配置与查看。通过读取/sys/class/input/目录下事件节点event0的内容,可以获取设备上报给应用程序的数值。而设备的驱动程序读取RGB传感器采集的RGBC原始数值,通过算法运算,可以得到环境光的亮度和色温值,通过input设备input_dev0上报到事件节点event0。
在目前RGB传感器的驱动程序中,只在/sys/class/目录下生成一个单一设备,只能对芯片的打开关闭状态和工作参数等做统一设置,在/sys/class/input/目录下生成单个事件节点,环境光亮度和色温作为这单个事件的两个数据被input设备上报,但类型并不相同。
以基于Android的电子设备为例进行描述,操作系统(如目前的linux系统)层面除了底层使用linux内核外,框架(Framework)层或称为应用层规定了很多应用层编程规范和接口,同一个传感器设备只能上报相同类型的多个数据分量,应用层还要能够对任何一个传感器独立的设定工作频率、独立的打开关闭。要想使用目前RGB传感器同时向上层提供环境光和色温的数据,显然,目前的驱动方案显然是不符合Android Framework规范要求的,所以很有必要对目前的RGB传感器驱动程序进行重构设计。
采用本发明实施例的新型RGB传感器,通过对目前RGB传感器的驱动程序进行重构设计来实现多路数据的分别上报及响应。具体的,RGB传感单元(以芯片形式存在时,将该RGB传感单元的功能集成在芯片上,此时也可以称为RGB传感器),RGB传感单元用于采集三色光R、G、B的强度及原色光C的强度,并作为原始数据进行存储,在终端加载操作系统运行后由驱动单元控制其与上层应用间进行数据交互,驱动单元,用于创建sys文件系统中的至少两路数据传输通道,从所述RGB传感单元中读取所述原始数据后,经第一路和/或第二路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第一显示数据和/或第二显示数据向应用层的上层应用输出,供上层应用按需自动调节第一显示属性和/或第二显示数据。
实施例一:
本发明实施例的终端,如图5所示,包括:RGB传感单元31、处理单元32及显示单元33;其中,RGB传感单元31,用于采集三色光R、G、B的强度及原色光C的强度,并作为原始数据进行存储,在终端加载操作系统运行后由驱动单元34控制其与上层应用间进行数据交互。驱动单元34,用于创建sys文件系统中的至少两路数据传输通道,每一路数据传输通道中至少包括虚拟设备、输入设备和事件节点;从所述RGB传感单元中读取所述原始数据后,经第一路数据传输通道中的虚拟设备(如,用于表征环境光亮度的第一虚拟设备light_device)、输入设备(用于表征环境光亮度的第一输入设备input_light)和事件节点(如第一事件节点event1)的处理,将根据所述原始数据运算得到的第一显示数据(如环境光亮度)向应用层的上层应用输出,供上层应用按需自动调节第一显示属性(如调节显示亮度);经第二路数据传输通道中的虚拟设备(如,用于表征环境光色温的第二虚拟设备cct_device)、输入设备(用于表征环境光亮度的第二输入设备input_cct)和事件节点(如第二事件节点event2)的处理,将根据所述原始数据运算得到的第二显示数据(如环境光色温)向应用层的上层应用输出,供上层应用按需自动调节第二显示属性(如调节显示色温)。这里需要指出的是,图5中的sys指:sys文件系统,sys文件系统为所述应用层的上层应用与所述操作系统间交互的接口。
采用本发明实施例,对RGB传感单元的驱动进行重构,并创建包括两个虚拟设备、输入设备和事件节点的至少两路数据传输通道,以两路数据传输通道而言,第一路数据传输通道中包含一个虚拟设备、输入设备和事件节点,用于将运算得到的环境光的亮度传输给上层应用使用,第二路数据传输通道中也包含一个虚拟设备、输入设备和事件节点,用于将运算得到的环境光的色温传输给上层应用使用,除了分别传输上报,也可以将环境光的亮度和色温组合传输上报给上层应用使用,使得上层应用可以根据环境光的亮度和色温来实现显示功能的自动调节功能,从而,使智能终端更加智能化、易用性、处理效率更高。
实施例二:
本发明实施例的终端,包括:RGB传感单元、处理单元及显示单元;其中,RGB传感单元用于采集三色光R、G、B的强度及原色光C的强度,并作为原始数据进行存储,在终端加载操作系统运行后由驱动单元控制其与上层应用间进行数据交互。驱动单元用于创建sys文件系统中的用于通过表征环境光亮度的第一虚拟设备light_device、表征环境光亮度的第一输入设备input_light,及表征环境光亮度的第一事件节点event1,至少通过第一虚拟设备light_device、第一输入设备input_light、第一事件节点event1来构建出第一路数据传输通道。驱动单元从所述RGB传感单元中读取所述原始数据后,调用所述第一虚拟设备light_device,根据所述原始数据运算得到环境光的亮度数据,调用所述第一输入设备input_light将所述环境光的亮度数据上报给所述第一事件节点event1,由所述第一事件节点event1将所述环境光的亮度数据向应用层的上层应用输出,供上层应用按需自动调节亮度。
以及,驱动单元还用于创建sys文件系统中的用于表征环境光色温的第二虚拟设备cct_device、表征环境光色温的第二输入设备input_cct,及表征环境光色温的第二事件节点event2,至少通过第二虚拟设备cct_device、第二输入设备input_cct、第二事件节点event2来构建出第二路数据传输通道。驱动单元从所述RGB传感单元中读取所述原始数据后,调用所述第二虚拟设备cct_device,根据所述原始数据运算得到环境光的色温数据,调用所述第二输入设备input_cct将所述环境光的色温数据上报给所述第二事件节点event2,由所述第二事件节点event2将所述环境光的色温数据向应用层的上层应用输出,供上层应用按需自动调节色温。
这里需要指出的是,实施例二以调节环境光亮度和环境光色温这2个显示参数为例进行说明,对应如图5所示,驱动单元的具体实现中包含两路数据传输通道,在实际应用中,随着RGB传感器功能的扩展,还可以对除环境光亮度和环境光色温之前其他的显示参数进行自动调节。
在本发明实施例一实施方式中,所述驱动单元,还用于根据同时满足环境光亮度和环境光色温的设备工作频率要求来读取所述原始数据。
实施例三:
本发明实施例的终端,所述终端包括:存储单元和处理器;其中,所述存储单元中包含计算机可执行代码,用于实现上述实施例的识别信息的信息相互转换方法;所述处理器可以通过存储单元中包含的计算机可执行代码来实现识别信息的信息相互转换方案。
终端可以为PC这种电子设备,还可以为如PAD,平板电脑,手提电脑这种便携电子设备、还可以为如手机这种智能移动终端,不限于这里的描述。其中,对于用于所述处理器而言,在执行处理时,可以采用微处理器、中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital Singnal Processor)或可编程逻辑阵列(FPGA,Field-Programmable Gate Array)实现。
该终端作为硬件实体的一个示例如图6所示。所述装置包括处理器41、存储介质42以及至少一个外部通信接口43;所述处理器41、存储介质42以及至少一个外部通信接口43均通过总线44连接。
这里需要指出的是:以下涉及方法的描述,与上述终端描述是类似的,同终端的有益效果描述,不做赘述。对于本发明终端实施例中未披露的技术细节,请参照本发明终端实施例的描述。
实施例四:
本发明实施例的一种基于虚拟设备的三基色传感器驱动重构方法,如图7所示,所述方法应用于终端,所述终端至少包括RGB传感单元、处理单元及显示单元,所述方法包括:
步骤101、RGB传感单元采集三色光R、G、B的强度及原色光C的强度,并作为原始数据进行存储,在终端加载操作系统运行后由驱动单元控制其与上层应用间进行数据交互。
步骤102、驱动单元创建sys文件系统中的至少两路数据传输通道,每一路数据传输通道中至少包括虚拟设备、输入设备和事件节点。
这里,所述sys文件系统,为所述应用层的上层应用与所述操作系统间交互的接口。
步骤103、驱动单元从所述RGB传感单元中读取所述原始数据后,经第一路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第一显示数据向应用层的上层应用输出,供上层应用按需自动调节第一显示属性。
步骤104、驱动单元从所述RGB传感单元中读取所述原始数据后,经第二路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第二显示数据向应用层的上层应用输出,供上层应用按需自动调节第二显示属性。
采用本发明实施例,对RGB传感单元的驱动进行重构,并创建包括两个虚拟设备、输入设备和事件节点的至少两路数据传输通道,以两路数据传输通道而言,第一路数据传输通道中包含一个虚拟设备、输入设备和事件节点,用于将运算得到的环境光的亮度传输给上层应用使用,第二路数据传输通道中也包含一个虚拟设备、输入设备和事件节点,用于将运算得到的环境光的色温传输给上层应用使用,除了分别传输上报,也可以将环境光的亮度和色温组合传输上报给上层应用使用,使得上层应用可以根据环境光的亮度和色温来实现显示功能的自动调节功能,从而,使智能终端更加智能化、易用性、处理效率更高。
在本发明实施例一实施方式中,所述方法还包括:通过表征环境光亮度的第一虚拟设备light_device、表征环境光亮度的第一输入设备input_light,及表征环境光亮度的第一事件节点event1来构建所述第一路数据传输通道。
在本发明实施例一实施方式中,所述经第一路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第一显示数据向应用层的上层应用输出,供上层应用按需自动调节第一显示属性,包括:从所述RGB传感单元中读取所述原始数据后,调用所述第一虚拟设备light_device,根据所述原始数据运算得到环境光的亮度数据,调用所述第一输入设备input_light将所述环境光的亮度数据上报给所述第一事件节点event1,由所述第一事件节点event1将所述环境光的亮度数据向应用层的上层应用输出,供上层应用按需自动调节亮度。
在本发明实施例一实施方式中,所述方法还包括:通过表征环境光色温的第二虚拟设备cct_device、表征环境光色温的第二输入设备input_cct,及表征环境光色温的第二事件节点event2来构建所述第二路数据传输通道。
在本发明实施例一实施方式中,所述经第二路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第二显示数据向应用层的上层应用输出,供上层应用按需自动调节第二显示属性,包括:从所述RGB传感单元中读取所述原始数据后,调用所述第二虚拟设备cct_device,根据所述原始数据运算得到环境光的色温数据,调用所述第二输入设备input_cct将所述环境光的色温数据上报给所述第二事件节点event2,由所述第二事件节点event2将所述环境光的色温数据向应用层的上层应用输出,供上层应用按需自动调节色温。
在本发明实施例一实施方式中,所述方法还包括:根据同时满足环境光亮度和环境光色温的设备工作频率要求来读取所述原始数据。
实施例五:
本发明实施例的一种基于虚拟设备的三基色传感器驱动重构的亮度调节方法,包括:
步骤201、RGB传感单元采集三色光R、G、B的强度及原色光C的强度,并作为原始数据进行存储,在终端加载操作系统运行后由驱动单元控制其与上层应用间进行数据交互。
步骤202、开启读书软件或视频软件,会采集外界环境光,通过RGB传感单元检测出外界环境光的亮度发送变化,判断出当前所处环境的环境光亮度大于预设的亮度舒适值,则发出亮度调节指令给驱动单元。
这里,如用户从地铁中走到室外,室外的阳光照射比较强烈和刺眼,大于预设的亮度舒适值,则需要自动将亮度调低,以适应用户需求。
步骤203、驱动单元从所述RGB传感单元中读取所述原始数据后,经第一路数据传输通道,调用第一虚拟设备light_device,根据原始数据运算得到环境光的亮度数据,调用第一输入设备input_light将环境光的亮度数据上报给第一事件节点event1,由第一事件节点event1将所述环境光的亮度数据向应用层的上层应用输出,供上层应用(读书软件或视频软件)按需自动调节亮度。
步骤204、将需要自动调节亮度的提示信息展示给上层应用(如读书软件或视频软件),用户根据需要选择一种亮度显示模式,对当前亮度进行调节。
实施例六:
本发明实施例的一种基于虚拟设备的三基色传感器驱动重构的色温调节方法,包括:
步骤301、RGB传感单元采集三色光R、G、B的强度及原色光C的强度,并作为原始数据进行存储,在终端加载操作系统运行后由驱动单元控制其与上层应用间进行数据交互。
步骤302、开启摄影/拍照应用,对目标对象进行摄影/拍照时,会采集外界环境光,通过RGB传感单元检测出外界环境光的色温发送变化,判断出当前所处环境的环境光色温小于预设的色温舒适值,则发出色温调节指令给驱动单元。
这里,色温是指当黑体(绝对不反射其他光的物体)的温度变化时,它发出的光便会因温度高低而变成不同的“颜色”。通常情况下,黑体的温度偏低时,发出的光会偏红;当温度偏高时,发出的光会偏蓝或偏紫。故较低的色温会显得暖和一些(偏红),较高的色温则显得比较冷艳(偏蓝)。因此,色温是人眼对发光体(如显示器)或白色反光体的感觉。色温可根据个人喜好而定。一般来说,东亚人喜欢的色温值在9300K左右,欧美一些国家的人则喜欢比较低的色温值(5600K或6500K),所述预设的色温舒适值的一个实例可以包括:5600K或6500K或9300K,以此作为参照来判断当前所处环境的环境光色温是否符合预设的色温舒适值即可。
步骤303、驱动单元从所述RGB传感单元中读取所述原始数据后,经第二路数据传输通道,调用所述第二虚拟设备cct_device,根据所述原始数据运算得到环境光的色温数据,调用所述第二输入设备input_cct将所述环境光的色温数据上报给所述第二事件节点event2,由所述第二事件节点event2将所述环境光的色温数据向应用层的上层应用输出,供上层应用(摄影/拍照应用)按需自动调节色温。
步骤304、将需要自动调节色温的提示信息展示给上层应用(如摄影/拍照应用),用户根据需要选择一种色温显示模式,对当前色温进行调节。
实施例七:
本发明实施例的一种基于虚拟设备的三基色传感器驱动重构的亮度和/或色温调节方法,包括:
步骤401、RGB传感单元采集三色光R、G、B的强度及原色光C的强度,并作为原始数据进行存储,在终端加载操作系统运行后由驱动单元控制其与上层应用间进行数据交互。
步骤402、用户设置早,中,晚采用不同的亮度和/或色温策略,根据一天的各个不同时间段(早,中,晚)会不断采集外界环境光,通过RGB传感单元检测出外界环境光的亮度和/或色温发送变化,判断出当前所处环境的环境光亮度和/或色温与预设的亮度和/或色温舒适值不符合时,则发出亮度和/或色温调节指令给驱动单元。
这里,如正午的阳光是一天中最强烈的,环境光最强,如果用户在室内还好,如果用户在室外,那么用户无论开启哪个应用使用时,环境光照射在终端屏幕上,都会产生屏幕反光和图像显示(亮度和/或色温)的问题,为了解决这个问题,就需要对亮度和/或色温进行自动调节,使得用户可以在一个保持眼睛舒适度的情况下使用终端及其应用。采用本发明实施例,通过后续步骤403-405进行亮度和/或色温的自动调节。
步骤403、驱动单元从所述RGB传感单元中读取所述原始数据后,经第一路数据传输通道,调用第一虚拟设备light_device,根据原始数据运算得到环境光的亮度数据,调用第一输入设备input_light将环境光的亮度数据上报给第一事件节点event1,由第一事件节点event1将所述环境光的亮度数据向应用层的上层应用输出,供上层应用(如读书软件或视频软件)按需自动调节亮度。
步骤404、驱动单元从所述RGB传感单元中读取所述原始数据后,经第二路数据传输通道,调用所述第二虚拟设备cct_device,根据所述原始数据运算得到环境光的色温数据,调用所述第二输入设备input_cct将所述环境光的色温数据上报给所述第二事件节点event2,由所述第二事件节点event2将所述环境光的色温数据向应用层的上层应用输出,供上层应用(如摄影/拍照应用)按需自动调节色温。
步骤405、终端按需自动调节亮度和/或色温。
这里,也可以将需要自动调节亮度的提示信息展示给上层应用(如读书软件或视频软件),由用户根据需要选择一种亮度显示模式,对当前亮度进行调节。
和/或,将需要自动调节色温的提示信息展示给上层应用(如摄影/拍照应用),由用户根据需要选择一种色温显示模式,对当前色温进行调节。
以一个现实应用场景为例对本发明实施例阐述如下:
采用本发明实施例,可以合理的利用虚拟device和input设备、工作队列、互斥锁机制重构RGB sensor驱动,在RGB Sensor驱动层模拟两个device和input设备,解决两个设备对全局变量互斥访问、两个设备独立设置工作参数、独立上报数据的问题,以一块硬件芯片灵活的向Framework层提供符合规范要求的两个虚拟设备数据和控制接口。本发明实施例的终端,应至少装配如下器件:RGB传感器、处理器、显示屏。下面,对驱动控制该RGB传感器的驱动单元的重构方案进行具体描述,该驱动单元是通过驱动程序实现的。
如图8所示为驱动单元重构方案的架构及其执行流程,包括:在/sys/class/目录下创建两个device,一个light代表环境光亮度,一个cct代表环境光色温,它们分别有各自独立的enable、delay节点,但这些节点并不是直接控制硬件芯片(RGB传感器)的,它们直接控制的是对应设备的工作队列的工作状态和工作频率,而芯片的工作状态和工作频率有两个虚拟设备共同的工作状态和频率决定。
在/sys/class/input/目录下,创建两个事件节点event1、event2,分别存储的是环境光输入设备input_light和环境光色温输入设备input_cct上报的数值。而input_light利用芯片提供的原始RGBC数据,通过算法处理得到环境光亮度值。input_cct利用芯片提供的原始RGBC数据,通过另一种算法处理得到环境光色温值。
如图9所示,是驱动单元的主要功能模块,至少包括如下模块:初始化与去初始化模块、休眠与唤醒模块、sys节点操作模块。图8为Linux设备驱动程序的标准功能模块图。其中,初始化与去初始化模块,用于负责在开机过程初始化芯片电源、写控制寄存器,创建工作队列、初始化工作结构体,创建sys系统的device和input device,在关机过程中重置芯片工作状态,关闭电源,释放初始化中申请的资源,销毁初始化中创建的对象。休眠与唤醒模块,用于负责在系统休眠和唤醒时切换设备的工作状态,如休眠时将芯片切换到低功耗状态,唤醒时重新将芯片切换到正常工作状态。Sys节点操作模块用于操作sys文件系统,而sys文件系统是用户应用程序与内核交互的接口,在上文中已经介绍过。为了彰显重构后的驱动程序与一般通用的RGB传感器驱动程序的区别,现在通过比较以上三个主要模块来做出说明。
图10-11为驱动程序重构前后的初始化流程比较示意图,其中,图10为驱动程序重构前的初始化流程,图11为驱动程序重构后的初始化流程。如图10所示,在重构前,驱动程序的初始化部分,执行芯片硬件初始化,创建单个工作队列、单个工作任务函数、单个输入设备以及单套sys文件系统节点。其中,芯片工作时,通过单个的工作队列调度单独的工作任务函数执行,获取芯片的原始数据,通过算法计算出环境光亮度和色温,然后通过单一的输入设备向应用层输出环境光亮度和色温。应用层通过单套的sys文件系统统一控制芯片的工作状态。如图11所示,在重构后,驱动程序的初始化部分,先执行硬件初始化操作,然后创建3个工作队列、3个工作任务函数、2个输入设备以及两套sys文件系统节点。
其中,工作队列1负责调度工作任务函数1,按照能同时满足环境光亮度设备和环境光色温设备工作频率要求的更高频率获取芯片的原始数据RGBC。
工作队列2则负责按照环境光亮度设备要求的频率调度工作任务函数2,根据工作任务函数获取的原始RGBC数据利用算法1,计算得到环境光的亮度值。然后通过输入设备1,将环境光亮度值上报到event1,供应用层使用。而应用层则通过sys系统节点1来控制环境光亮度设备的工作状态,进而调整控制芯片的工作状态。
工作队列3则负责按照环境光色温设备要求的频率调度工作任务函数3,根据工作任务函数获取的原始RGBC数据利用算法2,计算得到环境光的色温值。然后通过输入设备2,将环境光亮度值上报到event2,供应用层使用。而应用层则通过sys系统节点2来控制环境光色温设备的工作状态,进而调整控制芯片的工作状态。
由于驱动程序采用的是查询的方式工作,因而在休眠与唤醒时,无需因功耗需求而更改变换芯片中断引脚的状态,只需要更改工作队列的工作状态即可。驱动程序休眠唤醒这一块在重构前后的变化并不大,除了需要操作的工作队列由1个变为3个并且有一定的变更顺序外,其余的操作基本相同,就不做详细说明。
sys文件系统的节点操作涉及到控制虚拟设备和芯片的工作状态,如图12所示为关键sys节点的操作。其中,L_enable、C_enable分别代表环境光亮度和色温的enable节点,L_delay和C_delay分别代表环境光亮度和色温的delay节点。如图13所示为update enable操作的执行流程图,其中,current、other分别代表当前的虚拟传感器设备和对应的另一个虚拟传感器设备的结构体指针。
结构体类型如下:
struct virtual_sensor{
bool enable;
unsigned int delay;
struct workqueue_struct*workqueue;
struct delayed_work work;
struct device*dev;
struct input_dev*input_dev;
};
对图13所示的update enable操作的执行流程图说明如下:
update_enable为应用层写enable节点后,Linux内核的主要执行流程,目的是设置并开启传感器。其中enable为应用层写入enable节点的值,程序会根据enable的值执行不同的流程。current->enable为当前虚拟传感器当前的开关状态,值true代表是打开的,false代表关闭的,在初始化的时候默认为false。other->enable表示另一虚拟传感器设备当前的开关状态,值true代表是打开的,false代表关闭的,在初始化的时候默认为false。
具体的,1)当enable的值为非0时,判定为上层需要打开当前虚拟传感器,执行图13右侧的流程。如果current->enable为true,说明当前虚拟传感器已经是打开的,无需进行任何实质的操作。只有当current->enable为false时,才会先将current->enable设置为true。然后通过判断两个虚拟传感器的当前工作状态来决定是否需要打开芯片的工作开关。只有当另一设备的当前状态处于false,而当前设备的当前状态处于true,才会执行芯片的使能函数update_chip_enable打开芯片的工作开关,然后启动当前设备的工作队列current->workqueue。如果other->enable为true,说明另一个设备已经处于打开状态,芯片已经在正常工作。那么开启当前虚拟设备的时候,无需操作芯片的工作开关,只需启动当前设备的工作队列current->workqueue即可。
2)当enable的值为0时,判定为上层需要关闭当前虚拟传感器,执行图13左侧的流程。如果current->enable为false,说明当前虚拟传感器已经是关闭的,无需进行任何实质的操作。只有当current->enable为true时,才会先停止当前设备的工作队列current->workqueue,将current->enable设置为false,将current->delay恢复为默认值1000ms,并调用update_delay函数更新芯片的真实工作时延。最后通过判断两个虚拟传感器的当前工作状态来决定是否需要关闭芯片的工作开关。只有当两个虚拟设备的当前状态都处于false,才会执行芯片的使能函数update_chip_enable关闭芯片的工作开关。
3)对于上述的1)和2)两个操作流程,由于在判断两个虚拟设备的当前工作状态和开关芯片的工作开关时,有可能涉及到多线程对两个不同虚拟设备和芯片同时操作,如果共用的数据不同步,会导致上述流程混乱,引起不必要的逻辑问题。所有在对改变current->enable到执行update_chip_enable的过程加互斥锁,以确保该执行过程对多线程安全。
如图14所示为update chip enable操作的流程图,其中,chip为代表芯片数据结构体的指针,除了包含一般驱动程序需要使用的数据成员外,还添加了几个新定义的成员用于重构的驱动程序。结构体类型如下:
struct chip_data{
struct virtual_sensor*light;
struct virtual_sensor*cct;
unsigned int global_delay;
struct mutex chip_lock;
};
对图14所示的update chip enable操作的流程图说明如下:
update_chip_enable为芯片的使能函数,原型为void update_chip_enable(boolflag),其中flag为操作芯片开关的标志变量。
当flag为true时,执行左边的初始化流程,打开芯片的电源,并执行i2c操作,初始化芯片的工作寄存器,最后开启芯片的工作队列。
当flag为false时,执行右边的去初始化流程,先停止芯片的工作队列,然后执行i2c操作,去除芯片的初始化寄存器值,最后关闭芯片的电源。
如图15所示为update delay操作的流程图,由于应用层使用环境光亮度值时对上报亮度值的频率有要求,无法以中断的方式满足应用层的需求,而以前的光感和目前当作光感使用的RGB sensor驱动都是采用查询的方式编写的。
相比于现有的RGB sensor驱动程序,重构后的程序,为了实现亮度和色温两个虚拟设备独立控制和获取数据,在涉及到硬件寄存器和全局变量的处理时,会使用互斥锁机制,并且在数据处理上增加两个工作队列,这会在一定程度上增加CPU的负荷。但从目前主流智能手机的CPU硬件和应用对环境光亮度值获取频率的要求1~3HZ来看,重构后的驱动程序在性能上能满足应用的需求。
对图15所示的update delay操作的流程图说明如下:
update_delay为硬件芯片的工作延时更新函数。在应用层写sys系统delay节点或关闭单个虚拟设备的时候,会执行该函数。由于只有一块硬件芯片,而上层有两个虚拟传感器,为了满足应用层对两个虚拟传感器工作频率的独立控制,将实际硬件的工作频率设置为两个虚拟传感器工作频率的最小公倍数。工作时延为工作频率的倒数,所以取当前设备的工作时延current->delay和另一个设备的工作时延other->delay的最大公约数,作为芯片的工作时延chip->delay。采用两个虚拟设备和芯片,利用各自的工作时延调度各自的工作队列,达到应用层独立控制工作频率的目的。
综上所述,采用本发明实施例,突破了目前RGB传感器驱动程序的局限,使RGB传感器的驱动程序满足Android Framework接口规范,可以独立、灵活的向应用层提供环境光和色温数据,充分利用RGB sensor的功能特性,为LCD提供更加人性化的自动调节显示效果。
这里需要指出的是:以上终端实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本发明终端实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解,为节约篇幅,因此不再赘述。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种终端,其特征在于,所述终端包括:RGB传感单元、处理单元及显示单元;其中,
所述RGB传感单元,用于采集三色光R、G、B的强度及原色光C的强度,并作为原始数据进行存储,在终端加载操作系统运行后由驱动单元控制其与上层应用间进行数据交互;
所述驱动单元,用于创建文件系统中的至少两路数据传输通道,每一路数据传输通道中至少包括虚拟设备、输入设备和事件节点;从所述RGB传感单元中读取所述原始数据后,经第一路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第一显示数据向应用层的上层应用输出,供上层应用按需自动调节第一显示属性;经第二路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第二显示数据向应用层的上层应用输出,供上层应用按需自动调节第二显示属性;
所述文件系统,为所述应用层的上层应用与所述操作系统间交互的接口。
2.根据权利要求1所述的终端,其特征在于,所述驱动单元,进一步用于通过表征环境光亮度的第一虚拟设备、表征环境光亮度的第一输入设备,及表征环境光亮度的第一事件节点来构建所述第一路数据传输通道。
3.根据权利要求2所述的终端,其特征在于,所述驱动单元,进一步用于从所述RGB传感单元中读取所述原始数据后,调用所述第一虚拟设备,根据所述原始数据运算得到环境光的亮度数据,调用所述第一输入设备将所述环境光的亮度数据上报给所述第一事件节点,由所述第一事件节点将所述环境光的亮度数据向应用层的上层应用输出,供上层应用按需自动调节亮度。
4.根据权利要求1所述的终端,其特征在于,所述驱动单元,进一步用于通过表征环境光色温的第二虚拟设备、表征环境光色温的第二输入设备,及表征环境光色温的第二事件节点来构建所述第二路数据传输通道。
5.根据权利要求4所述的终端,其特征在于,所述驱动单元,进一步用于从所述RGB传感单元中读取所述原始数据后,调用所述第二虚拟设备,根据所述原始数据运算得到环境光的色温数据,调用所述第二输入设备将所述环境光的色温数据上报给所述第二事件节点,由所述第二事件节点将所述环境光的色温数据向应用层的上层应用输出,供上层应用按需自动调节色温。
6.根据权利要求2至5任一项所述的终端,其特征在于,所述驱动单元,还用于根据同时满足环境光亮度和环境光色温的设备工作频率要求来读取所述原始数据。
7.一种基于虚拟设备的三基色传感器驱动重构方法,其特征在于,所述方法应用于终端,所述终端至少包括RGB传感单元、处理单元及显示单元,所述方法包括:
RGB传感单元采集三色光R、G、B的强度及原色光C的强度,并作为原始数据进行存储,在终端加载操作系统运行后由驱动单元控制其与上层应用间进行数据交互;
驱动单元创建文件系统中的至少两路数据传输通道,每一路数据传输通道中至少包括虚拟设备、输入设备和事件节点;
驱动单元从所述RGB传感单元中读取所述原始数据后,经第一路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第一显示数据向应用层的上层应用输出,供上层应用按需自动调节第一显示属性;经第二路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第二显示数据向应用层的上层应用输出,供上层应用按需自动调节第二显示属性;
所述文件系统,为所述应用层的上层应用与所述操作系统间交互的接口。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:通过表征环境光亮度的第一虚拟设备、表征环境光亮度的第一输入设备,及表征环境光亮度的第一事件节点来构建所述第一路数据传输通道。
9.根据权利要求8所述的方法,其特征在于,所述经第一路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第一显示数据向应用层的上层应用输出,供上层应用按需自动调节第一显示属性,包括:
从所述RGB传感单元中读取所述原始数据后,调用所述第一虚拟设备,根据所述原始数据运算得到环境光的亮度数据,调用所述第一输入设备将所述环境光的亮度数据上报给所述第一事件节点,由所述第一事件节点将所述环境光的亮度数据向应用层的上层应用输出,供上层应用按需自动调节亮度。
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:通过表征环境光色温的第二虚拟设备、表征环境光色温的第二输入设备,及表征环境光色温的第二事件节点来构建所述第二路数据传输通道。
11.根据权利要求10所述的方法,其特征在于,所述经第二路数据传输通道中的虚拟设备、输入设备和事件节点的处理,将根据所述原始数据运算得到的第二显示数据向应用层的上层应用输出,供上层应用按需自动调节第二显示属性,包括:
从所述RGB传感单元中读取所述原始数据后,调用所述第二虚拟设备,根据所述原始数据运算得到环境光的色温数据,调用所述第二输入设备将所述环境光的色温数据上报给所述第二事件节点,由所述第二事件节点将所述环境光的色温数据向应用层的上层应用输出,供上层应用按需自动调节色温。
12.根据权利要求8至11任一项所述的方法,其特征在于,所述方法还包括:根据同时满足环境光亮度和环境光色温的设备工作频率要求来读取所述原始数据。
CN201610452117.2A 2016-06-21 2016-06-21 一种终端及基于虚拟设备的三基色传感器驱动重构方法 Active CN106231064B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610452117.2A CN106231064B (zh) 2016-06-21 2016-06-21 一种终端及基于虚拟设备的三基色传感器驱动重构方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610452117.2A CN106231064B (zh) 2016-06-21 2016-06-21 一种终端及基于虚拟设备的三基色传感器驱动重构方法

Publications (2)

Publication Number Publication Date
CN106231064A CN106231064A (zh) 2016-12-14
CN106231064B true CN106231064B (zh) 2019-06-21

Family

ID=57519370

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610452117.2A Active CN106231064B (zh) 2016-06-21 2016-06-21 一种终端及基于虚拟设备的三基色传感器驱动重构方法

Country Status (1)

Country Link
CN (1) CN106231064B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109951860B (zh) * 2017-12-21 2022-07-08 深圳Tcl新技术有限公司 一种获取wifi信息的方法、智能电视及存储介质
CN110070841B (zh) * 2019-03-26 2020-11-27 深圳市嘉利达专显科技有限公司 一种显示屏的调校方法、装置及电子设备
CN111081198B (zh) * 2019-11-29 2022-12-06 Tcl移动通信科技(宁波)有限公司 数据控制方法、数据控制装置、存储介质及终端设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101529315A (zh) * 2006-11-07 2009-09-09 Nec显示器解决方案株式会社 液晶显示装置及液晶显示装置控制方法
CN102801984A (zh) * 2012-07-31 2012-11-28 陶霖密 彩色图像传感器及获取彩色数字图像的方法
CN104601903A (zh) * 2014-12-23 2015-05-06 深圳市思乐数据技术有限公司 一种视频信号转换方法和电路
JP2015114414A (ja) * 2013-12-10 2015-06-22 東洋インキScホールディングス株式会社 カラーフィルタ用青色着色組成物、及びカラーフィルタ

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5387713B2 (ja) * 2012-03-27 2014-01-15 富士ゼロックス株式会社 画像調整装置、画像調整システムおよびプログラム
KR101384993B1 (ko) * 2012-09-27 2014-04-14 삼성디스플레이 주식회사 유기 발광 표시 장치의 구동 방법 및 유기 발광 표시 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101529315A (zh) * 2006-11-07 2009-09-09 Nec显示器解决方案株式会社 液晶显示装置及液晶显示装置控制方法
CN102801984A (zh) * 2012-07-31 2012-11-28 陶霖密 彩色图像传感器及获取彩色数字图像的方法
JP2015114414A (ja) * 2013-12-10 2015-06-22 東洋インキScホールディングス株式会社 カラーフィルタ用青色着色組成物、及びカラーフィルタ
CN104601903A (zh) * 2014-12-23 2015-05-06 深圳市思乐数据技术有限公司 一种视频信号转换方法和电路

Also Published As

Publication number Publication date
CN106231064A (zh) 2016-12-14

Similar Documents

Publication Publication Date Title
WO2020192537A1 (zh) 一种切换上网卡的方法和电子设备
CN106201183B (zh) 分屏显示装置、移动终端及方法
CN106535306B (zh) 一种休眠控制方法及终端
CN106780634B (zh) 图片主色调提取方法及装置
CN106231064B (zh) 一种终端及基于虚拟设备的三基色传感器驱动重构方法
CN106453885A (zh) 护眼终端及方法
CN107851422A (zh) 电子设备和电子设备中的显示控制方法
CN106447641A (zh) 图像生成装置及方法
CN106303273B (zh) 一种移动终端及其拍照控制方法
CN111885304A (zh) 拍摄方法、移动终端和计算机存储介质
CN106060415B (zh) 一种移动终端及其拍照方法
CN105979237A (zh) 一种图像处理方法及装置
CN105975071A (zh) 一种信息处理方法及电子设备
CN105072351A (zh) 基于前置摄像头的拍照装置及方法
CN105791711A (zh) 一种拍摄补光的装置和方法
CN105979235A (zh) 一种图像处理方法及终端
CN105979097A (zh) 一种移动终端及其显示屏背光亮度调节方法
CN106303071B (zh) 一种控制终端上灯的方法及装置、终端
CN106507454B (zh) 一种唤醒控制方法及终端
CN106686236A (zh) 基于应用状态的应用图标显示装置及方法
CN106200924B (zh) 一种终端及其对虚拟现实视频进行控制的方法
CN106856542A (zh) 根据壁纸颜色自动调节图标颜色的方法及装置
CN108614705A (zh) 一种数据编译处理方法及终端
CN207022061U (zh) 闪光灯装置及移动终端
CN106169966B (zh) 测试工具包配置装置及方法

Legal Events

Date Code Title Description
C06 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