[Nut-upsdev] [nut-commits] svn commit r1043 - in trunk: . docs drivers

Arjen de Korte nut+devel at de-korte.org
Sun Aug 12 07:28:33 UTC 2007

>> + * drivers/apc-hid.c:
>> +   - Commented out the 'fullycharged' status. If anyone can explain the
>> +     use of this, please step forward.
> This flag is defined on p.36 of the "Universal Serial Bus Usage Tables
> for HID Power Devices", Release 1.0 November 1, 1997, a USB standards
> document available on the web.

I have that document, which is nice source for information regarding the
use of parameters that can be read from/written to the UPS.

> The document defines this flag to mean "Fully Charged". I assume that
> this means that the battery is fully charged, which would presumably
> happen after charging has finished, and before discharging begins. Its
> meaning should be similar to a battery.charge of 100%, except that it
> is a boolean flag, and that for whatever reason, some UPS might
> consider itself fully charged at less than 100%.

That is also what I expected here. But then, why does a client/user need
to know that? What action could possibly be triggered by seeing that the
batteries are fully charged?

> FullyCharged is not precisely an "alarm", as it is not a condition to
> be worried about. It is a kind of status. The standard actually
> defines four related codes defined: "Charging", "Discharging",
> "FullyCharged", and "FullyDischarged". Although some UPS simply
> pretend to be "charging" all the time, this is often confusing to
> users, who expect that their battery must be full at some point.


People who have no clue about how batteries work, should not worry about
this. Unfortunately, that's not under our control, so I agree we'd better
work around these 'bugs'. :-)

> It would make sense to me to map all four related codes to status
> flags. In fact, precisely one of the four should be true at any given
> time for any given connected battery, although the standard does not
> specify this.

I'm very reluctant to add all sorts of status flags to 'ups.status' (in
fact, I still doubt if we should have CHRG and DISCHRG in there). Where
would we stop? I propose that we map 'FullyCharged=1' to '!chrg' and
'FullyDischarged=1' to '!dischrg'. By putting these at the end of the list
of 'ups.status' info elements, they would clear the Charging and
Discharging status, without setting these. So 'FullyCharged=0' would not
mean the UPS is charging, nor would 'FullyDischarged=0' mean that it is

Best regards, Arjen
Eindhoven - The Netherlands
Key fingerprint - 66 4E 03 2C 9D B5 CB 9B  7A FE 7E C1 EE 88 BC 57

More information about the Nut-upsdev mailing list