summaryrefslogtreecommitdiff
path: root/external/plyer/platforms/linux/accelerometer.py
diff options
context:
space:
mode:
Diffstat (limited to 'external/plyer/platforms/linux/accelerometer.py')
-rw-r--r--external/plyer/platforms/linux/accelerometer.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/external/plyer/platforms/linux/accelerometer.py b/external/plyer/platforms/linux/accelerometer.py
new file mode 100644
index 0000000..7272c33
--- /dev/null
+++ b/external/plyer/platforms/linux/accelerometer.py
@@ -0,0 +1,36 @@
+'''
+Linux accelerometer
+---------------------
+'''
+
+from plyer.facades import Accelerometer
+import os
+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()