#!/usr/bin/env python
import numpy as np
from math import *
import serial, time
import struct
import sys
import socket
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import bitstring

n_samples = 20

def read_as5013_12bit(bytes):
	return (bitstring.Bits(bytes=bytes, length=16)<<4).unpack('uint:16')[0]
	#signed 12 bit val comes in two bytes
	#return struct.unpack("<h",bytearray([ (high<<4) , low<<4 ]))[0]

def read(ser=None):
	if ser is None:
		print "No serial connection!"
	else:
		c = ser.read(n_samples)
		data = [read_as5013_12bit(c[x:x+2]) for x in xrange(0,n_samples,2)]
		return data

def main():
	try:
		ser = serial.Serial(port='/dev/tty.usbserial-FT9L3KWR',baudrate=1000000,timeout=1.)
		ser.isOpen()
		print "Established serial connection."
	except(OSError):
		#no serial port
		print "Couldn't find the serial port, entering debug mode."
		ser = None
	ser.flush()


	while True: 
		#connection, address = serversocket.accept()

		try:
			data = np.asarray(read(ser=ser))
			print data[1::2] - data[::2]
		except(KeyboardInterrupt):
			break
		#if data:
		#	clientsocket.send(data)
	print "quitting"
	ser.close()



if __name__ == '__main__':
	main()