|
darius@27
|
1 |
#include <sys/types.h>
|
|
darius@27
|
2 |
#include <sys/ioctl.h>
|
|
darius@27
|
3 |
#include <dev/usb/usb.h>
|
|
darius@27
|
4 |
#include <sys/errno.h>
|
|
darius@27
|
5 |
#include <sys/uio.h>
|
|
darius@27
|
6 |
#include <unistd.h>
|
|
darius@27
|
7 |
#include <fcntl.h>
|
|
darius@27
|
8 |
#include <stdio.h>
|
|
darius@27
|
9 |
|
|
darius@27
|
10 |
int
|
|
darius@27
|
11 |
main(int argc, char **argv) {
|
|
darius@27
|
12 |
int endpt2fd, i, len;
|
|
darius@27
|
13 |
char *endpt2name = "/dev/ugen0.2";
|
|
darius@27
|
14 |
uint8_t data[256];
|
|
darius@27
|
15 |
|
|
darius@27
|
16 |
if ((endpt2fd = open(endpt2name, O_RDWR)) == -1) {
|
|
darius@27
|
17 |
fprintf(stderr, "Unable to open %s: %s\n", endpt2name, strerror(errno));
|
|
darius@27
|
18 |
exit(1);
|
|
darius@27
|
19 |
}
|
|
darius@27
|
20 |
|
|
darius@27
|
21 |
i = 1;
|
|
darius@27
|
22 |
if (ioctl(endpt2fd, USB_SET_SHORT_XFER, &i) == -1) {
|
|
darius@27
|
23 |
fprintf(stderr, "Unable to set short xfer on end point 2: %s\n", strerror(errno));
|
|
darius@27
|
24 |
exit(1);
|
|
darius@27
|
25 |
}
|
|
darius@27
|
26 |
|
|
darius@27
|
27 |
while(1) {
|
|
darius@27
|
28 |
len = read(endpt2fd, data, 256);
|
|
darius@27
|
29 |
printf("len = %d\n", len);
|
|
darius@27
|
30 |
if (len == 0) {
|
|
darius@27
|
31 |
printf("EOF\n");
|
|
darius@27
|
32 |
continue;
|
|
darius@27
|
33 |
}
|
|
darius@27
|
34 |
if (len == -1) {
|
|
darius@27
|
35 |
printf("read error: %s\n", strerror(errno));
|
|
darius@27
|
36 |
exit(1);
|
|
darius@27
|
37 |
}
|
|
darius@27
|
38 |
|
|
darius@27
|
39 |
for (i = 0; i < len; i++)
|
|
darius@27
|
40 |
printf("0x%02x ", data[i]);
|
|
darius@27
|
41 |
printf("\n");
|
|
darius@27
|
42 |
}
|
|
darius@27
|
43 |
}
|
|
darius@27
|
44 |
|