[chuck-users] spacenavigator
Hans Aberg
haberg at math.su.se
Sun May 24 09:56:50 EDT 2009
On 24 May 2009, at 14:50, dan trueman wrote:
>> One would want a way to list all available devices, and make a pick
>> from them. (Like 'chuck --probe' but for HIDs and within the
>> program.)
> yes, this would be super useful...
I think this is essentially what the program I mentioned in the other
post does. Below is a sample printout, for a Logitech Extreme 3D,
which has 12 buttons, x-, y- and z-axis, slider, and hatswitch. As you
can see, it writes out a lot information about the product and all its
controller elements.
Hans
----
--- Device 0 ---
IO Registry Path: [ IOService:/MacRISC2PE/pci at f2000000/AppleMacRiscPCI/
usb at 18/AppleUSBOHCI/Logitech Extreme 3D at 18100000/IOUSBInterface at 0/
IOUSBHIDDriver ]
- Device Properties -
Transport = USB
VendorID = 0x46d (1133)
ProductID = 0xc215 (49685)
VersionNumber = 0x204 (516)
Manufacturer = Logitech
Product = Logitech Extreme 3D
LocationID = 0x18100000 (403701760)
PrimaryUsage = 0x4 (4)
PrimaryUsagePage = 0x1 (1)- Device Element Properties -
Elements =
[0]
ElementCookie = 0x1 (1)
Collection Type (513),
CollectionType = 0x1 (1)
Usage: Generic Desktop (0x1), Joystick (0x4)
Elements =
[0]
ElementCookie = 0x2 (2)
Collection Type (513),
CollectionType = 0x2 (2)
Usage: Generic Desktop (0x1), X-Axis (0x30)
Elements =
[0]
ElementCookie = 0x4 (4)
Button Input Type (2),
Usage: Button Page (0x9), Button #1 (0x1)
Min = 0x0 (0)
Max = 0x1 (1)
ScaledMin = 0x0 (0)
ScaledMax = 0x1 (1)
Size = 0x1 (1)
IsRelative = false
IsWrapping = false
IsNonLinear = false
HasPreferredState = true
HasNullState = false
Unit = 0x0 (0)
UnitExponent = 0x0 (0)
[1]
ElementCookie = 0x5 (5)
Button Input Type (2),
Usage: Button Page (0x9), Button #2 (0x2)
Min = 0x0 (0)
Max = 0x1 (1)
ScaledMin = 0x0 (0)
ScaledMax = 0x1 (1)
Size = 0x1 (1)
IsRelative = false
IsWrapping = false
IsNonLinear = false
HasPreferredState = true
HasNullState = false
Unit = 0x0 (0)
UnitExponent = 0x0 (0)
[2]
ElementCookie = 0x6 (6)
Button Input Type (2),
Usage: Button Page (0x9), Button #3 (0x3)
Min = 0x0 (0)
Max = 0x1 (1)
ScaledMin = 0x0 (0)
ScaledMax = 0x1 (1)
Size = 0x1 (1)
IsRelative = false
IsWrapping = false
IsNonLinear = false
HasPreferredState = true
HasNullState = false
Unit = 0x0 (0)
UnitExponent = 0x0 (0)
[3]
ElementCookie = 0x7 (7)
Button Input Type (2),
Usage: Button Page (0x9), Button #4 (0x4)
Min = 0x0 (0)
Max = 0x1 (1)
ScaledMin = 0x0 (0)
ScaledMax = 0x1 (1)
Size = 0x1 (1)
IsRelative = false
IsWrapping = false
IsNonLinear = false
HasPreferredState = true
HasNullState = false
Unit = 0x0 (0)
UnitExponent = 0x0 (0)
[4]
ElementCookie = 0x8 (8)
Button Input Type (2),
Usage: Button Page (0x9), Button #5 (0x5)
Min = 0x0 (0)
Max = 0x1 (1)
ScaledMin = 0x0 (0)
ScaledMax = 0x1 (1)
Size = 0x1 (1)
IsRelative = false
IsWrapping = false
IsNonLinear = false
HasPreferredState = true
HasNullState = false
Unit = 0x0 (0)
UnitExponent = 0x0 (0)
[5]
ElementCookie = 0x9 (9)
Button Input Type (2),
Usage: Button Page (0x9), Button #6 (0x6)
Min = 0x0 (0)
Max = 0x1 (1)
ScaledMin = 0x0 (0)
ScaledMax = 0x1 (1)
Size = 0x1 (1)
IsRelative = false
IsWrapping = false
IsNonLinear = false
HasPreferredState = true
HasNullState = false
Unit = 0x0 (0)
UnitExponent = 0x0 (0)
[6]
ElementCookie = 0xa (10)
Button Input Type (2),
Usage: Button Page (0x9), Button #7 (0x7)
Min = 0x0 (0)
Max = 0x1 (1)
ScaledMin = 0x0 (0)
ScaledMax = 0x1 (1)
Size = 0x1 (1)
IsRelative = false
IsWrapping = false
IsNonLinear = false
HasPreferredState = true
HasNullState = false
Unit = 0x0 (0)
UnitExponent = 0x0 (0)
[7]
ElementCookie = 0xb (11)
Button Input Type (2),
Usage: Button Page (0x9), Button #8 (0x8)
Min = 0x0 (0)
Max = 0x1 (1)
ScaledMin = 0x0 (0)
ScaledMax = 0x1 (1)
Size = 0x1 (1)
IsRelative = false
IsWrapping = false
IsNonLinear = false
HasPreferredState = true
HasNullState = false
Unit = 0x0 (0)
UnitExponent = 0x0 (0)
[8]
ElementCookie = 0xc (12)
Button Input Type (2),
Usage: Button Page (0x9), Button #9 (0x9)
Min = 0x0 (0)
Max = 0x1 (1)
ScaledMin = 0x0 (0)
ScaledMax = 0x1 (1)
Size = 0x1 (1)
IsRelative = false
IsWrapping = false
IsNonLinear = false
HasPreferredState = true
HasNullState = false
Unit = 0x0 (0)
UnitExponent = 0x0 (0)
[9]
ElementCookie = 0xd (13)
Button Input Type (2),
Usage: Button Page (0x9), Button #10 (0xa)
Min = 0x0 (0)
Max = 0x1 (1)
ScaledMin = 0x0 (0)
ScaledMax = 0x1 (1)
Size = 0x1 (1)
IsRelative = false
IsWrapping = false
IsNonLinear = false
HasPreferredState = true
HasNullState = false
Unit = 0x0 (0)
UnitExponent = 0x0 (0)
[10]
ElementCookie = 0xe (14)
Button Input Type (2),
Usage: Button Page (0x9), Button #11 (0xb)
Min = 0x0 (0)
Max = 0x1 (1)
ScaledMin = 0x0 (0)
ScaledMax = 0x1 (1)
Size = 0x1 (1)
IsRelative = false
IsWrapping = false
IsNonLinear = false
HasPreferredState = true
HasNullState = false
Unit = 0x0 (0)
UnitExponent = 0x0 (0)
[11]
ElementCookie = 0xf (15)
Button Input Type (2),
Usage: Button Page (0x9), Button #12 (0xc)
Min = 0x0 (0)
Max = 0x1 (1)
ScaledMin = 0x0 (0)
ScaledMax = 0x1 (1)
Size = 0x1 (1)
IsRelative = false
IsWrapping = false
IsNonLinear = false
HasPreferredState = true
HasNullState = false
Unit = 0x0 (0)
UnitExponent = 0x0 (0)
[12]
ElementCookie = 0x10 (16)
Miscellaneous Input Type (1),
Usage: Generic Desktop (0x1), X-Axis (0x30)
Min = 0x0 (0)
Max = 0x3ff (1023)
ScaledMin = 0x0 (0)
ScaledMax = 0x3ff (1023)
Size = 0xa (10)
IsRelative = false
IsWrapping = false
IsNonLinear = false
HasPreferredState = true
HasNullState = false
Unit = 0x0 (0)
UnitExponent = 0x0 (0)
[13]
ElementCookie = 0x11 (17)
Miscellaneous Input Type (1),
Usage: Generic Desktop (0x1), Y-Axis (0x31)
Min = 0x0 (0)
Max = 0x3ff (1023)
ScaledMin = 0x0 (0)
ScaledMax = 0x3ff (1023)
Size = 0xa (10)
IsRelative = false
IsWrapping = false
IsNonLinear = false
HasPreferredState = true
HasNullState = false
Unit = 0x0 (0)
UnitExponent = 0x0 (0)
[14]
ElementCookie = 0x12 (18)
Miscellaneous Input Type (1),
Usage: Generic Desktop (0x1), Hatswitch (0x39)
Min = 0x0 (0)
Max = 0x7 (7)
ScaledMin = 0x0 (0)
ScaledMax = 0x13b (315)
Size = 0x4 (4)
IsRelative = false
IsWrapping = false
IsNonLinear = false
HasPreferredState = true
HasNullState = true
Unit = 0x14 (20)
UnitExponent = 0x0 (0)
[15]
ElementCookie = 0x13 (19)
Miscellaneous Input Type (1),
Usage: Generic Desktop (0x1), Z-Rotation (0x35)
Min = 0x0 (0)
Max = 0xff (255)
ScaledMin = 0x0 (0)
ScaledMax = 0xff (255)
Size = 0x8 (8)
IsRelative = false
IsWrapping = false
IsNonLinear = false
HasPreferredState = true
HasNullState = false
Unit = 0x0 (0)
UnitExponent = 0x0 (0)
[16]
ElementCookie = 0x14 (20)
Miscellaneous Input Type (1),
Usage: Generic Desktop (0x1), Slider (0x36)
Min = 0x0 (0)
Max = 0xff (255)
ScaledMin = 0x0 (0)
ScaledMax = 0xff (255)
Size = 0x8 (8)
IsRelative = false
IsWrapping = false
IsNonLinear = false
HasPreferredState = true
HasNullState = false
Unit = 0x0 (0)
UnitExponent = 0x0 (0)
...
----
More information about the chuck-users
mailing list