[Nut-upsdev] Fwd: Re: [Nut-upsuser] Ablerex 625L USB version

Charles Lepple clepple at gmail.com
Sun Jan 28 15:37:22 CET 2007


[Note: trimmed HTML]

---------- Forwarded message ----------
From: selinger at mathstat.dal.ca (Peter Selinger)
To: jon.gough at eclipsesystems.com.au (Jon Gough)
Date: Sun, 28 Jan 2007 02:20:48 -0400 (AST)
Subject: Re: [Nut-upsuser] Ablerex 625L USB version
Hi Jon,

I can't figure out which version of NUT you are running, because you
have pruned that information from your output. Also, which patches, if
any, have you applied?

What you are seeing from lsusb is not "data" from the UPS; it is
simply a detailed parsing of the report descriptor. For example, when
it says "Usage, data= [ 0x40 ] 64 Config Voltage", this simply means
that HID usage code 0040 corresponds to the "ConfigVoltage" item (see
e.g. libhid.c, line 1100).

The error message "(75): Value too large for defined data type" may
indicate that the UPS is unhappy with the size of the buffer provided
by NUT (apparently 13). You can play with this by hacking a larger
buffer size. It should be easy to do this in the function
libhid.c:refresh_report_buffer(), by setting len to something bigger
(or smaller).

If the buffer is too small, the device is supposed to fill it with
valid data up to the given size, instead of bailing out with an error
message. So it seems that the device is at least a little buggy.
Similar behavior has been observed in other cheap devices. (In fact,
one Belkin UPS that I own seems to have a dual bug: if you give a
buffer that is too large, then it will attempt to write random
contents from the firmware memory into the buffer, often crashing the
device).

Alternatively, what would happen if you just ignored the error in
libhid.c after the call to get_report? Perhaps the buffer has been
filled with partial data in spite of the error message?

Just some thoughts. -- Peter

