From 63210ee88d5a508b7c9f145ee42ee777be49bb9e Mon Sep 17 00:00:00 2001 From: Olli Graf Date: Sun, 30 Apr 2023 10:01:00 +0200 Subject: [PATCH] Schalten der LED per URL-Request --- gpio/.gitignore | 1 + gpio/ledserver.log | 1 - gpio/ledserver.py | 50 +++++++++++++++++++++++++++++----------------- 3 files changed, 33 insertions(+), 19 deletions(-) delete mode 100644 gpio/ledserver.log diff --git a/gpio/.gitignore b/gpio/.gitignore index c7fb3aa..94a378f 100644 --- a/gpio/.gitignore +++ b/gpio/.gitignore @@ -1,2 +1,3 @@ ./__pycache__ +*.log ./network/__pycache__/* diff --git a/gpio/ledserver.log b/gpio/ledserver.log deleted file mode 100644 index caed544..0000000 --- a/gpio/ledserver.log +++ /dev/null @@ -1 +0,0 @@ -2023-04-29 10:49:08,638 [DEBUG] : MAIN: start diff --git a/gpio/ledserver.py b/gpio/ledserver.py index a48064c..16c7370 100755 --- a/gpio/ledserver.py +++ b/gpio/ledserver.py @@ -1,32 +1,46 @@ #! /usr/bin/python3 -from http.server import BaseHTTPRequestHandler,HTTPServer +from http.server import SimpleHTTPRequestHandler +import socketserver import logging +from led import setLED -logging.basicConfig( format='%(asctime)-15s [%(levelname)s] %(funcName)s: %(message)s', filename='ledserver.log', level=logging.DEBUG) -class http_server: - def __init__(self): - def handler(*args): - myHandler(*args) - server = HTTPServer(('', 8080), handler) -class myHandler(BaseHTTPRequestHandler): - def __init__(self,*args): - self.t1 = t1 - BaseHTTPRequestHandler.__init__(self, *args) +logging.basicConfig( format='%(asctime)-15s [%(levelname)s] %(funcName)s: %(message)s', level=logging.DEBUG) +class LEDHttpRequestHandler(SimpleHTTPRequestHandler): def do_GET(self): + logging.debug(f'path= {self.path}') logging.debug('GET: empfangen') + logging.debug(f'Request: {self.request}') self.send_response(200) - self.send_header('Content-type','text/html') - self.end_headers() - self.wfile.write(self.t1.show()) #Doesnt work - return + self.send_header('Content-Type:','text/html') + + if 'led=on' in self.path: + logging.debug('schalte LED ein') + setLED(True) + else: + logging.debug('schalte LED aus') + setLED(False) + + self.wfile.write('

LED geschaltet

'.encode()) + -class main: + +class http_server: def __init__(self): + def handler(*args): + myHandler(*args) + server = HTTPServer(('', 8080), handler) - self.server = http_server() if __name__ == '__main__': logging.debug('MAIN: start') - main() + handler = LEDHttpRequestHandler + with socketserver.TCPServer(('',9000),handler) as httpd: + logging.info('SERVER: start') + try: + httpd.serve_forever() + except KeyboardInterrupt: + pass + +