cleaned up ekgplotter

This commit is contained in:
Stefan Kögl 2014-04-24 09:34:37 +02:00
parent f3a8e8c4dd
commit 40ffb2e43d
1 changed files with 17 additions and 11 deletions

View File

@ -29,6 +29,7 @@ from datetime import datetime
import threading import threading
import Queue import Queue
import traceback import traceback
import logging
import numpy as np import numpy as np
import string import string
import time import time
@ -52,9 +53,13 @@ import pyqtgraph as pg
from pyqtgraph.widgets.PlotWidget import PlotWidget from pyqtgraph.widgets.PlotWidget import PlotWidget
from chaosc.argparser_groups import * from chaosc.argparser_groups import *
from chaosc.lib import resolve_host from chaosc.lib import logger, resolve_host
fh = logging.FileHandler(os.path.expanduser("~/.chaosc/ekgplotter.log"))
fh.setLevel(logging.DEBUG)
logger.addHandler(fh)
try: try:
from chaosc.c_osc_lib import OSCMessage, decode_osc from chaosc.c_osc_lib import OSCMessage, decode_osc
except ImportError as e: except ImportError as e:
@ -92,7 +97,7 @@ class OSCThread(threading.Thread):
print "%s: starting up osc receiver on '%s:%d'" % ( print "%s: starting up osc receiver on '%s:%d'" % (
datetime.now().strftime("%x %X"), self.client_address[0], self.client_address[1]) datetime.now().strftime("%x %X"), self.client_address[0], self.client_address[1])
self.subscribe_me() #self.subscribe_me()
def subscribe_me(self): def subscribe_me(self):
"""Use this procedure for a quick'n dirty subscription to your chaosc instance. """Use this procedure for a quick'n dirty subscription to your chaosc instance.
@ -140,16 +145,15 @@ class OSCThread(threading.Thread):
try: try:
osc_input, address = self.osc_sock.recvfrom(8192) osc_input, address = self.osc_sock.recvfrom(8192)
osc_address, typetags, messages = decode_osc(osc_input, 0, len(osc_input)) osc_address, typetags, messages = decode_osc(osc_input, 0, len(osc_input))
if osc_address.find("ekg") != -1 or osc_address.find("plot") != -1:
queue.put_nowait((osc_address, messages)) queue.put_nowait((osc_address, messages))
except Exception, e: except Exception, e:
print "recvfrom error", e print "recvfrom error", e
else: #else:
queue.put_nowait(("/bjoern/ekg", [0])) #queue.put_nowait(("/bjoern/ekg", [0]))
queue.put_nowait(("/merle/ekg", [0])) #queue.put_nowait(("/merle/ekg", [0]))
queue.put_nowait(("/uwe/ekg", [0])) #queue.put_nowait(("/uwe/ekg", [0]))
self.unsubscribe_me() #self.unsubscribe_me()
print "OSCThread is going down" print "OSCThread is going down"
@ -246,7 +250,7 @@ class EkgPlot(object):
self.plot.showGrid(False, False) self.plot.showGrid(False, False)
self.plot.setYRange(0, 255) self.plot.setYRange(0, 255)
self.plot.setXRange(0, num_data) self.plot.setXRange(0, num_data)
self.plot.resize(1280, 720) self.plot.resize(768, 576)
ba = self.plot.getAxis("bottom") ba = self.plot.getAxis("bottom")
bl = self.plot.getAxis("left") bl = self.plot.getAxis("left")
@ -380,10 +384,12 @@ class MyHandler(BaseHTTPRequestHandler):
plotter.update(osc_address, args[0]) plotter.update(osc_address, args[0])
exporter = pg.exporters.ImageExporter.ImageExporter(plotter.plot.plotItem) exporter = pg.exporters.ImageExporter.ImageExporter(plotter.plot.plotItem)
exporter.parameters()['width'] = 768
img = exporter.export("tmpfile", True) img = exporter.export("tmpfile", True)
buffer = QBuffer() buffer = QBuffer()
buffer.open(QIODevice.WriteOnly) buffer.open(QIODevice.WriteOnly)
img.save(buffer, "JPG", 100) img.save(buffer, "JPG")
img.save("/tmp/test2.jpg", "JPG")
JpegData = buffer.data() JpegData = buffer.data()
self.wfile.write("--aaboundary\r\nContent-Type: image/jpeg\r\nContent-length: %d\r\n\r\n%s\r\n\r\n\r\n" % (len(JpegData), JpegData)) self.wfile.write("--aaboundary\r\nContent-Type: image/jpeg\r\nContent-length: %d\r\n\r\n%s\r\n\r\n\r\n" % (len(JpegData), JpegData))