summaryrefslogtreecommitdiff
path: root/src/kicadtoNgspice/Source.py
diff options
context:
space:
mode:
authorathulappadan2016-06-28 16:50:17 +0530
committerathulappadan2016-06-28 16:50:17 +0530
commit15964f4b1b3a08cd97b19c4250db5ce00fe2ae55 (patch)
treec27652d9d2a8faec40db2231cf131b9d3d06b430 /src/kicadtoNgspice/Source.py
parente358dc73180a0adc0e3dab5f07e7a8cbb1523285 (diff)
downloadeSim-15964f4b1b3a08cd97b19c4250db5ce00fe2ae55.tar.gz
eSim-15964f4b1b3a08cd97b19c4250db5ce00fe2ae55.tar.bz2
eSim-15964f4b1b3a08cd97b19c4250db5ce00fe2ae55.zip
xml is replaced by json to store the previous values
Diffstat (limited to 'src/kicadtoNgspice/Source.py')
-rw-r--r--src/kicadtoNgspice/Source.py268
1 files changed, 135 insertions, 133 deletions
diff --git a/src/kicadtoNgspice/Source.py b/src/kicadtoNgspice/Source.py
index 1cf1487d..d66cfa81 100644
--- a/src/kicadtoNgspice/Source.py
+++ b/src/kicadtoNgspice/Source.py
@@ -1,7 +1,8 @@
import os
from PyQt4 import QtGui
import TrackWidget
-from xml.etree import ElementTree as ET
+#from xml.etree import ElementTree as ET
+import json
class Source(QtGui.QWidget):
"""
@@ -30,23 +31,19 @@ class Source(QtGui.QWidget):
This function dynamically create source widget in the Source tab of KicadtoNgSpice window
"""
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)
+
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=="source":
- 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 "Source Previous Values XML is Empty"
+ print "Source Previous Values JSON is Empty"
self.grid = QtGui.QGridLayout()
self.setLayout(self.grid)
- xml_num=0
if sourcelist:
for line in sourcelist:
@@ -54,38 +51,44 @@ class Source(QtGui.QWidget):
print "SourceList line: ",line
track_id=line[0]
#print "track_id is ",track_id
- if line[2]=='ac':
- acbox=QtGui.QGroupBox()
+ if line[2] == 'ac':
+ acbox = QtGui.QGroupBox()
acbox.setTitle(line[3])
- acgrid=QtGui.QGridLayout()
- self.start=self.count
- label1=QtGui.QLabel(line[4])
+ acgrid = QtGui.QGridLayout()
+ self.start = self.count
+ label1 = QtGui.QLabel(line[4])
label2 = QtGui.QLabel(line[5])
- acgrid.addWidget(label1,self.row,0)
- acgrid.addWidget(label2, self.row+1, 0)
- self.entry_var[self.count]=QtGui.QLineEdit()
+ acgrid.addWidget(label1, self.row, 0)
+ acgrid.addWidget(label2, self.row + 1, 0)
+
+ self.entry_var[self.count] = QtGui.QLineEdit()
+ self.entry_var[self.count].setMaximumWidth(150)
+ acgrid.addWidget(self.entry_var[self.count], self.row, 1)
+ self.entry_var[self.count].setText("")
+ self.count += 1
+
+ self.entry_var[self.count] = QtGui.QLineEdit()
self.entry_var[self.count].setMaximumWidth(150)
- acgrid.addWidget(self.entry_var[self.count],self.row,1)
- self.entry_var[self.count+1]=QtGui.QLineEdit()
- self.entry_var[self.count+1].setMaximumWidth(150)
- acgrid.addWidget(self.entry_var[self.count+1],self.row+1,1)
+ acgrid.addWidget(self.entry_var[self.count], self.row + 1, 1)
self.entry_var[self.count].setText("")
- self.entry_var[self.count+1].setText("")
+ self.count += 1
+
try:
- for child in root:
- templist1=line[1]
- templist2=templist1.split(' ')
+ for key in json_data["source"]:
+ templist1 = line[1]
+ templist2 = templist1.split(' ')
- if child.tag==templist2[0] and child.text==line[2]:
- self.entry_var[self.count].setText(child[0].text)
- self.entry_var[self.count+1].setText(child[1].text)
+ if key==templist2[0] and json_data["source"][key]["type"]==line[2]:
+ self.entry_var[self.count-2].setText(str(json_data["source"][key]["values"][0]["Amplitude"]))
+ self.entry_var[self.count-1].setText(str(json_data["source"][key]["values"][1]["Phase"]))
+
except:
pass
#Value Need to check previuouse value
#self.entry_var[self.count].setText("")
- self.row=self.row+1
- self.end=self.count+1
- self.count=self.count+1
+ self.row = self.row + 1
+ self.end = self.count + 1
+ self.count = self.count + 1
acbox.setLayout(acgrid)
#CSS
@@ -95,34 +98,36 @@ class Source(QtGui.QWidget):
")
self.grid.addWidget(acbox)
- sourcelisttrack.append([track_id,'ac',self.start,self.end])
+ sourcelisttrack.append([track_id, 'ac', self.start, self.end])
- elif line[2]=='dc':
- dcbox=QtGui.QGroupBox()
+ elif line[2] == 'dc':
+ dcbox = QtGui.QGroupBox()
dcbox.setTitle(line[3])
- dcgrid=QtGui.QGridLayout()
- self.row=self.row+1
- self.start=self.count
- label=QtGui.QLabel(line[4])
- dcgrid.addWidget(label,self.row,0)
- self.entry_var[self.count]=QtGui.QLineEdit()
+ dcgrid = QtGui.QGridLayout()
+ self.start = self.count
+ label = QtGui.QLabel(line[4])
+ dcgrid.addWidget(label, self.row, 0)
+
+ self.entry_var[self.count] = QtGui.QLineEdit()
self.entry_var[self.count].setMaximumWidth(150)
- dcgrid.addWidget(self.entry_var[self.count],self.row,1)
+ dcgrid.addWidget(self.entry_var[self.count], self.row, 1)
self.entry_var[self.count].setText("")
+
try:
- for child in root:
- templist1=line[1]
- templist2=templist1.split(' ')
-
- if child.tag==templist2[0] and child.text==line[2]:
- self.entry_var[self.count].setText(child[0].text)
+ for key in json_data["source"]:
+ templist1 = line[1]
+ templist2 = templist1.split(' ')
+
+ if key == templist2[0] and json_data["source"][key]["type"] == line[2]:
+ self.entry_var[self.count].setText(str(json_data["source"][key]["values"][0]["Value"]))
+
except:
pass
- self.row=self.row+1
- self.end=self.count
- self.count=self.count+1
+ self.row = self.row + 1
+ self.end = self.count
+ self.count = self.count + 1
dcbox.setLayout(dcgrid)
#CSS
@@ -132,35 +137,36 @@ class Source(QtGui.QWidget):
")
self.grid.addWidget(dcbox)
- sourcelisttrack.append([track_id,'dc',self.start,self.end])
+ sourcelisttrack.append([track_id, 'dc', self.start, self.end])
- elif line[2]=='sine':
- sinebox=QtGui.QGroupBox()
+ elif line[2] == 'sine':
+ sinebox = QtGui.QGroupBox()
sinebox.setTitle(line[3])
- sinegrid=QtGui.QGridLayout()
- self.row=self.row+1
- self.start=self.count
+ sinegrid = QtGui.QGridLayout()
+ self.row = self.row+1
+ self.start = self.count
- for it in range(4,9):
- label=QtGui.QLabel(line[it])
- sinegrid.addWidget(label,self.row,0)
- self.entry_var[self.count]=QtGui.QLineEdit()
+ for it in range(4, 9):
+ label = QtGui.QLabel(line[it])
+ sinegrid.addWidget(label, self.row, 0)
+ self.entry_var[self.count] = QtGui.QLineEdit()
self.entry_var[self.count].setMaximumWidth(150)
- sinegrid.addWidget(self.entry_var[self.count],self.row,1)
+ sinegrid.addWidget(self.entry_var[self.count], self.row, 1)
self.entry_var[self.count].setText("")
+
try:
- for child in root:
- templist1=line[1]
- templist2=templist1.split(' ')
- if child.tag==templist2[0] and child.text==line[2]:
- self.entry_var[self.count].setText(child[it-4].text)
+ for key in json_data["source"]:
+ templist1 = line[1]
+ templist2 = templist1.split(' ')
+ if key == templist2[0] and json_data["source"][key]["type"] == line[2]:
+ self.entry_var[self.count].setText(str(json_data["source"][key]["values"][it-4].values()[0]))
except:
pass
- self.row=self.row+1
- self.count=self.count+1
- self.end=self.count-1
+ self.row = self.row + 1
+ self.count = self.count + 1
+ self.end = self.count - 1
sinebox.setLayout(sinegrid)
#CSS
@@ -170,34 +176,35 @@ class Source(QtGui.QWidget):
")
self.grid.addWidget(sinebox)
- sourcelisttrack.append([track_id,'sine',self.start,self.end])
+ sourcelisttrack.append([track_id, 'sine', self.start, self.end])
- elif line[2]=='pulse':
- pulsebox=QtGui.QGroupBox()
+ elif line[2] == 'pulse':
+ pulsebox = QtGui.QGroupBox()
pulsebox.setTitle(line[3])
- pulsegrid=QtGui.QGridLayout()
- self.start=self.count
- for it in range(4,11):
- label=QtGui.QLabel(line[it])
- pulsegrid.addWidget(label,self.row,0)
- self.entry_var[self.count]=QtGui.QLineEdit()
+ pulsegrid = QtGui.QGridLayout()
+ self.start = self.count
+
+ for it in range(4, 11):
+ label = QtGui.QLabel(line[it])
+ pulsegrid.addWidget(label, self.row, 0)
+ self.entry_var[self.count] = QtGui.QLineEdit()
self.entry_var[self.count].setMaximumWidth(150)
- pulsegrid.addWidget(self.entry_var[self.count],self.row,1)
+ pulsegrid.addWidget(self.entry_var[self.count], self.row, 1)
self.entry_var[self.count].setText("")
try:
- for child in root:
- templist1=line[1]
- templist2=templist1.split(' ')
- if child.tag==templist2[0] and child.text==line[2]:
- self.entry_var[self.count].setText(child[it-4].text)
+ for key in json_data["source"]:
+ templist1 = line[1]
+ templist2 = templist1.split(' ')
+
+ if key == templist2[0] and json_data["source"][key]["type"] == line[2]:
+ self.entry_var[self.count].setText(str(json_data["source"][key]["values"][it-4].values()[0]))
except:
pass
-
- self.row=self.row+1
- self.count=self.count+1
- self.end=self.count-1
+ self.row = self.row + 1
+ self.count = self.count + 1
+ self.end = self.count - 1
pulsebox.setLayout(pulsegrid)
#CSS
@@ -207,34 +214,33 @@ class Source(QtGui.QWidget):
")
self.grid.addWidget(pulsebox)
- sourcelisttrack.append([track_id,'pulse',self.start,self.end])
+ sourcelisttrack.append([track_id, 'pulse', self.start, self.end])
- elif line[2]=='pwl':
- pwlbox=QtGui.QGroupBox()
+ elif line[2] == 'pwl':
+ pwlbox = QtGui.QGroupBox()
pwlbox.setTitle(line[3])
- self.start=self.count
- pwlgrid=QtGui.QGridLayout()
- self.start=self.count
- label=QtGui.QLabel(line[4])
- pwlgrid.addWidget(label,self.row,0)
- self.entry_var[self.count]=QtGui.QLineEdit()
+ self.start = self.count
+ pwlgrid = QtGui.QGridLayout()
+ label = QtGui.QLabel(line[4])
+ pwlgrid.addWidget(label, self.row, 0)
+ self.entry_var[self.count] = QtGui.QLineEdit()
self.entry_var[self.count].setMaximumWidth(150)
- pwlgrid.addWidget(self.entry_var[self.count],self.row,1)
+ pwlgrid.addWidget(self.entry_var[self.count], self.row, 1)
self.entry_var[self.count].setText("")
try:
- for child in root:
- templist1=line[1]
- templist2=templist1.split(' ')
- if child.tag==templist2[0] and child.text==line[2]:
- self.entry_var[self.count].setText(child[0].text)
+ for key in json_data["source"]:
+ templist1 = line[1]
+ templist2 = templist1.split(' ')
+ if key == templist2[0] and json_data["source"][key]["type"] == line[2]:
+ self.entry_var[self.count].setText(str(json_data["source"][key]["values"][0]["Enter in pwl format"]))
except:
pass
- self.row=self.row+1
- self.end=self.count
- self.count=self.count+1
+ self.row = self.row + 1
+ self.end = self.count
+ self.count = self.count + 1
pwlbox.setLayout(pwlgrid)
#CSS
@@ -244,34 +250,35 @@ class Source(QtGui.QWidget):
")
self.grid.addWidget(pwlbox)
- sourcelisttrack.append([track_id,'pwl',self.start,self.end])
+ sourcelisttrack.append([track_id, 'pwl', self.start, self.end])
- elif line[2]=='exp':
- expbox=QtGui.QGroupBox()
+ elif line[2] == 'exp':
+ expbox = QtGui.QGroupBox()
expbox.setTitle(line[3])
- expgrid=QtGui.QGridLayout()
- self.start=self.count
+ expgrid = QtGui.QGridLayout()
+ self.start = self.count
+
for it in range(4,10):
- label=QtGui.QLabel(line[it])
- expgrid.addWidget(label,self.row,0)
- self.entry_var[self.count]=QtGui.QLineEdit()
+ label = QtGui.QLabel(line[it])
+ expgrid.addWidget(label, self.row, 0)
+ self.entry_var[self.count] = QtGui.QLineEdit()
self.entry_var[self.count].setMaximumWidth(150)
- expgrid.addWidget(self.entry_var[self.count],self.row,1)
+ expgrid.addWidget(self.entry_var[self.count], self.row, 1)
self.entry_var[self.count].setText("")
try:
- for child in root:
- templist1=line[1]
- templist2=templist1.split(' ')
- if child.tag==templist2[0] and child.text==line[2]:
- self.entry_var[self.count].setText(child[it-4].text)
+ for key in json_data["source"]:
+ templist1 = line[1]
+ templist2 = templist1.split(' ')
+ if key == templist2[0] and json_data["source"][key]["type"] == line[2]:
+ self.entry_var[self.count].setText(str(json_data["source"][key]["values"][it-4].values()[0]))
except:
pass
- self.row=self.row+1
- self.count=self.count+1
- self.end=self.count-1
+ self.row = self.row + 1
+ self.count = self.count + 1
+ self.end = self.count - 1
expbox.setLayout(expgrid)
#CSS
@@ -281,12 +288,7 @@ class Source(QtGui.QWidget):
")
self.grid.addWidget(expbox)
- sourcelisttrack.append([track_id,'exp',self.start,self.end])
-
-
- self.count=self.count+1
- xml_num=xml_num+1
-
+ sourcelisttrack.append([track_id, 'exp', self.start, self.end])
else:
print "No source is present in your circuit"