summaryrefslogtreecommitdiff
path: root/src/kicadtoNgspice/Analysis.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/kicadtoNgspice/Analysis.py')
-rw-r--r--src/kicadtoNgspice/Analysis.py526
1 files changed, 275 insertions, 251 deletions
diff --git a/src/kicadtoNgspice/Analysis.py b/src/kicadtoNgspice/Analysis.py
index a573c540..b9fbb006 100644
--- a/src/kicadtoNgspice/Analysis.py
+++ b/src/kicadtoNgspice/Analysis.py
@@ -2,75 +2,76 @@
from PyQt4 import QtGui
import TrackWidget
import os
-from xml.etree import ElementTree as ET
+#from xml.etree import ElementTree as ET
+import json
class Analysis(QtGui.QWidget):
"""
This class create Analysis Tab in KicadtoNgspice Window.
"""
def __init__(self,clarg1):
- self.clarg1=clarg1
+ self.clarg1 = clarg1
QtGui.QWidget.__init__(self)
- self.track_obj= TrackWidget.TrackWidget()
- self.count =0
- self.parameter_cnt=0
- self.ac_entry_var={}
- self.dc_entry_var={}
- self.tran_entry_var={}
- self.ac_parameter={}
- self.dc_parameter={}
- self.tran_parameter= {}
+ self.track_obj = TrackWidget.TrackWidget()
+ self.count = 0
+ self.parameter_cnt = 0
+ self.ac_entry_var = {}
+ self.dc_entry_var = {}
+ self.tran_entry_var = {}
+ self.ac_parameter = {}
+ self.dc_parameter = {}
+ self.tran_parameter = {}
self.createAnalysisWidget()
-
-
def createAnalysisWidget(self):
self.grid = QtGui.QGridLayout()
- self.grid.addWidget(self.createCheckBox(),0,0)
- self.grid.addWidget(self.createACgroup(),1,0)
- self.grid.addWidget(self.createDCgroup(),2,0)
- self.grid.addWidget(self.createTRANgroup(),3,0)
+ self.grid.addWidget(self.createCheckBox(), 0, 0)
+ self.grid.addWidget(self.createACgroup(), 1, 0)
+ self.grid.addWidget(self.createDCgroup(), 2, 0)
+ self.grid.addWidget(self.createTRANgroup(), 3, 0)
try:
kicadFile = self.clarg1
- (projpath,filename)=os.path.split(kicadFile)
+ (projpath,filename) = os.path.split(kicadFile)
if os.path.isfile(os.path.join(projpath, 'analysis')):
print "Analysis file is present"
+
analysisfile = open(os.path.join(projpath,'analysis'))
content = analysisfile.readline()
print "Content of Analysis file :", content
- contentlist= content.split()
- if contentlist[0]== '.ac':
+ contentlist= content.split()
+
+ if contentlist[0] == '.ac':
self.checkAC.setChecked(True)
self.acbox.setDisabled(False)
self.dcbox.setDisabled(True)
self.trbox.setDisabled(True)
- self.track_obj.set_CheckBox["ITEMS"]="AC"
- if contentlist[1]== 'lin':
+ self.track_obj.set_CheckBox["ITEMS"] = "AC"
+ if contentlist[1] == 'lin':
self.Lin.setChecked(True)
- self.track_obj.AC_type["ITEMS"]="lin"
- elif contentlist[1]== 'dec':
+ self.track_obj.AC_type["ITEMS"] = "lin"
+ elif contentlist[1] == 'dec':
self.Dec.setChecked(True)
- self.track_obj.AC_type["ITEMS"]="dec"
- elif contentlist[1]== 'oct':
+ self.track_obj.AC_type["ITEMS"] = "dec"
+ elif contentlist[1] == 'oct':
self.Oct.setChecked(True)
- self.track_obj.AC_type["ITEMS"]="oct"
+ self.track_obj.AC_type["ITEMS"] = "oct"
- elif contentlist[0]== '.dc':
+ elif contentlist[0] == '.dc':
self.checkDC.setChecked(True)
self.dcbox.setDisabled(False)
self.acbox.setDisabled(True)
self.trbox.setDisabled(True)
- self.track_obj.set_CheckBox["ITEMS"]="DC"
+ self.track_obj.set_CheckBox["ITEMS"] ="DC"
- elif contentlist[0]== '.tran':
+ elif contentlist[0] == '.tran':
self.checkTRAN.setChecked(True)
self.trbox.setDisabled(False)
self.acbox.setDisabled(True)
self.dcbox.setDisabled(True)
- self.track_obj.set_CheckBox["ITEMS"]="TRAN"
+ self.track_obj.set_CheckBox["ITEMS"] = "TRAN"
- elif contentlist[0]== '.op':
+ elif contentlist[0] == '.op':
self.checkDC.setChecked(True)
self.dcbox.setDisabled(False)
self.acbox.setDisabled(True)
@@ -78,7 +79,7 @@ class Analysis(QtGui.QWidget):
self.check.setChecked(True)
except:
self.checkTRAN.setChecked(True)
- self.track_obj.set_CheckBox["ITEMS"]="TRAN"
+ self.track_obj.set_CheckBox["ITEMS"] = "TRAN"
self.setLayout(self.grid)
self.show()
@@ -92,54 +93,52 @@ class Analysis(QtGui.QWidget):
self.checkAC = QtGui.QCheckBox("AC")
self.checkDC = QtGui.QCheckBox("DC")
self.checkTRAN = QtGui.QCheckBox("TRANSIENT")
+
self.checkgroupbtn.addButton(self.checkAC)
self.checkgroupbtn.addButton(self.checkDC)
self.checkgroupbtn.addButton(self.checkTRAN)
self.checkgroupbtn.setExclusive(True)
self.checkgroupbtn.buttonClicked.connect(self.enableBox)
- self.checkgrid.addWidget(self.checkAC,0,0)
- self.checkgrid.addWidget(self.checkDC,0,1)
- self.checkgrid.addWidget(self.checkTRAN,0,2)
+ self.checkgrid.addWidget(self.checkAC, 0, 0)
+ self.checkgrid.addWidget(self.checkDC, 0, 1)
+ self.checkgrid.addWidget(self.checkTRAN, 0, 2)
self.checkbox.setLayout(self.checkgrid)
return self.checkbox
-
def enableBox(self):
if self.checkAC.isChecked():
self.acbox.setDisabled(False)
self.dcbox.setDisabled(True)
self.trbox.setDisabled(True)
- self.track_obj.set_CheckBox["ITEMS"]="AC"
+ self.track_obj.set_CheckBox["ITEMS"] = "AC"
elif self.checkDC.isChecked():
self.dcbox.setDisabled(False)
self.acbox.setDisabled(True)
self.trbox.setDisabled(True)
- self.track_obj.set_CheckBox["ITEMS"]="DC"
+ self.track_obj.set_CheckBox["ITEMS"] = "DC"
elif self.checkTRAN.isChecked():
self.trbox.setDisabled(False)
self.acbox.setDisabled(True)
self.dcbox.setDisabled(True)
- self.track_obj.set_CheckBox["ITEMS"]="TRAN"
+ self.track_obj.set_CheckBox["ITEMS"] = "TRAN"
def createACgroup(self):
kicadFile = self.clarg1
- (projpath,filename)=os.path.split(kicadFile)
- project_name=os.path.basename(projpath)
- check=1
+ (projpath,filename) = os.path.split(kicadFile)
+ project_name = os.path.basename(projpath)
+ check = 1
+
try:
- f=open(os.path.join(projpath,project_name+"_Previous_Values.xml"),'r')
- tree=ET.parse(f)
- parent_root=tree.getroot()
- for child in parent_root:
- if child.tag=="analysis":
- root=child
+ f = open(os.path.join(projpath,project_name+"_Previous_Values.json"),'r')
+ data = f.read()
+ json_data = json.loads(data)
except:
- check=0
- print "AC Previous Values XML is Empty"
+ check = 0
+ print "AC Previous Values JSON is Empty"
self.acbox = QtGui.QGroupBox()
self.acbox.setTitle("AC Analysis")
@@ -156,34 +155,34 @@ class Analysis(QtGui.QWidget):
self.Lin.setChecked(True)
self.track_obj.AC_type["ITEMS"]="lin"
self.radiobuttongroup.buttonClicked.connect(self.set_ac_type)
- self.acgrid.addWidget(self.Lin,1,1)
- self.acgrid.addWidget(self.Dec,1,2)
- self.acgrid.addWidget(self.Oct,1,3)
+ self.acgrid.addWidget(self.Lin, 1, 1)
+ self.acgrid.addWidget(self.Dec, 1, 2)
+ self.acgrid.addWidget(self.Oct, 1, 3)
self.acbox.setLayout(self.acgrid)
self.scale = QtGui.QLabel("Scale")
self.start_fre_lable = QtGui.QLabel("Start Frequency")
self.stop_fre_lable = QtGui.QLabel("Stop Frequency")
self.no_of_points = QtGui.QLabel("No.of Points")
- self.acgrid.addWidget(self.scale,1,0)
- self.acgrid.addWidget(self.start_fre_lable,2,0)
- self.acgrid.addWidget(self.stop_fre_lable,3,0)
- self.acgrid.addWidget(self.no_of_points,4,0)
+ self.acgrid.addWidget(self.scale, 1, 0)
+ self.acgrid.addWidget(self.start_fre_lable, 2, 0)
+ self.acgrid.addWidget(self.stop_fre_lable, 3, 0)
+ self.acgrid.addWidget(self.no_of_points, 4, 0)
- self.count=0
+ self.count = 0
self.ac_entry_var[self.count] = QtGui.QLineEdit()#start
- self.acgrid.addWidget(self.ac_entry_var[self.count],2,1)
+ self.acgrid.addWidget(self.ac_entry_var[self.count], 2, 1)
self.ac_entry_var[self.count].setMaximumWidth(150)
- self.count= self.count+1
+ self.count = self.count+1
self.ac_entry_var[self.count] = QtGui.QLineEdit()#stop
- self.acgrid.addWidget(self.ac_entry_var[self.count],3,1)
+ self.acgrid.addWidget(self.ac_entry_var[self.count], 3, 1)
self.ac_entry_var[self.count].setMaximumWidth(150)
- self.count= self.count+1
+ self.count = self.count+1
self.ac_entry_var[self.count] = QtGui.QLineEdit()#no of pts
- self.acgrid.addWidget(self.ac_entry_var[self.count],4,1)
+ self.acgrid.addWidget(self.ac_entry_var[self.count], 4, 1)
self.ac_entry_var[self.count].setMaximumWidth(150)
- self.parameter_cnt=0
+ self.parameter_cnt = 0
self.start_fre_combo = QtGui.QComboBox()
self.start_fre_combo.addItem("Hz",)
self.start_fre_combo.addItem("KHz")
@@ -191,15 +190,17 @@ class Analysis(QtGui.QWidget):
self.start_fre_combo.addItem("GHz")
self.start_fre_combo.addItem("THz")
self.start_fre_combo.setMaximumWidth(150)
- self.acgrid.addWidget(self.start_fre_combo,2,2)
- self.ac_parameter[0]= "Hz"
+ self.acgrid.addWidget(self.start_fre_combo, 2, 2)
+ self.ac_parameter[0] = "Hz"
+
try:
- self.ac_parameter[self.parameter_cnt]= str(root[0][6].text)
+ self.ac_parameter[self.parameter_cnt] = str(json_data["analysis"]["ac"]["Start Fre Combo"])
except:
- self.ac_parameter[self.parameter_cnt]= "Hz"
+ self.ac_parameter[self.parameter_cnt] = "Hz"
+
self.start_fre_combo.activated[str].connect(self.start_combovalue)
- self.parameter_cnt=self.parameter_cnt + 1
+ self.parameter_cnt = self.parameter_cnt + 1
self.stop_fre_combo = QtGui.QComboBox()
self.stop_fre_combo.addItem("Hz")
self.stop_fre_combo.addItem("KHz")
@@ -207,17 +208,18 @@ class Analysis(QtGui.QWidget):
self.stop_fre_combo.addItem("GHz")
self.stop_fre_combo.addItem("THz")
self.stop_fre_combo.setMaximumWidth(150)
- self.acgrid.addWidget(self.stop_fre_combo,3,2)
- self.ac_parameter[1]= "Hz"
+ self.acgrid.addWidget(self.stop_fre_combo, 3, 2)
+ self.ac_parameter[1] = "Hz"
+
try:
- self.ac_parameter[self.parameter_cnt]= str(root[0][7].text)
+ self.ac_parameter[self.parameter_cnt] = str(json_data["analysis"]["ac"]["Stop Fre Combo"])
except:
- self.ac_parameter[self.parameter_cnt]= "Hz"
+ self.ac_parameter[self.parameter_cnt] = "Hz"
+
self.stop_fre_combo.activated[str].connect(self.stop_combovalue)
-
- self.track_obj.AC_entry_var["ITEMS"]=self.ac_entry_var
- self.track_obj.AC_Parameter["ITEMS"]=self.ac_parameter
+ self.track_obj.AC_entry_var["ITEMS"] = self.ac_entry_var
+ self.track_obj.AC_Parameter["ITEMS"] = self.ac_parameter
#CSS
self.acbox.setStyleSheet(" \
@@ -226,64 +228,65 @@ class Analysis(QtGui.QWidget):
")
if check:
try:
- if root[0][0].text=="true":
+ if json_data["analysis"]["ac"]["Lin"] == "true":
self.Lin.setChecked(True)
self.Dec.setChecked(False)
self.Oct.setChecked(False)
- elif root[0][1].text=="true":
+ elif json_data["analysis"]["ac"]["Dec"] == "true":
self.Lin.setChecked(False)
self.Dec.setChecked(True)
self.Oct.setChecked(False)
- elif root[0][2].text=="true":
+ elif json_data["analysis"]["ac"]["Oct"] == "true":
self.Lin.setChecked(False)
self.Dec.setChecked(False)
self.Oct.setChecked(True)
else:
pass
- self.ac_entry_var[0].setText(root[0][3].text)
- self.ac_entry_var[1].setText(root[0][4].text)
- self.ac_entry_var[2].setText(root[0][5].text)
- index=self.start_fre_combo.findText(root[0][6].text)
+
+ self.ac_entry_var[0].setText(json_data["analysis"]["ac"]["Start Frequency"])
+ self.ac_entry_var[1].setText(json_data["analysis"]["ac"]["Stop Frequency"])
+ self.ac_entry_var[2].setText(json_data["analysis"]["ac"]["No. of points"])
+ index = self.start_fre_combo.findText(json_data["analysis"]["ac"]["Start Fre Combo"])
self.start_fre_combo.setCurrentIndex(index)
- index=self.stop_fre_combo.findText(root[0][7].text)
+ index = self.stop_fre_combo.findText(json_data["analysis"]["ac"]["Stop Fre Combo"])
self.stop_fre_combo.setCurrentIndex(index)
+
except:
- print "AC Analysis XML Parse Error"
+ print "AC Analysis JSON Parse Error"
return self.acbox
def start_combovalue(self, text):
- self.ac_parameter[0]= str(text)
+ self.ac_parameter[0] = str(text)
def stop_combovalue(self, text):
- self.ac_parameter[1]= str(text)
+ self.ac_parameter[1] = str(text)
def set_ac_type(self):
- self.parameter_cnt=0
+ self.parameter_cnt = 0
+
if self.Lin.isChecked():
- self.track_obj.AC_type["ITEMS"]="lin"
+ self.track_obj.AC_type["ITEMS"] = "lin"
elif self.Dec.isChecked():
- self.track_obj.AC_type["ITEMS"]= "dec"
+ self.track_obj.AC_type["ITEMS"] = "dec"
elif self.Oct.isChecked():
- self.track_obj.AC_type["ITEMS"]="oct"
+ self.track_obj.AC_type["ITEMS"] = "oct"
else:
pass
def createDCgroup(self):
kicadFile = self.clarg1
- (projpath,filename)=os.path.split(kicadFile)
- project_name=os.path.basename(projpath)
- check=1
+ (projpath,filename) = os.path.split(kicadFile)
+ project_name = os.path.basename(projpath)
+ check = 1
+
try:
- f=open(os.path.join(projpath,project_name+"_Previous_Values.xml"),'r')
- tree=ET.parse(f)
- parent_root=tree.getroot()
- for child in parent_root:
- if child.tag=="analysis":
- root=child
+ f = open(os.path.join(projpath,project_name+"_Previous_Values.json"),'r')
+ data = f.read()
+ json_data = json.loads(data)
except:
- check=0
- print "DC Previous Values XML is empty"
+ check = 0
+ print "DC Previous Values JSON is empty"
self.dcbox = QtGui.QGroupBox()
self.dcbox.setTitle("DC Analysis")
@@ -291,83 +294,92 @@ class Analysis(QtGui.QWidget):
self.dcgrid = QtGui.QGridLayout()
self.dcbox.setLayout(self.dcgrid)
- self.source_name= QtGui.QLabel('Enter Source 1',self)
+ self.source_name = QtGui.QLabel('Enter Source 1', self)
self.source_name.setMaximumWidth(150)
- self.start= QtGui.QLabel('Start', self)
+ self.start = QtGui.QLabel('Start', self)
self.start.setMaximumWidth(150)
- self.increment=QtGui.QLabel('Increment',self)
+ self.increment = QtGui.QLabel('Increment', self)
self.increment.setMaximumWidth(150)
- self.stop=QtGui.QLabel('Stop',self)
+ self.stop = QtGui.QLabel('Stop',self)
self.stop.setMaximumWidth(150)
- self.source_name2= QtGui.QLabel('Enter Source 2',self)
+ self.source_name2 = QtGui.QLabel('Enter Source 2', self)
self.source_name2.setMaximumWidth(150)
- self.start2= QtGui.QLabel('Start', self)
+ self.start2 = QtGui.QLabel('Start', self)
self.start2.setMaximumWidth(150)
- self.increment2=QtGui.QLabel('Increment',self)
+ self.increment2 = QtGui.QLabel('Increment', self)
self.increment2.setMaximumWidth(150)
- self.stop2=QtGui.QLabel('Stop',self)
+ self.stop2 = QtGui.QLabel('Stop', self)
self.stop2.setMaximumWidth(150)
- self.dcgrid.addWidget(self.source_name,1,0)
- self.dcgrid.addWidget(self.start,2,0)
- self.dcgrid.addWidget(self.increment,3,0)
- self.dcgrid.addWidget(self.stop,4,0)
-
- self.dcgrid.addWidget(self.source_name2,5,0)
- self.dcgrid.addWidget(self.start2,6,0)
- self.dcgrid.addWidget(self.increment2,7,0)
- self.dcgrid.addWidget(self.stop2,8,0)
+ self.dcgrid.addWidget(self.source_name, 1, 0)
+ self.dcgrid.addWidget(self.start, 2, 0)
+ self.dcgrid.addWidget(self.increment, 3, 0)
+ self.dcgrid.addWidget(self.stop, 4, 0)
+
+ self.dcgrid.addWidget(self.source_name2, 5, 0)
+ self.dcgrid.addWidget(self.start2, 6, 0)
+ self.dcgrid.addWidget(self.increment2, 7, 0)
+ self.dcgrid.addWidget(self.stop2, 8, 0)
- self.count=0
+ self.count = 0
+
self.dc_entry_var[self.count] = QtGui.QLineEdit()#source
- self.dcgrid.addWidget(self.dc_entry_var[self.count],1,1)
+ self.dcgrid.addWidget(self.dc_entry_var[self.count], 1, 1)
self.dc_entry_var[self.count].setMaximumWidth(150)
- self.count= self.count+1
+ self.count += 1
+
self.dc_entry_var[self.count] = QtGui.QLineEdit()#start
- self.dcgrid.addWidget(self.dc_entry_var[self.count],2,1)
+ self.dcgrid.addWidget(self.dc_entry_var[self.count], 2, 1)
self.dc_entry_var[self.count].setMaximumWidth(150)
- self.count= self.count+1
+ self.count += 1
+
self.dc_entry_var[self.count] = QtGui.QLineEdit()#increment
- self.dcgrid.addWidget(self.dc_entry_var[self.count],3,1)
+ self.dcgrid.addWidget(self.dc_entry_var[self.count], 3, 1)
self.dc_entry_var[self.count].setMaximumWidth(150)
- self.count= self.count+1
+ self.count += 1
+
self.dc_entry_var[self.count] = QtGui.QLineEdit()#stop
- self.dcgrid.addWidget(self.dc_entry_var[self.count],4,1)
+ self.dcgrid.addWidget(self.dc_entry_var[self.count], 4, 1)
self.dc_entry_var[self.count].setMaximumWidth(150)
- self.count=self.count+1
+ self.count += 1
self.dc_entry_var[self.count] = QtGui.QLineEdit()#source
- self.dcgrid.addWidget(self.dc_entry_var[self.count],5,1)
+ self.dcgrid.addWidget(self.dc_entry_var[self.count], 5, 1)
self.dc_entry_var[self.count].setMaximumWidth(150)
- self.count= self.count+1
+ self.count += 1
+
self.dc_entry_var[self.count] = QtGui.QLineEdit()#start
- self.dcgrid.addWidget(self.dc_entry_var[self.count],6,1)
+ self.dcgrid.addWidget(self.dc_entry_var[self.count], 6, 1)
self.dc_entry_var[self.count].setMaximumWidth(150)
- self.count= self.count+1
+ self.count += 1
+
self.dc_entry_var[self.count] = QtGui.QLineEdit()#increment
- self.dcgrid.addWidget(self.dc_entry_var[self.count],7,1)
+ self.dcgrid.addWidget(self.dc_entry_var[self.count], 7, 1)
self.dc_entry_var[self.count].setMaximumWidth(150)
- self.count= self.count+1
+ self.count += 1
+
self.dc_entry_var[self.count] = QtGui.QLineEdit()#stop
- self.dcgrid.addWidget(self.dc_entry_var[self.count],8,1)
+ self.dcgrid.addWidget(self.dc_entry_var[self.count], 8, 1)
self.dc_entry_var[self.count].setMaximumWidth(150)
- self.parameter_cnt=0
- self.start_combo=QtGui.QComboBox(self)
+ self.parameter_cnt = 0
+ self.start_combo = QtGui.QComboBox(self)
self.start_combo.setMaximumWidth(150)
self.start_combo.addItem('Volts or Amperes')
self.start_combo.addItem('mV or mA')
self.start_combo.addItem('uV or uA')
self.start_combo.addItem("nV or nA")
self.start_combo.addItem("pV or pA")
- self.dcgrid.addWidget(self.start_combo,2,2)
+ self.dcgrid.addWidget(self.start_combo, 2, 2)
+
try:
- self.dc_parameter[self.parameter_cnt]= str(root[1][5].text)
+ self.dc_parameter[self.parameter_cnt] = str(json_data["analysis"]["dc"]["Start Combo"])
except:
- self.dc_parameter[self.parameter_cnt]= "Volts or Amperes"
+ self.dc_parameter[self.parameter_cnt] = "Volts or Amperes"
+
self.start_combo.activated[str].connect(self.start_changecombo)
- self.parameter_cnt= self.parameter_cnt+1
+ self.parameter_cnt += 1
self.increment_combo=QtGui.QComboBox(self)
self.increment_combo.setMaximumWidth(150)
@@ -376,87 +388,96 @@ class Analysis(QtGui.QWidget):
self.increment_combo.addItem("uV or uA")
self.increment_combo.addItem("nV or nA")
self.increment_combo.addItem("pV or pA")
- self.dcgrid.addWidget(self.increment_combo,3,2)
+ self.dcgrid.addWidget(self.increment_combo, 3, 2)
+
try:
- self.dc_parameter[self.parameter_cnt]= str(root[1][6].text)
+ self.dc_parameter[self.parameter_cnt] = str(json_data["analysis"]["dc"]["Increment Combo"])
except:
- self.dc_parameter[self.parameter_cnt]= "Volts or Amperes"
+ self.dc_parameter[self.parameter_cnt] = "Volts or Amperes"
+
self.increment_combo.activated[str].connect(self.increment_changecombo)
- self.parameter_cnt= self.parameter_cnt+1
+ self.parameter_cnt += 1
- self.stop_combo=QtGui.QComboBox(self)
+ self.stop_combo = QtGui.QComboBox(self)
self.stop_combo.setMaximumWidth(150)
self.stop_combo.addItem("Volts or Amperes")
self.stop_combo.addItem("mV or mA")
self.stop_combo.addItem("uV or uA")
self.stop_combo.addItem("nV or nA")
self.stop_combo.addItem("pV or pA")
- self.dcgrid.addWidget(self.stop_combo,4,2)
+ self.dcgrid.addWidget(self.stop_combo, 4, 2)
+
try:
- self.dc_parameter[self.parameter_cnt]= str(root[1][7].text)
+ self.dc_parameter[self.parameter_cnt] = str(json_data["analysis"]["dc"]["Stop Combo"])
except:
- self.dc_parameter[self.parameter_cnt]= "Volts or Amperes"
+ self.dc_parameter[self.parameter_cnt] = "Volts or Amperes"
+
self.stop_combo.activated[str].connect(self.stop_changecombo)
- self.parameter_cnt= self.parameter_cnt+1
+ self.parameter_cnt += 1
- self.start_combo2=QtGui.QComboBox(self)
+ self.start_combo2 = QtGui.QComboBox(self)
self.start_combo2.setMaximumWidth(150)
self.start_combo2.addItem('Volts or Amperes')
self.start_combo2.addItem('mV or mA')
self.start_combo2.addItem('uV or uA')
self.start_combo2.addItem("nV or nA")
self.start_combo2.addItem("pV or pA")
- self.dcgrid.addWidget(self.start_combo2,6,2)
+ self.dcgrid.addWidget(self.start_combo2, 6, 2)
+
try:
- self.dc_parameter[self.parameter_cnt]= str(root[1][12].text)
+ self.dc_parameter[self.parameter_cnt] = str(json_data["analysis"]["dc"]["Start Combo2"])
except:
- self.dc_parameter[self.parameter_cnt]= "Volts or Amperes"
+ self.dc_parameter[self.parameter_cnt] = "Volts or Amperes"
+
self.start_combo2.activated[str].connect(self.start_changecombo2)
- self.parameter_cnt= self.parameter_cnt+1
+ self.parameter_cnt += 1
- self.increment_combo2=QtGui.QComboBox(self)
+ self.increment_combo2 = QtGui.QComboBox(self)
self.increment_combo2.setMaximumWidth(150)
self.increment_combo2.addItem("Volts or Amperes")
self.increment_combo2.addItem("mV or mA")
self.increment_combo2.addItem("uV or uA")
self.increment_combo2.addItem("nV or nA")
self.increment_combo2.addItem("pV or pA")
- self.dcgrid.addWidget(self.increment_combo2,7,2)
+ self.dcgrid.addWidget(self.increment_combo2, 7, 2)
+
try:
- self.dc_parameter[self.parameter_cnt]= str(root[1][13].text)
+ self.dc_parameter[self.parameter_cnt] = str(json_data["analysis"]["dc"]["Increment Combo2"])
except:
- self.dc_parameter[self.parameter_cnt]= "Volts or Amperes"
+ self.dc_parameter[self.parameter_cnt] = "Volts or Amperes"
+
self.increment_combo2.activated[str].connect(self.increment_changecombo2)
- self.parameter_cnt= self.parameter_cnt+1
+ self.parameter_cnt += 1
- self.stop_combo2=QtGui.QComboBox(self)
+ self.stop_combo2 = QtGui.QComboBox(self)
self.stop_combo2.setMaximumWidth(150)
self.stop_combo2.addItem("Volts or Amperes")
self.stop_combo2.addItem("mV or mA")
self.stop_combo2.addItem("uV or uA")
self.stop_combo2.addItem("nV or nA")
self.stop_combo2.addItem("pV or pA")
- self.dcgrid.addWidget(self.stop_combo2,8,2)
- try:
- self.dc_parameter[self.parameter_cnt]= str(root[1][14].text)
+ self.dcgrid.addWidget(self.stop_combo2, 8, 2)
+ try:
+ self.dc_parameter[self.parameter_cnt] = str(json_data["analysis"]["dc"]["Stop Combo2"])
except:
- self.dc_parameter[self.parameter_cnt]= "Volts or Amperes"
+ self.dc_parameter[self.parameter_cnt] = "Volts or Amperes"
+
self.stop_combo2.activated[str].connect(self.stop_changecombo2)
- self.parameter_cnt= self.parameter_cnt+1
+ self.parameter_cnt += 1
- self.check=QtGui.QCheckBox('Operating Point Analysis',self)
+ self.check = QtGui.QCheckBox('Operating Point Analysis',self)
try:
- self.track_obj.op_check.append(str(root[1][4].text()))
+ self.track_obj.op_check.append(str(json_data["analysis"]["dc"]["Operating Point"]))
except:
self.track_obj.op_check.append(0)
#QtCore.QObject.connect(check,SIGNAL("stateChanged()"),check,SLOT("checkedSlot"))
self.check.stateChanged.connect(self.setflag)
#self.flagcheck = 1
#self.flagcheck= 2
- self.dcgrid.addWidget(self.check,9,1,9,2)
- self.track_obj.DC_entry_var["ITEMS"]=self.dc_entry_var
- self.track_obj.DC_Parameter["ITEMS"]=self.dc_parameter
+ self.dcgrid.addWidget(self.check, 9, 1, 9, 2)
+ self.track_obj.DC_entry_var["ITEMS"] = self.dc_entry_var
+ self.track_obj.DC_Parameter["ITEMS"] = self.dc_parameter
#CSS
self.dcbox.setStyleSheet(" \
@@ -465,75 +486,73 @@ class Analysis(QtGui.QWidget):
")
if check:
try:
- self.dc_entry_var[0].setText(root[1][0].text)
- self.dc_entry_var[1].setText(root[1][1].text)
- self.dc_entry_var[2].setText(root[1][2].text)
- self.dc_entry_var[3].setText(root[1][3].text)
- index=self.start_combo.findText(root[1][5].text)
+ self.dc_entry_var[0].setText(json_data["analysis"]["dc"]["Source 1"])
+ self.dc_entry_var[1].setText(json_data["analysis"]["dc"]["Start"])
+ self.dc_entry_var[2].setText(json_data["analysis"]["dc"]["Increment"])
+ self.dc_entry_var[3].setText(json_data["analysis"]["dc"]["Stop"])
+ index = self.start_combo.findText(json_data["analysis"]["dc"]["Start Combo"])
self.start_combo.setCurrentIndex(index)
- index=self.increment_combo.findText(root[1][6].text)
+ index = self.increment_combo.findText(json_data["analysis"]["dc"]["Increment Combo"])
self.increment_combo.setCurrentIndex(index)
- index=self.stop_combo.findText(root[1][7].text)
+ index = self.stop_combo.findText(json_data["analysis"]["dc"]["Stop Combo"])
self.stop_combo.setCurrentIndex(index)
- self.dc_entry_var[4].setText(root[1][8].text)
- self.dc_entry_var[5].setText(root[1][9].text)
- self.dc_entry_var[6].setText(root[1][10].text)
- self.dc_entry_var[7].setText(root[1][11].text)
- index=self.start_combo2.findText(root[1][12].text)
+ self.dc_entry_var[4].setText(json_data["analysis"]["dc"]["Source 2"])
+ self.dc_entry_var[5].setText(json_data["analysis"]["dc"]["Start2"])
+ self.dc_entry_var[6].setText(json_data["analysis"]["dc"]["Increment2"])
+ self.dc_entry_var[7].setText(json_data["analysis"]["dc"]["Stop2"])
+ index = self.start_combo2.findText(json_data["analysis"]["dc"]["Start Combo2"])
self.start_combo2.setCurrentIndex(index)
- index=self.increment_combo2.findText(root[1][13].text)
+ index = self.increment_combo2.findText(json_data["analysis"]["dc"]["Increment Combo2"])
self.increment_combo2.setCurrentIndex(index)
- index=self.stop_combo2.findText(root[1][14].text)
+ index = self.stop_combo2.findText(json_data["analysis"]["dc"]["Stop Combo2"])
self.stop_combo2.setCurrentIndex(index)
- if root[1][4].text== 1:
+ if json_data["analysis"]["dc"]["Operating Point"] == 1:
self.check.setChecked(True)
else:
self.check.setChecked(False)
except:
- print "DC Analysis XML Parse Error"
+ print "DC Analysis JSON Parse Error"
return self.dcbox
- def start_changecombo(self,text):
- self.dc_parameter[0]=str(text)
+ def start_changecombo(self, text):
+ self.dc_parameter[0] = str(text)
- def increment_changecombo(self,text):
- self.dc_parameter[1]=str(text)
+ def increment_changecombo(self, text):
+ self.dc_parameter[1] = str(text)
- def stop_changecombo(self,text):
- self.dc_parameter[2]=str(text)
+ def stop_changecombo(self, text):
+ self.dc_parameter[2] = str(text)
- def start_changecombo2(self,text):
- self.dc_parameter[3]=str(text)
+ def start_changecombo2(self, text):
+ self.dc_parameter[3] = str(text)
- def increment_changecombo2(self,text):
- self.dc_parameter[4]=str(text)
+ def increment_changecombo2(self, text):
+ self.dc_parameter[4] = str(text)
- def stop_changecombo2(self,text):
- self.dc_parameter[5]=str(text)
+ def stop_changecombo2(self, text):
+ self.dc_parameter[5] = str(text)
def setflag(self):
if self.check.isChecked():
self.track_obj.op_check.append(1)
else:
- self.track_obj.op_check.append(0)
+ self.track_obj.op_check.append(0)
def createTRANgroup(self):
kicadFile = self.clarg1
- (projpath,filename)=os.path.split(kicadFile)
- project_name=os.path.basename(projpath)
- check=1
+ (projpath,filename) = os.path.split(kicadFile)
+ project_name = os.path .basename(projpath)
+ check = 1
+
try:
- f=open(os.path.join(projpath,project_name+"_Previous_Values.xml"),'r')
- tree=ET.parse(f)
- parent_root=tree.getroot()
- for child in parent_root:
- if child.tag=="analysis":
- root=child
+ f = open(os.path.join(projpath,project_name+"_Previous_Values.json"),'r')
+ data = f.read()
+ json_data = json.loads(data)
except:
- check=0
- print "Transient Previous Values XML is Empty"
+ check = 0
+ print "Transient Previous Values JSON is Empty"
self.trbox = QtGui.QGroupBox()
self.trbox.setTitle("Transient Analysis")
@@ -544,38 +563,42 @@ class Analysis(QtGui.QWidget):
self.start = QtGui.QLabel("Start Time")
self.step = QtGui.QLabel("Step Time")
self.stop = QtGui.QLabel("Stop Time")
- self.trgrid.addWidget(self.start,1,0)
- self.trgrid.addWidget(self.step,2,0)
- self.trgrid.addWidget(self.stop,3,0)
- self.count=0
+ self.trgrid.addWidget(self.start, 1, 0)
+ self.trgrid.addWidget(self.step, 2, 0)
+ self.trgrid.addWidget(self.stop, 3, 0)
+ self.count = 0
self.tran_entry_var[self.count] = QtGui.QLineEdit()
- self.trgrid.addWidget(self.tran_entry_var[self.count],1,1)
+ self.trgrid.addWidget(self.tran_entry_var[self.count], 1, 1)
self.tran_entry_var[self.count].setMaximumWidth(150)
- self.count= self.count+1
+ self.count += 1
+
self.tran_entry_var[self.count] = QtGui.QLineEdit()
- self.trgrid.addWidget(self.tran_entry_var[self.count],2,1)
+ self.trgrid.addWidget(self.tran_entry_var[self.count], 2, 1)
self.tran_entry_var[self.count].setMaximumWidth(150)
- self.count= self.count+1
+ self.count += 1
+
self.tran_entry_var[self.count] = QtGui.QLineEdit()
- self.trgrid.addWidget(self.tran_entry_var[self.count],3,1)
+ self.trgrid.addWidget(self.tran_entry_var[self.count], 3, 1)
self.tran_entry_var[self.count].setMaximumWidth(150)
- self.count= self.count+1
+ self.count += 1
- self.parameter_cnt=0
+ self.parameter_cnt = 0
self.start_combobox = QtGui.QComboBox()
self.start_combobox.addItem("Sec")
self.start_combobox.addItem("ms")
self.start_combobox.addItem("us")
self.start_combobox.addItem("ns")
self.start_combobox.addItem("ps")
- self.trgrid.addWidget(self.start_combobox,1,3)
+ self.trgrid.addWidget(self.start_combobox, 1, 3)
+
try:
- self.tran_parameter[self.parameter_cnt]= str(root[2][3].text)
+ self.tran_parameter[self.parameter_cnt] = str(json_data["analysis"]["tran"]["Start Combo"])
except:
- self.tran_parameter[self.parameter_cnt]= "Sec"
+ self.tran_parameter[self.parameter_cnt] = "Sec"
+
self.start_combobox.activated[str].connect(self.start_combo_change)
- self.parameter_cnt= self.parameter_cnt+1
+ self.parameter_cnt += 1
self.step_combobox = QtGui.QComboBox()
self.step_combobox.addItem("Sec")
@@ -583,13 +606,14 @@ class Analysis(QtGui.QWidget):
self.step_combobox.addItem("us")
self.step_combobox.addItem("ns")
self.step_combobox.addItem("ps")
- self.trgrid.addWidget(self.step_combobox,2,3)
+ self.trgrid.addWidget(self.step_combobox, 2, 3)
try:
- self.tran_parameter[self.parameter_cnt]= str(root[2][4].text)
+ self.tran_parameter[self.parameter_cnt] = str(json_data["analysis"]["tran"]["Step Combo"])
except:
- self.tran_parameter[self.parameter_cnt]= "Sec"
+ self.tran_parameter[self.parameter_cnt] = "Sec"
+
self.step_combobox.activated[str].connect(self.step_combo_change)
- self.parameter_cnt= self.parameter_cnt+1
+ self.parameter_cnt += 1
self.stop_combobox = QtGui.QComboBox()
self.stop_combobox.addItem("Sec")
@@ -597,16 +621,17 @@ class Analysis(QtGui.QWidget):
self.stop_combobox.addItem("us")
self.stop_combobox.addItem("ns")
self.stop_combobox.addItem("ps")
- self.trgrid.addWidget(self.stop_combobox,3,3)
+ self.trgrid.addWidget(self.stop_combobox, 3, 3)
try:
- self.tran_parameter[self.parameter_cnt]= str(root[2][5].text)
+ self.tran_parameter[self.parameter_cnt] = str(json_data["analysis"]["tran"]["Stop Combo"])
except:
- self.tran_parameter[self.parameter_cnt]= "Sec"
+ self.tran_parameter[self.parameter_cnt] = "Sec"
+
self.stop_combobox.activated[str].connect(self.stop_combo_change)
- self.parameter_cnt= self.parameter_cnt+1
+ self.parameter_cnt += 1
- self.track_obj.TRAN_entry_var["ITEMS"]=self.tran_entry_var
- self.track_obj.TRAN_Parameter["ITEMS"]=self.tran_parameter
+ self.track_obj.TRAN_entry_var["ITEMS"] = self.tran_entry_var
+ self.track_obj.TRAN_Parameter["ITEMS"] = self.tran_parameter
#CSS
self.trbox.setStyleSheet(" \
@@ -615,27 +640,26 @@ class Analysis(QtGui.QWidget):
")
if check:
try:
- self.tran_entry_var[0].setText(root[2][0].text)
- self.tran_entry_var[1].setText(root[2][1].text)
- self.tran_entry_var[2].setText(root[2][2].text)
- index=self.start_combobox.findText(root[2][3].text)
+ self.tran_entry_var[0].setText(json_data["analysis"]["tran"]["Start Time"])
+ self.tran_entry_var[1].setText(json_data["analysis"]["tran"]["Step Time"])
+ self.tran_entry_var[2].setText(json_data["analysis"]["tran"]["Stop Time"])
+ index = self.start_combobox.findText(json_data["analysis"]["tran"]["Start Combo"])
self.start_combobox.setCurrentIndex(index)
- index=self.step_combobox.findText(root[2][4].text)
+ index = self.step_combobox.findText(json_data["analysis"]["tran"]["Step Combo"])
self.step_combobox.setCurrentIndex(index)
-
- index=self.stop_combobox.findText(root[2][5].text)
+ index = self.stop_combobox.findText(json_data["analysis"]["tran"]["Stop Combo"])
self.stop_combobox.setCurrentIndex(index)
except:
- print "Transient Analysis XML Parse Error"
+ print "Transient Analysis JSON Parse Error"
return self.trbox
- def start_combo_change(self,text):
- self.tran_parameter[0]=str(text)
+ def start_combo_change(self, text):
+ self.tran_parameter[0] = str(text)
- def step_combo_change(self,text):
- self.tran_parameter[1]=str(text)
+ def step_combo_change(self, text):
+ self.tran_parameter[1] = str(text)
- def stop_combo_change(self,text):
- self.tran_parameter[2]=str(text)
+ def stop_combo_change(self, text):
+ self.tran_parameter[2] = str(text)