File: accelerometer.py

package info (click to toggle)
python-plyer 2.1.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 1,808 kB
  • sloc: python: 13,395; sh: 217; makefile: 177
file content (35 lines) | stat: -rw-r--r-- 870 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
'''
Linux accelerometer
---------------------
'''

from plyer.facades import Accelerometer
import glob
import re


class LinuxAccelerometer(Accelerometer):

    def _enable(self):
        pass

    def _disable(self):
        pass

    def _get_acceleration(self):
        try:
            pos = glob.glob("/sys/devices/platform/*/position")[0]
        except IndexError:
            raise Exception('Could not enable accelerometer!')

        with open(pos, "r") as p:
            t = p.read()
            coords = re.findall(r"[-]?\d+\.?\d*", t)
            # Apparently the acceleration on sysfs goes from -1000 to 1000.
            # I divide it by 100 to make it equivalent to Android.
            # The negative is because the coordinates are inverted on Linux
            return [float(i) / -100 for i in coords]


def instance():
    return LinuxAccelerometer()