# # efe.charge.py # (c) Neil Gershenfeld CBA MIT # 10/1704 # from Tkinter import * import serial WINDOW = 600 def idle(parent,canvas): global index, channel, path, path_filt, imp, imp_filt, saveflag # # idle routine # dn_lo = ord(ser.read()) dn_hi = ord(ser.read()) up_lo = ord(ser.read()) up_hi = ord(ser.read()) dn = dn_lo + 256*dn_hi up = up_lo + 256*up_hi f1 = ord(ser.read()) f2 = ord(ser.read()) f3 = ord(ser.read()) f4 = ord(ser.read()) canvas.coords("rect",0,0,WINDOW/4,up) canvas.itemconfigure("label",text="%d"%up) parent.after_idle(idle,parent,canvas) # # open serial port # ser = serial.Serial('/dev/ttyS0',9600) ser.setDTR() # # find framing # print "finding framing ..." byte2 = 0 byte3 = 0 byte4 = 0 while 1: byte1 = byte2 byte2 = byte3 byte3 = byte4 byte4 = ord(ser.read()) if ((byte1 == 1) & (byte2 == 2) & (byte3 == 3) & (byte4 == 4)): break # # start plotting # root = Tk() root.title('efe.charge.py') root.bind('q','exit') canvas = Canvas(root, width=WINDOW/4, height=WINDOW, background='white') canvas.create_text(WINDOW/8,WINDOW-WINDOW/8,text="",font=("Helvetica", 20),tags="label",fill="#0000b0") canvas.create_rectangle(0,0,WINDOW/4,WINDOW,fill="#00b000",tags="rect") canvas.pack() root.after(100,idle,root,canvas) root.mainloop() while 1: #for i in range(1000): dn_lo = ord(ser.read()) dn_hi = ord(ser.read()) up_lo = ord(ser.read()) up_hi = ord(ser.read()) dn = dn_lo + 256*dn_hi up = up_lo + 256*up_hi print up f1 = ord(ser.read()) f2 = ord(ser.read()) f3 = ord(ser.read()) f4 = ord(ser.read())