#!/usr/bin/env python

#This program will attempt to read a line from a file using a GUI

import pygtk
pygtk.require('2.0')
import gtk
import re
import serial



class Beta:
	
	ser=serial.Serial()
	ser.port="/dev/ttyUSB0"
	ser.baudrate=9600
	ser.open()

	vars = re.compile('^(\d+\.?\d*)a(\d+\.?\d*)b(\d+\.?\d*)c(\d+\.?\d*)d(.*)')

	#f is a pointer used to reference file

	
	def callback(self,widget,data=None):
		
		print "alpha"
		i=0
		while i<3:
			s=hello.ser.readline()
			hello.ser.write("nipun\n")
			m = re.search(hello.vars, s) # Run the regexp on the packet
			var1 = m.group(1) # take out the values
			var2 = m.group(2)
			var3 = m.group(3)
			var4 = m.group(4)
			hello.entry.set_text(var1)
			hello.entry1.set_text(var2)
			hello.entry2.set_text(var3)
			hello.entry3.set_text(var4)
			hello.ser.write("nipun\n")
			i=i+1
	def delete_event(self,widget,event,data=None):
		print "Delete event has occcured"
		gtk.main_quit()
		return False
		
	def __init__(self):
		self.window=gtk.Window(gtk.WINDOW_TOPLEVEL)
		self.window.set_title("File read GUI")
		self.window.connect("delete_event",self.delete_event)
		self.window.set_border_width(10)
		self.box1=gtk.HBox(False,0)
		self.window.add(self.box1)
		self.button=gtk.Button("Read a line")
		self.button.connect("clicked",self.callback)
		self.box1.pack_start(self.button,True,True,0)
		self.button.show()
		self.entry=gtk.Entry()
		self.entry1=gtk.Entry()
		self.entry2=gtk.Entry()
		self.entry3=gtk.Entry()
		self.box1.pack_start(self.entry,True,True,0)
		self.box1.pack_start(self.entry1,True,True,0)
		self.box1.pack_start(self.entry2,True,True,0)
		self.box1.pack_start(self.entry3,True,True,0)
		self.entry.show()
		self.entry1.show()
		self.entry2.show()
		self.entry3.show()
		self.box1.show()
		self.window.show()
		
	def main(self):
		gtk.main()
		
	
		
if __name__=="__main__":
	hello=Beta()
	hello.main()
	
