当前位置: 首页 > news >正文

类似于淘宝的网站建设iis默认网站停止

类似于淘宝的网站建设,iis默认网站停止,工程建设数字化管理平台,图片在线制作网站1、前言 充电LED灯控制是Android设备的基本功能#xff0c;主要用于提示设备的电池状态#xff0c;充电状态#xff0c;满电状态#xff0c;低电状态#xff0c;很多手机厂商还使用呼吸效果来显示#xff0c;普通的低端设备会使用两个LED灯表示#xff0c;红灯表示充电…1、前言 充电LED灯控制是Android设备的基本功能主要用于提示设备的电池状态充电状态满电状态低电状态很多手机厂商还使用呼吸效果来显示普通的低端设备会使用两个LED灯表示红灯表示充电和低电绿灯表示满电。 之前写的文章 《Android充电系统介绍》 2、kernel 层控制充电LED 代码位置主要在kernel/driver/power/power_supply_leds.c /* Battery specific LEDs triggers. */ static void power_supply_update_bat_leds(struct power_supply *psy) {union power_supply_propval status;unsigned long delay_on 0;unsigned long delay_off 0;if (power_supply_get_property(psy, POWER_SUPPLY_PROP_STATUS, status))return;dev_dbg(psy-dev, %s %d\n, __func__, status.intval);switch (status.intval) {case POWER_SUPPLY_STATUS_FULL:led_trigger_event(psy-charging_full_trig, LED_FULL);led_trigger_event(psy-charging_trig, LED_OFF);led_trigger_event(psy-full_trig, LED_FULL);led_trigger_event(psy-charging_blink_full_solid_trig,LED_FULL);break;case POWER_SUPPLY_STATUS_CHARGING:led_trigger_event(psy-charging_full_trig, LED_FULL);led_trigger_event(psy-charging_trig, LED_FULL);led_trigger_event(psy-full_trig, LED_OFF);led_trigger_blink(psy-charging_blink_full_solid_trig,delay_on, delay_off);break;default:led_trigger_event(psy-charging_full_trig, LED_OFF);led_trigger_event(psy-charging_trig, LED_OFF);led_trigger_event(psy-full_trig, LED_OFF);led_trigger_event(psy-charging_blink_full_solid_trig,LED_OFF);break;} }如果想在kernel 层控制led灯就需要在这里修改代码会需要使用到trigger相关的东西要理解什么是trigger可以看下面的链接 https://blog.csdn.net/sgmenghuo/article/details/38322141 trigger主要是做led灯的一些效果的东西默认有default-on 对应打开led的trigger还有none对应关闭LED的trigger。 被[ ]括起来的就是当前trigger的值然后回触发对应trigger的.activate函数。 Trigger的代码位置在 kernel/drivers/leds/trigger 3、framework控制led灯 为了统一控制led接口Android有一个自己的框架控制led灯 Framework-Hal-kernel-hardware 设置对应的LED灯颜色主要在 Framework/base/core/res/res/values/config.xml color nameconfig_defaultNotificationColor#ffffffff/color!-- Default LED on time for notification LED in milliseconds. --integer nameconfig_defaultNotificationLedOn500/integer!-- Default LED off time for notification LED in milliseconds. --integer nameconfig_defaultNotificationLedOff2000/integer!-- Default value for led color when battery is low on charge --integer nameconfig_notificationsBatteryLowARGB0xFFFF0000/integer !-- Default value for led color when battery is medium charged --integer nameconfig_notificationsBatteryMediumARGB0xFFFF0000/integer!-- Default value for led color when battery is fully charged --integer nameconfig_notificationsBatteryFullARGB0xFF00FF00/integer!-- Default value for LED on time when the battery is low on charge in miliseconds --integer nameconfig_notificationsBatteryLedOn125/integer充电状态灯指示状态函数调用 frameworks\base\services\core\java\com\android\server\BatteryService.java /** * Synchronize on BatteryService. */public void updateLightsLocked() {final int level mBatteryProps.batteryLevel;final int status mBatteryProps.batteryStatus;if (level mLowBatteryWarningLevel) {if (status BatteryManager.BATTERY_STATUS_CHARGING) {// Solid red when battery is chargingmBatteryLight.setColor(mBatteryLowARGB);} else {// Flash red when battery is low and not chargingmBatteryLight.setFlashing(mBatteryLowARGB, Light.LIGHT_FLASH_TIMED,mBatteryLedOn, mBatteryLedOff);}} else if (status BatteryManager.BATTERY_STATUS_CHARGING|| status BatteryManager.BATTERY_STATUS_FULL) {if (status BatteryManager.BATTERY_STATUS_FULL || level 90) {// Solid green when full or charging and nearly fullmBatteryLight.setColor(mBatteryFullARGB);} else {if (isHvdcpPresent()) {// Blinking orange if HVDCP chargermBatteryLight.setFlashing(mBatteryMediumARGB, Light.LIGHT_FLASH_TIMED,mBatteryLedOn, mBatteryLedOn);} else {// Solid orange when charging and halfway fullmBatteryLight.setColor(mBatteryMediumARGB);}}} else {// No lights if not charging and not lowmBatteryLight.turnOff();}}}LightsService 管理LED frameworks\base\services\core\java\com\android\server\lights\LightsService.java private void setLightLocked(int color, int mode, int onMS, int offMS, int brightnessMode){//调用JNI函数设置状态setLight_native(mNativePointer, mId, color, mode, onMS, offMS, brightnessMode);} static void setLight_native(JNIEnv* /* env */, jobject /* clazz */, jlong ptr,jint light, jint colorARGB, jint flashMode, jint onMS, jint offMS, jint brightnessMode){//调用HAL层接口设置指示灯状态devices-lights[light]-set_light(devices-lights[light], state);}获取HAL层接口函数 static jlong init_native(JNIEnv* /* env */, jobject /* clazz */){int err;hw_module_t* module;Devices* devices;devices (Devices*)malloc(sizeof(Devices));err hw_get_module(LIGHTS_HARDWARE_MODULE_ID, (hw_module_t const**)module);if (err 0) {devices-lights[LIGHT_INDEX_BACKLIGHT] get_device(module, LIGHT_ID_BACKLIGHT);devices-lights[LIGHT_INDEX_KEYBOARD] get_device(module, LIGHT_ID_KEYBOARD);devices-lights[LIGHT_INDEX_BUTTONS] get_device(module, LIGHT_ID_BUTTONS);devices-lights[LIGHT_INDEX_BATTERY] get_device(module, LIGHT_ID_BATTERY);devices-lights[LIGHT_INDEX_NOTIFICATIONS] get_device(module, LIGHT_ID_NOTIFICATIONS);devices-lights[LIGHT_INDEX_ATTENTION] get_device(module, LIGHT_ID_ATTENTION);devices-lights[LIGHT_INDEX_BLUETOOTH] get_device(module, LIGHT_ID_BLUETOOTH);devices-lights[LIGHT_INDEX_WIFI] get_device(module, LIGHT_ID_WIFI);} else {memset(devices, 0, sizeof(Devices));}return (jlong)devices;}中间层的代码位置主要在 Hardware/rockchip/liblight/ 一个字节对应一种颜色一共有三个颜色想最终控制颜色就需要修改上面说的xml文件比如0x00ffffff,表示红蓝绿三个灯同时亮。具体代码如下 int set_battery_light(struct light_device_t* dev, struct light_state_t const* state) { int err 0; char red,blue,green; unsigned int colorRGB state-color 0x00ffffff;red (colorRGB 16) 0xFF; green (colorRGB 8) 0xFF; blue colorRGB 0xFF; pthread_mutex_lock(g_lock); LOGI(weiqifa set_battery_light 0x%x,state-color);err write_int(RED_LED_PATH, red?1:0);err write_int(BLUE_LED_PATH, blue?1:0);err write_int(GREEN_LED_PATH, green?1:0);pthread_mutex_unlock(g_lock); return 0; } 然后控制的主要是led的设备节点led的设备节点主要是驱动层生成代码的位置如下kernel/driver/leds/ #define RED_LED_PATH sys/class/leds/red/brightness #define GREEN_LED_PATH sys/class/leds/green/brightness #define BLUE_LED_PATH sys/class/leds/blue/brightnessLed驱动对应的dts代码如下 leds: gpio-leds {compatible gpio-leds;led-green {┊ label green;gpios gpio7 8 GPIO_ACTIVE_HIGH;inux,default-trigger timer;default-state off;}; led-blue {┊ label blue;gpios gpio7 14 GPIO_ACTIVE_HIGH;inux,default-trigger timer;default-state off;}; led-red {┊ label red;gpios gpio7 15 GPIO_ACTIVE_HIGH;inux,default-trigger timer; default-state off;};}; 里面的linux,default-trigger 表示默认的trigger模式如果设置为none就是表示关闭现在我们的代码设置为timer表示用定时器的模式实际上我们没有编译定时器模式所以设置并没有生效。 欢迎关注微信公众号-嵌入式Linux 觉得不错请帮忙转发点赞您的每一次支持我都将铭记于心
http://wiki.neutronadmin.com/news/150413/

