#author:	Martin RobinSon
#alias:		Salopar
#title:		tkRcl.py
#project:	Monthly Python
#url:		monthlypython.blogspot.com

from math import *
from Tkinter import *
import tkSimpleDialog
import tkMessageBox

parent=Tk()

var_R = DoubleVar()	#Tkinter variable object
def enter_R():
    var = tkSimpleDialog.askfloat("Resistance","Resistance = ",initialvalue="0.0")
			#a little box appear and ask to enter value then press enter
			#or to press cancel
    if var == None : var = 0.0
    var_R.set(var)
button_R = Button(parent, text="Resistance = ", command = enter_R).grid(row=1, column = 0)
label_R = Label(parent, textvariable=var_R).grid(row=1, column = 2)

var_C = DoubleVar()
def enter_C():
    var = tkSimpleDialog.askfloat("Condensator","Condensator = ",initialvalue="0.0")
    if var == None : var = 0.0
    var_C.set(var)
button_C = Button(parent, text="Condensator = ", command = enter_C).grid(row=2, column = 0)
label_C = Label(parent, textvariable=var_C).grid(row=2, column = 2)

var_L = DoubleVar()
def enter_L():
    var = tkSimpleDialog.askfloat("Inductance","Inductance = ",initialvalue="0.0")
    if var == None : var = 0.0
    var_L.set(var)
button_L = Button(parent, text="Inductance = ", command = enter_L).grid(row=3, column = 0)
label_L = Label(parent, textvariable=var_L).grid(row=3, column = 2)

var_H = DoubleVar()
def enter_H():
    var = tkSimpleDialog.askfloat("Hertz","Hertzian Frequency = ",initialvalue="0.0")
    if var == None : var = 0.0
    var_H.set(var)
button_H = Button(parent, text="Hertzian Frequency = ", command = enter_H).grid(row=4, column = 0)
label_H = Label(parent, textvariable=var_H).grid(row=4, column = 2)

var_W = DoubleVar()
label_W = Label(parent, textvariable="Hertzian Resonance = ").grid(row=5, column = 0)
label_var_W = Label(parent, textvariable=var_W).grid(row=5, column = 1)

var_Xl = DoubleVar()
label_Xl = Label(parent, textvariable="Reactance Inductive = ").grid(row=6, column = 0)
label_var_Xl = Label(parent, textvariable=var_Xl).grid(row=6, column = 1)

var_Xc = DoubleVar()
label_Xc = Label(parent, textvariable="Reactance Capative = ").grid(row=7, column = 0)
label_var_Xc = Label(parent, textvariable=var_Xc).grid(row=7, column = 1)

var_Z = DoubleVar()
label_Z = Label(parent, textvariable=var_Z).grid(row=8, column = 1)
label_var_Z = Label(parent, textvariable="Impedance = ").grid(row=8, column = 0)

def calculate():
	R = var_R.get()
	C = var_C.get()
	L = var_L.get()
	H = var_H.get()
	if L != 0 and C != 0:		W = 1 / (2*pi* sqrt(L*C))
	else:				W = 0.0
	Xl = 2*pi*H*L
	if C != 0 and H != 0:		Xc = 1 / (2*pi*H*C)
	else:				Xc = 0.0
	X = Xl - Xc
	Z = sqrt((R*R)+(X*X))
	var_W.set(W)
	var_Xl.set(Xl)
	var_Xc.set(Xc)
	var_Z.set(Z)
button_calc = Button(parent, text="calculate", command = calculate).grid(row=0, column = 2)

def info():
	tkMessageBox.showinfo("about","The RCL calc is made in python coded by Martin RobinSon")
button_info = Button(parent, text="about",command = info).grid(row=0,column = 0)

parent.mainloop()
