And what about the battery kind? You should check for it too (MaxVoltage
for NiCd is not 3.00 volts).

Bozidar


> -----Original Message-----
> From: Daniel McCarty [mailto:[EMAIL PROTECTED]]
> Sent: Friday, March 05, 1999 8:10 PM
> To: [EMAIL PROTECTED]
> Subject: Re: Problems with getting accurate battery readings.
> 
> 
> [EMAIL PROTECTED] wrote:
> > 
> > I recieved some code a while back on how to do this but after 
> modifying it to
> > run on the palm pro (the sysBatteryInfo call is different) I get the
> > percentage but the guage is no longer correct. I am assuming 
> that the new call
> > for Palm 3 must return something other that battery volts (mine 
> is based a a 3
> > volt battery which I also need a better way of doing this too). 
> Can somebody
> > help?
> 
>    I use the following code to display a battery in any version of the
> OS, including PalmV's LiIon batteries:
> 
> void GetVoltage(UIntPtr voltage, BytePtr percent) {
>    UInt warning;
>    DWord romVersion;
> 
>    // we have to correctly calculate the current voltage on a PalmPilot,
>    // PalmIII, PalmIIIx and PalmV...and in the future, PalmVII.
>    FtrGet(sysFtrCreator, sysFtrNumROMVersion, &romVersion);
>    if (sysGetROMVerMajor(romVersion) < 3) {
>       *voltage = SysBatteryInfoV20(false, /*set*/
>          &warning,
>          NULL, /*criticalThresholdP*/
>          NULL, /*maxTicksP*/
>          NULL, /*kindP*/
>          NULL /*pluggedIn*/);
>       // calculate the current percentage using pseudo-floats
>       // instead of doubles and their corresponding 3.5k FPL
>       *percent = (*voltage - warning) * 100 / (MaxVoltage - warning);
>    } else
>       *voltage = SysBatteryInfo(false, /*set*/
>          NULL, /*warnThresholdP*/
>          NULL, /*criticalThresholdP*/
>          NULL, /*maxTicksP*/
>          NULL, /*kindP*/
>          NULL, /*pluggedIn*/
>          percent);
> }
> 
>    (MaxVoltage is define'd as 300.)
> 
> Hope this helps,
> Daniel.
> 
> 
> 
> 
> 
> 

Reply via email to