<html>
<body>
<font size=3>Peter,<br>
A bit more info. I have modified your get_descriptor.c
program to give a few more details. I have run it a few times and got the
following information.<br><br>
./drivers/get_descriptor 001 002 1 0 0 128 0 0<br>
usb_get_string_simple(udev, 0, buf, 204
<img src="http://messenger.msn.com/MMM2004-08-11_11.52/Resource/emoticons/75_75.gif" width=19 height=19 alt="Eye-rolling"><br><br>
3f<br><br>
?<br>
Can't get descriptor 0x00 index 0: error sending control message: Broken
pipe<br>
usb_get_descriptor(udev, 0x00, 0, buf, 204
<img src="http://messenger.msn.com/MMM2004-08-11_11.52/Resource/emoticons/75_75.gif" width=19 height=19 alt="Eye-rolling"><br><br>
<br>
Can't get endpoint 128 descriptor 0x00 index 0: error sending control
message: Broken pipe<br>
[root@neptune trunk]# ./drivers/get_descriptor 001 002 1 0 0 128 0 1<br>
usb_get_string_simple(udev, 1, buf, 204
<img src="http://messenger.msn.com/MMM2004-08-11_11.52/Resource/emoticons/75_75.gif" width=19 height=19 alt="Eye-rolling"><br><br>
55 49 53 20 41 62 6c 65 72 65 78<br><br>
UIS Ablerex<br>
Can't get descriptor 0x00 index 1: error sending control message: Broken
pipe<br>
usb_get_descriptor(udev, 0x00, 1, buf, 204
<img src="http://messenger.msn.com/MMM2004-08-11_11.52/Resource/emoticons/75_75.gif" width=19 height=19 alt="Eye-rolling"><br><br>
<br>
Can't get endpoint 128 descriptor 0x00 index 1: error sending control
message: Broken pipe<br>
[root@neptune trunk]# ./drivers/get_descriptor 001 002 1 0 0 128 0 2<br>
usb_get_string_simple(udev, 2, buf, 204
<img src="http://messenger.msn.com/MMM2004-08-11_11.52/Resource/emoticons/75_75.gif" width=19 height=19 alt="Eye-rolling"><br><br>
41 62 6c 65 72 65 78 20 55 53 42 20 49 6e 74 65 72 66 61 63 65 20
30 34<br>
39 65<br><br>
Ablerex USB Interface 049e<br>
Can't get descriptor 0x00 index 2: error sending control message: Broken
pipe<br>
usb_get_descriptor(udev, 0x00, 2, buf, 204
<img src="http://messenger.msn.com/MMM2004-08-11_11.52/Resource/emoticons/75_75.gif" width=19 height=19 alt="Eye-rolling"><br><br>
<br>
Can't get endpoint 128 descriptor 0x00 index 2: error sending control
message: Broken pipe<br>
[root@neptune trunk]# ./drivers/get_descriptor 001 002 1 0 0 128 0 3<br>
usb_get_string_simple(udev, 3, buf, 204
<img src="http://messenger.msn.com/MMM2004-08-11_11.52/Resource/emoticons/75_75.gif" width=19 height=19 alt="Eye-rolling"><br><br>
28 32 34 38 2e 30 20 31 34 30 2e 30 20 32 34 38 2e 30 20 30 31 32
20 35<br>
30 2e 30 20 32 37 2e 30 20 32 35 2e 30 20 30 30 30 30 31 30 30 30
0d<br><br>
(248.0 140.0 248.0 012 50.0 27.0 25.0 00001000.<br>
Can't get descriptor 0x00 index 3: error sending control message: Broken
pipe<br>
usb_get_descriptor(udev, 0x00, 3, buf, 204
<img src="http://messenger.msn.com/MMM2004-08-11_11.52/Resource/emoticons/75_75.gif" width=19 height=19 alt="Eye-rolling"><br><br>
<br>
Can't get endpoint 128 descriptor 0x00 index 3: error sending control
message: Broken pipe<br>
[root@neptune trunk]# ./drivers/get_descriptor 001 002 1 0 0 128 0 4<br>
usb_get_string_simple(udev, 4, buf, 204
<img src="http://messenger.msn.com/MMM2004-08-11_11.52/Resource/emoticons/75_75.gif" width=19 height=19 alt="Eye-rolling"><br><br>
55 50 53 20 4e 6f 20 41 63 6b<br><br>
UPS No Ack<br>
Can't get descriptor 0x00 index 4: error sending control message: Broken
pipe<br>
usb_get_descriptor(udev, 0x00, 4, buf, 204
<img src="http://messenger.msn.com/MMM2004-08-11_11.52/Resource/emoticons/75_75.gif" width=19 height=19 alt="Eye-rolling"><br><br>
<br>
Can't get endpoint 128 descriptor 0x00 index 4: error sending control
message: Broken pipe<br><br>
On the last one ('UPS No Ack') it seemed to put the UPS into a test state
where it disconnected from the mains power for about 10s then reconnected
again. I am not sure what the last two parameters mean on this command,
but it looks like it does get some info back from it. Option '0 3' seems
to give some numbers which look like voltage and frequency, but this is
just a guess.<br><br>
Regards<br>
Jon<br><br>
At 14:29 31/01/2007, Peter Selinger wrote:<br>
<blockquote type=cite class=cite cite="">Hi Jon,<br><br>
this doesn't look as good as I had hoped. Although you don't get any<br>
more error messages, notice that the "Value:" for every
single<br>
variable shows 0.000000.<br><br>
The lines starting with "Report[r]" show the actual raw data
read from<br>
the UPS, and indeed, it is all zeros (except some bytes towards the<br>
end that are unfortunately not used). For each feature, the<br>
"ReportID", "Offset" and "Size" (in bits)
tell you which parts of the<br>
raw data that variables corresponds to. <br><br>
This looks buggy to me. Did anything else happen after "Waiting
for<br>
notifications..."? Like, for example, did the device receive any
data<br>
notifications? This could happen infrequently, like once per<br>
minute. But there is a chance that the device would send correct
data<br>
voluntarily (on the interrupt pipeline), whereas it is apparently<br>
sending incorrect data when asked for it.<br><br>
-- Peter<br><br>
Jon Gough wrote:<br><br>
> Using subdriver: EXPLORE HID 0.1<br>
> Report[r]: (16 bytes) => 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, <br>
> Size: 4, Value: 0.000000<br>
> Path: 00860004.Flow.ConfigVoltage, Type: Feature, ReportID: 0x01,
<br>
> Offset: 8, Size: 16, Value: 0.000000<br>
> Path: 00860004.Flow.ConfigFrequency, Type: Feature, ReportID: 0x01,
<br>
> Offset: 24, Size: 16, Value: 0.000000<br>
> Path: 00860004.Flow.LowVoltageTransfer, Type: Feature, ReportID:
<br>
> 0x01, Offset: 40, Size: 16, Value: 0.000000<br>
> Path: 00860004.Flow.HighVoltageTransfer, Type: Feature, ReportID:
<br>
> 0x01, Offset: 56, Size: 16, Value: 0.000000<br>
> Path: 00860004.Flow.iManufacturer, Type: Feature, ReportID: 0x01,
<br>
> Offset: 72, Size: 8, Value: 0.000000<br>
> Path: 00860004.Flow.iProduct, Type: Feature, ReportID: 0x01, Offset:
<br>
> 80, Size: 8, Value: 0.000000<br>
> Path: 00860004.Flow.iSerialNumber, Type: Feature, ReportID: 0x01,
<br>
> Offset: 88, Size: 8, Value: 0.000000<br>
> Path: 00860004.Flow.FlowID, Type: Feature, ReportID: 0x02, Offset:
0, <br>
> Size: 4, Value: 0.000000<br>
> Path: 00860004.Flow.ConfigVoltage, Type: Feature, ReportID: 0x02,
<br>
> Offset: 8, Size: 16, Value: 0.000000<br>
> Path: 00860004.Flow.ConfigFrequency, Type: Feature, ReportID: 0x02,
<br>
> Offset: 24, Size: 16, Value: 0.000000<br>
> Report[r]: (16 bytes) => 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00<br>
> Path: 00860004.Flow.ConfigApparentPower, Type: Feature, ReportID:
<br>
> 0x02, Offset: 40, Size: 16, Value: 0.000000<br>
> Path: 00860004.Flow.ConfigActivePower, Type: Feature, ReportID:
0x02, <br>
> Offset: 56, Size: 16, Value: 0.000000<br>
> Path: 00860004.Flow.DelayBeforeStartup, Type: Feature, ReportID:
<br>
> 0x02, Offset: 72, Size: 24, Value: 0.000000<br>
> Path: 00860004.Flow.DelayBeforeShutdown, Type: Feature, ReportID:
<br>
> 0x02, Offset: 96, Size: 24, Value: 0.000000<br>
> Report[r]: (16 bytes) => 00 00 00 00 00 00 00 00 00 a1 fa b7 31
00 00 00<br>
> Path: 00860004.BatterySystem.BatterySystemID, Type: Feature, <br>
> ReportID: 0x03, Offset: 0, Size: 4, Value: 0.000000<br>
> Path: 00860004.BatterySystem.PresentStatus.Used, Type: Feature,
<br>
> ReportID: 0x03, Offset: 8, Size: 1, Value: 0.000000<br>
> Path: 00860004.BatterySystem.PresentStatus.Good, Type: Feature,
<br>
> ReportID: 0x03, Offset: 9, Size: 1, Value: 0.000000<br>
> Path: 00860004.BatterySystem.Voltage, Type: Feature, ReportID: 0x03,
<br>
> Offset: 16, Size: 24, Value: 0.000000<br>
> Path: 00860004.BatterySystem.Temperature, Type: Feature, ReportID:
<br>
> 0x03, Offset: 40, Size: 16, Value: 0.000000<br>
> Path: 00860004.BatterySystem.Test, Type: Input, ReportID: 0x03,
<br>
> Offset: 0, Size: 1, Value: 0.000000<br>
> Path: 00860004.BatterySystem.Test, Type: Feature, ReportID: 0x03,
<br>
> Offset: 56, Size: 1, Value: 0.000000<br>
> Can't find object 00860004.PowerConverter.PowerConverterID<br>
> Path: 00860004.PowerConverter.PowerConverterID, Type: Input, <br>
> ReportID: 0x04, Offset: 0, Size: 4<br>
> Can't find object 00860004.PowerConverter.Input.InputID<br>
> Path: 00860004.PowerConverter.Input.InputID, Type: Input, ReportID:
<br>
> 0x04, Offset: 8, Size: 4<br>
> Can't find object 00860004.PowerConverter.Input.FlowID<br>
> Path: 00860004.PowerConverter.Input.FlowID, Type: Input, ReportID:
<br>
> 0x04, Offset: 12, Size: 4<br>
> Can't find object
00860004.PowerConverter.Input.PresentStatus.Good<br>
> Path: 00860004.PowerConverter.Input.PresentStatus.Good, Type: Input,
<br>
> ReportID: 0x04, Offset: 16, Size: 1<br>
> Can't find object 00860004.PowerConverter.Input.Voltage<br>
> Path: 00860004.PowerConverter.Input.Voltage, Type: Input, ReportID:
<br>
> 0x04, Offset: 24, Size: 16<br>
> Can't find object 00860004.PowerConverter.Input.Frequency<br>
> Path: 00860004.PowerConverter.Input.Frequency, Type: Input,
ReportID: <br>
> 0x04, Offset: 40, Size: 16<br>
> Can't find object 00860004.PowerConverter.Output.OutputID<br>
> Path: 00860004.PowerConverter.Output.OutputID, Type: Input,
ReportID: <br>
> 0x05, Offset: 0, Size: 4<br>
> Can't find object 00860004.PowerConverter.Output.FlowID<br>
> Path: 00860004.PowerConverter.Output.FlowID, Type: Input, ReportID:
<br>
> 0x05, Offset: 4, Size: 4<br>
> Can't find object 00860004.PowerConverter.Output.Voltage<br>
> Path: 00860004.PowerConverter.Output.Voltage, Type: Input, ReportID:
<br>
> 0x05, Offset: 8, Size: 16<br>
> Can't find object 00860004.PowerConverter.Output.Frequency<br>
> Path: 00860004.PowerConverter.Output.Frequency, Type: Input, <br>
> ReportID: 0x05, Offset: 24, Size: 16<br>
> Can't find object 00860004.PowerConverter.Output.PercentLoad<br>
> Path: 00860004.PowerConverter.Output.PercentLoad, Type: Input, <br>
> ReportID: 0x05, Offset: 40, Size: 16<br>
> Can't find object
00860004.PowerConverter.Output.PresentStatus.Overload<br>
> Path: 00860004.PowerConverter.Output.PresentStatus.Overload, Type:
<br>
> 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:
<br>
> 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, <br>
> ReportID: 0x05, Offset: 58, Size: 1<br>
> Report[r]: (16 bytes) => 00 00 00 00 00 d0 be 9d bf 10 00 00 00
a0 0f 00<br>
> Path: 00860004.PowerConverter.Output.PresentStatus.00840039, Type:
<br>
> Feature, ReportID: 0x05, Offset: 0, Size: 8, Value:
0.000000</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 3:14:40 PM<BR><FONT color=gray>avast! is copyright (c) 2000-2007 ALWIL Software.</FONT></P>
<TBODY></TBODY></TABLE>
<BR>
</body>
<br>
</html>