]> Repositories - hackapet/Adafruit_Blinka.git/blobdiff - python/digitalio/__init__.py
Switch sub-import based on chip
[hackapet/Adafruit_Blinka.git] / python / digitalio / __init__.py
index c8bde48ff0ffafe2d2686988daa4c5b0f3cff196..09021a6b3152af905807e7eae6bed9a288e5c8ea 100644 (file)
@@ -1,26 +1,36 @@
 import machine
 from mcp import Enum
 
 import machine
 from mcp import Enum
 
+
 class DriveMode(Enum):
     pass
 class DriveMode(Enum):
     pass
-DriveMode.PUSH_PULL=DriveMode()
-DriveMode.OPEN_DRAIN=DriveMode()
+
+
+DriveMode.PUSH_PULL = DriveMode()
+DriveMode.OPEN_DRAIN = DriveMode()
+
 
 class Direction(Enum):
     pass
 
 class Direction(Enum):
     pass
+
+
 Direction.INPUT = Direction()
 Direction.OUTPUT = Direction()
 
 Direction.INPUT = Direction()
 Direction.OUTPUT = Direction()
 
+
 class Pull(Enum):
     pass
 class Pull(Enum):
     pass
+
+
 Pull.UP = Pull()
 Pull.DOWN = Pull()
 
 Pull.UP = Pull()
 Pull.DOWN = Pull()
 
+
 class DigitalInOut:
 class DigitalInOut:
-    _pin=None
+    _pin = None
+
     def __init__(self, pin):
     def __init__(self, pin):
-        self.pin = pin
-        self._pin = None
+        self._pin = machine.Pin(pin.id)
         self.switch_to_input()
         pass
 
         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)
                     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")
 
         else:
             raise ValueError("Deinitialised")
@@ -52,7 +63,7 @@ class DigitalInOut:
     def __getattr__(self, key):
         if self._pin is not None:
             mode = self._pin.mode()
     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()
                 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")
                     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
                 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
                     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()
                 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")
 
         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
     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
 
         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']