version 1.0.0
[eyes-widget] / src / accelerometer.c
1 // Based on GPL code from liqbase, copyright Gary Liquid <liquid@gmail.com>
2
3 #include <stdio.h>
4 #include <glib.h>
5 #include "accelerometer.h"
6
7 static int ocnt=0;
8 static int oax=0;
9 static int oay=0;
10 static int oaz=0;
11
12 static const char *accel_filename = "/sys/class/i2c-adapter/i2c-3/3-001d/coord";
13 //static const char *accel_filename = "/tmp/coord";
14
15 int accel_read(gint *ax,gint *ay,gint *az)
16 {
17   FILE *fd;
18   int rs;
19   fd = fopen(accel_filename, "r");
20   if(fd==NULL){  return -1;}
21   rs=fscanf((FILE*) fd,"%i %i %i",ax,ay,az);
22   fclose(fd);
23   if(rs != 3){ return -2;}
24   int bx=*ax;
25   int by=*ay;
26   int bz=*az;
27   if(ocnt>0)
28     {
29       *ax=oax+(bx-oax)*0.1;
30       *ay=oay+(by-oay)*0.1;
31       *az=oaz+(bz-oaz)*0.1;
32     }
33   oax=*ax;
34   oay=*ay;
35   oaz=*az;
36   ocnt++;
37   return 0;
38 }
39