]> cvs.zerfleddert.de Git - hmcfgusb/blobdiff - hmsniff.c
README: Homegear now knows about HM-USB-IF
[hmcfgusb] / hmsniff.c
index 1936d5bd0d53dbd306cb983084bf3d1cb5dc4070..1f5d889a0fff7f7874f07ab54317beb847336a72 100644 (file)
--- a/hmsniff.c
+++ b/hmsniff.c
@@ -32,6 +32,7 @@
 #include <sys/time.h>
 #include <libusb-1.0/libusb.h>
 
+#include "version.h"
 #include "hexdump.h"
 #include "hmcfgusb.h"
 
@@ -124,7 +125,7 @@ static void dissect_hm(uint8_t *buf, int len)
        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]);
        }
@@ -200,17 +201,19 @@ int main(int argc, char **argv)
                                rdata.wrong_hmid = 0;
                                hmcfgusb_send(dev, (unsigned char*)"K", 1, 1);
                        }
-                       fd = hmcfgusb_poll(dev, 1);
+                       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;
-                               } else {
-                                       /* periodically wakeup the device */
-                                       hmcfgusb_send_null_frame(dev, 1);
+                                       if (errno != ETIMEDOUT) {
+                                               perror("hmcfgusb_poll");
+                                               break;
+                                       } else {
+                                               /* periodically wakeup the device */
+                                               hmcfgusb_send_null_frame(dev, 1);
+                                       }
                                }
                        }
                }
@@ -218,5 +221,7 @@ int main(int argc, char **argv)
                hmcfgusb_close(dev);
        } while (!quit);
 
+       hmcfgusb_exit();
+
        return EXIT_SUCCESS;
 }
Impressum, Datenschutz