import pygame, sys, serial, plotly, datetime, plotly
from pygame.locals import*
ser = serial.Serial("serial port", 9600)
pygame.init()
py = plotly.plotly("user name", "API key")
Window = pygame.display.set_mode((640, 480))

X = []
Y = 300
Yaxis = []
Button = False
lastLen = len(X)
Loop = True

while Loop==True:
    Window.fill(pygame.Color(255,255,255))
    pygame.draw.rect(Window, pygame.Color(0,0,0), (0,0,300,250), 0)
    pygame.draw.rect(Window, pygame.Color(255,0,0), (400,30,130,20), 0)
    myfont = pygame.font.SysFont("monospace", 15)
    label = myfont.render("Save To Plotly", 1, (0,0,0))
    Window.blit(label, (402, 30))
    if lastLen != len(X):
        lastLen = len(X)
        Yaxis.append(datetime.datetime.now())
    In = str(ser.readline())
    In = In[:len(In)-2]
    try:
        X.append(int(In))
    except ValueError:
        pass
        
    
    if len(X)>500:
        Length = 500
    else:
        Length = len(X)-2
        
    for x in range(0,10):
        pygame.draw.line(Window, pygame.Color(100,100,100), (0,x*25),(300,x*25), 1)

    for x in range(0,12):
        pygame.draw.line(Window, pygame.Color(100,100,100), (x*25,0),(x*25,250), 1)
        
    for x in range(1,Length):
        pygame.draw.line(Window, pygame.Color(0,255,0), (Y,X[len(X)-x]/4),(Y-5,X[len(X)-(x+1)]/4), 1)
        Y=Y-2
  
    
            
        
    Y = 300
    pygame.display.update()
        
        

    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            ser.close()
            Loop = False
            break
        if event.type == pygame.MOUSEBUTTONDOWN:
            x, y = event.pos
            if ( x in range(400,530)) and (y in range(30,50)):
                print len(X)
                print len(Yaxis)
                py.plot(Yaxis,X)
            
                
    

    
