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

什么网站发布找做效果图的网站建设企业属于什么类型的公司

什么网站发布找做效果图的,网站建设企业属于什么类型的公司,公司网站建设457216336,莱芜都市人才网整体逻辑:设备充电速度的判断 系统通过读取充电器的最大电流(Current)与最大电压(Voltage),计算最大充电功率(Wattage),以此判断当前是慢充、普通充还是快充&#xff1a…

整体逻辑:设备充电速度的判断

系统通过读取充电器的最大电流(Current)最大电压(Voltage),计算最大充电功率(Wattage),以此判断当前是慢充、普通充还是快充:

  • 如果 maxChargingWattage <= 0:返回 CHARGING_UNKNOWN,说明未插电或读取失败;

  • 如果 maxChargingWattage < slowThreshold:返回 CHARGING_SLOWLY

  • 如果 maxChargingWattage > fastThreshold:返回 CHARGING_FAST

  • 否则:返回 CHARGING_REGULAR


1. Framework 层判断逻辑

public final int getChargingSpeed(Context context) {final int slowThreshold = context.getResources().getInteger(R.integer.config_chargingSlowlyThreshold);final int fastThreshold = context.getResources().getInteger(getFastChargingThresholdResId());return maxChargingWattage <= 0 ? CHARGING_UNKNOWN :maxChargingWattage < slowThreshold ? CHARGING_SLOWLY :maxChargingWattage > fastThreshold ? CHARGING_FAST :CHARGING_REGULAR;
}
  • 根据从 HAL 层传来的 maxChargingWattage 判断充电速度;

  • 阈值由资源文件 config.xml 提供(如下所示):

<!-- config.xml -->
<integer name="config_chargingSlowlyThreshold">3000000</integer> <!-- 3W -->
<integer name="config_chargingFastThreshold">12000000</integer> <!-- 12W -->
<integer name="config_chargingFastThreshold_v2">21000000</integer> <!-- 21W (用于新设备) -->

2. 最大充电功率的计算逻辑

frameworks/base/packages/SettingsLib/src/com/android/settingslib/fuelgauge/BatteryStatus.java

从 Intent 提取电流电压并计算功率

private static int calculateMaxChargingMicroWatt(Intent batteryChangedIntent) {final int maxChargingMicroAmp = batteryChangedIntent.getIntExtra(EXTRA_MAX_CHARGING_CURRENT, -1);int maxChargingMicroVolt = batteryChangedIntent.getIntExtra(EXTRA_MAX_CHARGING_VOLTAGE, -1);return calculateMaxChargingMicroWatt(maxChargingMicroAmp, maxChargingMicroVolt);
}
  • 作用:batteryChangedIntent(电池广播 Intent)中读取两个字段:

    • EXTRA_MAX_CHARGING_CURRENT:最大充电电流,单位为 微安(µA)

    • EXTRA_MAX_CHARGING_VOLTAGE:最大充电电压,单位为 微伏(µV)

  • 若读取失败(无此字段),会返回默认值 -1

  • 然后调用重载的 calculateMaxChargingMicroWatt(int, int) 方法进行功率计算。

 根据电流电压计算功率

private static int calculateMaxChargingMicroWatt(int maxChargingMicroAmp, int maxChargingMicroVolt) {if (maxChargingMicroVolt <= 0) {maxChargingMicroVolt = DEFAULT_CHARGING_VOLTAGE_MICRO_VOLT;}if (maxChargingMicroAmp > 0) {return (int) Math.round(maxChargingMicroAmp * 0.001 * maxChargingMicroVolt * 0.001); // 转换为 mA * mV = µW} else {return -1;}
}
  • 电压校验

    if (maxChargingMicroVolt <= 0)

    • 若未获取到有效电压(为0或负数),使用默认值 DEFAULT_CHARGING_VOLTAGE_MICRO_VOLT(通常为 5000000,即 5V)。

  • 功率计算

    return (int) Math.round(maxChargingMicroAmp * 0.001 * maxChargingMicroVolt * 0.001);

    • 先将 µA 和 µV 转换成 mA 和 mV:

      • maxChargingMicroAmp * 0.001:µA ➝ mA

      • maxChargingMicroVolt * 0.001:µV ➝ mV

    • 计算公式:

      PuW=ImA×VmVP_{uW} = I_{mA} \times V_{mV}PuW​=ImA​×VmV​

      单位为微瓦(µW)

  • 返回无效值

    • 若电流无效(≤ 0),则返回 -1,表示无法计算有效功率。


3. 数据来源:HAL 层读取电流/电压

void BatteryMonitor::updateValues(void) {...for (每个充电器 charger) {读取 charger 的 current_max 节点 -> ChargingCurrent读取 charger 的 voltage_max 节点 -> ChargingVoltagedouble power = (ChargingCurrent / 1_000_000.0) * (ChargingVoltage / 1_000_000.0);如果 power 比之前最大值大:保存该电流电压到 mHealthInfo}
}
  • HAL 遍历 /sys/class/power_supply/ 下的所有充电器节点;

  • 从每个 charger 的 current_maxvoltage_max 读取最大支持值;

  • 计算每个充电器功率并取最大值填入 mHealthInfo

  • mHealthInfo.maxChargingCurrentMicroampsmaxChargingVoltageMicrovolts 将最终传给 Framework 层。


4. Kernel 层提供节点值

#define NORMAL_CHARGING_CURR_UA 500000     // 普通 USB:500mA
#define FAST_CHARGING_CURR_UA   1500000    // 快充口:1.5Astatic int mt6375_chg_get_property(...) {switch (psp) {case POWER_SUPPLY_PROP_CURRENT_MAX:if (type == USB) val->intval = NORMAL_CHARGING_CURR_UA;else if (type == USB_DCP) val->intval = FAST_CHARGING_CURR_UA;break;case POWER_SUPPLY_PROP_VOLTAGE_MAX:val->intval = vbus_global; // 动态返回当前 vbus 电压break;}
}
  • Kernel 驱动根据充电口类型(如 USB、USB_DCP)返回对应最大电流;

  • 电压通过变量 vbus_global 实时获取;

  • 这些值最终通过 power_supply 框架上传给 HAL 层读取。


 流程总结

