APED_Device/app.py
2020-12-28 12:30:00 +01:00

36 lines
1.0 KiB
Python

#!/usr/bin/python3
from flask import request
from flask_api import FlaskAPI
import RPi.GPIO as GPIO
from xml_reader import Xml_reader
from interface_handler import Interface_handler
xml_reader = Xml_reader('XML/config.xml','XML/config.xsd')
interface_handler = Interface_handler(xml_reader)
device_names = xml_reader.get_device_names()
app = FlaskAPI(__name__)
@app.route('/', methods=["GET"])
def api_root():
return {
"device_url": request.url + "device/<device_name>",
"device_url_POST": {"output": "<value>"}
}
@app.route('/device/<device_name>/', methods=["GET", "POST"])
def api_leds_control(device_name):
try:
if request.method == "POST":
response = interface_handler.write(device_name,request.data.get("output"))
return {'output': response}
return {'state': interface_handler.read(device_name)}
except Exception as e:
return {'error': str(e)}
if __name__ == "__main__":
app.run(port=8080,host="0.0.0.0")