Files
dragonpilot/common/gpio.py
Dragonpilot Team fe6459224b dragonpilot 2022-09-15T06:50:26 for EON/C2
version: dragonpilot v0.8.17 beta for EON/C2
date: 2022-09-15T06:50:26
dp-dev(priv2) master commit: 4d0dc8f4278758e1c000fbbef41ad124187335e2
2022-09-15 06:50:40 +00:00

26 lines
753 B
Python

from typing import Optional
def gpio_init(pin: int, output: bool) -> None:
try:
with open(f"/sys/class/gpio/gpio{pin}/direction", 'wb') as f:
f.write(b"out" if output else b"in")
except Exception as e:
print(f"Failed to set gpio {pin} direction: {e}")
def gpio_set(pin: int, high: bool) -> None:
try:
with open(f"/sys/class/gpio/gpio{pin}/value", 'wb') as f:
f.write(b"1" if high else b"0")
except Exception as e:
print(f"Failed to set gpio {pin} value: {e}")
def gpio_read(pin: int) -> Optional[bool]:
val = None
try:
with open(f"/sys/class/gpio/gpio{pin}/value", 'rb') as f:
val = bool(int(f.read().strip()))
except Exception as e:
print(f"Failed to set gpio {pin} value: {e}")
return val