|
- import time
- from thread import start_new_thread
- from modules import cbpi
-
- try:
- import RPi.GPIO as GPIO
- except Exception as e:
- pass
-
- class Buzzer(object):
-
- sound = ["H", 0.1, "L"]
- def __init__(self, gpio):
- try:
- cbpi.app.logger.info("INIT BUZZER NOW GPIO%s" % gpio)
- self.gpio = gpio
- GPIO.setmode(GPIO.BCM)
- GPIO.setup(gpio, GPIO.OUT)
- self.state = True
- cbpi.app.logger.info("BUZZER SETUP OK")
- except Exception as e:
- self.state = False
-
- def beep(self):
- if self.state is False:
- cbpi.app.logger.error("BUZZER not working")
- return
-
- def play(sound):
- try:
- for i in sound:
- if (isinstance(i, str)):
- if i == "H":
- GPIO.output(int(self.gpio), GPIO.HIGH)
- else:
- GPIO.output(int(self.gpio), GPIO.LOW)
- else:
- time.sleep(i)
- except Exception as e:
- pass
-
- start_new_thread(play, (self.sound,))
-
- @cbpi.initalizer(order=0)
- def init(cbpi):
- gpio = cbpi.get_config_parameter("buzzer", 16)
- cbpi.buzzer = Buzzer(gpio)
- cbpi.beep()
- cbpi.app.logger.info("INIT OK")
|