EMF_Camp_Badge/upip/machine/pin.py

29 lines
698 B
Python

import umachine
class Pin(umachine.PinBase):
IN = "in"
OUT = "out"
def __init__(self, no, dir=IN):
pref = "/sys/class/gpio/gpio{}/".format(no)
dirf = pref + "direction"
try:
f = open(dirf, "w")
except OSError:
with open("/sys/class/gpio/export", "w") as f:
f.write(str(no))
f = open(dirf, "w")
f.write(dir)
f.close()
self.f = open(pref + "value", "r+b")
def value(self, v=None):
if v is None:
self.f.seek(0)
return 1 if self.f.read(1) == b"1" else 0
self.f.write(b"1" if v else b"0")
def deinit(self):
self.f.close()