X-Git-Url: https://git.ayoreis.com/hackapet/Adafruit_Blinka.git/blobdiff_plain/7f0e0efa350d65a8102e6d0ee3b2ade5c85f8103..bdef7a8d9ed13a161ad5b983fe26b28c6e8b842c:/python/digitalio/__init__.py diff --git a/python/digitalio/__init__.py b/python/digitalio/__init__.py index c8bde48..09021a6 100644 --- a/python/digitalio/__init__.py +++ b/python/digitalio/__init__.py @@ -1,26 +1,36 @@ import machine from mcp import Enum + class DriveMode(Enum): pass -DriveMode.PUSH_PULL=DriveMode() -DriveMode.OPEN_DRAIN=DriveMode() + + +DriveMode.PUSH_PULL = DriveMode() +DriveMode.OPEN_DRAIN = DriveMode() + class Direction(Enum): pass + + Direction.INPUT = Direction() Direction.OUTPUT = Direction() + class Pull(Enum): pass + + Pull.UP = Pull() Pull.DOWN = Pull() + class DigitalInOut: - _pin=None + _pin = None + def __init__(self, pin): - self.pin = pin - self._pin = None + self._pin = machine.Pin(pin.id) self.switch_to_input() pass @@ -45,6 +55,7 @@ class DigitalInOut: self._pin.mode(machine.Pin.OUT) elif val is Direction.INPUT: self._pin.mode(machine.Pin.IN) + #TODO more attribute assignments else: raise ValueError("Deinitialised") @@ -52,7 +63,7 @@ class DigitalInOut: def __getattr__(self, key): if self._pin is not None: mode = self._pin.mode() - if key=="value:": + if key == "value:": if mode is machine.Pin.OUTPUT: raise AttributeError("Pin is output") return self._pin.value() @@ -63,7 +74,7 @@ class DigitalInOut: return DriveMode.PUSH_PULL elif mode is machine.Pin.IN: raise AttributeError("Pin is input") - elif key=="direction": + elif key == "direction": mode = self._pin.mode() if mode is machine.Pin.IN: return Direction.INPUT @@ -71,7 +82,7 @@ class DigitalInOut: return Direction.OUTPUT elif mode is machine.Pin.OPEN_DRAIN: return Direction.OUTPUT - elif key=="pull": + elif key == "pull": if mode is machine.Pin.OUTPUT: raise AttributeError("Pin is output") pull = self._pin.pull() @@ -84,7 +95,6 @@ class DigitalInOut: else: raise ValueError("Deinitialised") - def switch_to_output(self, value=False, drive_mode=DriveMode.PUSH_PULL): self._pin = machine.Pin(0, machine.Pin.IN, machine.Pin.PULL_UP) pass @@ -93,16 +103,5 @@ class DigitalInOut: self._pin = machine.Pin(0, machine.Pin.IN, machine.Pin.PULL_UP) pass - def direction(self, *a): - pass - - def value(self, *a): - pass - - def drive_mode(self, *a): - pass - - def pull(self, *a): - pass -__all__ = ['DigitalInOut', 'DriveMode', 'Direction','Pull'] \ No newline at end of file +# __all__ = ['DigitalInOut', 'DriveMode', 'Direction','Pull']