diff options
Diffstat (limited to 'src/kicadtoNgspice/Source.py')
-rw-r--r-- | src/kicadtoNgspice/Source.py | 201 |
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() - - - - - - - |