From d149a9ed667b4ff8c4cbd1d48e160027de591931 Mon Sep 17 00:00:00 2001 From: Max Date: Sun, 4 Oct 2020 00:19:40 +0100 Subject: [PATCH] Adding unfinished led node server code --- light_node/main_led_server.py | 49 +++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 light_node/main_led_server.py diff --git a/light_node/main_led_server.py b/light_node/main_led_server.py new file mode 100644 index 0000000..d858c8e --- /dev/null +++ b/light_node/main_led_server.py @@ -0,0 +1,49 @@ +from flask import Flask, abort, jsonify, make_response, request, send_from_directory + + +class Led: + __IFACE_PIN = 18 + def __init__(self, power, brightness, color_angle): + self.power = power + self.brightness = brightness + self.color_angle = color_angle + self.iface_pin = self.__IFACE_PIN + + def change_state(self, power, brightness, color_angle): + pass + + def angle_2_rgb(self, angle): + pass + + +class LightNode: + def __init__(self): + self.led = Led(False, 0, 0) + self.server = Flask('light_node') + + def init_server(self): + @self.server.errorhandler(404) + def not_found(self, error): + return make_response(jsonify({'error': 'Not found'}), 404) + + @self.server.errorhandler(400) + def bad_request(self, error): + # Happens when unexpected request sent to observer + return make_response(jsonify({'error': 'Bad request'}), 400) + + @self.server.errorhandler(501) + def server_crash(sef, error): + # This only happens when a sensor fails to initialise + return make_response(jsonify({'error': 'Server crashed, check logs'}), 501) + + @self.server.route('/setState', methhods=['POST']) + def change_led_state(self): + try: + new_state = request.json + self.led.power = bool(new_state['power']) + self.led.brightness = int(new_state['brightness']) + self.led.color = int(new_state['color']) + return jsonify({"success":True}) + except: + self.bad_request() + pass