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