MAX31855-EH
Sebastian Steuer 2013-11-30 00:47:35 +01:00
rodzic 86b86c4a41
commit b85fa912f3
2 zmienionych plików z 36 dodań i 6 usunięć

Wyświetl plik

@ -1,9 +1,13 @@
import threading,logging,json,time
import threading,logging,json,time,datetime
from oven import Oven
log = logging.getLogger(__name__)
class OvenWatcher(threading.Thread):
def __init__(self,oven):
self.last_profile = None
self.last_log = []
self.started = None
self.recording = False
self.observers = []
threading.Thread.__init__(self)
self.daemon = True
@ -14,13 +18,38 @@ class OvenWatcher(threading.Thread):
def run(self):
while True:
oven_state = self.oven.get_state()
self.notifyAll(oven_state)
if oven_state.get("state") == Oven.STATE_RUNNING:
self.last_log.append(oven_state)
else:
self.recording = False
self.notify_all(oven_state)
time.sleep(0.5)
def record(self, profile):
self.last_profile = profile
self.last_log = []
self.started = datetime.datetime.now()
self.recording = True
def addObserver(self,observer):
def add_observer(self,observer):
backlog = {
'type': "backlog",
'profile': self.last_profile,
'log': self.last_log,
#'started': self.started
}
print backlog
backlog_json = json.dumps(backlog)
try:
print backlog_json
observer.send(backlog_json)
except:
log.error("Could not send backlog to new observer")
self.observers.append(observer)
def notifyAll(self,message):
def notify_all(self,message):
message_json = json.dumps(message)
log.debug("sending to %d clients: %s"%(len(self.observers),message_json))
for wsock in self.observers:

Wyświetl plik

@ -55,6 +55,7 @@ def handle_control():
profile_json = json.dumps(profile_obj)
profile = Profile(profile_json)
oven.run_profile(profile)
ovenWatcher.record(profile_json)
elif msgdict.get("cmd") == "STOP":
log.info("Stop command received")
oven.abort_run()
@ -101,7 +102,7 @@ def handle_storage():
@app.route('/status')
def handle_status():
wsock = get_websocket_from_request()
ovenWatcher.addObserver(wsock)
ovenWatcher.add_observer(wsock)
log.info("websocket (status) opened")
while True:
try: