aboutsummaryrefslogtreecommitdiff
path: root/hangup.py
blob: cfe6bdf95e76e14fc4719437c434bf0339f5c80b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import RPi.GPIO as GPIO
import threading
import time

BUTTON_GPIO = 24

class HangUpThread(threading.Thread):
    def __init__(self, phone_held, phone_hung_up, dial_manager):
        threading.Thread.__init__(self, args=(), kwargs=None)
        self.phone_held = phone_held
        self.phone_hung_up = phone_hung_up
        self.dial_manager = dial_manager
        self.daemon = True

        GPIO.setmode(GPIO.BCM)
        GPIO.setup(BUTTON_GPIO, GPIO.IN, pull_up_down=GPIO.PUD_UP)

    def run(self):
        while True:
            if not GPIO.input(BUTTON_GPIO):
                self.phone_held.clear()
                self.phone_hung_up.set()
                self.dial_manager.clear_sequence()
            else:
                self.phone_held.set()
                self.phone_hung_up.clear()
            time.sleep(0.1)