summaryrefslogtreecommitdiff
path: root/src/kicadtoNgspice/Source.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/kicadtoNgspice/Source.py')
-rw-r--r--src/kicadtoNgspice/Source.py201
1 files changed, 105 insertions, 96 deletions
diff --git a/src/kicadtoNgspice/Source.py b/src/kicadtoNgspice/Source.py
index 91ee8d43..613b7b36 100644
--- a/src/kicadtoNgspice/Source.py
+++ b/src/kicadtoNgspice/Source.py
@@ -4,52 +4,56 @@ from . import TrackWidget
#from xml.etree import ElementTree as ET
import json
+
class Source(QtGui.QWidget):
"""
This class create Source Tab of KicadtoNgSpice Window.
"""
-
- def __init__(self,sourcelist,sourcelisttrack,clarg1):
+
+ def __init__(self, sourcelist, sourcelisttrack, clarg1):
QtGui.QWidget.__init__(self)
- self.obj_track = TrackWidget.TrackWidget()
- #Variable
+ self.obj_track = TrackWidget.TrackWidget()
+ # Variable
self.count = 1
- self.clarg1=clarg1
+ self.clarg1 = clarg1
self.start = 0
self.end = 0
self.row = 0
self.entry_var = {}
#self.font = QtGui.QFont("Times",20,QtGui.QFont.Bold,True)
-
- #Creating Source Widget
- self.createSourceWidget(sourcelist,sourcelisttrack)
-
-
-
- def createSourceWidget(self,sourcelist,sourcelisttrack):
+
+ # Creating Source Widget
+ self.createSourceWidget(sourcelist, sourcelisttrack)
+
+ def createSourceWidget(self, sourcelist, sourcelisttrack):
"""
This function dynamically create source widget in the Source tab of KicadtoNgSpice window
"""
kicadFile = self.clarg1
- (projpath,filename) = os.path.split(kicadFile)
+ (projpath, filename) = os.path.split(kicadFile)
project_name = os.path.basename(projpath)
try:
- f = open(os.path.join(projpath,project_name+"_Previous_Values.json"),'r')
+ f = open(
+ os.path.join(
+ projpath,
+ project_name +
+ "_Previous_Values.json"),
+ 'r')
data = f.read()
json_data = json.loads(data)
- except:
+ except BaseException:
print("Source Previous Values JSON is Empty")
-
+
self.grid = QtGui.QGridLayout()
self.setLayout(self.grid)
-
+
if sourcelist:
for line in sourcelist:
#print "Voltage source line index: ",line[0]
- print("SourceList line: ",line)
- track_id=line[0]
+ print("SourceList line: ", line)
+ track_id = line[0]
#print "track_id is ",track_id
if line[2] == 'ac':
acbox = QtGui.QGroupBox()
@@ -69,7 +73,8 @@ class Source(QtGui.QWidget):
self.entry_var[self.count] = QtGui.QLineEdit()
self.entry_var[self.count].setMaximumWidth(150)
- acgrid.addWidget(self.entry_var[self.count], self.row + 1, 1)
+ acgrid.addWidget(
+ self.entry_var[self.count], self.row + 1, 1)
self.entry_var[self.count].setText("")
self.count += 1
@@ -77,30 +82,32 @@ class Source(QtGui.QWidget):
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-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:
+ 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 BaseException:
pass
- #Value Need to check previuouse value
- #self.entry_var[self.count].setText("")
+ # 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
acbox.setLayout(acgrid)
-
- #CSS
+
+ # CSS
acbox.setStyleSheet(" \
QGroupBox { border: 1px solid gray; border-radius: 9px; margin-top: 0.5em; } \
QGroupBox::title { subcontrol-origin: margin; left: 10px; padding: 0 3px 0 3px; } \
")
-
+
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()
dcbox.setTitle(line[3])
@@ -120,38 +127,41 @@ class Source(QtGui.QWidget):
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"]))
+ self.entry_var[self.count].setText(
+ str(json_data["source"][key]["values"][0]["Value"]))
- except:
+ except BaseException:
pass
-
+
self.row = self.row + 1
self.end = self.count
self.count = self.count + 1
dcbox.setLayout(dcgrid)
-
- #CSS
+
+ # CSS
dcbox.setStyleSheet(" \
QGroupBox { border: 1px solid gray; border-radius: 9px; margin-top: 0.5em; } \
QGroupBox::title { subcontrol-origin: margin; left: 10px; padding: 0 3px 0 3px; } \
")
-
+
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()
sinebox.setTitle(line[3])
sinegrid = QtGui.QGridLayout()
- self.row = self.row+1
+ 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()
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:
@@ -159,25 +169,26 @@ class Source(QtGui.QWidget):
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(list(json_data["source"][key]["values"][it-4].values())[0]))
- except:
+ self.entry_var[self.count].setText(
+ str(list(json_data["source"][key]["values"][it - 4].values())[0]))
+ except BaseException:
pass
-
-
+
self.row = self.row + 1
- self.count = self.count + 1
+ self.count = self.count + 1
self.end = self.count - 1
sinebox.setLayout(sinegrid)
-
- #CSS
+
+ # CSS
sinebox.setStyleSheet(" \
QGroupBox { border: 1px solid gray; border-radius: 9px; margin-top: 0.5em; } \
QGroupBox::title { subcontrol-origin: margin; left: 10px; padding: 0 3px 0 3px; } \
")
-
+
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()
pulsebox.setTitle(line[3])
@@ -189,33 +200,36 @@ class Source(QtGui.QWidget):
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 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(list(json_data["source"][key]["values"][it-4].values())[0]))
- except:
+ self.entry_var[self.count].setText(
+ str(list(json_data["source"][key]["values"][it - 4].values())[0]))
+ except BaseException:
pass
-
+
self.row = self.row + 1
self.count = self.count + 1
self.end = self.count - 1
pulsebox.setLayout(pulsegrid)
-
- #CSS
+
+ # CSS
pulsebox.setStyleSheet(" \
QGroupBox { border: 1px solid gray; border-radius: 9px; margin-top: 0.5em; } \
QGroupBox::title { subcontrol-origin: margin; left: 10px; padding: 0 3px 0 3px; } \
")
-
+
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()
pwlbox.setTitle(line[3])
@@ -227,81 +241,76 @@ class Source(QtGui.QWidget):
self.entry_var[self.count].setMaximumWidth(150)
pwlgrid.addWidget(self.entry_var[self.count], self.row, 1)
self.entry_var[self.count].setText("")
-
+
try:
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:
+ self.entry_var[self.count].setText(
+ str(json_data["source"][key]["values"][0]["Enter in pwl format"]))
+ except BaseException:
pass
-
-
+
self.row = self.row + 1
self.end = self.count
self.count = self.count + 1
pwlbox.setLayout(pwlgrid)
-
- #CSS
+
+ # CSS
pwlbox.setStyleSheet(" \
QGroupBox { border: 1px solid gray; border-radius: 9px; margin-top: 0.5em; } \
QGroupBox::title { subcontrol-origin: margin; left: 10px; padding: 0 3px 0 3px; } \
")
-
+
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()
expbox.setTitle(line[3])
expgrid = QtGui.QGridLayout()
self.start = self.count
- for it in range(4,10):
+ for it in range(4, 10):
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 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(list(json_data["source"][key]["values"][it-4].values())[0]))
- except:
+ self.entry_var[self.count].setText(
+ str(list(json_data["source"][key]["values"][it - 4].values())[0]))
+ except BaseException:
pass
-
-
+
self.row = self.row + 1
self.count = self.count + 1
self.end = self.count - 1
expbox.setLayout(expgrid)
-
- #CSS
+
+ # CSS
expbox.setStyleSheet(" \
QGroupBox { border: 1px solid gray; border-radius: 9px; margin-top: 0.5em; } \
QGroupBox::title { subcontrol-origin: margin; left: 10px; padding: 0 3px 0 3px; } \
")
-
+
self.grid.addWidget(expbox)
- sourcelisttrack.append([track_id, 'exp', self.start, self.end])
-
+ sourcelisttrack.append(
+ [track_id, 'exp', self.start, self.end])
+
else:
print("No source is present in your circuit")
-
-
- #This is used to keep the track of dynamically created widget
+
+ # This is used to keep the track of dynamically created widget
self.obj_track.sourcelisttrack["ITEMS"] = sourcelisttrack
self.obj_track.source_entry_var["ITEMS"] = self.entry_var
self.show()
-
-
-
-
-
-
-