summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorfahim2015-05-15 17:51:50 +0530
committerfahim2015-05-15 17:51:50 +0530
commita341c872157b497306e964c4407b012774cc0597 (patch)
tree22ade101e6e0e40109ba3dfc6dba8c4ae21ecb3e /src
parentb02da14912ca9bf756db0828d6d94d1d732d8476 (diff)
downloadeSim-a341c872157b497306e964c4407b012774cc0597.tar.gz
eSim-a341c872157b497306e964c4407b012774cc0597.tar.bz2
eSim-a341c872157b497306e964c4407b012774cc0597.zip
Subject: Update KicadToNgSpice Converter file
Description: Added proper GUI for error message in case of unknown model used in schematic or multiple model is available in modelParamXML directory.
Diffstat (limited to 'src')
-rw-r--r--src/frontEnd/ProjectExplorer.pycbin5121 -> 5121 bytes
-rw-r--r--src/kicadtoNgspice/Analysis.pycbin11759 -> 11738 bytes
-rw-r--r--src/kicadtoNgspice/Convert.pycbin11437 -> 11395 bytes
-rw-r--r--src/kicadtoNgspice/DeviceModel.pycbin4836 -> 4832 bytes
-rw-r--r--src/kicadtoNgspice/KicadtoNgspice.py69
-rw-r--r--src/kicadtoNgspice/Model.pycbin1948 -> 1945 bytes
-rw-r--r--src/kicadtoNgspice/Processing.pycbin8494 -> 8485 bytes
-rw-r--r--src/kicadtoNgspice/Source.pycbin4004 -> 4000 bytes
-rw-r--r--src/kicadtoNgspice/TrackWidget.pycbin889 -> 887 bytes
-rw-r--r--src/ngspiceSimulation/pythonPlotting.py21
-rw-r--r--src/ngspiceSimulation/pythonPlotting.pycbin17145 -> 16955 bytes
11 files changed, 48 insertions, 42 deletions
diff --git a/src/frontEnd/ProjectExplorer.pyc b/src/frontEnd/ProjectExplorer.pyc
index 87ff05a8..3a843b23 100644
--- a/src/frontEnd/ProjectExplorer.pyc
+++ b/src/frontEnd/ProjectExplorer.pyc
Binary files differ
diff --git a/src/kicadtoNgspice/Analysis.pyc b/src/kicadtoNgspice/Analysis.pyc
index 31c7d222..ccbb0cc3 100644
--- a/src/kicadtoNgspice/Analysis.pyc
+++ b/src/kicadtoNgspice/Analysis.pyc
Binary files differ
diff --git a/src/kicadtoNgspice/Convert.pyc b/src/kicadtoNgspice/Convert.pyc
index bb1cffde..cb17c4cd 100644
--- a/src/kicadtoNgspice/Convert.pyc
+++ b/src/kicadtoNgspice/Convert.pyc
Binary files differ
diff --git a/src/kicadtoNgspice/DeviceModel.pyc b/src/kicadtoNgspice/DeviceModel.pyc
index 94e4054e..934c694f 100644
--- a/src/kicadtoNgspice/DeviceModel.pyc
+++ b/src/kicadtoNgspice/DeviceModel.pyc
Binary files differ
diff --git a/src/kicadtoNgspice/KicadtoNgspice.py b/src/kicadtoNgspice/KicadtoNgspice.py
index a320e1b2..dbb39ddc 100644
--- a/src/kicadtoNgspice/KicadtoNgspice.py
+++ b/src/kicadtoNgspice/KicadtoNgspice.py
@@ -30,19 +30,42 @@ import TrackWidget
class MainWindow(QtGui.QWidget):
"""
- This class craete KicadtoNgspice window.
- And Call Convert function if convert button is pressed.
+ This class create KicadtoNgspice window.
+ And Call Convert function if convert button is pressed.
+ The convert function takes all the value entered by user and create a final netlist "*.cir.out".
+ This final netlist is compatible with NgSpice.
"""
def __init__(self):
QtGui.QWidget.__init__(self)
#Create object of track widget
self.obj_track = TrackWidget.TrackWidget()
-
- print "Init Kicad to Ngspice"
- #print "Current Project",sys.argv[1]
-
+ """
+ Checking if any unknown model is used in schematic which is not recognized by NgSpice.
+ Also if the two model of same name is present under modelParamXML directory
+ """
+ if unknownModelList:
+ print "Unknown Model List is : ",unknownModelList
+ self.msg = QtGui.QErrorMessage()
+ self.content = "Your schematic contain unknown model "+', '.join(unknownModelList)
+ self.msg.showMessage(self.content)
+ self.msg.setWindowTitle("Unknown Models")
- #Creating GUI for kicadtoNgspice window
+ elif multipleModelList:
+ print "Multiple Model List is : ",multipleModelList
+ self.msg = QtGui.QErrorMessage()
+ self.mcontent = "Look like you have duplicate model in modelParamXML directory "+', '.join(multipleModelList[0])
+ self.msg.showMessage(self.mcontent)
+ self.msg.setWindowTitle("Multiple Models")
+
+ else:
+ self.createMainWindow()
+
+
+ def createMainWindow(self):
+ """
+ This function create main window of Kicad to Ngspice converter
+ """
+
self.grid = QtGui.QGridLayout(self)
self.convertbtn = QtGui.QPushButton("Convert")
self.convertbtn.clicked.connect(self.callConvert)
@@ -51,11 +74,11 @@ class MainWindow(QtGui.QWidget):
self.grid.addWidget(self.createcreateConvertWidget(),0,0)
self.grid.addWidget(self.convertbtn,1,1)
self.grid.addWidget(self.cancelbtn,1,2)
- #self.setGeometry(800, 800, 1000, 1000)
self.setWindowState(QtCore.Qt.WindowMaximized)
self.setLayout(self.grid)
+ self.setWindowTitle("Kicad To NgSpice Converter")
self.show()
-
+
def createcreateConvertWidget(self):
@@ -237,8 +260,7 @@ class MainWindow(QtGui.QWidget):
out.close()
-
-
+
#Main Function
@@ -248,7 +270,6 @@ def main(args):
print "=================================="
global kicadFile,kicadNetlist,schematicInfo
global infoline,optionInfo
- #kicadFile = "/home/fahim/eSim-Workspace/BJT_amplifier/BJT_amplifier.cir"
kicadFile = sys.argv[1]
#Object of Processing
@@ -283,7 +304,8 @@ def main(args):
print "SCHEMATICINFO",schematicInfo
#List storing model detail
- global modelList,outputOption
+ global modelList,outputOption,unknownModelList,multipleModelList
+
modelList = []
outputOption = []
schematicInfo,outputOption,modelList,unknownModelList,multipleModelList = obj_proc.convertICintoBasicBlocks(schematicInfo,outputOption,modelList)
@@ -291,27 +313,10 @@ def main(args):
print "Multiple Model List",multipleModelList
print "Model List",modelList
-
-
- #Checking for unknown Model List and Multiple Model List
- if unknownModelList:
- print "ErrorMessage : These Models are not available.Please check it",unknownModelList
- sys.exit(2)
- else:
- if multipleModelList:
- print "ErrorMessage: There are multiple model of same name. Please check it",multipleModelList
- sys.exit(2)
- else:
- pass
-
-
-
-
+
app = QtGui.QApplication(args)
- #app.setApplicationName("KicadToNgspice")
- #app.setQuitOnLastWindowClosed(True)
kingWindow = MainWindow()
- kingWindow.show()
+ #kingWindow.show() #No need to call show as we are doing it in createMainWindow
sys.exit(app.exec_())
diff --git a/src/kicadtoNgspice/Model.pyc b/src/kicadtoNgspice/Model.pyc
index 4ed30220..39ddfc27 100644
--- a/src/kicadtoNgspice/Model.pyc
+++ b/src/kicadtoNgspice/Model.pyc
Binary files differ
diff --git a/src/kicadtoNgspice/Processing.pyc b/src/kicadtoNgspice/Processing.pyc
index 1542143d..2b8c5301 100644
--- a/src/kicadtoNgspice/Processing.pyc
+++ b/src/kicadtoNgspice/Processing.pyc
Binary files differ
diff --git a/src/kicadtoNgspice/Source.pyc b/src/kicadtoNgspice/Source.pyc
index a3eb39eb..a634f8ad 100644
--- a/src/kicadtoNgspice/Source.pyc
+++ b/src/kicadtoNgspice/Source.pyc
Binary files differ
diff --git a/src/kicadtoNgspice/TrackWidget.pyc b/src/kicadtoNgspice/TrackWidget.pyc
index e23bacc4..7f819d81 100644
--- a/src/kicadtoNgspice/TrackWidget.pyc
+++ b/src/kicadtoNgspice/TrackWidget.pyc
Binary files differ
diff --git a/src/ngspiceSimulation/pythonPlotting.py b/src/ngspiceSimulation/pythonPlotting.py
index e2156920..9e7761fe 100644
--- a/src/ngspiceSimulation/pythonPlotting.py
+++ b/src/ngspiceSimulation/pythonPlotting.py
@@ -1,8 +1,6 @@
from __future__ import division # Used for decimal division eg 2/3=0.66 and not '0' 6/2=3.0 and 6//2=3
-import sys, os
-from PyQt4 import QtGui, uic, QtCore
-from decimal import *
-import matplotlib
+from PyQt4 import QtGui, QtCore
+from decimal import Decimal
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QTAgg as NavigationToolbar
from matplotlib.figure import Figure
@@ -12,8 +10,6 @@ import tkMessageBox
class plotWindow(QtGui.QMainWindow):
def __init__(self,fpath,projectName):
QtGui.QMainWindow.__init__(self)
- print "Path : ",fpath
- print "Project :",projectName
self.fpath = fpath
self.projName = projectName
self.createMainFrame()
@@ -24,9 +20,13 @@ class plotWindow(QtGui.QMainWindow):
def createMainFrame(self):
self.main_frame = QtGui.QWidget()
self.dpi = 100
+ #Creating Figure Canvas
self.fig = Figure((7.0, 7.0), dpi=self.dpi)
self.canvas = FigureCanvas(self.fig)
self.canvas.setParent(self.main_frame)
+ self.canvas.setSizePolicy(QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Expanding)
+ self.canvas.updateGeometry()
+
self.axes = self.fig.add_subplot(111)
self.mpl_toolbar = NavigationToolbar(self.canvas, self.main_frame)
@@ -37,10 +37,11 @@ class plotWindow(QtGui.QMainWindow):
right_vbox = QtGui.QVBoxLayout()
right_grid = QtGui.QGridLayout()
top_grid = QtGui.QGridLayout()
-
+
+ ##Processing data file to extract data in proper format
self.fobj = File_data()
plot_type = self.fobj.openFile(self.fpath)
- #print "hi:",plot_type
+ print "Plot Type :",plot_type
self.fobj.computeAxes()
self.chkbox=[]
self.a = self.fobj.numVals()
@@ -113,7 +114,7 @@ class plotWindow(QtGui.QMainWindow):
right_grid.addWidget(self.Note2,4,1)
right_vbox.addLayout(right_grid)
-
+ '''
netlist = QtGui.QTextEdit()
with open (self.fpath+"/"+self.projName+'.cir.out') as f2:
fdata = f2.read()
@@ -122,7 +123,7 @@ class plotWindow(QtGui.QMainWindow):
left_vbox.addWidget(netlist)
-
+ '''
hbox = QtGui.QHBoxLayout()
hbox.addLayout(left_vbox)
hbox.addLayout(right_vbox)
diff --git a/src/ngspiceSimulation/pythonPlotting.pyc b/src/ngspiceSimulation/pythonPlotting.pyc
index bd5a225f..cb7a4f00 100644
--- a/src/ngspiceSimulation/pythonPlotting.pyc
+++ b/src/ngspiceSimulation/pythonPlotting.pyc
Binary files differ