+
+ len = (ascii_to_nibble(buf[0]) & 0xf)<< 4;
+ len |= ascii_to_nibble(buf[1]) & 0xf;
+ len <<= 8;
+ len |= (ascii_to_nibble(buf[2]) & 0xf)<< 4;
+ len |= ascii_to_nibble(buf[3]) & 0xf;
+
+ printf("packet length: %x\n", len);
+
+ r = read(fd, buf, len * 2);
+ if (r < 0) {
+ perror("read");
+ exit(EXIT_FAILURE);
+ } else if (r < len * 2) {
+ printf("short read, aborting (%d < %d)\n", r, len * 2);
+ break;
+ }
+