diff --git a/pulses/pulses.py b/pulses/pulses.py index 1c32d8b..3632dd6 100644 --- a/pulses/pulses.py +++ b/pulses/pulses.py @@ -30,12 +30,13 @@ class ledPulse(threading.Thread): self.log = logging.getLogger(self.__class__.__name__) self.gpio = gpio - super().__init__(name=name, daemon=False) + + super().__init__(name=name, daemon=True) self.pwm_setup() - self.log.info(f"platform '{sys.platform}' " + - f"support: {sys.platform == 'linux'}") + self.log.info(f"platform '{self.model}' " + + f"support: {self.supported}") for dm in self.delayMethods: self.register_delay_method(dm, eval(f"delay_{dm}")) @@ -44,8 +45,12 @@ class ledPulse(threading.Thread): self.register_value_method(vm, eval(f"value_{vm}")) self.stop_event = threading.Event() + # Method to stop thread + # Like def stop(): self.stop_event.set() + # But shorter ;) self.stop = self.stop_event.set + self.queue = Queue() # Set default values @@ -53,15 +58,17 @@ class ledPulse(threading.Thread): setattr(self, key, value) def pwm_setup(self): + self.supported = False + self.moel = sys.platform try: - with open('/sys/firmware/devicetree/base/model', 'r') as m: + with op en('/sys/firmware/devicetree/base/model', 'r') as m: + print("OPN") model = m.read() if model.lower().startswith('raspberry pi'): self.supported = True self.model = model except Exception: - self.supported = False - self.model = sys.platform + pass if self.supported: import RPi.GPIO as GPIO @@ -75,9 +82,12 @@ class ledPulse(threading.Thread): self.setValue = self.pwm.ChangeDutyCycle self.pwm.start(0) # start pwm with value 0 else: - # Not supported, skip setValue - # self.setValue = lambda x: x - self.setValue = print + # Platform not supported, set + # a dummy setValue function + if self.log.level == logging.DEBUG: + self.setValue = print + else: + self.setValue = lambda x: x return (False, sys.platform) diff --git a/test.py b/test.py index b334eb2..84c4335 100644 --- a/test.py +++ b/test.py @@ -1,5 +1,6 @@ import logging from pulses import pulses +import time logging.basicConfig(format='%(name)s %(threadName)s %(msg)s') @@ -8,4 +9,12 @@ log.setLevel('DEBUG') led = pulses.ledPulse(12) led.start() -# led.set(delay=1/100, valueMode="sin", max=20) +led.set(delay=1/100, loopMethod="sin", max=20) +time.sleep(4) +led.set(delay=1/100, loopMethod="on", initialMethod="sin", finalMethod=None, max=40) +time.sleep(4) +led.set(delay=1/100, loopMethod="cos", initialMethod=None, finalMethod="sin", max=20) +time.sleep(4) +led.set(delay=1/100, loopMethod="on", initialMethod="sin", finalMethod="sin", max=40) +time.sleep(4) +led.stop()