Initial commit
[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