[Nut-upsdev] NUT patches

Peter Selinger selinger at mathstat.dal.ca
Fri Aug 26 18:54:07 UTC 2005


Charles Lepple wrote:
> 
> would you mind forwarding (to either me, or the list) the .txt file
> showing the hidparser bug? I am trying to revamp libhid's hidparser,
> and it would be helpful to have the descriptor.
 
The text file is contained in the tarball on the patch tracker, at
https://alioth.debian.org/tracker/index.php?func=detail&aid=302101&group_id=30602&atid=411544 
("Download" at the bottom of the page).

The patch that fixes the parser bug is also contained there - it might
save you some work.

I am appending the textfile below for your ease of access.

> Also useful would be a hex dump of the descriptor itself (available
> with libhid's test program), but if you don't have time to get libhid
> up and running, I understand.

I am not sure I still have the hexdump, I kept it in the /tmp
directory of my laptop at home. I will look for it later. The UPS is
currently disconnected and waiting to be installed in my wife's
office, so I don't have access to it at the moment.

However, I still have a dump of a tokenized version of the descriptor
(one line for each main, local, or global item). It won't be useful to
you for testing, but at least you might be able to read it to see what
the source of the bug was. Namely, the "usage" for feature 35 is given
twice. It is a strange report descriptor, but not technically wrong,
and apparently several APC models send a descriptor like this.

======================================================================
This example shows the effect of the HIDParser bug (before and after
fixing it). Note that after the places marked ###, the parser shifts
all Usages by one, which mangles the tree. This bug is fixed in
nut-cvs-patch-PARSER-2005-08-24.

----------------------------------------------------------------------
Before fixing the HIDParser bug:

HIDDumpTree...

Path: UPS.PowerSummary.iSerialNumber
Path: UPS.PowerSummary.iDeviceChemistry
Path: UPS.PowerSummary.iOEMInformation
Path: UPS.PowerSummary.Rechargeable
Path: UPS.PowerSummary.APCStatusFlag
Path: UPS.PowerSummary.APCStatusFlag
Path: UPS.PowerSummary.ManufacturerDate
Path: UPS.PowerSummary.ConfigVoltage
Path: UPS.PowerSummary.Voltage
Path: UPS.PowerSummary.iManufacturer
Path: UPS.PowerSummary.CapacityMode
Path: UPS.PowerSummary.RemainingCapacity
Path: UPS.PowerSummary.RemainingCapacity
Path: UPS.PowerSummary.RunTimeToEmpty
Path: UPS.PowerSummary.RunTimeToEmpty
Path: UPS.PowerSummary.DesignCapacity
Path: UPS.PowerSummary.FullChargeCapacity
Path: UPS.PowerSummary.WarningCapacityLimit
Path: UPS.PowerSummary.CapacityGranularity2
Path: UPS.PowerSummary.RemainingCapacityLimit
Path: UPS.PowerSummary.CapacityGranularity1
Path: UPS.PowerSummary.PresentStatus.Charging
Path: UPS.PowerSummary.PresentStatus.Charging
Path: UPS.PowerSummary.PresentStatus.Discharging
Path: UPS.PowerSummary.PresentStatus.Discharging
Path: UPS.PowerSummary.PresentStatus.ACPresent
Path: UPS.PowerSummary.PresentStatus.ACPresent
Path: UPS.PowerSummary.PresentStatus.BatteryPresent
Path: UPS.PowerSummary.PresentStatus.BatteryPresent
Path: UPS.PowerSummary.PresentStatus.BelowRemainingCapacityLimit
Path: UPS.PowerSummary.PresentStatus.BelowRemainingCapacityLimit
Path: UPS.PowerSummary.PresentStatus.ShutdownImminent
Path: UPS.PowerSummary.PresentStatus.ShutdownImminent
Path: UPS.PowerSummary.PresentStatus.RemainingTimeLimitExpired
Path: UPS.PowerSummary.PresentStatus.RemainingTimeLimitExpired
Path: UPS.PowerSummary.PresentStatus.NeedReplacement
Path: UPS.PowerSummary.PresentStatus.NeedReplacement
Path: UPS.PowerSummary.PresentStatus.OverLoad
Path: UPS.PowerSummary.PresentStatus.OverLoad
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.RemainingTimeLimit
Path: UPS.PowerSummary.AudibleAlarmControl
Path: UPS.Battery.APCBattReplaceDate
Path: UPS.Battery.ManufacturerDate
Path: UPS.Battery.RemainingCapacity
Path: UPS.Battery.RunTimeToEmpty
Path: UPS.Battery.RunTimeToEmpty               (NOTE: ### HERE)
Path: UPS.Battery.RemainingTimeLimit
Path: UPS.Battery.ConfigVoltage
Path: UPS.Battery.Voltage
Path: UPS.Battery.ff860024
Path: UPS.ff860018.Input
Path: UPS.ff860018.ConfigVoltage
Path: UPS.ff860018.Voltage
Path: UPS.ff860018.LowVoltageTransfer
Path: UPS.ff860018.HighVoltageTransfer
Path: UPS.ff860018.ff860024
Path: UPS.ff860018.ff860061
Path: UPS.APC860052.APCGeneralCollection
Path: UPS.APC860052.APCForceShutdown
Path: UPS.APCDelayBeforeShutdown.PowerConverter
Path: UPS.APCDelayBeforeShutdown.PercentLoad
Path: UPS.ff860024.ff860001
Path: UPS.ff860024.ff860023
Path: UPS.ff860024.ff860026
Path: UPS.ff860025
Path: UPS.iProduct
Path: UPS.APC_UPS_FirmwareRevision
Path: UPS.iSerialNumber
Path: UPS.iManufacturer
Path: UPS.ManufacturerDate.PresentStatus
Path: UPS.ManufacturerDate.Charging
Path: UPS.ManufacturerDate.Discharging
Path: UPS.ManufacturerDate.ACPresent
Path: UPS.ManufacturerDate.BatteryPresent
Path: UPS.ManufacturerDate.BelowRemainingCapacityLimit
Path: UPS.ManufacturerDate.ShutdownImminent
Path: UPS.ManufacturerDate.RemainingTimeLimitExpired
Path: UPS.ManufacturerDate.NeedReplacement
Path: UPS.ManufacturerDate.OverLoad
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.ManufacturerDate.00000000
Path: UPS.APCPanelTest
Path: UPS.AudibleAlarmControl
Path: UPS.ff860029
Path: UPS.ff86002a

----------------------------------------------------------------------
After fixing the HIDParser bug:

HIDDumpTree...

Path: UPS.PowerSummary.iProduct
Path: UPS.PowerSummary.iSerialNumber
Path: UPS.PowerSummary.iDeviceChemistry
Path: UPS.PowerSummary.iOEMInformation
Path: UPS.PowerSummary.Rechargeable
Path: UPS.PowerSummary.APCStatusFlag
Path: UPS.PowerSummary.APCStatusFlag
Path: UPS.PowerSummary.ManufacturerDate
Path: UPS.PowerSummary.ConfigVoltage
Path: UPS.PowerSummary.Voltage
Path: UPS.PowerSummary.iManufacturer
Path: UPS.PowerSummary.CapacityMode
Path: UPS.PowerSummary.RemainingCapacity
Path: UPS.PowerSummary.RemainingCapacity
Path: UPS.PowerSummary.RunTimeToEmpty
Path: UPS.PowerSummary.RunTimeToEmpty
Path: UPS.PowerSummary.DesignCapacity
Path: UPS.PowerSummary.FullChargeCapacity
Path: UPS.PowerSummary.WarningCapacityLimit
Path: UPS.PowerSummary.CapacityGranularity2
Path: UPS.PowerSummary.RemainingCapacityLimit
Path: UPS.PowerSummary.CapacityGranularity1
Path: UPS.PowerSummary.PresentStatus.Charging
Path: UPS.PowerSummary.PresentStatus.Charging
Path: UPS.PowerSummary.PresentStatus.Discharging
Path: UPS.PowerSummary.PresentStatus.Discharging
Path: UPS.PowerSummary.PresentStatus.ACPresent
Path: UPS.PowerSummary.PresentStatus.ACPresent
Path: UPS.PowerSummary.PresentStatus.BatteryPresent
Path: UPS.PowerSummary.PresentStatus.BatteryPresent
Path: UPS.PowerSummary.PresentStatus.BelowRemainingCapacityLimit
Path: UPS.PowerSummary.PresentStatus.BelowRemainingCapacityLimit
Path: UPS.PowerSummary.PresentStatus.ShutdownImminent
Path: UPS.PowerSummary.PresentStatus.ShutdownImminent
Path: UPS.PowerSummary.PresentStatus.RemainingTimeLimitExpired
Path: UPS.PowerSummary.PresentStatus.RemainingTimeLimitExpired
Path: UPS.PowerSummary.PresentStatus.NeedReplacement
Path: UPS.PowerSummary.PresentStatus.NeedReplacement
Path: UPS.PowerSummary.PresentStatus.OverLoad
Path: UPS.PowerSummary.PresentStatus.OverLoad
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.PresentStatus.00000000
Path: UPS.PowerSummary.RemainingTimeLimit
Path: UPS.PowerSummary.AudibleAlarmControl
Path: UPS.Battery.APCBattReplaceDate
Path: UPS.Battery.ManufacturerDate
Path: UPS.Battery.RemainingCapacity
Path: UPS.Battery.RunTimeToEmpty               (NOTE: ### HERE)
Path: UPS.Battery.RemainingTimeLimit
Path: UPS.Battery.ConfigVoltage
Path: UPS.Battery.Voltage
Path: UPS.Battery.ff860024
Path: UPS.Battery.ff860018
Path: UPS.Input.ConfigVoltage
Path: UPS.Input.Voltage
Path: UPS.Input.LowVoltageTransfer
Path: UPS.Input.HighVoltageTransfer
Path: UPS.Input.ff860024
Path: UPS.Input.ff860061
Path: UPS.Input.ff860052
Path: UPS.APCGeneralCollection.APCForceShutdown
Path: UPS.APCGeneralCollection.APCDelayBeforeShutdown
Path: UPS.PowerConverter.PercentLoad
Path: UPS.PowerConverter.ff860024
Path: UPS.ff860001.ff860023
Path: UPS.ff860001.ff860026
Path: UPS.ff860001.ff860025
Path: UPS.iProduct
Path: UPS.APC_UPS_FirmwareRevision
Path: UPS.iSerialNumber
Path: UPS.iManufacturer
Path: UPS.ManufacturerDate
Path: UPS.PresentStatus.Charging
Path: UPS.PresentStatus.Discharging
Path: UPS.PresentStatus.ACPresent
Path: UPS.PresentStatus.BatteryPresent
Path: UPS.PresentStatus.BelowRemainingCapacityLimit
Path: UPS.PresentStatus.ShutdownImminent
Path: UPS.PresentStatus.RemainingTimeLimitExpired
Path: UPS.PresentStatus.NeedReplacement
Path: UPS.PresentStatus.OverLoad
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.PresentStatus.00000000
Path: UPS.APCPanelTest
Path: UPS.AudibleAlarmControl
Path: UPS.ff860029
Path: UPS.ff86002a

======================================================================
Custom tokenized report descriptor:

 Global Usage Page(0x0084)
 Local Usage(0x0004)
Collection 0x01=Application
 Local Usage(0x0024)
Collection 0x00=Physical
 Global Report ID(0x0001)
 Local Usage(0x00fe)
 Local String Index(0x0001)
 Global Report Size(0x0008)
 Global Report Count(0x0001)
 Global Logical Minimum(0x0000)
 Global Logical Maximum(0x00ff)
Feature/1
 Global Report ID(0x0002)
 Local Usage(0x00ff)
 Local String Index(0x0002)
Feature/2
 Global Report ID(0x0003)
 Global Usage Page(0x0085)
 Local Usage(0x0089)
 Local String Index(0x0004)
Feature/3
 Global Report ID(0x0004)
 Local Usage(0x008f)
 Local String Index(0x0003)
Feature/4
 Global Report ID(0x0005)
 Local Usage(0x008b)
Feature/5
 Global Report ID(0x0006)
 Global Usage Page(0xff86)
 Local Usage(0x0060)
Input/6
 Local Usage(0x0060)
Feature/6
 Global Report ID(0x0007)
 Global Usage Page(0x0085)
 Local Usage(0x0085)
 Global Report Size(0x0010)
 Global Logical Maximum(0xffff)
Feature/7
 Global Report ID(0x0008)
 Global Usage Page(0x0084)
 Local Usage(0x0040)
 Global Unit(0xf0d121)
 Global Unit Exponent(0x0005)
Feature/8
 Global Report ID(0x0009)
 Local Usage(0x0030)
Feature/9
 Global Report ID(0x000a)
 Local Usage(0x00fd)
 Global Report Size(0x0008)
 Global Logical Maximum(0x00ff)
 Global Unit(0x0000)
 Global Unit Exponent(0x0000)
 Local String Index(0x0003)
Feature/10
 Global Report ID(0x000b)
 Global Usage Page(0x0085)
 Local Usage(0x002c)
Feature/11
 Global Report ID(0x000c)
 Local Usage(0x0066)
 Global Logical Maximum(0x0064)
Input/12
 Local Usage(0x0066)
Feature/12
 Local Usage(0x0068)
 Global Report Size(0x0010)
 Global Logical Maximum(0xffff)
 Global Unit(0x1001)
Input/12
 Local Usage(0x0068)
Feature/12
 Global Report ID(0x000d)
 Local Usage(0x0083)
 Global Report Size(0x0008)
 Global Logical Maximum(0x0064)
 Global Unit(0x0000)
Feature/13
 Global Report ID(0x000e)
 Local Usage(0x0067)
Feature/14
 Global Report ID(0x000f)
 Local Usage(0x008c)
Feature/15
 Global Report ID(0x0010)
 Local Usage(0x008e)
Feature/16
 Global Report ID(0x0011)
 Local Usage(0x0029)
 Global Logical Minimum(0x0001)
Feature/17
 Global Report ID(0x0012)
 Local Usage(0x008d)
 Global Logical Minimum(0x0000)
Feature/18
 Global Usage Page(0x0084)
 Local Usage(0x0002)
Collection 0x02=Logical
 Global Report ID(0x0016)
 Global Usage Page(0x0085)
 Global Report Size(0x0001)
 Global Logical Maximum(0x0001)
 Local Usage(0x0044)
Input/22
 Local Usage(0x0044)
Feature/22
 Local Usage(0x0045)
Input/22
 Local Usage(0x0045)
Feature/22
 Local Usage(0x00d0)
Input/22
 Local Usage(0x00d0)
Feature/22
 Local Usage(0x00d1)
Input/22
 Local Usage(0x00d1)
Feature/22
 Local Usage(0x0042)
Input/22
 Local Usage(0x0042)
Feature/22
 Global Usage Page(0x0084)
 Local Usage(0x0069)
Input/22
 Local Usage(0x0069)
Feature/22
 Global Usage Page(0x0085)
 Local Usage(0x0043)
Input/22
 Local Usage(0x0043)
Feature/22
 Local Usage(0x004b)
Input/22
 Local Usage(0x004b)
Feature/22
 Global Usage Page(0x0084)
 Local Usage(0x0065)
Input/22
 Local Usage(0x0065)
Feature/22
 Global Report Count(0x0017)
Input/22
Feature/22
EndCollection
 Global Report ID(0x0017)
 Global Usage Page(0x0085)
 Local Usage(0x002a)
 Global Report Count(0x0001)
 Global Report Size(0x0010)
 Global Logical Maximum(0xffff)
 Global Unit(0x1001)
Feature/23
 Global Report ID(0x0018)
 Global Usage Page(0x0084)
 Local Usage(0x005a)
 Global Report Size(0x0008)
 Global Logical Minimum(0x0001)
 Global Logical Maximum(0x0003)
 Global Unit(0x0000)
Feature/24
EndCollection
 Local Usage(0x0012)
Collection 0x00=Physical
 Global Report ID(0x001c)
 Global Usage Page(0xff86)
 Local Usage(0x0016)
 Global Report Size(0x0018)
 Global Logical Minimum(0x0000)
 Global Logical Maximum(0xffffff)
Feature/28
 Global Report ID(0x0020)
 Global Usage Page(0x0085)
 Local Usage(0x0085)
 Global Report Size(0x0010)
 Global Logical Maximum(0xffff)
Feature/32
 Global Report ID(0x0022)
 Local Usage(0x0066)
 Global Report Size(0x0008)
 Global Logical Maximum(0x0064)
Feature/34
 Global Report ID(0x0023)
 Local Usage(0x0068)
 Global Report Size(0x0010)
 Global Logical Maximum(0xffff)
 Global Unit(0x1001)
 Local Usage(0x0068)
Feature/35
 Global Report ID(0x0024)
 Local Usage(0x002a)
Feature/36
 Global Report ID(0x0025)
 Global Usage Page(0x0084)
 Local Usage(0x0040)
 Global Unit(0xf0d121)
 Global Unit Exponent(0x0005)
Feature/37
 Global Report ID(0x0026)
 Local Usage(0x0030)
Feature/38
 Global Report ID(0x0027)
 Global Usage Page(0xff86)
 Local Usage(0x0024)
 Global Report Size(0x0008)
 Global Logical Minimum(0x00e8)
 Global Logical Maximum(0x00fe)
 Global Unit(0x0000)
 Global Unit Exponent(0x0000)
Feature/39
 Global Report ID(0x0028)
 Local Usage(0x0018)
 Global Report Size(0x0020)
 Global Logical Minimum(0x80000001)
 Global Logical Maximum(0x7fffffff)
Feature/40
EndCollection
 Global Usage Page(0x0084)
 Local Usage(0x001a)
Collection 0x00=Physical
 Global Report ID(0x0030)
 Global Usage Page(0x0084)
 Local Usage(0x0040)
 Global Report Size(0x0008)
 Global Logical Minimum(0x0000)
 Global Logical Maximum(0x00ff)
 Global Unit(0xf0d121)
 Global Unit Exponent(0x0007)
Feature/48
 Global Report ID(0x0031)
 Local Usage(0x0030)
Feature/49
 Global Report ID(0x0032)
 Local Usage(0x0053)
 Global Logical Minimum(0x0057)
 Global Logical Maximum(0x0061)
Feature/50
 Global Report ID(0x0033)
 Local Usage(0x0054)
 Global Logical Minimum(0x007f)
 Global Logical Maximum(0x008b)
Feature/51
 Global Report ID(0x0034)
 Global Usage Page(0xff86)
 Local Usage(0x0024)
 Global Logical Minimum(0x00aa)
 Global Logical Maximum(0x00fe)
 Global Unit(0x0000)
 Global Unit Exponent(0x0000)
Feature/52
 Global Report ID(0x0035)
 Local Usage(0x0061)
 Global Logical Minimum(0x0000)
 Global Logical Maximum(0x0002)
Feature/53
 Global Report ID(0x0036)
 Local Usage(0x0052)
 Global Logical Maximum(0x000d)
Feature/54
EndCollection
 Local Usage(0x0005)
Collection 0x00=Physical
 Global Report ID(0x0040)
 Local Usage(0x007c)
 Global Logical Maximum(0x0001)
Feature/64
 Global Report ID(0x0041)
 Local Usage(0x007d)
 Global Report Size(0x0010)
 Global Logical Minimum(0xffff)
 Global Logical Maximum(0x7fff)
 Global Unit(0x1001)
Feature/65
EndCollection
 Global Usage Page(0x0084)
 Local Usage(0x0016)
Collection 0x00=Physical
 Global Report ID(0x0050)
 Local Usage(0x0035)
 Global Report Size(0x0008)
 Global Logical Minimum(0x0000)
 Global Logical Maximum(0x0064)
 Global Unit(0x0000)
Feature/80
 Global Report ID(0x0051)
 Global Usage Page(0xff86)
 Local Usage(0x0024)
 Global Logical Minimum(0x006d)
 Global Logical Maximum(0x00b8)
Feature/81
EndCollection
 Global Usage Page(0xff86)
 Local Usage(0x0001)
Collection 0x00=Physical
 Global Report ID(0x0060)
 Local Usage(0x0023)
 Global Report Size(0x0010)
 Global Logical Minimum(0x0000)
 Global Logical Maximum(0xffff)
Feature/96
 Global Report ID(0x0061)
 Local Usage(0x0026)
 Global Report Size(0x0008)
 Global Logical Minimum(0x0084)
 Global Logical Maximum(0x008c)
Feature/97
 Global Report ID(0x0062)
 Local Usage(0x0025)
 Global Report Size(0x0020)
 Global Logical Minimum(0x80000001)
 Global Logical Maximum(0x7fffffff)
Feature/98
EndCollection
 Global Report ID(0x007f)
 Global Usage Page(0x0084)
 Local Usage(0x00fe)
 Local String Index(0x0005)
 Global Report Size(0x0008)
 Global Report Count(0x0001)
 Global Logical Minimum(0x0000)
 Global Logical Maximum(0x00ff)
Feature/127
 Global Report ID(0x007e)
 Global Usage Page(0xff86)
 Local Usage(0x0042)
 Local String Index(0x0006)
Feature/126
 Global Report ID(0x007d)
 Global Usage Page(0x0084)
 Local Usage(0x00ff)
 Local String Index(0x0002)
Feature/125
 Global Report ID(0x007c)
 Local Usage(0x00fd)
 Local String Index(0x0003)
Feature/124
 Global Report ID(0x007b)
 Global Usage Page(0x0085)
 Local Usage(0x0085)
 Global Report Size(0x0010)
 Global Logical Maximum(0xffff)
Feature/123
 Global Usage Page(0x0084)
 Local Usage(0x0002)
Collection 0x02=Logical
 Global Report ID(0x007a)
 Global Usage Page(0x0085)
 Local Usage(0x0044)
 Global Report Size(0x0001)
 Global Logical Maximum(0x0001)
Feature/122
 Local Usage(0x0045)
Feature/122
 Local Usage(0x00d0)
Feature/122
 Local Usage(0x00d1)
Feature/122
 Local Usage(0x0042)
Feature/122
 Global Usage Page(0x0084)
 Local Usage(0x0069)
Feature/122
 Global Usage Page(0x0085)
 Local Usage(0x0043)
Feature/122
 Local Usage(0x004b)
Feature/122
 Global Usage Page(0x0084)
 Local Usage(0x0065)
Feature/122
 Global Report Count(0x0017)
Feature/122
EndCollection
 Global Report ID(0x0079)
 Global Usage Page(0xff86)
 Local Usage(0x0072)
 Global Report Size(0x0008)
 Global Report Count(0x0001)
Feature/121
 Global Report ID(0x0078)
 Global Usage Page(0x0084)
 Local Usage(0x005a)
 Global Logical Minimum(0x0001)
 Global Logical Maximum(0x0003)
Feature/120
 Global Report ID(0x0075)
 Global Usage Page(0xff86)
 Local Usage(0x0029)
 Global Logical Maximum(0x00ff)
Feature/117
 Global Report ID(0x0074)
 Local Usage(0x002a)
 Global Report Size(0x0020)
 Global Logical Minimum(0x80000001)
 Global Logical Maximum(0x7fffffff)
Feature/116
EndCollection





More information about the Nut-upsdev mailing list