Model Editor Component¶
-
class
modelEditor.ModelEditor.
ModelEditorclass
¶ - Initialise the layout for dockarea
- Use QVBoxLayout, QSplitter, QGridLayout to define the layout
- Initalise directory to save new models, savepathtest = ‘library/deviceModelLibrary’
- Initialise buttons and options ====>
- Name Function Called
- New opennew
- Edit openedit
- Save savemodelfile
- Upload converttoxml
- Add addparameters
- Remove removeparameter
- Diode diode_click
- BJT bjt_click
- MOS mos_click
- JFET jfet_click
- IGBT igbt_click
- Magnetic Core magnetic_click
-
addparameters
()¶ - Called when Add button clicked beside QTableWidget
- Open up dialog box to enter parameter and value accordingly
- Validate if parameter already in list of parameters
- Accordingly add parameter and value in modeldict as well as table
- text1 => parameter, text2 => value
-
bjt_click
()¶ - Set states for other elements
- Initialise types combo box elements
- NPN
- PNP
- Open the default type in the table
- Add an event listener for type-selection event
-
converttoxml
()¶ - Called when upload button clicked
- Used to read file form a certain location for .lib extension
- Accordingly parse it and extract modelname and modelref
- Also extract param value pairs
- Take input the name of the library you want to save it as
- Save it in User Libraries with the given name,
and input from uploaded file
-
createXML
(model_name)¶ - Create .xml and .lib file if new model is being created
- Save it in the corresponding compoenent directory, example Diode, IGBT..
- For each component, separate folder is there
- Check the contents of .lib and .xml file to understand their structure
-
createtable
(modelfile)¶ - Set states for other components
- Initialise QTable widget
- Set options for QTable widget
- Place QTable widget, using self.grid.addWidget
- Select the .xml file from the modelfile passed as .lib
- Use ET (xml.etree.ElementTree) to parse the xml file
- Extract data from the XML and store it in modeldict
- Show the extracted data in QTableWidget
- Can edit QTable inplace, connect edit_modeltable function for editing
-
diode_click
()¶ - Call function, openfiletype, which opens the table view for Diode specs
- Set states for other elements
- Diode has no types, so hide that
-
edit_modeltable
()¶ - Called when editing model inplace in QTableWidget
- Set states of other components
- Get data from the modeltable of the selected row
- Edit name and value as per needed
- Add the val name pair in the modeldict
-
igbt_click
()¶ - Set states for other elements
- Initialise types combo box elements
- N-IGBT
- P-IGBT
- Open the default type in the table
- Add an event listener for type-selection event
-
jfet_click
()¶ - Set states for other elements
- Initialise types combo box elements
- N-JFET
- P-JFET
- Open the default type in the table
- Add an event listener for type-selection event
-
magnetic_click
()¶ - Set states for other elements
- Initialise types combo box elements
- Open the default type in the table
- Add an event listener for type-selection event
- No types here, only one view
-
mos_click
()¶ - Set states for other elements
- Initialise types combo box elements
- NMOS(Level-1 5um)
- NMOS(Level-3 0.5um)
- …
- Open the default type in the table
- Add an event listener for type-selection event
-
openedit
()¶ - When Edit button clicked, this function called
- Set states for other buttons accordingly
- Open the file selector box with path as deviceModelLibrary
and filetype set as .lib, save it in self.editfile - Create table for the selected .lib file using self.createtable(path) - Handle exception of no file selected
-
openfiletype
(filetype)¶ - Select path for the filetype passed
- Accordingly call createtable(path) to draw tables usingg QTable
- Check for the state of button before rendering
-
opennew
()¶ - To create New Model file
- Change state of other buttons accordingly, ex. enable diode, bjt, …
- Validate filename created, to check if one already exists
-
removeparameter
()¶ - Get the index of the current selected item
- Remove the whole row from QTable Widget
- Remove the param,value pair from modeldict
-
savemodelfile
()¶ - Called when save functon clicked
- If new file created, call createXML file
- Else call savethefile
-
savethefile
(editfile)¶ - This function save the editing in the model table
- Create .lib and .xml file for the editfile path and replace them
- Also print Updated Library with libpath in the command window
-
setfiletype
(text)¶ - Triggered when each type selected
- Get the type clicked, from text
- Open appropriate table using openfiletype(filetype)
-
validation
(text)¶ - This function checks if the file (xml type) with the name already exists
- Accordingly show error message