Power Status (was Re: Because LC can't do two things at once.)
Peter M. Brigham
pmbrig at gmail.com
Sat Mar 7 08:55:06 EST 2015
Both the constant declarations are identical -- the second should be for BAT1. You're competing with me for multiple postings with bugs, but I've still go you beat. :-)
-- Peter
Peter M. Brigham
pmbrig at gmail.com
http://home.comcast.net/~pmbrig
On Mar 7, 2015, at 8:46 AM, Michael Doub wrote:
> ok, a new day and another attempt. I hope we have it this time. ;-)
>
> on mouseup
> put __getPowerSource()
> end mouseup
>
> function __caseSwitch
> /* __caseSwitch Misc
> Syntax:
> __caseSwitch (var_to_Match,<matchValue>=<returnValue>,[<matchValue>=<returnValue>]...
> Examples:
> put caseSwitch(len(tZip),"5=zip","10=zip+4","*=not a zip code") into zipCodeType
> Description:
> Does a quick inline switch/case but supports a default for a non-match.
> . Also see __Switch
>
> param 1 is checkValue
> params 2+ are in the form matchValue(s)>=<returnValue
> . separate multiple matcheValues with commas
> . and enclose each matchValue=returnValue pair in quotes
> if checkValue matches one or more items in matchValue(s),
> . returns returnValue
>
> Note that checkValue should NOT be enclosed in quotes'
>
> Use a matchValue of "*" to specify a default value,
> . to be returned if no matches found in the list
> . if the default is "*=*" then no match returns the original <checkValue>
> . if no match and no default value specified, then returns empty
>
> Source:
> Peter M. Brigham from Ken Ray, use-LC list, originally named stsSwitch()
> __caseSwitch */
> put param(1) into tCheckValue
> set the itemDel to "="
> put "" into tDefault
> repeat with x = 2 to the paramCount
> put param(x) into tCheck
> put item 1 of tCheck into tMatch
> put item 2 of tCheck into tRetVal
> replace "," with "=" in tMatch
> if tCheckValue = empty and tMatch = empty then return tRetVal
> if tCheckValue is among the items of tMatch then return tRetVal
> if tMatch = "*" then
> if tRetVal = "*" then
> put tCheckValue into tDefault
> else
> put tRetVal into tDefault
> end if
> end if
> end repeat
> return tDefault
> end __caseSwitch
>
>
> function __getPowerSource
> /* __getPowerSource Under Test - System
> Syntax:
> __getPowerSource()
> Examples:
> __getPowerSource()
> Description:
> -- returns the current power source for a laptop
> -- "AC" or "Battery"
> -- or "no battery" if there is no battery (Unix)
> Source:
> Peter M. Brigham with help from Martin Koob, Bob Sneidar, Richard Gaskin
> __getPowerSource */
> /* Include
> __caseSwitch
> */
>
> switch the platform
> case "MacOS"
> -- thanks to Martin Koob, use-LC list
> put shell ("pmset -g batt") into tStatus
> -- returns something like:
> -- Currently drawing from 'AC Power'
> -- -InternalBattery-0 99%; finishing charge; 0:00 remaining
> return char 2 to -1 of word -2 of line 1 of tStatus
> break
> case "Win32"
> -- thanks to Bob Sneidar, use-LC list
> put shell("WMIC Path Win32_Battery GetAvailability") into tStatus
> -- Line 3 will contain 2 if the battery is charging, 3 if running on battery
> put line 3 of tStatus into tStatus
> return __caseSwitch(tStatus,"3=Battery","*=AC")
> break
> default
> -- Unix, thanks to Mark Wieder
> constant kBatteryStatus0 = "/sys/class/power_supply/BAT0/status"
> constant kBatteryStatus1 = "/sys/class/power_supply/BAT0/status"
> if there is a file (kBatteryStatus0) then
> open file (kBatteryStatus0) for read
> read from file (kBatteryStatus0) until eof
> put it into tStatus
> close file (kBatteryStatus0)
> else if there is a file (kBatteryStatus1) then
> open file (kBatteryStatus1) for read
> read from file (kBatteryStatus1) until eof
> put it into tStatus
> close file (kBatteryStatus1)
> else
> return "AC"
> -- no battery, must be running off external power
> end if
> put word 1 of tStatus into tStatus
> if tStatus = empty then return empty
> return __caseSwitch(tStatus,"discharging=Battery","charging,unknown,full=AC","*=*")
> -- if tStatus = empty, returns empty --
> -- Unix users please test: should this return some value??
> -- if tStatus is not in "discharging,charging,unknown,full" then
> -- just returns whatever "/sys/class/power_supply/BATx" reports
> end switch
> end __getPowerSource
>
>
>
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
More information about the use-livecode
mailing list