63 lines
1.3 KiB
Python
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()
|