zoukankan      html  css  js  c++  java
  • 电池的一点东西

    电池曲线 : 根据放电曲线,可以判断电池工作性能是否稳定,以及电池在稳定工作时所允许的最大电流

    fuel gauge 电池电量计 具体过程: 硬件 ADC 读取 Battery 的各路信息:包括温度,电压等。 MTK 开发的电量算法分析得到的数据。

    /proc 文件系统是为了提供有关系统中进程的信息

    NTC电阻就是通过与电阻的串联跟并联并且通过电压值来得到的。计算出系统当前NTC电阻的电阻值后,然后就调用BattThermistorConverTemp函数进行查表,对比出当前系统的温度。而BattThermistorConverTemp函数是通过alps/mediatek/custom/mt6582/kernel/battery/battery/cust_battery_meter_table.h中的Batt_Temperature_Table结构体,然后根据电阻值落在哪个区间,根据线性插值的方法求出当前电池的温度。   

     然后在回到table_init函数,MTK的zcv电池参数表格会预先测得的在-100 25 50 摄氏度开路电量跟放电深度之间的关系。结合真实的温度值,系统会自己构建一张当前温度值的ZCV电池曲线表格

    bmd_ctrl_cmd_from_user

    填充所需数据结构,并通过sendmsg()/send()等函数写到套接字里去

    到 此为止,与内核通信的准备工作就完成了,下面要做的工作是,选取适当的数据结构进行填充,并作为sendmsg()的参数发送出去,并recv()收到的 消息。这个数据结构就是nlmsghdr,它只是一个信息头,后面可以接任意长的数据,这些数据实际上又是针对某一需求所采用的特定数据结构。先来看 nlmsghdr:

    struct nlmsghdr {
    _u32 nlmsg_len; /* Length of msg including header */
    _u32 nlmsg_type; /* 操作命令 */
    _u16 nlmsg_flags; /* various flags */
    _u32 nlmsg_seq; /* Sequence number */
    _u32 nlmsg_pid; /* 进程PID *

  • 相关阅读:
    legend2---开发日志8(thinkphp和vue如何配合才能达到最优)
    英雄联盟:英雄台词翻译(我用双手成就你的梦想。)
    js插件---bootstrap插件daterangepicker是什么
    js插件---bootstrap-datepicker.js是什么
    ORDER BY RAND()
    Boost.Asio c++ 网络编程翻译(26)
    3Sum Closest
    hdu3480二维斜率优化DP
    MySQL Study之--Mysql无法启动“mysql.host”
    于PsIsSystemThread无论是在线程系统线程标识获得
  • 原文地址:https://www.cnblogs.com/chjgongzuo/p/8656627.html
Copyright © 2011-2022 走看看