Hi,

Periodic update of battery level should be done by battery charger interface
driver., (usually present in ./driver/power/<battery>.c)..

the battery charger driver has a minor state machine and usually
- services charger plug, unplug event and publishes presence or absence of
battery
- have a periodic timer to read status of battery charge level.,

you can refer sample BCI driver implementation
http://linux.omap.com/pub/kernel/3430sdp/patches-applicable-over-linux-omap-2.6.git/twl4030_bci_battery_20080305.patch
and more at ./drivers/power/<> in kernel..

can you check your battery charger interface driver, if it has periodic
status update feature?


On Wed, Apr 14, 2010 at 9:04 PM, Arun Raghavendra Murthy <
[email protected]> wrote:

> Hi,
>   On POWER_SUPPLY_CHANGED uevent, battery capacity is updated.
> Lets say I plugged in AC charger @ time 't'.
> Now an uvevnt occurs and battery capacity is updated in android.
>
> In time t+20, battery has charged and the capacity must have increased to
> some higher level.
> I can notice this by reading sysfs. But the same in not updated in android.
>
> Not @ time t+30, I unplug the AC charger, again an uvevnt is observed and
> capacity is updated in android.
>
> Hope I am clear.
>
>
> Thanks and Regards,
> Arun R Murthy
> ---------------------
>
> On Tue, Apr 13, 2010 at 1:14 PM, ZhangJieJing <[email protected]> wrote:
>
>> Hi,
>>
>> what I know is battery capacity update is triggered by
>> POWER_SUPPLY_UEVENT,
>> 1, please ensure this UEVENT is sent,
>>   you can change init.rc 's loglevel to 9 to get the uevent dump.
>> 2, what this command output:
>> # ls /sys/class/power_supply
>>
>> I think the plug/unplug make the battery capacity update is because it
>> will send a POWER_SUPPLY_CHANGED uevnet, and on discharging, you don't let
>> your driver send the uevent in a time(eg. 60s).
>>
>> if it's true, you should add a timer or delayed_work in your battery
>> driver to do this job.
>>
>> ---
>> Best regards,
>> Zhang Jiejing
>>
>>
>> 2010/4/13 Arun Raghavendra Murthy <[email protected]>
>>
>> Hi,
>>>   The battery capacity is getting updated while plug/unplug of charger.
>>> But not getting updated while discharging.
>>>
>>> The BatteryService class is very much able to read the battery capacity,
>>> ac - online, usb - online, etc.
>>>
>>> The problem that I am facing is the battery capacity is getting updated
>>> only on plug/unplug of charger.
>>> In the mean time its not updated. But if I read the capacity through the
>>> sysfs I see the updated capacity.
>>>
>>> What I guess is in android only there should be some application that
>>> should read the battery capacity
>>> from sysfs at time intervals "t" and update the same.
>>>
>>> Please let me know on this.
>>>
>>> Thanks and Regards,
>>> Arun R Murthy
>>> --------------------
>>>
>>> Thanks and Regards,
>>> Arun R Murthy
>>> --------------------
>>>
>>> On Tue, Apr 13, 2010 at 7:53 AM, ZhangJieJing <[email protected]> wrote:
>>>
>>>> CC the list.
>>>>
>>>>  Hi,
>>>>
>>>> the BatteryService is working like this:
>>>>
>>>> cd /sys/class/power_supply
>>>>
>>>> for each dir:
>>>> if have a file named type:
>>>>   if type == Battery
>>>>      read capicty ...etc
>>>>   if type == AC
>>>>      read online
>>>>   if type == USB
>>>>     read online
>>>>
>>>> If you mean it not updated on unplug & plug charger, you should first
>>>> check the type of your power_supply driver.
>>>>
>>>> ---
>>>>  Best regards,
>>>> Zhang Jiejing
>>>>
>>>>
>>>> 2010/4/12 Arun Raghavendra Murthy <[email protected]>
>>>>
>>>>> Hi,
>>>>>   In that case it is working for me.
>>>>> On the event of power supply changed the battery capacity is getting
>>>>> updated.
>>>>> On plugging the AC charger capacity gets updated and on removal of AC
>>>>> charger capacity gets updated. But in the mean time i.t between charging
>>>>> plug and unplug it is not getting updated though i see a change in the
>>>>> sysfs.
>>>>>
>>>>> Thanks and Regards,
>>>>> Arun R Murthy
>>>>> ---------------------
>>>>>
>>>>>   On Mon, Apr 12, 2010 at 7:55 AM, ZhangJieJing <[email protected]>wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> you don't need send separatedly battery capacity, android framework
>>>>>> only monitor POWER_SUPPLY_CHANGED uevent, if it received the uevent, it 
>>>>>> will
>>>>>> read the sys fs under /sys/class/power_supply/* files to get the voltage,
>>>>>> current, capacity, etc,
>>>>>> you may need see
>>>>>> file frameworks/base/services/jni/com_android_server_BatteryService.cpp 
>>>>>> to
>>>>>> see the detail.
>>>>>>
>>>>>> ---
>>>>>> Best regards,
>>>>>> Zhang Jiejing
>>>>>>
>>>>>>
>>>>>> 2010/4/12 Arun Raghavendra Murthy <[email protected]>
>>>>>>
>>>>>> Hi,
>>>>>>>    The power_supply_changed() will handle if there is any change in
>>>>>>> power supply i.e plug/unplug of AC/USB.
>>>>>>> I have a work which keeps monitoring my battery parameters i.e
>>>>>>> battery voltage, current, capacity.
>>>>>>>
>>>>>>> Also I notice that all POWER_SUPPLY_PROP_* are registered as uevents
>>>>>>> in the power supply core driver.
>>>>>>> So is it necessary for me to send an uevent separately for battery
>>>>>>> capacity.?
>>>>>>>
>>>>>>>
>>>>>>> Thanks and Regards,
>>>>>>> Arun R Murthy
>>>>>>> --------------------
>>>>>>>
>>>>>>>   On Thu, Apr 8, 2010 at 8:36 PM, ZhangJieJing <[email protected]>wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> you need check your battery driver, the update of battery capacity
>>>>>>>> is drive by uevent send by driver(via power_supply_changed() func), 
>>>>>>>> your
>>>>>>>> driver may need have a delayed work or timer function to send this 
>>>>>>>> event
>>>>>>>> every timeout, such as 1 minute.
>>>>>>>>
>>>>>>>> you can reference file:  drivers/power/tosa_battery.c about this.
>>>>>>>> ---
>>>>>>>> Best regards,
>>>>>>>> Zhang Jiejing
>>>>>>>>
>>>>>>>>
>>>>>>>> 2010/4/5 Arun R Murthy <[email protected]>
>>>>>>>>
>>>>>>>>>  Hi All,
>>>>>>>>>   I am using andoird eclair and not able to see the battery
>>>>>>>>> capacity
>>>>>>>>> getting updated while charging/discharging.
>>>>>>>>> Wherein when I try to cat the battery capacity from the sysfs I am
>>>>>>>>> able to see the change.
>>>>>>>>> The only event that updates the battery capacity, voltage, etc in
>>>>>>>>> the
>>>>>>>>> application is the plug/unplug of the
>>>>>>>>> AC/USB charger.
>>>>>>>>> Please let me know on this.
>>>>>>>>>
>>>>>>>>> Thanks and Regards,
>>>>>>>>> Arun R Murthy
>>>>>>>>> -------------------
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> unsubscribe: 
>>>>>>>>> [email protected]<android-porting%[email protected]>
>>>>>>>>> website: http://groups.google.com/group/android-porting
>>>>>>>>>
>>>>>>>>> To unsubscribe, reply using "remove me" as the subject.
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Arun R Murthy
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Arun R Murthy
>>>>>
>>>>>
>>>>>
>>>
>>>
>>
>  --
> unsubscribe: 
> [email protected]<android-porting%[email protected]>
> website: http://groups.google.com/group/android-porting
>

-- 
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting

Reply via email to