Power Status (was Re: Because LC can't do two things at once.)

Richard Gaskin ambassador at fourthworld.com
Tue Mar 3 10:29:26 EST 2015

Peter M. Brigham wrote:
 > So it looks from your links that I should use "/sys/class/power_supply
 > /BAT0/" for the URL on Unix, and check for "charging" or
 > "discharging" as the first word??

...or "full", as I saw last night while testing this.

So far I'm only seeing one-word values, so using "word 1" would seem a 
safe choice - good call.

We have one remaining mystery, however:  my Dell has only one battery, 
but has no values at /sys/class/power_supply/BAT0/, instead using 

I've read other cases online where folks find the same thing, but 
haven't found the definitive rule governing why.

In my reading I also came across some laptop models (Toshiba came up a 
couple times) in which the battery firmware doesn't report its info in a 
standard way, making it more difficult for generalized utilities to 
obtain it.  But frankly, if an OEM chooses to disregard published 
standards personally I can't see spending much time accommodating them, 
so I'm not too worried about such edge cases.

Given all this, I would feel reasonably safe at this time with the 
following algorithm:

First check BAT0/status
If empty then
     check BAT1/status
end if
If both are empty there's probably no battery
If a value is found then use it

I've seen no mention of BAT2 or more, so I feel this should account for 
a reasonably useful range of contexts.

My own goal here is to know whether I can feel save performing optional 
background processing which can improve performance but at the cost of 
battery life.

So either "full" or "charging" implies that the laptop is plugged into a 
wall socket, so I'd proceed with those background tasks.

And if no battery info can be found at all in either location (BAT0 or 
BAT1), it seems safe to assume we're not on a battery-powered device, so 
I'd also proceed with optional background tasks.

So it's only when the status returns "discharging" that I know a battery 
is present and that it's not plugged into a wall socket, in which case I 
should at least let the user decide whether or not to run optional 
background tasks.

  Richard Gaskin
  Fourth World Systems
  Software Design and Development for the Desktop, Mobile, and the Web
  Ambassador at FourthWorld.com                http://www.FourthWorld.com

More information about the Use-livecode mailing list