/*
 * sixhidtest version 2008-04-26
 * Compile with: gcc -o sixhidtest sixhidtest-20080426.c
 * Run with: sixhidtest < /dev/hidrawX
 */

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
  unsigned char buf[128];
  int nr;

  while ( (nr=read(0, buf, sizeof(buf))) ) {
    if ( nr < 0 )
      { perror("read(stdin)"); exit(1); }
    if ( nr != 48 ) {
      fprintf(stderr, "Unsupported report length %d."
	      " Wrong hidraw device or kernel>=2.6.26 ?\n", nr);
      exit(1);
    }
    int ax = buf[40]<<8 | buf[41];
    int ay = buf[42]<<8 | buf[43];
    int az = buf[44]<<8 | buf[45];
    int rz = buf[46]<<8 | buf[47]; // Needs another patch.
    printf("ax=%4d ay=%4d az=%4d\n", ax, ay, az);
    fflush(stdout);
  }
  return 0;
}
