From 664ba991489f9e7370ab17af944a9c730c57f0cf Mon Sep 17 00:00:00 2001
From: Fahim
Date: Mon, 19 Oct 2015 17:57:21 +0530
Subject: Subject: Modified Kicad import Library code
Description: Handle exception if error occurs while converting schematic.
Added condition for cancel button.
---
src/frontEnd/Application.py | 6 +-
src/pspicetoKicad/ImportPspice.py | 156 +++++++++++++++++++++-----------------
2 files changed, 89 insertions(+), 73 deletions(-)
diff --git a/src/frontEnd/Application.py b/src/frontEnd/Application.py
index 9106cd0a..6bfbf97e 100755
--- a/src/frontEnd/Application.py
+++ b/src/frontEnd/Application.py
@@ -292,11 +292,7 @@ class Application(QtGui.QMainWindow):
self.obj_appconfig.print_error('Error while opening nghdl. Please make sure nghdl is installed')
self.msg.setWindowTitle('nghdl Error Message')
-
-
-
-
-
+
def open_modelEditor(self):
print "model editor is called"
self.obj_appconfig.print_info('model editor is called')
diff --git a/src/pspicetoKicad/ImportPspice.py b/src/pspicetoKicad/ImportPspice.py
index 1b97efc0..c92f7582 100644
--- a/src/pspicetoKicad/ImportPspice.py
+++ b/src/pspicetoKicad/ImportPspice.py
@@ -16,52 +16,66 @@ class ImportPspiceLibrary(QtGui.QWidget):
def imortLib(self):
self.home = os.path.expanduser("~")
self.worspace_loc = self.obj_Appconfig.default_workspace['workspace']
- #self.sourceLoc = os.path.join(str(os.getcwd()),"*.lib")
self.destinationLoc = os.path.join(self.worspace_loc,"ConvertedLib")
self.libLocation = QtGui.QFileDialog.getOpenFileNames(self,"open",self.home,"*.slb")
self.tempList = [] #Hold library file in the form of string
- #print "Source---------->",self.sourceLoc
- print "Destination--------->",self.destinationLoc
-
- for item in self.libLocation:
- self.tempList.append(str(item))
-
- self.obj_Appconfig.print_info('File selected : '+str(self.tempList))
- self.arg = ' '.join(self.tempList)
-
- #Create command to run
- if platform.system() == 'Linux':
- #Check for 32 or 64 bit
- if platform.architecture()[0] == '64bit':
- self.cmd = "../pspicetoKicad/libConverter64 "+self.arg
+ if self.libLocation:
+ for item in self.libLocation:
+ self.tempList.append(str(item))
+
+ self.obj_Appconfig.print_info('File selected : '+str(self.tempList))
+ self.arg = ' '.join(self.tempList)
+ #Create command to run
+ if platform.system() == 'Linux':
+ #Check for 32 or 64 bit
+ if platform.architecture()[0] == '64bit':
+ self.cmd = "../pspicetoKicad/libConverter64 "+self.arg
+ else:
+ self.cmd = "../pspicetoKicad/libConverter32 "+self.arg
+ elif platform.system() == 'Windows':
+ print "Needs to include for Windows"
+
+ self.status = os.system(str(self.cmd))
+
+ if self.status == 0:
+ self.libLocation = os.path.join(self.worspace_loc,"ConvertedLib")
+
+ #Check if library is present
+ if os.path.isdir(self.libLocation):
+ pass
+ else:
+ os.mkdir(self.libLocation)
+ try:
+ #Moving files to necessary location
+ for libfile in glob.glob('*.lib'):
+ self.obj_Appconfig.print_info('Copying file '+libfile+' to ' +self.libLocation)
+ shutil.copy(libfile, self.libLocation)
+ self.obj_Appconfig.print_info('Removing file '+libfile)
+ os.remove(libfile)
+
+ self.msg = QtGui.QMessageBox()
+ self.msgContent = "Successfully imported and converted PSPICE library to Kicad library.
"
+ self.msg.setTextFormat(QtCore.Qt.RichText)
+ self.msg.setText(self.msgContent)
+ self.msg.setWindowTitle("Message")
+ self.obj_Appconfig.print_info(self.msgContent)
+ self.msg.exec_()
+ except Exception as e:
+ self.msg = QtGui.QErrorMessage(None)
+ self.msg.showMessage('Error while moving libaray to '+self.libLocation+ " "+str(e))
+ self.obj_Appconfig.print_error('Error while moving libaray to '+self.libLocation+ " "+str(e))
+ self.msg.setWindowTitle('Error Message')
else:
- self.cmd = "../pspicetoKicad/libConverter32 "+self.arg
- elif platform.system() == 'Windows':
- print "Needs to include for Windows"
-
- self.status = os.system(str(self.cmd))
-
- if self.status == 0:
- #Moving files to necessary location
- for libfile in glob.glob('*.lib'):
- shutil.move(libfile, self.worspace_loc)
- self.msg = QtGui.QMessageBox()
- self.msgContent = "Successfully imported and converted PSPICE library to Kicad library.
"
- self.msg.setTextFormat(QtCore.Qt.RichText)
- self.msg.setText(self.msgContent)
- self.msg.setWindowTitle("Message")
- self.obj_Appconfig.print_info(self.msgContent)
- self.msg.exec_()
+ self.msg = QtGui.QErrorMessage(None)
+ self.msg.showMessage('Error while converting PSPICE library to Kicad library')
+ self.obj_Appconfig.print_error('Error while converting PSPICE library to Kicad library')
+ self.msg.setWindowTitle("Error Message")
+
else:
- self.msg = QtGui.QErrorMessage(None)
- self.msg.showMessage('Error while converting PSPICE library to Kicad library')
- self.obj_Appconfig.print_error('Error while converting PSPICE library to Kicad library')
- self.msg.setWindowTitle("Error Message")
-
+ self.obj_Appconfig.print_info('No files selected. Process Aborted')
-
-
+
class ConvertPspiceKicad(QtGui.QWidget):
"""
This is used to convert Pspice schematic into Kicad schematic
@@ -76,56 +90,62 @@ class ConvertPspiceKicad(QtGui.QWidget):
self.worspace_loc = self.obj_Appconfig.default_workspace['workspace']
self.pspiceSchFileLoc = QtGui.QFileDialog.getOpenFileName(self,"open",self.home)
- self.pspiceSchFileName = os.path.basename(str(self.pspiceSchFileLoc))
- self.pspiceProjName = os.path.splitext(self.pspiceSchFileName)[0]
- self.outputDir = os.path.join(self.worspace_loc,self.pspiceProjName)
- #Check if project is already exists
- if os.path.isdir(self.outputDir):
- print "Already present"
- self.obj_Appconfig.print_info("Output Project "+self.outputDir+" is already present")
- reply = QtGui.QMessageBox.question(self, 'Message',"eSim project with same name is already exist. Do you want to delete it ?", \
- QtGui.QMessageBox.Yes |QtGui.QMessageBox.No, QtGui.QMessageBox.No)
- if reply == QtGui.QMessageBox.Yes:
- print "Deleting Project and creating new"
- self.obj_Appconfig.print_info("Deleting Project and creating new")
- shutil.rmtree(self.outputDir, ignore_errors=False, onerror=self.errorRemove)
+ if self.pspiceSchFileLoc:
+ self.pspiceSchFileName = os.path.basename(str(self.pspiceSchFileLoc))
+ self.pspiceProjName = os.path.splitext(self.pspiceSchFileName)[0]
+ self.outputDir = os.path.join(self.worspace_loc,self.pspiceProjName)
+
+ #Check if project is already exists
+ if os.path.isdir(self.outputDir):
+ self.obj_Appconfig.print_info("Output Directory already present")
+ self.obj_Appconfig.print_info("Output Project "+self.outputDir+" is already present")
+ reply = QtGui.QMessageBox.question(self, 'Message',"eSim project with same name is already exist. Do you want to delete it ?", \
+ QtGui.QMessageBox.Yes |QtGui.QMessageBox.No, QtGui.QMessageBox.No)
+ if reply == QtGui.QMessageBox.Yes:
+ print "Deleting Project and creating new"
+ self.obj_Appconfig.print_info("Deleting Project and creating new")
+ shutil.rmtree(self.outputDir, ignore_errors=False, onerror=self.errorRemove)
+ os.mkdir(self.outputDir)
+ #Calling Function
+ self.createProjectFile(self.pspiceSchFileLoc,self.outputDir)
+ else:
+ self.msg = QtGui.QMessageBox()
+ self.msgContent = "PSPICE to Kicad schematic conversion aborted.
\
+ You can change the Pspice schematic file name and upload it again.
"
+ self.msg.setTextFormat(QtCore.Qt.RichText)
+ self.msg.setText(self.msgContent)
+ self.msg.setWindowTitle("Message")
+ self.obj_Appconfig.print_info(self.msgContent)
+ self.msg.exec_()
+ else:
os.mkdir(self.outputDir)
#Calling Function
self.createProjectFile(self.pspiceSchFileLoc,self.outputDir)
- else:
- self.msg = QtGui.QMessageBox()
- self.msgContent = "PSPICE to Kicad schematic conversion aborted.
\
- You can change the Pspice schematic file name and upload it again.
"
- self.msg.setTextFormat(QtCore.Qt.RichText)
- self.msg.setText(self.msgContent)
- self.msg.setWindowTitle("Message")
- self.obj_Appconfig.print_info(self.msgContent)
- self.msg.exec_()
else:
- os.mkdir(self.outputDir)
- #Calling Function
- self.createProjectFile(self.pspiceSchFileLoc,self.outputDir)
+ self.obj_Appconfig.print_info('No file selected. Process Aborted')
def createProjectFile(self,pspiceSchFileLoc,outputDir):
print "Create Project File is called"
+ print "Schematic File Location---------->",pspiceSchFileLoc
+ print "Output Directory-------------->",outputDir
#Create command to be run
if platform.system() == 'Linux':
#Check for 32 or 64 bit
if platform.architecture()[0] == '64bit':
- self.cmd = "../pspicetoKicad/schConverter64 "+pspiceSchFileLoc+" "+self.outputDir
+ self.cmd = "../pspicetoKicad/schConverter64 "+pspiceSchFileLoc+" "+outputDir
else:
- self.cmd = "../pspicetoKicad/schConverter32 "+pspiceSchFileLoc+" "+self.outputDir
+ self.cmd = "../pspicetoKicad/schConverter32 "+pspiceSchFileLoc+" "+outputDir
elif platform.system() == 'Windows':
print "Needs to include for Windows"
#Running command
- self.status = os.system(str(self.cmd))
+ self.status = os.system(str(self.cmd))
if self.status == 0:
self.msg = QtGui.QMessageBox()
self.msgContent = "Successfully converted PSPICE schematic to Kicad Schematic.
\
- Project is available in eSim workspace at "+self.outputDir+".
\
+ Project is available in eSim workspace at "+outputDir+".
\
You can open the project from eSim workspace"
self.msg.setTextFormat(QtCore.Qt.RichText)
self.msg.setText(self.msgContent)
--
cgit