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)
}
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;
}
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;
#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)
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);