From d1ffb76141a6e8d27ea20a6f3b26028ec0734622 Mon Sep 17 00:00:00 2001 From: John Shaver Date: Fri, 6 Apr 2018 13:07:49 -0700 Subject: [PATCH] Moved python service file. --- main.py | 15 +++++++-- service/service.py | 82 ---------------------------------------------- 2 files changed, 12 insertions(+), 85 deletions(-) delete mode 100644 service/service.py diff --git a/main.py b/main.py index 9bbf806..3ce7bdd 100644 --- a/main.py +++ b/main.py @@ -2,15 +2,21 @@ # -*- coding: utf-8 -*- import RPi.GPIO as GPIO import time +import socket + +sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + +CONNECT_TO = ("10.0.0.4", 2000) def buttonEventHandler(value): - print "buton event!" if value is 0: GPIO.output(24, True) + sock.sendall("button_press") print('Button Pressed...') else: GPIO.output(24, False) + sock.sendall("button_release") print('Button Released...') def main(): @@ -23,12 +29,15 @@ def main(): #GPIO.add_event_detect(23, GPIO.FALLING) #GPIO.add_event_callback(23, buttonEventHandler) try: + sock.connect(CONNECT_TO) while True: - GPIO.wait_for_edge(23, GPIO.BOTH) + GPIO.wait_for_edge(23, GPIO.BOTH, bouncetime=100) buttonEventHandler(GPIO.input(23)) - except KeyboardInterrupt as e: + except: GPIO.cleanup() + sock.close() raise + if __name__== "__main__": main() diff --git a/service/service.py b/service/service.py deleted file mode 100644 index 2f490b7..0000000 --- a/service/service.py +++ /dev/null @@ -1,82 +0,0 @@ -#! /usr/bin/env python -# -*- coding: utf-8 -*- - -from pulsectl import Pulse -import SocketServer -from threading import Thread - -LISTEN_ON = ("10.0.0.4", 2000) - -def main(): - pulse = Pulse('mic-control') - - sources = pulse.source_list() - - sourceNumber = getSourceSelection(sources) - - server = SocketServer.TCPServer(LISTEN_ON, RequestHandler) - - try: - server.serve_forever() - except KeyboardInterrupt: - server.shutdown() - server.server_close() - - -def getSourceSelection(sources): - sourceCount = len(sources) - 1 - error = False - while True: - message = error if error else "Please select a source: " - print(message) - for i, source in enumerate(sources): - print "%i: %s" % (i, source.description) - selection = raw_input("Enter a number[0-%i]:" % sourceCount) - print("") - try : - return getInt(selection, sourceCount) - except InputError as e: - error = e.message - -def getInt(value, sourceCount): - - number = 0 - try: - number = int(value) - except ValueError as e: - raise InputError("Enter only a number...") - - if number not in range(0, sourceCount): - raise InputError("Not a valid option...") - - return number - -class RequestHandler(SocketServer.StreamRequestHandler): - def handle(self): - - for line in self.rfile: - message = line.strip() - if message in messageTypes: - messageTypes[message]() - self.wfile.write(message) - print("Closed!") - self.request.close() - - -def buttonPressed(): - print("down!") - -def buttonReleased(): - print("up!") - -messageTypes = { - 'button_press': buttonPressed, - 'button_release': buttonReleased, -} - -class InputError(Exception): - def __init__(self, message): - self.message = message - - -main()