#include <sys/time.h>
#include <libusb-1.0/libusb.h>
+#include "version.h"
#include "hexdump.h"
#include "hmcfgusb.h"
if (buf[2] & (1 << 7)) printf("RPTEN ");
printf("\n");
printf("\tMessage type: %s (0x%02x)\n", hm_message_types(buf[3]), buf[3]);
- printf("\tMesage: ");
+ printf("\tMessage: ");
for (i = 10; i < len; i++) {
printf("%02X", buf[i]);
}
}
printf("HM-CFG-USB opened!\n");
+ hmcfgusb_send_null_frame(dev, 1);
hmcfgusb_send(dev, (unsigned char*)"K", 1, 1);
while(!quit) {
rdata.wrong_hmid = 0;
hmcfgusb_send(dev, (unsigned char*)"K", 1, 1);
}
- fd = hmcfgusb_poll(dev, 10);
+ fd = hmcfgusb_poll(dev, 1000);
if (fd >= 0) {
fprintf(stderr, "activity on unknown fd %d!\n", fd);
continue;
} else if (fd == -1) {
if (errno) {
- perror("hmcfgusb_poll");
- break;
+ if (errno != ETIMEDOUT) {
+ perror("hmcfgusb_poll");
+ break;
+ } else {
+ /* periodically wakeup the device */
+ hmcfgusb_send_null_frame(dev, 1);
+ }
}
}
}
hmcfgusb_close(dev);
} while (!quit);
+ hmcfgusb_exit();
+
return EXIT_SUCCESS;
}