<html>
<body>
<font size=3>Peter,<br>
&nbsp;&nbsp; Here is the output.<br><br>
Regards<br>
&nbsp;&nbsp; Jon<br><br>
debug level is '3'<br>
Checking device (FFFF/0000) (001/002)<br>
- VendorID: ffff<br>
- ProductID: 0000<br>
- Manufacturer: UIS Ablerex<br>
- Product: Ablerex USB Interface 049e<br>
- Serial Number: unknown<br>
- Bus: 001<br>
Trying to match device<br>
Device matches<br>
failed to claim USB device, trying 2 more time(s)...<br>
detaching kernel driver from USB device...<br>
trying again to claim USB device...<br>
HID descriptor, method 1: (9 bytes) =&gt; 09 21 00 01 00 01 22 78 02<br>
HID descriptor, method 2: (9 bytes) =&gt; 09 21 00 01 00 01 22 78 02<br>
HID descriptor retrieved (Reportlen = 632)<br>
Report descriptor retrieved (Reportlen = 632)<br>
Found HID device<br>
Network UPS Tools: 0.28 USB communication driver 0.28 - core 0.30
(2.1.0)<br><br>
Report Descriptor size = 632<br>
Report Descriptor: (632 bytes) =&gt; 05 86 09 04 a1 01 05 84 09 1e a1 00
85 01<br>
09 1f 65 00 75 04 95 01 15 00 25 0f 65 00 b1 02 75 04 95 01 b1 03 09 40
75<br>
10 95 01 67 21 d1 f0 00 55 07 15 00 26 fa 00 b1 02 09 42 75 10 95 01 66
01<br>
f0 55 00 15 00 25 3c b1 02 09 53 75 10 95 01 67 21 d1 f0 00 55 07 15 00
26<br>
fa 00 b1 02 09 54 75 10 95 01 67 21 d1 f0 00 55 07 15 00 26 fa 00 b1 02
09<br>
fd 09 fe 09 ff 75 08 95 03 26 ff 00 65 00 b1 00 c0 05 84 09 1e a1 00 85
02<br>
09 1f 65 00 75 04 95 01 15 00 25 0f 65 00 b1 02 95 01 75 04 b1 03 09 40
75<br>
10 95 01 67 21 d1 f0 00 55 07 15 00 26 fa 00 b1 02 09 42 75 10 95 01 66
01<br>
f0 55 00 15 00 25 3c b1 02 09 43 75 10 95 01 66 21 d1 55 07 15 00 27 fe
ff<br>
00 00 b1 02 09 44 95 01 75 10 66 21 d1 55 07 15 00 27 fe ff 00 00 b1 02
09<br>
56 75 18 95 01 66 01 10 55 00 15 00 27 fe ff 00 00 b1 02 09 57 75 18 95
01<br>
66 01 10 55 00 15 00 27 fe ff 00 00 b1 02 c0 05 84 09 10 a1 00 85 03 09
11<br>
65 00 75 04 95 01 15 00 25 0f 65 00 b1 02 75 04 95 01 b1 03 09 02 a1 02
09<br>
6d 09 61 75 01 95 02 15 00 25 01 b1 02 75 06 95 01 b1 03 c0 09 30 75 18
95<br>
01 67 21 d1 f0 00 55 05 27 fe ff 00 00 b1 02 09 36 75 10 95 01 67 01 00
01<br>
00 27 fe ff 00 00 b1 02 09 58 75 01 95 06 15 00 25 01 81 02 75 02 95 01
81<br>
03 09 58 75 01 95 04 15 00 25 01 b1 02 75 04 95 01 b1 03 c0 05 84 09 16
a1<br>
00 85 04 09 17 75 04 95 01 15 00 25 0f 65 00 81 02 75 04 95 01 81 03 09
1a<br>
a1 00 09 1b 09 1f 75 04 95 02 15 00 25 0f 65 00 81 02 09 02 a1 02 09 61
75<br>
01 95 01 15 00 25 01 81 02 75 07 95 01 81 03 c0 09 30 75 10 95 01 67 21
d1<br>
f0 00 55 05 27 fe ff 00 00 81 02 09 32 75 10 95 01 66 01 f0 55 05 27 fe
ff<br>
00 00 81 02 c0 09 1c a1 00 85 05 09 1d 09 1f 75 04 95 02 15 00 25 0f 65
00<br>
81 02 09 30 75 10 95 01 67 21 d1 f0 00 55 05 27 fe ff 00 00 81 02 09 32
75<br>
10 95 01 66 01 f0 55 05 27 fe ff 00 00 81 02 09 35 75 10 95 01 15 00 26
ff<br>
00 81 02 09 02 a1 02 09 65 09 6e 09 6f 75 01 95 03 15 00 25 01 65 00 81
02<br>
75 05 95 01 81 03 09 39 75 08 95 2e b1 02 c0 c0 c0 c0<br>
Detected a UPS: UIS Ablerex/Ablerex USB Interface 049e<br>
Using subdriver: EXPLORE HID 0.1<br>
Report[r]: (16 bytes) =&gt; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04
b0<br>
Path: 00860004.Flow.FlowID, Type: Feature, ReportID: 0x01, Offset: 0,
Size: 4, Value: 0.000000<br>
Path: 00860004.Flow.ConfigVoltage, Type: Feature, ReportID: 0x01, Offset:
8, Size: 16, Value: 0.000000<br>
Path: 00860004.Flow.ConfigFrequency, Type: Feature, ReportID: 0x01,
Offset: 24, Size: 16, Value: 0.000000<br>
Path: 00860004.Flow.LowVoltageTransfer, Type: Feature, ReportID: 0x01,
Offset: 40, Size: 16, Value: 0.000000<br>
Path: 00860004.Flow.HighVoltageTransfer, Type: Feature, ReportID: 0x01,
Offset: 56, Size: 16, Value: 0.000000<br>
Path: 00860004.Flow.iManufacturer, Type: Feature, ReportID: 0x01, Offset:
72, Size: 8, Value: 0.000000<br>
Path: 00860004.Flow.iProduct, Type: Feature, ReportID: 0x01, Offset: 80,
Size: 8, Value: 0.000000<br>
Path: 00860004.Flow.iSerialNumber, Type: Feature, ReportID: 0x01, Offset:
88, Size: 8, Value: 0.000000<br>
Path: 00860004.Flow.FlowID, Type: Feature, ReportID: 0x02, Offset: 0,
Size: 4, Value: 0.000000<br>
Path: 00860004.Flow.ConfigVoltage, Type: Feature, ReportID: 0x02, Offset:
8, Size: 16, Value: 0.000000<br>
Path: 00860004.Flow.ConfigFrequency, Type: Feature, ReportID: 0x02,
Offset: 24, Size: 16, Value: 0.000000<br>
Report[r]: (16 bytes) =&gt; 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00<br>
Path: 00860004.Flow.ConfigApparentPower, Type: Feature, ReportID: 0x02,
Offset: 40, Size: 16, Value: 0.000000<br>
Path: 00860004.Flow.ConfigActivePower, Type: Feature, ReportID: 0x02,
Offset: 56, Size: 16, Value: 0.000000<br>
Path: 00860004.Flow.DelayBeforeStartup, Type: Feature, ReportID: 0x02,
Offset: 72, Size: 24, Value: 0.000000<br>
Path: 00860004.Flow.DelayBeforeShutdown, Type: Feature, ReportID: 0x02,
Offset: 96, Size: 24, Value: 0.000000<br>
Report[r]: (16 bytes) =&gt; 00 00 00 00 00 00 00 00 00 a1 fa b7 31 00 00
00<br>
Path: 00860004.BatterySystem.BatterySystemID, Type: Feature, ReportID:
0x03, Offset: 0, Size: 4, Value: 0.000000<br>
Path: 00860004.BatterySystem.PresentStatus.Used, Type: Feature, ReportID:
0x03, Offset: 8, Size: 1, Value: 0.000000<br>
Path: 00860004.BatterySystem.PresentStatus.Good, Type: Feature, ReportID:
0x03, Offset: 9, Size: 1, Value: 0.000000<br>
Path: 00860004.BatterySystem.Voltage, Type: Feature, ReportID: 0x03,
Offset: 16, Size: 24, Value: 0.000000<br>
Path: 00860004.BatterySystem.Temperature, Type: Feature, ReportID: 0x03,
Offset: 40, Size: 16, Value: 0.000000<br>
Path: 00860004.BatterySystem.Test, Type: Input, ReportID: 0x03, Offset:
0, Size: 1, Value: 0.000000<br>
Path: 00860004.BatterySystem.Test, Type: Feature, ReportID: 0x03, Offset:
56, Size: 1, Value: 0.000000<br>
Can't find object 00860004.PowerConverter.PowerConverterID<br>
Path: 00860004.PowerConverter.PowerConverterID, Type: Input, ReportID:
0x04, Offset: 0, Size: 4<br>
Can't find object 00860004.PowerConverter.Input.InputID<br>
Path: 00860004.PowerConverter.Input.InputID, Type: Input, ReportID: 0x04,
Offset: 8, Size: 4<br>
Can't find object 00860004.PowerConverter.Input.FlowID<br>
Path: 00860004.PowerConverter.Input.FlowID, Type: Input, ReportID: 0x04,
Offset: 12, Size: 4<br>
Can't find object 00860004.PowerConverter.Input.PresentStatus.Good<br>
Path: 00860004.PowerConverter.Input.PresentStatus.Good, Type: Input,
ReportID: 0x04, Offset: 16, Size: 1<br>
Can't find object 00860004.PowerConverter.Input.Voltage<br>
Path: 00860004.PowerConverter.Input.Voltage, Type: Input, ReportID: 0x04,
Offset: 24, Size: 16<br>
Can't find object 00860004.PowerConverter.Input.Frequency<br>
Path: 00860004.PowerConverter.Input.Frequency, Type: Input, ReportID:
0x04, Offset: 40, Size: 16<br>
Can't find object 00860004.PowerConverter.Output.OutputID<br>
Path: 00860004.PowerConverter.Output.OutputID, Type: Input, ReportID:
0x05, Offset: 0, Size: 4<br>
Can't find object 00860004.PowerConverter.Output.FlowID<br>
Path: 00860004.PowerConverter.Output.FlowID, Type: Input, ReportID: 0x05,
Offset: 4, Size: 4<br>
Can't find object 00860004.PowerConverter.Output.Voltage<br>
Path: 00860004.PowerConverter.Output.Voltage, Type: Input, ReportID:
0x05, Offset: 8, Size: 16<br>
Can't find object 00860004.PowerConverter.Output.Frequency<br>
Path: 00860004.PowerConverter.Output.Frequency, Type: Input, ReportID:
0x05, Offset: 24, Size: 16<br>
Can't find object 00860004.PowerConverter.Output.PercentLoad<br>
Path: 00860004.PowerConverter.Output.PercentLoad, Type: Input, ReportID:
0x05, Offset: 40, Size: 16<br>
Can't find object
00860004.PowerConverter.Output.PresentStatus.Overload<br>
Path: 00860004.PowerConverter.Output.PresentStatus.Overload, Type: Input,
ReportID: 0x05, Offset: 56, Size: 1<br>
Can't find object 00860004.PowerConverter.Output.PresentStatus.Boost<br>
Path: 00860004.PowerConverter.Output.PresentStatus.Boost, Type: Input,
ReportID: 0x05, Offset: 57, Size: 1<br>
Can't find object 00860004.PowerConverter.Output.PresentStatus.Buck<br>
Path: 00860004.PowerConverter.Output.PresentStatus.Buck, Type: Input,
ReportID: 0x05, Offset: 58, Size: 1<br>
Report[r]: (16 bytes) =&gt; 00 00 00 00 00 d0 be 9d bf 10 00 00 00 a0 0f
00<br>
Path: 00860004.PowerConverter.Output.PresentStatus.00840039, Type:
Feature, ReportID: 0x05, Offset: 0, Size: 8, Value: 0.000000<br>
upsdrv_updateinfo...<br>
dstate_init: sock /var/state/ups/usbhid-ups-auto open on fd 5<br>
upsdrv_updateinfo...<br>
Waiting for notifications...<br>
Signal 2: exiting<br>
Closing device<br><br>
<br><br>
At 13:20 31/01/2007, Peter Selinger wrote:<br>
<blockquote type=cite class=cite cite="">Jon Gough wrote:<br>
&gt; <br>
&gt; Peter,<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; I have been doing some more testing and I
find that if I modify <br>
&gt; the libusb.c file to set a report size in libusb_get_report to 16
the <br>
&gt; error messages go away. This is the code as it currently
stands:<br>
&gt; <br>
&gt; static int libusb_get_report(usb_dev_handle *udev, int ReportId,
<br>
&gt; unsigned char *raw_buf, int ReportSize )<br>
&gt; {<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; int ReportSize_test = 16;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; unsigned char raw_buf_test[ReportSize_test +
1];<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; int rc;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; unsigned char *p_raw_buf_test;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; upsdebugx(4, &quot;Entering
libusb_get_report, ReportSize: %i, <br>
&gt; ReportSize_test: %i&quot;,ReportSize, ReportSize_test);<br>
&gt; <br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (udev !=
NULL)<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
rc = usb_control_msg(udev,<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
USB_ENDPOINT_IN + USB_TYPE_CLASS + <br>
&gt; USB_RECIP_INTERFACE,<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0x01, /* HID_REPORT_GET */<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ReportId+(0x03<
<img src="http://messenger.msn.com/MMM2004-08-11_11.52/Resource/emoticons/75_75.gif" width=19 height=19 alt="Eye-rolling">, /* HID_REPORT_TYPE_FEATURE */<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0, raw_buf_test, ReportSize_test, USB_TIMEOUT);<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
p_raw_buf_test = raw_buf_test + <br>
&gt; (ReportSize_test - ReportSize);<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
memcpy(raw_buf, p_raw_buf_test, ReportSize);<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return rc;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
return 0;<br>
&gt; }<br>
&gt; <br>
&gt;&nbsp; From this I now get<br><br>
Good.<br>
&nbsp;<br>
&gt; Detected a UPS: UIS Ablerex/Ablerex USB Interface 049e<br>
&gt; Using subdriver: EXPLORE HID 0.1<br>
&gt; parsing 00860004<br>
&gt; parsing Flow<br>
&gt; hid_lookup_usage: found 84001e<br>
&gt; parsing FlowID<br>
&gt; hid_lookup_usage: found 84001f<br>
&gt; Path depth = 3, Path: 00860004.Flow.FlowID, Node1/2/3:, 860004,
84001e, 84001f<br>
&gt; 0: Usage(00860004)<br>
&gt; 1: Usage(0084001e)<br>
&gt; 2: Usage(0084001f)<br>
&gt; Buffer is stale. refreshing<br>
&gt; Noting in the buffer for rbuf-&gt;data[0]<br>
&gt; Noting in the buffer for rbuf-&gt;data[1]<br>
&gt; Noting in the buffer for rbuf-&gt;data[2]<br>
&gt; Entering libusb_get_report, ReportSize: 13, ReportSize_test: 16<br>
&gt; Report[r]: (16 bytes) =&gt; 00 00 00 00 00 00 00 00 00 00 00 00 00
00 04 b0<br>
&gt; => Before exponent: 0, 0/0)<br>
&gt; => After conversion: 0.000000 (0), 0/0)<br>
&gt; Path: 00860004.Flow.FlowID, Type: Feature, ReportID: 0x01, Offset:
0, <br>
&gt; Size: 4, Value: 0.000000<br>
&gt; <br>
&gt; when i use the usbhid-ups -DDDD -x explore command.<br><br>
Don't use -DDDD. Please use -DDD and post the entire output until
the<br>
driver begins to loop. I need to see all the lines that start with<br>
&quot;Path:&quot;, as well as the report descriptor (many lines of
hexadecimal<br>
data). It's best if you don't prune away parts of the output. <br>
&nbsp;<br>
&gt; It would appear that whatever is setting the length of the report is
<br>
&gt; not getting it quite right. I think this is in hidparse.c, but I am
<br>
&gt; still looking.<br><br>
No, I believe the driver is setting the length correctly. The
problem<br>
is that the UPS is buggy. It expects a buffer of size 16, although
it<br>
only sends 13 bytes of useful data. We should be able to compensate,<br>
though.<br><br>
-- Peter</font></blockquote>

<BR><BR>
<TABLE width=400><HR>
<P style="FONT: 9pt/11pt verdana"><a href="http://www.avast.com">avast! Antivirus</a>: Outbound message clean.
<P style="FONT: 8pt/11pt verdana">Virus Database (VPS): 000709-0, 30/01/2007<BR>Tested on: 31/01/2007 1:28:15 PM<BR><FONT color=gray>avast! is copyright (c) 2000-2007 ALWIL Software.</FONT></P>
<TBODY></TBODY></TABLE>
<BR>

</body>
<br>
</html>