| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 
 | #!/usr/bin/env python
# -*- coding: utf-8 -*-
 
from flask import Flask, render_template, request
from threading import Thread, Event
from multiprocessing import Process, Value
from threading import Thread
import requests
import json
import urllib
import time
import threading
 
app = Flask(__name__)
 
class LoopThread(Thread):
    def __init__(self, stop_event, interrupt_event):
        self.stop_event = stop_event
        self.interrupt_event = interrupt_event
        Thread.__init__(self)
 
    def run(self):
        while not self.stop_event.is_set():
            self.loop_process()
            if self.interrupt_event.is_set():
                self.interrupted_process()
                self.interrupt_event.clear()
 
    def loop_process(self):
        print("Start my pump!")
        time.sleep(2)
 
    def interrupted_process(self):
        print("Pump stopped!")
 
STOP_EVENT = Event()
INTERRUPT_EVENT = Event()
thread = LoopThread(STOP_EVENT, INTERRUPT_EVENT)
threads = []
 
@app.route('/')
def index():
  link = requests.get('http://192.168.1.129/cgi-bin/toto.py')
  return render_template('main.html', index=json.loads(link.text))
 
#def shutdown_server():
#    func = request.environ.get('werkzeug.server.shutdown')
#    if func is None:
#        raise RuntimeError('Not running with the Werkzeug Server')
#    func()
 
@app.route('/start', methods=['GET'])
def start():
    local_threads = []
    thread = LoopThread(STOP_EVENT, INTERRUPT_EVENT)
    local_threads.append(thread)
    print thread.is_alive()
    for thread in local_threads:
        if not thread.is_alive():
                thread = thread.clone()
                thread.start()
                print 'Thread starting...', thread.is_alive()
    print 'Pump starting...'
    return render_template('main.html')
 
@app.route('/stop', methods=['GET'])
def stop():
    STOP_EVENT.set()
    INTERRUPT_EVENT.set()
    print 'Pump stopping...'
    return render_template('main.html')
 
@app.route("/interrupt")
def interrupt():
    INTERRUPT_EVENT.set()
    return "OK", 200
 
 
if __name__ == '__main__':
 
        app.run(host='0.0.0.0', port=8000, debug='true') | 
Partager