12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- """
- Example Lib
- """
- from machine import Pin, Timer
- class foo:
- """
- Example class.
- """
- ############################## Attributes ##############################
- ############################## Constructor ##############################
- def __init__(self, led_Pin_button:Pin, button:Pin, led_Pin_timer:Pin = Pin(3),):
-
- self.__led_pin_timer = self.__check_pin(led_Pin_timer)
- self.__led_pin_button = self.__check_pin(led_Pin_button)
- self.__button = self.__check_pin(button)
- self.__led_pin_timer.init(mode=Pin.OUT)
- self.__led_pin_button.init(mode=Pin.OUT)
- self.__button.init(mode=Pin.IN)
- self.__timer = Timer()
- self.__timer.init(mode=Timer.PERIODIC, period=200, callback=self.__blink_handler)
- self.__button.irq(handler=self.__int_handler, hard=True, trigger=Pin.IRQ_FALLING)
- ############################## Property ##############################
- # zum Aufruf privater Variablen
- @property
- def button(self):
- """button
- Returns:
- _button_: _description_
- """
- return self.__button
- # bei Veränderung der Variable wird die folgende Funktion ausgeführt
- @button.setter
- def button(self, pin):
- self.__button = self.__check_pin(pin)
- """ wenn Variable nicht geändert werden darf:
- raise AttributeError("Du darfst den Pin nicht verändern!")
- """
- ############################## Methods ##############################
- # private Methode zur Überprüfung des Datentyps
- def __check_pin(self, pin:Pin):
-
- if not isinstance(pin, Pin):
- raise ValueError(f"Value \"{pin}\" of \"pin\" is not of type \"{Pin}\"")
- else:
- return pin
-
- # übergabe von timer ist für Timer-Interrupt immer notwendig
- def __blink_handler(self, timer):
- self.__led_pin_timer.toggle()
- # übergabe von pin ist für Pin-Interrupt immer notwendig
- def __int_handler(self, pin):
- self.__led_pin_button.toggle()
|