openCom-Companion/sbapp/plyer/platforms/linux/accelerometer.py

36 lines
876 B
Python
Raw Normal View History

2022-09-16 18:07:57 +02:00
'''
Linux accelerometer
---------------------
'''
2024-06-02 18:31:58 +02:00
from sbapp.plyer.facades import Accelerometer
2022-09-16 18:07:57 +02:00
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()