]> git.itanic.dy.fi Git - glucose/commitdiff
Make excess debug messages to be hidden by default
authorTimo Kokkonen <kaapeli@itanic.dy.fi>
Thu, 28 Apr 2011 18:22:14 +0000 (21:22 +0300)
committerTimo Kokkonen <kaapeli@itanic.dy.fi>
Thu, 28 Apr 2011 18:23:42 +0000 (21:23 +0300)
Only desired debug messages are shown depending on the tracing level.

Signed-off-by: Timo Kokkonen <kaapeli@itanic.dy.fi>
main.c
utils.c
utils.h

diff --git a/main.c b/main.c
index 62b2241e8b8c10de15466e19335e66c09a55292b..a350154067dbc459c2d4bb5597267cb86a862316 100644 (file)
--- a/main.c
+++ b/main.c
@@ -26,14 +26,16 @@ int send_msg(const struct msg *msg, int fd, int usage_code)
        int ret;
 
        if (msg->direction != OUT) {
-               printf("Message direction is not OUT\n");
+               trace(0, "Message direction is not OUT\n");
                exit(1);
        }
 
        usleep(30 * 1000);
-       printf("Sending: ");
-       print_hex(msg->data + 1, datalen(msg->data) - 1);
-       print_ascii(msg->data + 1, datalen(msg->data) - 1);
+       trace(1, "Sending: ");
+       if (trace_level >= 3)
+               print_hex(msg->data + 1, datalen(msg->data) - 1);
+       if (trace_level >= 2)
+               print_ascii(msg->data + 1, datalen(msg->data) - 1);
 
        ret = hiddev_write(msg->data, fd, usage_code);
        if (ret)
@@ -57,9 +59,11 @@ int read_and_verify(struct msg *msg, int fd)
        }
 
        memcpy(msg->data, buf, sizeof(buf));
-       printf("Got data %d: ", datalen(buf));
-//     print_hex(buf, datalen(buf));
-       print_ascii(buf, datalen(buf));
+       trace(2, "Got data %d: ", datalen(buf));
+       if (trace_level >= 3)
+               print_hex(buf, datalen(buf));
+       if (trace_level >= 2)
+               print_ascii(buf, datalen(buf));
 err:
        return 0;
 }
@@ -255,10 +259,12 @@ int communicate(int fd, int uc)
        send_msg(&msg, fd, uc);
        read_msgs(fd);
 
+       trace(0, "Glucose readings:\n");
        usleep(100 * 1000);
        do {
                send_msg(&msg, fd, uc);
                read_and_verify(&in, fd);
+               print_ascii(in.data, datalen(in.data));
        } while (datalen(in.data) > 45);
 
        return 0;
diff --git a/utils.c b/utils.c
index ce6d967322c6bf2f570ede747e81cb844bf55f35..df4dad369b4d8929ab3b584fd7d40a81170115da 100644 (file)
--- a/utils.c
+++ b/utils.c
@@ -2,6 +2,8 @@
 
 #include "utils.h"
 
+int trace_level;
+
 int datalen(const unsigned char *data)
 {
        int i, len;
diff --git a/utils.h b/utils.h
index a0bdfb5094a15c697ef1963a6d16bc12a013a40a..e84ef3609e301852da32e454045c0e1875bed16d 100644 (file)
--- a/utils.h
+++ b/utils.h
@@ -1,6 +1,8 @@
 #ifndef _UTILS_H
 #define _UTILS_H
 
+#include <stdio.h>
+
 #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
 
 static inline int is_printable(const unsigned char c)
@@ -8,6 +10,14 @@ static inline int is_printable(const unsigned char c)
        return c >= 0x20 && c < 0x80;
 }
 
+extern int trace_level;
+
+#define trace(level, arg...)                   \
+       do {                                    \
+               if (level <= trace_level)       \
+                       printf(arg);            \
+       } while (0)
+
 int datalen(const unsigned char *data);
 void print_hex(const unsigned char *data, int len);
 void print_ascii(const unsigned char *data, int len);