hmcfgusb: add possibility to use a specific HM-CFG-USB with -S
[hmcfgusb] / hmland.c
index f0b07f2b8cf01196937420fdb321e3f012486e11..8e5d6daf642c797a6f0cebdf2a2cddeab8ea6b6d 100644 (file)
--- a/hmland.c
+++ b/hmland.c
@@ -65,6 +65,7 @@ static int reboot_at_minute = -1;
 static int reboot_set = 0;
 static uint8_t *lan_read_buf = NULL;
 static int lan_read_buflen = 0;
+static char *serial = NULL;
 
 struct queued_rx {
        char *rx;
@@ -505,7 +506,7 @@ static int comm(int fd_in, int fd_out, int master_socket, int flags)
 
        hmcfgusb_set_debug(debug);
 
-       dev = hmcfgusb_init(hmlan_format_out, &fd_out);
+       dev = hmcfgusb_init(hmlan_format_out, &fd_out, serial);
        if (!dev) {
                fprintf(stderr, "Can't initialize HM-CFG-USB!\n");
                return 0;
@@ -808,6 +809,7 @@ void hmlan_syntax(char *prog)
        fprintf(stderr, "\t-p n\t\tlisten on port n (default: 1000)\n");
        fprintf(stderr, "\t-r n\t\treboot HM-CFG-USB after n seconds (0: no reboot, default: %u if FW < 0.967, 0 otherwise)\n", DEFAULT_REBOOT_SECONDS);
        fprintf(stderr, "\t   hh:mm\treboot HM-CFG-USB daily at hh:mm\n");
+       fprintf(stderr, "\t-S serial\tuse HM-CFG-USB with given serial (for multiple hmland instances)\n");
        fprintf(stderr, "\t-v\t\tverbose mode\n");
        fprintf(stderr, "\t-V\t\tshow version (" VERSION ")\n");
 
@@ -822,7 +824,7 @@ int main(int argc, char **argv)
        char *ep;
        int opt;
        
-       while((opt = getopt(argc, argv, "DdhIiPp:Rr:l:L:vV")) != -1) {
+       while((opt = getopt(argc, argv, "DdhIiPp:Rr:l:L:S:vV")) != -1) {
                switch (opt) {
                        case 'D':
                                debug = 1;
@@ -880,6 +882,9 @@ int main(int argc, char **argv)
                                        exit(EXIT_FAILURE);
                                }
                                break;
+                       case 'S':
+                               serial = optarg;
+                               break;
                        case 'v':
                                verbose = 1;
                                break;
Impressum, Datenschutz