# LASERCONTROL.py # Version 3, 10 Aug 2013 # (c) 2016 by Andrew J. Campbell # # Laser control through serial port import serial import Tkinter as tk ser = serial.Serial() ser.baudrate = 57600 ser.port = 'COM1' # #print ser.name, " is open = ", ser.isOpen() window = tk.Tk() window.title("Laser Heating Control") setpoint = tk.StringVar() setpoint.set(0.0) increment = tk.StringVar() increment.set(1) def laseroff() : ser.write("EMON = TRUE") def laseron() : ser.write("EMON = FALSE") def setlaser(x) : global setpoint setpoint.set(str(x)) message = "SCR = " + setpoint ser.write(message) def set_0() : setlaser(0.0) def set_10() : setlaser(10.0) def adjust_up() : setlaser(float(setpoint.get())+float(increment.get())) def adjust_down() : setlaser(float(setpoint.get())-float(increment.get())) frame_onoff = tk.Frame(window, padx=50) offButton = tk.Button(frame_onoff, text="Laser Off", command=laseroff) onButton = tk.Button(frame_onoff, text="Laser On", command=laseron) offButton.pack(side='left') onButton.pack(side='left') frame_preset = tk.Frame(window) pct0Button = tk.Button(frame_preset, text="0 %", command=set_0) pct10Button = tk.Button(frame_preset, text="10 %", command=set_10) pct0Button.pack(side='left') pct10Button.pack(side='left') frame_adjust = tk.Frame(window) upButton = tk.Button(frame_adjust, text="Up", command=adjust_up) downButton = tk.Button(frame_adjust, text="Down", command=adjust_down) incrementEntry = tk.Entry(frame_adjust, textvariable=increment, width=4, justify='center') upButton.pack() incrementEntry.pack() downButton.pack() setpointlabel = tk.Label(window, textvariable=setpoint, font=("Helvetica","40")) frame_onoff.pack(pady=20) setpointlabel.pack() frame_adjust.pack(pady=10) frame_preset.pack(pady=10) window.mainloop() ser.close()