X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/896f6eaf368933b3e241a7ea37cb032cc3c04083..dc1e0f79bfb7899615e6de4746c3bed76e65d45c:/src/adafruit_blinka/microcontroller/generic_micropython/__init__.py diff --git a/src/adafruit_blinka/microcontroller/generic_micropython/__init__.py b/src/adafruit_blinka/microcontroller/generic_micropython/__init__.py index e69de29..cb3683c 100644 --- a/src/adafruit_blinka/microcontroller/generic_micropython/__init__.py +++ b/src/adafruit_blinka/microcontroller/generic_micropython/__init__.py @@ -0,0 +1,33 @@ +# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries +# +# SPDX-License-Identifier: MIT +"""Genereic Pin class for use with MicroPython boards""" +from adafruit_blinka import Enum + + +class Pin(Enum): + """ + Identifies an IO pin on the microcontroller. + + They are fixed by the hardware so they cannot be constructed on demand. Instead, use board or + microcontroller.pin to reference the desired pin. + """ + + def __init__(self, pin_id): + """Identifier for pin, referencing platform-specific pin id""" + self.id = pin_id + + def __repr__(self): + # pylint: disable=import-outside-toplevel, cyclic-import + import board + import microcontroller.pin + + for key in dir(board): + if getattr(board, key) is self: + return "board.{}".format(key) + # pylint: enable=import-outside-toplevel, cyclic-import + + for key in dir(microcontroller.pin): + if getattr(microcontroller.pin, key) is self: + return "microcontroller.pin.{}".format(key) + return repr(self)