#!/usr/bin/env python
import time, os, sys, collections 
from serial import Serial
import numpy as np
from matplotlib import pyplot as plt

N = 5000

serial = Serial('../ardy_tes', 115200)
data = collections.deque(N*[0.0], maxlen=N)
#data2 = collections.deque(N*[0.0], maxlen=N)

plt.ion() # interactive mode on
ax1, = plt.plot([1, 2, 3, 4, 5])
ax2, = plt.plot([1, 2, 3, 4, 5])
plt.ylim([0, 1200])
plt.xlim([0, N])
plt.grid()

logging = True
if logging:
    of = open('/tmp/ser.dat', 'wb')
 
#junk = serial.readline()
t0 = time.time()
while True:
    while serial.inWaiting():
        line = serial.readline()
        if logging:
            of.write(line)
        #print repr(line)
        try:
            #v1, v2 = [int(v) for v in line.split()]
            v1, = [int(v) for v in line.split()]
        except ValueError:
            print 'conversion error:', repr(line)
            continue
        data.append(v1)
        #data2.append(v2)

    # update the plot

    if time.time() - t0 > 1/20.0:
        t0 = time.time()
        ax1.set_xdata(np.arange(len(data)))
        ax1.set_ydata(data)
        #ax2.set_xdata(np.arange(len(data2)))
        #ax2.set_ydata(data)
        plt.draw()
        plt.pause(0.01)

