# # receive and display messages depending on signal sent from daughter boards # # Seowoo Kim # HTMAA 2017 # from Tkinter import * from PIL import Image, ImageTk import serial WINDOW = 1000 # window size eps = 0.75 # filter fraction filt = 0.0 # filtered value def idle(parent,canvas): global filt, eps # # idle routine # byte2 = 0 byte3 = 0 byte4 = 0 ser.flush() # # find framing # while 1: x = ord(ser.read()) if (x == 49): canvas.delete("all") canvas.create_text(.5*WINDOW,.1*WINDOW,text="1",font=("Helvetica", 24),tags="text2",fill="#0000b0") canvas.pack(expand = YES, fill = BOTH) canvas.itemconfigure("text2",text="British Columbia") canvas.create_text(.4*WINDOW,.2*WINDOW,text="1",font=("Helvetica", 20),tags="text",fill="#000000") canvas.pack(expand = YES, fill = BOTH) canvas.itemconfigure("text",text="BC is home to the world's largest hockey stick!") canvas.update() parent.after_idle(idle,parent,canvas) if (x == 50): canvas.delete("all") canvas.create_text(.5*WINDOW,.1*WINDOW,text="1",font=("Helvetica", 24),tags="text",fill="#0000b0") canvas.pack() canvas.itemconfigure("text", text="Alberta") canvas.create_text(.4*WINDOW,.2*WINDOW,text="1",font=("Helvetica", 20),tags="text2",fill="#000000") canvas.pack(expand = YES, fill = BOTH) canvas.itemconfigure("text2",text="The phrase 'Trick or treat' first began in Alberta!") canvas.update() parent.after_idle(idle,parent,canvas) if (x == 51): canvas.delete("all") canvas.create_text(.5*WINDOW,.1*WINDOW,text="1",font=("Helvetica", 24),tags="text",fill="#0000b0") canvas.pack() canvas.itemconfigure("text", text="Saskatchewan") canvas.create_text(.5*WINDOW,.2*WINDOW,text="1",font=("Helvetica", 20),tags="text2",fill="#000000") canvas.pack(expand = YES, fill = BOTH) canvas.itemconfigure("text2",text="There are more Tim Horton's per capita in Saskatoon than") canvas.create_text(.5*WINDOW,.3*WINDOW,text="1",font=("Helvetica", 20),tags="text3",fill="#000000") canvas.pack(expand = YES, fill = BOTH) canvas.itemconfigure("text3",text="in any other city in Canada.") canvas.update() parent.after_idle(idle,parent,canvas) if (x == 52): canvas.delete("all") canvas.create_text(.5*WINDOW,.1*WINDOW,text="1",font=("Helvetica", 24),tags="text",fill="#0000b0") canvas.pack() canvas.itemconfigure("text", text="Manitoba") canvas.create_text(.5*WINDOW,.2*WINDOW,text="1",font=("Helvetica", 20),tags="text2",fill="#000000") canvas.pack(expand = YES, fill = BOTH) canvas.itemconfigure("text2",text="Manitobians consume the most Slurpees from 7-Eleven") canvas.create_text(.5*WINDOW,.3*WINDOW,text="1",font=("Helvetica", 20),tags="text3",fill="#000000") canvas.pack(expand = YES, fill = BOTH) canvas.itemconfigure("text3",text=" in the world and they have held that title for 16 years.") canvas.update() parent.after_idle(idle,parent,canvas) if (x == 53): canvas.delete("all") canvas.create_text(.5*WINDOW,.1*WINDOW,text="1",font=("Helvetica", 24),tags="text",fill="#0000b0") canvas.pack() canvas.itemconfigure("text", text="Ontario") canvas.create_text(.4*WINDOW,.2*WINDOW,text="1",font=("Helvetica", 20),tags="text2",fill="#000000") canvas.pack(expand = YES, fill = BOTH) canvas.itemconfigure("text2",text="Trudeau, Bieber, and Drake were born in Ontario!!!!") canvas.update() parent.after_idle(idle,parent,canvas) if (x == 56): canvas.delete("all") canvas.create_text(.5*WINDOW,.1*WINDOW,text="1",font=("Helvetica", 24),tags="text",fill="#0000b0") canvas.pack() canvas.itemconfigure("text", text="Quebec") canvas.create_text(.4*WINDOW,.2*WINDOW,text="1",font=("Helvetica", 20),tags="text2",fill="#000000") canvas.pack(expand = YES, fill = BOTH) canvas.itemconfigure("text2",text="Over 95% of the population is French speaking.") canvas.update() parent.after_idle(idle,parent,canvas) if (x == 54): canvas.delete("all") canvas.create_text(.5*WINDOW,.1*WINDOW,text="1",font=("Helvetica", 24),tags="text",fill="#0000b0") canvas.pack() canvas.itemconfigure("text", text="New Brunswick, Nova Scotia, PEI") canvas.create_text(.5*WINDOW,.2*WINDOW,text="1",font=("Helvetica", 20),tags="text2",fill="#000000") canvas.pack(expand = YES, fill = BOTH) canvas.itemconfigure("text2",text="These are the Maritimme provinces of Canada") canvas.create_text(.5*WINDOW,.3*WINDOW,text="1",font=("Helvetica", 20),tags="text3",fill="#000000") canvas.pack(expand = YES, fill = BOTH) canvas.itemconfigure("text3",text="and are a good place to do a road trip.") canvas.update() parent.after_idle(idle,parent,canvas) if (x == 55): canvas.delete("all") canvas.create_text(.5*WINDOW,.1*WINDOW,text="1",font=("Helvetica", 24),tags="text",fill="#0000b0") canvas.pack() canvas.itemconfigure("text", text="Newfoundland and Labrador") canvas.create_text(.5*WINDOW,.2*WINDOW,text="1",font=("Helvetica", 20),tags="text2",fill="#000000") canvas.pack(expand = YES, fill = BOTH) canvas.itemconfigure("text2",text="St. John's, the capital city of Newfoundland, is the oldest city") canvas.create_text(.5*WINDOW,.3*WINDOW,text="1",font=("Helvetica", 20),tags="text3",fill="#000000") canvas.pack(expand = YES, fill = BOTH) canvas.itemconfigure("text3",text=" in North America.") canvas.update() parent.after_idle(idle,parent,canvas) if (x == 57): canvas.delete("all") canvas.create_text(.5*WINDOW,.1*WINDOW,text="1",font=("Helvetica", 24),tags="text",fill="#0000b0") canvas.pack() canvas.itemconfigure("text", text="Yukon") canvas.create_text(.5*WINDOW,.2*WINDOW,text="1",font=("Helvetica", 20),tags="text2",fill="#000000") canvas.pack(expand = YES, fill = BOTH) canvas.itemconfigure("text2",text="One of the 3 territories of Canada, Yukon's name") canvas.create_text(.5*WINDOW,.2*WINDOW,text="1",font=("Helvetica", 20),tags="text2",fill="#000000") canvas.pack(expand = YES, fill = BOTH) canvas.itemconfigure("text2",text=" originated from Gwich'in native word 'Yuk-un-ah.'") canvas.update() parent.after_idle(idle,parent,canvas) if (x == 58): canvas.delete("all") canvas.create_text(.5*WINDOW,.1*WINDOW,text="1",font=("Helvetica", 24),tags="text",fill="#0000b0") canvas.pack() canvas.itemconfigure("text", text="Northwest Territories") canvas.create_text(.4*WINDOW,.2*WINDOW,text="1",font=("Helvetica", 20),tags="text2",fill="#000000") canvas.pack(expand = YES, fill = BOTH) canvas.itemconfigure("text2",text="Northern lights are visible nearly 250 days out of the entire year.") canvas.update() parent.after_idle(idle,parent,canvas) if (x == 59): canvas.delete("all") canvas.create_text(.5*WINDOW,.1*WINDOW,text="1",font=("Helvetica", 24),tags="text",fill="#0000b0") canvas.pack() canvas.itemconfigure("text", text="Nunavut") canvas.create_text(.4*WINDOW,.2*WINDOW,text="1",font=("Helvetica", 20),tags="text2",fill="#000000") canvas.pack(expand = YES, fill = BOTH) canvas.itemconfigure("text2",text="Alcohol is illegal in this territory. But you should still visit!") canvas.update() parent.after_idle(idle,parent,canvas) # check command line arguments # if (len(sys.argv) != 2): print"command line: hello.txrx.45.py serial_port" sys.exit() port = sys.argv[1] # # open serial port # ser = serial.Serial(port,9600) ser.setDTR() # # set up GUI # root = Tk() root.title('hello.txrx.45.py (q to exit)') root.bind('q','exit') canvas = Canvas(root, width=WINDOW, height=0.5*WINDOW, background='white') # # start idle loop # root.after(100,idle,root,canvas) root.mainloop()