]> git.zerfleddert.de Git - hmcfgusb/blobdiff - hmsniff.c
hmsniff: add two more message types
[hmcfgusb] / hmsniff.c
index f3410445932aa6d05fee5514d1db325196881815..82907f78b8f9029e3232b495af28839717eb8f87 100644 (file)
--- a/hmsniff.c
+++ b/hmsniff.c
@@ -1,6 +1,6 @@
 /* HM-sniffer for HM-CFG-USB
  *
 /* HM-sniffer for HM-CFG-USB
  *
- * Copyright (c) 2013-15 Michael Gernoth <michael@gernoth.net>
+ * Copyright (c) 2013-16 Michael Gernoth <michael@gernoth.net>
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to
@@ -89,6 +89,9 @@ char *hm_message_types(uint8_t type, uint8_t subtype)
                case 0x53:
                        return "Water sensor";
                        break;
                case 0x53:
                        return "Water sensor";
                        break;
+               case 0x54:
+                       return "Gas sensor";
+                       break;
                case 0x58:
                        return "Climate event";
                        break;
                case 0x58:
                        return "Climate event";
                        break;
@@ -96,6 +99,7 @@ char *hm_message_types(uint8_t type, uint8_t subtype)
                        return "Thermal control";
                        break;
                case 0x5e:
                        return "Thermal control";
                        break;
                case 0x5e:
+               case 0x5f:
                        return "Power event";
                        break;
                case 0x70:
                        return "Power event";
                        break;
                case 0x70:
@@ -214,6 +218,7 @@ void hmsniff_syntax(char *prog)
        fprintf(stderr, "Syntax: %s options\n\n", prog);
        fprintf(stderr, "Possible options:\n");
        fprintf(stderr, "\t-f\t\tfast (100k/firmware update) mode\n");
        fprintf(stderr, "Syntax: %s options\n\n", prog);
        fprintf(stderr, "Possible options:\n");
        fprintf(stderr, "\t-f\t\tfast (100k/firmware update) mode\n");
+       fprintf(stderr, "\t-S serial\tuse HM-CFG-USB with given serial\n");
        fprintf(stderr, "\t-v\t\tverbose mode\n");
        fprintf(stderr, "\t-V\t\tshow version (" VERSION ")\n");
 
        fprintf(stderr, "\t-v\t\tverbose mode\n");
        fprintf(stderr, "\t-V\t\tshow version (" VERSION ")\n");
 
@@ -223,22 +228,26 @@ int main(int argc, char **argv)
 {
        struct hmcfgusb_dev *dev;
        struct recv_data rdata;
 {
        struct hmcfgusb_dev *dev;
        struct recv_data rdata;
+       char *serial = NULL;
        int quit = 0;
        int speed = 10;
        uint8_t speed_buf[2];
        int opt;
 
        int quit = 0;
        int speed = 10;
        uint8_t speed_buf[2];
        int opt;
 
-       while((opt = getopt(argc, argv, "fvV")) != -1) {
+       while((opt = getopt(argc, argv, "fS:vV")) != -1) {
                switch (opt) {
                        case 'f':
                                speed = 100;
                                break;
                switch (opt) {
                        case 'f':
                                speed = 100;
                                break;
+                       case 'S':
+                               serial = optarg;
+                               break;
                        case 'v':
                                verbose = 1;
                                break;
                        case 'V':
                                printf("hmsniff " VERSION "\n");
                        case 'v':
                                verbose = 1;
                                break;
                        case 'V':
                                printf("hmsniff " VERSION "\n");
-                               printf("Copyright (c) 2013-15 Michael Gernoth\n\n");
+                               printf("Copyright (c) 2013-16 Michael Gernoth\n\n");
                                exit(EXIT_SUCCESS);
                        case 'h':
                        case ':':
                                exit(EXIT_SUCCESS);
                        case 'h':
                        case ':':
@@ -256,7 +265,7 @@ int main(int argc, char **argv)
                memset(&rdata, 0, sizeof(rdata));
                rdata.wrong_hmid = 0;
 
                memset(&rdata, 0, sizeof(rdata));
                rdata.wrong_hmid = 0;
 
-               dev = hmcfgusb_init(parse_hmcfgusb, &rdata);
+               dev = hmcfgusb_init(parse_hmcfgusb, &rdata, serial);
                if (!dev) {
                        fprintf(stderr, "Can't initialize HM-CFG-USB, retrying in 1s...\n");
                        sleep(1);
                if (!dev) {
                        fprintf(stderr, "Can't initialize HM-CFG-USB, retrying in 1s...\n");
                        sleep(1);
Impressum, Datenschutz