Because LC can't do two things at once.

Mike Kerner MikeKerner at roadrunner.com
Mon Mar 2 09:33:52 EST 2015


that doesn't suck and ought to be in the masterLibrary, or whatever it's
called.

On Sun, Mar 1, 2015 at 1:04 PM, Peter M. Brigham <pmbrig at gmail.com> wrote:

> Just closing the loop on this one (the power source of a laptop). (Calling
> Richard Gaskin re the Linux case...)
>
> -- Peter
>
> Peter M. Brigham
> pmbrig at 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
> > ____________________________________________________________
> > Ambassador at FourthWorld.com        http://www.FourthWorld.com
> >
> > _______________________________________________
> > 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
>
>
> _______________________________________________
> 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
>



-- 
On the first day, God created the heavens and the Earth
On the second day, God created the oceans.
On the third day, God put the animals on hold for a few hours,
   and did a little diving.
And God said, "This is good."



More information about the use-livecode mailing list