Just closing the loop on this one (the power source of a laptop). (Calling Richard Gaskin re the Linux case...)
-- Peter Peter M. Brigham pmb...@gmail.com http://home.comcast.net/~pmbrig --------- function getPowerSource -- returns the current power source for a laptop -- "AC" or "Battery" -- requires caseSwitch() switch the platform case "MacOS" -- thanks to Martin Koob, use-LC list put shell ("pmset -g batt") into tSource -- 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 tSource break case "Win32" -- thanks to Bob Sneidar, use-LC list -- someone with a Windows machine should test this case put shell("WMIC Path Win32_Battery GetAvailability") into tSource -- Line 3 will contain 2 if the battery is charging, 3 if running on battery put line 3 of tSource into tStatus return caseSwitch(tStatus,"3=Battery","*=AC") break default -- Linux awaiting Richard Gaskin... end switch end getPowerSource function caseSwitch -- does a quick inline switch/case -- 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 -- usage: -- put caseSwitch(len(tZip),"5=zip","10=zip+4","*=not a zip code") \ -- into zipCodeType -- from Ken Ray, use-LC list, originally named stsSwitch() 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 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 ---------- On Feb 21, 2015, at 2:59 AM, Richard Gaskin wrote: > Peter M. Brigham wrote: > >> Just out of curiosity, how *would* you do this via shell call or >> the equivalent on a Windows laptop? > > Good question. > > Thanks to the beautiful simplicity of the Linux /proc directory I was able to > find: > > cat /proc/acpi/battery/BAT1/state > > The "charging state" field there will contain "charging" or "discharging". > > Now if we can turn up a Win command line solution I'll write a handler for > this that'll make it convenient to get this info on all three platforms. > > Martin, thanks for handling the Mac side - nice work. > > >> On Feb 20, 2015, at 11:19 AM, Martin Koob wrote: >> >>> Hi Richard >>> >>> I noticed in your bug report was for Mac so till that enhancement gets >>> implemented you could use this. >>> >>> function powerStatus >>> put shell ("pmset -g batt") into tPowerStatus >>> put matchtext(tPowerStatus, "'([^']*)",tPowerSource) into tSuccess >>> return tPowerSource >>> end powerStatus > > > > -- > Richard Gaskin > Fourth World Systems > Software Design and Development for Desktop, Mobile, and Web > ____________________________________________________________ > ambassa...@fourthworld.com http://www.FourthWorld.com > > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode