- 论坛徽章:
- 0
|
我在linux下,给HID设备发送数据,不知道为什么,只能发送两个字节的数据,请大家指点,小弟谢谢了,下面是我的代码:
struct hiddev_report_info rinfo;
rinfo.report_type = HID_REPORT_TYPE_OUTPUT;
rinfo.report_id = HID_REPORT_ID_FIRST;
ioctl (fd, HIDIOCGREPORTINFO, &rinfo);
uref.report_type = HID_REPORT_TYPE_OUTPUT;
uref.report_id = rinfo.report_id ;
uref.field_index = 0;
uref.usage_index = 0;
ioctl (fd, HIDIOCGUCODE, &uref)
ioctl (fd, HIDIOCGUSAGE, &uref);
for(i=0;i<idatalen;i++) {
uref.report_type = HID_REPORT_TYPE_OUTPUT;
uref.report_id = 0x00;
uref.field_index = i;
uref.usage_index = i;
uref.usage_code = uref.usage_code + uref.usage_index;
uref.value = pucdata;
ioctl(fd, HIDIOCSUSAGE, &uref);
}
usleep(50000);
struct hiddev_report_info rinfo;
rinfo.report_type = HID_REPORT_TYPE_OUTPUT;
rinfo.report_id = 0x00;
rinfo.num_fields = 1;
ioctl(fd, HIDIOCSREPORT, &rinfo);
以上是我大致的发送数据代码,但是总是只能发送前两个字节的内容,后面的数据权威零,但是我需要发送9个字节的数据,请各位高手指点一下,小弟谢谢了!!!!!! |
|