[Kernel] 驱动读取 current_max & voltage_max 节点
     ↓
[HAL] BatteryMonitor 计算最大功率并存入 mHealthInfo
     ↓
[Framework] BatteryStatus 读取 Intent 中传来的最大 µA/µV,换算为 µW
     ↓
getChargingSpeed() 对比 config 阈值,判断是快充/慢充/普通


文章转载自:

http://iVTS3EfJ.qsqLf.cn
http://1jdc2o9z.qsqLf.cn
http://NpP0u8wj.qsqLf.cn
http://daIuSIL3.qsqLf.cn
http://Nh3PizQ3.qsqLf.cn
http://2XbeKfKF.qsqLf.cn
http://tJbXsw8o.qsqLf.cn
http://jZHvItJs.qsqLf.cn
http://eILB3h4F.qsqLf.cn
http://mdqgooOA.qsqLf.cn
http://S44dFqHC.qsqLf.cn
http://Wik0TbWz.qsqLf.cn
http://dKno18H5.qsqLf.cn
http://kahbLc00.qsqLf.cn
http://7t2PletY.qsqLf.cn
http://iSkGdmbA.qsqLf.cn
http://IipiBWIF.qsqLf.cn
http://hiVVXZ9U.qsqLf.cn
http://YGh0E99M.qsqLf.cn
http://VTPz15Bt.qsqLf.cn
http://JwH1mkth.qsqLf.cn
http://zveErKXc.qsqLf.cn
http://vpLzzKhu.qsqLf.cn
http://n5UqzoC9.qsqLf.cn
http://YVHUd2go.qsqLf.cn
http://EWFxfEBG.qsqLf.cn
http://2fTYBZbu.qsqLf.cn
http://51t64BOT.qsqLf.cn
http://S5HYWU4p.qsqLf.cn
http://HqPfAeo1.qsqLf.cn
http://www.dtcms.com/wzjs/668399.html

相关文章:

  • 主机屋vps网站助手做电影网站程序哪个好
  • 动易网站cms中企动力公司网站价格
  • wordpress二维码用户登录福州百度seo代理
  • 上海备案证查询网站查询网站wordpress怎么分享到微信支付
  • 网站一定要服务器吗新建设网站如何推广
  • 女生学电子商务后悔了百度seo指南
  • 大型企业网站建设制作360元网站建设
  • 网络建站东北WordPress当前菜单高亮
  • 如何网站全部结构php mysql做网站
  • 网站建设知乎动漫设计课程
  • 做网站需要写配置文件吗做板材外贸一般用哪个网站
  • 低成本做网站 白之家网站设计计划
  • 网站翻书效果成都网站空间创新互联
  • 建设网站的子文件夹淘宝客网站怎么做
  • 电影网站源码access电销外呼系统多少钱一个月
  • 学建站论坛青海省建设厅网站执业
  • 购物网站设计的意义租赁服务器
  • 做网站怎么接业务网站标题前的小图标怎么做
  • 仿网站源码个人网页设计作品展示
  • 网站域名代备案网站换模板要怎么做
  • 做竞品分析去哪个网站公司网站做的好的公司
  • 建设银行江苏省分行网站提供手机网站制作哪家好
  • 哈尔滨服务好的建站保险网官网
  • 论坛网站建设公司全屋定制品牌
  • 设置网站维护页面好的专业网站建设公司
  • 衡水网站建设联系电话千锋教育课程
  • 新的网站设计公司杭州传媒公司
  • 自己怎么做VIP视频解网站网上查房屋备案
  • 怎么看一个网站是哪个公司做的网站版权信息的正确写法
  • 目前网站在初级建设阶段_需要大量数据丰富cvm服务器