hidapitester
hidapitester copied to clipboard
Adding a new cmd CMD_READ_INPUT_ALT
From https://github.com/libusb/hidapi/issues/229 This new CMD is to test hid_get_input_report.
diff --git a/hidapitester.c b/hidapitester.c
index b4ae3d9..8dcdbb5 100644
--- a/hidapitester.c
+++ b/hidapitester.c
@@ -84,6 +84,7 @@ enum {
CMD_SEND_OUTPUT,
CMD_SEND_FEATURE,
CMD_READ_INPUT,
+ CMD_READ_INPUT_ALT,
CMD_READ_FEATURE,
CMD_READ_INPUT_FOREVER,
};
@@ -204,6 +205,7 @@ int main(int argc, char* argv[])
{"send-out", required_argument, &cmd, CMD_SEND_OUTPUT},
{"send-feature", required_argument, &cmd, CMD_SEND_FEATURE},
{"read-input", optional_argument, &cmd, CMD_READ_INPUT},
+ {"read-input-alt", optional_argument, &cmd, CMD_READ_INPUT_ALT},
{"read-in", optional_argument, &cmd, CMD_READ_INPUT},
{"read-feature", required_argument, &cmd, CMD_READ_FEATURE},
{"read-input-forever", optional_argument, &cmd, CMD_READ_INPUT_FOREVER},
@@ -387,6 +389,22 @@ int main(int argc, char* argv[])
break;
}
} while( cmd == CMD_READ_INPUT_FOREVER );
+ }
+ else if( cmd == CMD_READ_INPUT_ALT ) {
+
+ if( !dev ) {
+ msg("Error on read: no device opened.\n"); break;
+ }
+ if( !buflen) {
+ msg("Error on read: buffer length is 0. Use --len to specify.\n");
+ break;
+ }
+ uint8_t report_id = (optarg) ? strtol(optarg,NULL,10) : 0;
+ buf[0] = report_id;
+ msg("Reading %d-byte input report using hid_get_input_report, report_id %d...",buflen, report_id);
+ res = hid_get_input_report(dev, buf, buflen);
+ msg("read %d bytes:\n",res);
+ printbuf(buf, buflen, print_base, print_width);
}
else if( cmd == CMD_READ_FEATURE ) {