]> git.zerfleddert.de Git - hmcfgusb/blobdiff - hmsniff.c
open device in bootloader-mode, too
[hmcfgusb] / hmsniff.c
index 67a2df6ae004e4fdd6b318c1154c87ed1ea75012..837f4e01e4f209d88d10efbefb0aa0dc52a93b8b 100644 (file)
--- a/hmsniff.c
+++ b/hmsniff.c
@@ -138,12 +138,12 @@ struct recv_data {
        int wrong_hmid;
 };
 
-static void parse_hmcfgusb(uint8_t *buf, int buf_len, void *data)
+static int parse_hmcfgusb(uint8_t *buf, int buf_len, void *data)
 {
        struct recv_data *rdata = data;
 
        if (buf_len < 1)
-               return;
+               return 1;
 
        switch(buf[0]) {
                case 'E':
@@ -164,6 +164,8 @@ static void parse_hmcfgusb(uint8_t *buf, int buf_len, void *data)
                        hexdump(buf, buf_len, "Unknown> ");
                        break;
        }
+
+       return 1;
 }
 
 int main(int argc, char **argv)
@@ -186,6 +188,7 @@ int main(int argc, char **argv)
                }
                printf("HM-CFG-USB opened!\n");
 
+               hmcfgusb_send_null_frame(dev);
                hmcfgusb_send(dev, (unsigned char*)"K", 1, 1);
 
                while(!quit) {
@@ -197,7 +200,7 @@ int main(int argc, char **argv)
                                rdata.wrong_hmid = 0;
                                hmcfgusb_send(dev, (unsigned char*)"K", 1, 1);
                        }
-                       fd = hmcfgusb_poll(dev, 10);
+                       fd = hmcfgusb_poll(dev, 1);
                        if (fd >= 0) {
                                fprintf(stderr, "activity on unknown fd %d!\n", fd);
                                continue;
@@ -205,6 +208,9 @@ int main(int argc, char **argv)
                                if (errno) {
                                        perror("hmcfgusb_poll");
                                        break;
+                               } else {
+                                       /* periodically wakeup the device */
+                                       hmcfgusb_send_null_frame(dev);
                                }
                        }
                }
Impressum, Datenschutz