相关文章:

  • 化妆品企业网站案例大全wordpress 更改编辑器
  • 不备案怎么做淘宝客网站wordpress 微博链接
  • 重庆住房城乡建设部网站wordpress空俩格
  • 洛阳做网站哪家专业欧美网站设计特点
  • 南山网站开发珠海网站建设方案报价
  • 建站用哪个模板好wordpress安全权限
  • 做京东网站的摘要智联招聘网站怎么做微招聘信息
  • 做搜索引擎网站人才网招聘找工作
  • 做网站模版与定制的区别浦东医院网站建设
  • 电子商务网站建设的步骤一般福州门户网站建设
  • 装修网站平台推荐佛山新网站制作代理商
  • 查外链网站怎么自己学做电商
  • centos7 wordpress网站购物网站开发项目意义
  • 做puzzle的网站免费数据查询网站
  • 惠州公司网站建设vue网站开发
  • 丽水微信网站建设公司python3 做网站
  • 恋爱网站建设浙江网站建设价格
  • 罗永浩做的网站公众号开发哪家专业
  • 管理网站开发教程js下载服务器wordpress
  • 网站开发需求问卷学校网站建设及使用档案
  • 高端网站建设要多少钱有哪些网站做的很有特色
  • 自己建网站做电商还赚钱吗成都代做网站
  • 什么网站做电脑系统好门户网站建设 工具
  • 专业网站设计公司排名保定市网站建设
  • 网站建设协议 模板下载网站关键词先后
  • 深圳网站建设 设计首选遂宁网站建设公司哪家好
  • 官方网站minecraft制作书签教案
  • 佛山企业网站建设公司推荐丹东做网站
  • 做二手电脑的网站链接缩短在线生成器
  • H5网站模板修改教程做网站和做软件哪个赚钱