Jon Gough wrote:
>
> Peter,
>     I have been trying with no luck to get the drivers working. I
> have done a  "lsusb -v -d ffff:" to get the info from the USB
> regarding my UPS and it seems to be giving valid data. However, I am
> now confused with the "explore" option of the usbhid-ups program as
> the Report Descriptor is 632 byte long (which is confirmed by the
> lsusb program). But the lsusb program seems to be reading every other
> byte not each byte. What are the in between bytes for?
>
>     I have included the output of the lsusb command below (sorry for
> the length) and it seems to read the output fine, but the NUT
> software seems to call libusb and get invalid responses. I notice in
> the latest output that the length of the data and the length being
> requested seem different (I put a couple of extra debugging statements in).
>
> Using subdriver: EXPLORE HID 0.1
> parsing 00860004
> parsing Flow
> hid_lookup_usage: found 84001e
> parsing FlowID
> hid_lookup_usage: found 84001f
> Path depth = 3
> 0: Usage(00860004)
> 1: Usage(0084001e)
> 2: Usage(0084001f)
> Entering libusb_get_report. ReportSize: 13
> typesafe_control_msg: size: 13
> Can't retrieve Report 1 (75): Value too large for defined data type
> Path: 00860004.Flow.FlowID, Type: Feature, ReportID: 0x01, Offset: 0, Size: 4
> parsing 00860004
> parsing Flow
> hid_lookup_usage: found 84001e
> parsing ConfigVoltage
> hid_lookup_usage: found 840040
> Path depth = 3
> 0: Usage(00860004)
> 1: Usage(0084001e)
> 2: Usage(00840040)
> Entering libusb_get_report. ReportSize: 13
> typesafe_control_msg: size: 13
> Can't retrieve Report 1 (75): Value too large for defined data type
> Path: 00860004.Flow.ConfigVoltage, Type: Feature, ReportID: 0x01,
> Offset: 8, Size: 16
>
> Is this correct, or is there something else that needs looking at?
>
> Regards
>     Jon
>
> Data from lsusb
> @@@@@@@@@@@@@@@
> Bus 001 Device 021: ID ffff:0000
> Device Descriptor:
>    bLength                18
>    bDescriptorType         1
>    bcdUSB               1.00
>    bDeviceClass            0 (Defined at Interface level)
>    bDeviceSubClass         0
>    bDeviceProtocol         0
>    bMaxPacketSize0         8
>    idVendor           0xffff
>    idProduct          0x0000
>    bcdDevice            1.00
>    iManufacturer           1 UIS Ablerex
>    iProduct                2 Ablerex USB Interface 049e
>    iSerial                 0
>    bNumConfigurations      1
>    Configuration Descriptor:
>      bLength                 9
>      bDescriptorType         2
>      wTotalLength           27
>      bNumInterfaces          1
>      bConfigurationValue     1
>      iConfiguration          0
>      bmAttributes         0x80
>      MaxPower              100mA
>      Interface Descriptor:
>        bLength                 9
>        bDescriptorType         4
>        bInterfaceNumber        0
>        bAlternateSetting       0
>        bNumEndpoints           0
>        bInterfaceClass         3 Human Interface Devices
>        bInterfaceSubClass      0 No Subclass
>        bInterfaceProtocol      0 None
>        iInterface              0
>          HID Device Descriptor:
>            bLength                 9
>            bDescriptorType        33
>            bcdHID               1.00
>            bCountryCode            0 Not supported
>            bNumDescriptors         1
>            bDescriptorType        34 Report
>            wDescriptorLength     632
>            Report Descriptor: (length is 632)
>              Item(Global): Usage Page, data= [ 0x86 ] 134
>                              Power Pages
>              Item(Local ): Usage, data= [ 0x04 ] 4
>                              (null)
>              Item(Main  ): Collection, data= [ 0x01 ] 1
>                              Application
>              Item(Global): Usage Page, data= [ 0x84 ] 132
>                              Power Device Page
>              Item(Local ): Usage, data= [ 0x1e ] 30
>                              Flow
>              Item(Main  ): Collection, data= [ 0x00 ] 0
>                              Physical
>              Item(Global): Report ID, data= [ 0x01 ] 1
>              Item(Local ): Usage, data= [ 0x1f ] 31
>                              Flow ID
>              Item(Global): Unit, data= [ 0x00 ] 0
>              Item(Global): Report Size, data= [ 0x04 ] 4
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0x0f ] 15
>              Item(Global): Unit, data= [ 0x00 ] 0
>              Item(Main  ): Feature, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Global): Report Size, data= [ 0x04 ] 4
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Main  ): Feature, data= [ 0x03 ] 3
>                              Constant Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x40 ] 64
>                              Config Voltage
>              Item(Global): Report Size, data= [ 0x10 ] 16
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Unit, data= [ 0x21 0xd1 0xf0 0x00 ] 15782177
>              Item(Global): Unit Exponent, data= [ 0x07 ] 7
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0xfa 0x00 ] 250
>              Item(Main  ): Feature, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x42 ] 66
>                              Config Frequency
>              Item(Global): Report Size, data= [ 0x10 ] 16
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Unit, data= [ 0x01 0xf0 ] 61441
>              Item(Global): Unit Exponent, data= [ 0x00 ] 0
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0x3c ] 60
>              Item(Main  ): Feature, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x53 ] 83
>                              Low Voltage Transfer
>              Item(Global): Report Size, data= [ 0x10 ] 16
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Unit, data= [ 0x21 0xd1 0xf0 0x00 ] 15782177
>              Item(Global): Unit Exponent, data= [ 0x07 ] 7
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0xfa 0x00 ] 250
>              Item(Main  ): Feature, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x54 ] 84
>                              High Voltage Transfer
>              Item(Global): Report Size, data= [ 0x10 ] 16
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Unit, data= [ 0x21 0xd1 0xf0 0x00 ] 15782177
>              Item(Global): Unit Exponent, data= [ 0x07 ] 7
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0xfa 0x00 ] 250
>              Item(Main  ): Feature, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0xfd ] 253
>                              iManufacturer
>              Item(Local ): Usage, data= [ 0xfe ] 254
>                              iProduct
>              Item(Local ): Usage, data= [ 0xff ] 255
>                              iSerialNumber
>              Item(Global): Report Size, data= [ 0x08 ] 8
>              Item(Global): Report Count, data= [ 0x03 ] 3
>              Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>              Item(Global): Unit, data= [ 0x00 ] 0
>              Item(Main  ): Feature, data= [ 0x00 ] 0
>                              Data Array Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Main  ): End Collection, data=none
>              Item(Global): Usage Page, data= [ 0x84 ] 132
>                              Power Device Page
>              Item(Local ): Usage, data= [ 0x1e ] 30
>                              Flow
>              Item(Main  ): Collection, data= [ 0x00 ] 0
>                              Physical
>              Item(Global): Report ID, data= [ 0x02 ] 2
>              Item(Local ): Usage, data= [ 0x1f ] 31
>                              Flow ID
>              Item(Global): Unit, data= [ 0x00 ] 0
>              Item(Global): Report Size, data= [ 0x04 ] 4
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0x0f ] 15
>              Item(Global): Unit, data= [ 0x00 ] 0
>              Item(Main  ): Feature, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Report Size, data= [ 0x04 ] 4
>              Item(Main  ): Feature, data= [ 0x03 ] 3
>                              Constant Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x40 ] 64
>                              Config Voltage
>              Item(Global): Report Size, data= [ 0x10 ] 16
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Unit, data= [ 0x21 0xd1 0xf0 0x00 ] 15782177
>              Item(Global): Unit Exponent, data= [ 0x07 ] 7
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0xfa 0x00 ] 250
>              Item(Main  ): Feature, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x42 ] 66
>                              Config Frequency
>              Item(Global): Report Size, data= [ 0x10 ] 16
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Unit, data= [ 0x01 0xf0 ] 61441
>              Item(Global): Unit Exponent, data= [ 0x00 ] 0
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0x3c ] 60
>              Item(Main  ): Feature, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x43 ] 67
>                              Config Apparent Power
>              Item(Global): Report Size, data= [ 0x10 ] 16
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Unit, data= [ 0x21 0xd1 ] 53537
>              Item(Global): Unit Exponent, data= [ 0x07 ] 7
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
>              Item(Main  ): Feature, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x44 ] 68
>                              Config Active Power
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Report Size, data= [ 0x10 ] 16
>              Item(Global): Unit, data= [ 0x21 0xd1 ] 53537
>              Item(Global): Unit Exponent, data= [ 0x07 ] 7
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
>              Item(Main  ): Feature, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x56 ] 86
>                              Delay Before Startup
>              Item(Global): Report Size, data= [ 0x18 ] 24
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Unit, data= [ 0x01 0x10 ] 4097
>              Item(Global): Unit Exponent, data= [ 0x00 ] 0
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
>              Item(Main  ): Feature, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x57 ] 87
>                              Delay Before Shutdown
>              Item(Global): Report Size, data= [ 0x18 ] 24
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Unit, data= [ 0x01 0x10 ] 4097
>              Item(Global): Unit Exponent, data= [ 0x00 ] 0
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
>              Item(Main  ): Feature, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Main  ): End Collection, data=none
>              Item(Global): Usage Page, data= [ 0x84 ] 132
>                              Power Device Page
>              Item(Local ): Usage, data= [ 0x10 ] 16
>                              Battery System
>              Item(Main  ): Collection, data= [ 0x00 ] 0
>                              Physical
>              Item(Global): Report ID, data= [ 0x03 ] 3
>              Item(Local ): Usage, data= [ 0x11 ] 17
>                              Battery System ID
>              Item(Global): Unit, data= [ 0x00 ] 0
>              Item(Global): Report Size, data= [ 0x04 ] 4
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0x0f ] 15
>              Item(Global): Unit, data= [ 0x00 ] 0
>              Item(Main  ): Feature, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Global): Report Size, data= [ 0x04 ] 4
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Main  ): Feature, data= [ 0x03 ] 3
>                              Constant Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x02 ] 2
>                              Present Status
>              Item(Main  ): Collection, data= [ 0x02 ] 2
>                              Logical
>              Item(Local ): Usage, data= [ 0x6d ] 109
>                              Used
>              Item(Local ): Usage, data= [ 0x61 ] 97
>                              Good
>              Item(Global): Report Size, data= [ 0x01 ] 1
>              Item(Global): Report Count, data= [ 0x02 ] 2
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0x01 ] 1
>              Item(Main  ): Feature, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Global): Report Size, data= [ 0x06 ] 6
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Main  ): Feature, data= [ 0x03 ] 3
>                              Constant Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Main  ): End Collection, data=none
>              Item(Local ): Usage, data= [ 0x30 ] 48
>                              Voltage
>              Item(Global): Report Size, data= [ 0x18 ] 24
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Unit, data= [ 0x21 0xd1 0xf0 0x00 ] 15782177
>              Item(Global): Unit Exponent, data= [ 0x05 ] 5
>              Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
>              Item(Main  ): Feature, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x36 ] 54
>                              Temperature
>              Item(Global): Report Size, data= [ 0x10 ] 16
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Unit, data= [ 0x01 0x00 0x01 0x00 ] 65537
>              Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
>              Item(Main  ): Feature, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x58 ] 88
>                              Test
>              Item(Global): Report Size, data= [ 0x01 ] 1
>              Item(Global): Report Count, data= [ 0x06 ] 6
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0x01 ] 1
>              Item(Main  ): Input, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Global): Report Size, data= [ 0x02 ] 2
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Main  ): Input, data= [ 0x03 ] 3
>                              Constant Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x58 ] 88
>                              Test
>              Item(Global): Report Size, data= [ 0x01 ] 1
>              Item(Global): Report Count, data= [ 0x04 ] 4
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0x01 ] 1
>              Item(Main  ): Feature, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Global): Report Size, data= [ 0x04 ] 4
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Main  ): Feature, data= [ 0x03 ] 3
>                              Constant Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Main  ): End Collection, data=none
>              Item(Global): Usage Page, data= [ 0x84 ] 132
>                              Power Device Page
>              Item(Local ): Usage, data= [ 0x16 ] 22
>                              Power Converter
>              Item(Main  ): Collection, data= [ 0x00 ] 0
>                              Physical
>              Item(Global): Report ID, data= [ 0x04 ] 4
>              Item(Local ): Usage, data= [ 0x17 ] 23
>                              Power Converter ID
>              Item(Global): Report Size, data= [ 0x04 ] 4
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0x0f ] 15
>              Item(Global): Unit, data= [ 0x00 ] 0
>              Item(Main  ): Input, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Global): Report Size, data= [ 0x04 ] 4
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Main  ): Input, data= [ 0x03 ] 3
>                              Constant Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x1a ] 26
>                              Input
>              Item(Main  ): Collection, data= [ 0x00 ] 0
>                              Physical
>              Item(Local ): Usage, data= [ 0x1b ] 27
>                              Input ID
>              Item(Local ): Usage, data= [ 0x1f ] 31
>                              Flow ID
>              Item(Global): Report Size, data= [ 0x04 ] 4
>              Item(Global): Report Count, data= [ 0x02 ] 2
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0x0f ] 15
>              Item(Global): Unit, data= [ 0x00 ] 0
>              Item(Main  ): Input, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x02 ] 2
>                              Present Status
>              Item(Main  ): Collection, data= [ 0x02 ] 2
>                              Logical
>              Item(Local ): Usage, data= [ 0x61 ] 97
>                              Good
>              Item(Global): Report Size, data= [ 0x01 ] 1
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0x01 ] 1
>              Item(Main  ): Input, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Global): Report Size, data= [ 0x07 ] 7
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Main  ): Input, data= [ 0x03 ] 3
>                              Constant Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Main  ): End Collection, data=none
>              Item(Local ): Usage, data= [ 0x30 ] 48
>                              Voltage
>              Item(Global): Report Size, data= [ 0x10 ] 16
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Unit, data= [ 0x21 0xd1 0xf0 0x00 ] 15782177
>              Item(Global): Unit Exponent, data= [ 0x05 ] 5
>              Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
>              Item(Main  ): Input, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x32 ] 50
>                              Frequency
>              Item(Global): Report Size, data= [ 0x10 ] 16
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Unit, data= [ 0x01 0xf0 ] 61441
>              Item(Global): Unit Exponent, data= [ 0x05 ] 5
>              Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
>              Item(Main  ): Input, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Main  ): End Collection, data=none
>              Item(Local ): Usage, data= [ 0x1c ] 28
>                              Output
>              Item(Main  ): Collection, data= [ 0x00 ] 0
>                              Physical
>              Item(Global): Report ID, data= [ 0x05 ] 5
>              Item(Local ): Usage, data= [ 0x1d ] 29
>                              Output ID
>              Item(Local ): Usage, data= [ 0x1f ] 31
>                              Flow ID
>              Item(Global): Report Size, data= [ 0x04 ] 4
>              Item(Global): Report Count, data= [ 0x02 ] 2
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0x0f ] 15
>              Item(Global): Unit, data= [ 0x00 ] 0
>              Item(Main  ): Input, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x30 ] 48
>                              Voltage
>              Item(Global): Report Size, data= [ 0x10 ] 16
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Unit, data= [ 0x21 0xd1 0xf0 0x00 ] 15782177
>              Item(Global): Unit Exponent, data= [ 0x05 ] 5
>              Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
>              Item(Main  ): Input, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x32 ] 50
>                              Frequency
>              Item(Global): Report Size, data= [ 0x10 ] 16
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Unit, data= [ 0x01 0xf0 ] 61441
>              Item(Global): Unit Exponent, data= [ 0x05 ] 5
>              Item(Global): Logical Maximum, data= [ 0xfe 0xff 0x00 0x00 ] 65534
>              Item(Main  ): Input, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x35 ] 53
>                              Percent Load
>              Item(Global): Report Size, data= [ 0x10 ] 16
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0xff 0x00 ] 255
>              Item(Main  ): Input, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x02 ] 2
>                              Present Status
>              Item(Main  ): Collection, data= [ 0x02 ] 2
>                              Logical
>              Item(Local ): Usage, data= [ 0x65 ] 101
>                              Overload
>              Item(Local ): Usage, data= [ 0x6e ] 110
>                              Boost
>              Item(Local ): Usage, data= [ 0x6f ] 111
>                              Buck
>              Item(Global): Report Size, data= [ 0x01 ] 1
>              Item(Global): Report Count, data= [ 0x03 ] 3
>              Item(Global): Logical Minimum, data= [ 0x00 ] 0
>              Item(Global): Logical Maximum, data= [ 0x01 ] 1
>              Item(Global): Unit, data= [ 0x00 ] 0
>              Item(Main  ): Input, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Global): Report Size, data= [ 0x05 ] 5
>              Item(Global): Report Count, data= [ 0x01 ] 1
>              Item(Main  ): Input, data= [ 0x03 ] 3
>                              Constant Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Local ): Usage, data= [ 0x39 ] 57
>                              (null)
>              Item(Global): Report Size, data= [ 0x08 ] 8
>              Item(Global): Report Count, data= [ 0x2e ] 46
>              Item(Main  ): Feature, data= [ 0x02 ] 2
>                              Data Variable Absolute No_Wrap Linear
>                              Preferred_State No_Null_Position
> Non_Volatile Bitfield
>              Item(Main  ): End Collection, data=none
>              Item(Main  ): End Collection, data=none
>              Item(Main  ): End Collection, data=none
>              Item(Main  ): End Collection, data=none
> @@@@@@@@@@@@@@@
>
>
>
>
> At 15:06 26/01/2007, Peter Selinger wrote:
> >Jon,
> >
> >there were some threads in December on the nut-upsdev list, with
> >subjects such as "megatec over USB". Andrey Lelikov had written a
> >patch for a "SVEN Pro+" device, and Alexander I. Gordeev is still
> >continuing to work on it to support his "Krauler" device. But as far
> >as I know, this has not yet been tested much, and Alexander is still
> >working on it (see his most recent post on January 23).
> >
> >Last time I took inventory, here is the list of devices that *may* use
> >a similar protocol (dubbed "megatec-over-USB"):
> >
> >* Krauler UP-M500VA (see Alexander I. Gordeev's thread on nut-upsdev,
> >   November 2006)
> >* Ablerex 625L (see Lau Kim Ping's thread on nut-upsuser, October
> >   2006)
> >* Atlantis-Land S1501 (made by Ablerex) (see ngpost1's threads on
> >   nut-upsuser and nut-upsdev, December 2005)
> >* Belkin F6H500ukUNV (made by MEC?) (see the thread by meherenow,
> >   spamwhole, and Robert Kent on nut-upsdev, September 2006)
> >* SVEN Pro+ USB (see Andrey Lelikov's posts on nut-upsdev, starting
> >   December 2006)
> >
> >I don't have any further information at this point, but you could get
> >in touch with Alexander to see if he has a tryable version of Andrey's
> >patch, or you could try Andrey's patch (which was posted on the
> >mailing list) directly.
> >
> >-- Peter
> >
> >
> >Jon Gough wrote:
> > >
> > > Hi,
> > >      Is there any further information on this UPS interface? I have
> > > an Upsonic UPS that is reporting the same interface, but I cannot
> > > make it work or get any sensible information from it.
> > >
> > > Thanks
> > > Jon
> > >
> > >
> > >
> > > ---
> > > avast! Antivirus: Outbound message clean.
> > > Virus Database (VPS): 000706-2, 25/01/2007
> > > Tested on: 26/01/2007 11:00:14 AM
> > > avast! is copyright (c) 2000-2007 ALWIL Software.
> > > http://www.avast.com
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > Nut-upsuser mailing list
> > > Nut-upsuser at lists.alioth.debian.org
> > > http://lists.alioth.debian.org/mailman/listinfo/nut-upsuser
> > >
>
>
>
>
> ---
> avast! Antivirus: Outbound message clean.
> Virus Database (VPS): 000707-0, 27/01/2007
> Tested on: 28/01/2007 4:57:51 PM
> avast! is copyright (c) 2000-2007 ALWIL Software.
> http://www.avast.com



More information about the Nut-upsdev mailing list