sejf/raspi/webapp.py
2017-09-13 15:25:10 +02:00

63 lines
1.3 KiB
Python

import flask
import string
import time
import threading
import socket
app = flask.Flask(__name__)
@app.route('/set/<int:task>')
def set_task(task):
app.port.write(string.uppercase[task])
return flask.redirect('/')
@app.route('/clear/<int:task>')
def clear_task(task):
app.port.write(string.lowercase[task])
return flask.redirect('/')
@app.route('/set/all')
def set_all():
app.port.write(string.uppercase)
return flask.redirect('/')
@app.route('/clear/all')
def clear_all():
app.port.write(string.lowercase)
return flask.redirect('/')
@app.route('/restart')
def restart():
import thread
thread.interrupt_main()
return flask.redirect('/') # xD
@app.route('/')
def index():
states = app.rth.states.items()
states.sort(key=lambda (k, v): v['name'])
return flask.render_template(
'index.html', hostname=socket.gethostname(), states=states)
@app.route('/arduino/reset')
def reset():
app.port.dtr = False
time.sleep(0.5)
app.port.dtr = True
time.sleep(0.5)
app.port.dtr = False
time.sleep(0.5)
app.port.dtr = True
return flask.redirect('/')
def init(ser):
app.port = ser
app.th = threading.Thread(target=app.run, kwargs={
'host': '0.0.0.0'
})
app.th.daemon = True
app.th.start()