Date: Mon, 18 Sep 2006 11:58:13 +0200 From: Ed Schouten <ed@fxq.nl> To: Rene Ladan <r.c.ladan@gmail.com> Cc: FreeBSD Hackers <freebsd-hackers@freebsd.org>, freebsd-usb@freebsd.org Subject: Re: anyone working on setting output items with usbhidctl(1) ? Message-ID: <20060918095813.GM22564@hoeg.nl> In-Reply-To: <450DA217.9080602@gmail.com> References: <450DA217.9080602@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Hello Rene,
* Rene Ladan <r.c.ladan@gmail.com> wrote:
> is anyone working on setting output items with usbhidctl(1) ?
>
> I'm trying to add LED/rumbler support for the Xbox 360 Gamepad to
> uhid(4), but there doesn't seem to be a userland tool to test output
> items and the output report descriptor doesn't seem to be publicly
> available (i.e. I must reverse-engineer it).
>
> This device has 4 LEDs which can be controlled with the command 01 03
> xx, where xx ranges from 0 to 255.
> It also has two rumble motors which can be controlled with 00 08 00 bb
> ll 00 00 00, where bb and ll both range from 0 to 255.
Try the following C code:
| #include <stdio.h>
| #include <fcntl.h>
|
| int
| main(int argc, char *argv[])
| {
| char buffer[3] = { 1, 3, 0 };
| int fd;
|
| fd = open("/dev/ugen0.2", O_WRONLY);
| if (fd < 0) {
| fprintf(stderr, "Cannot open device\n");
| return (-1);
| }
|
| write(fd, buffer, sizeof buffer);
| close(fd);
|
| return (0);
| }
I'm currently toying around with the headset, so I've disabled the
uhid(4) driver, so the LED on the gamepad keeps blinking. Running the
application above turns off the LED. I guess it should also work when
you write it to /dev/uhidX.
--
Ed Schouten <ed@fxq.nl>
WWW: http://g-rave.nl/
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (FreeBSD)
iD8DBQFFDm2152SDGA2eCwURAkhXAJ9VJXQi9U49PcVy+aL4EcEQP0sO4wCfUj2g
UL36uJcKFGDEJsKdAYghmG8=
=WbYv
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060918095813.GM22564>
