Also adds simulation model inference to Symbol Editor's Simulation Model
Editor, and adds write-back from both Simulation Model Editors to their
parent Symbol Fields Editor dialogs.
Fixes https://gitlab.com/kicad/code/kicad/issues/12505
Also removes a bunch of std::string stuff from the file handling in the
simulator. All our file handling, env variable expansion, project path,
etc. stuff is wxString based, and jumping through std::string in between
just makes it more complex and increases the potential bug surface.
Also fixes a bug where you'd get two error messages when a spice model
library wasn't found.
Also fixes a bug where you'd get a spice model library not found error
when the text field was empty.
Also fixes a bug where we'd try to absolutize a path starting with an
unresolved text or environment variable. If the path starts with a
variable it's probably absolute, and tacking on the project path in the
error message just obfuscates things.
Fixes https://gitlab.com/kicad/code/kicad/issues/13082
Also includes fixes for instance data and resolving of textvar
references.
Also includes virtual d'tors for IBIS parser to get rid of all the
compile warnings on CLang.
Fixes https://gitlab.com/kicad/code/kicad/issues/12357
1) Fix <TAB> processing
2) Don't hide/show controls where possible
3) Use a more concrete reference to primary parameter in Save to Value
checkbox
4) Move Save to Value checkbox into model section
Load the library from the path if enter is pressed or focus is lost if
the library exists. If a library under the same path as previously is
to be loaded this way, don't do anything.
Fixes https://gitlab.com/kicad/code/kicad/issues/12970
This would happen if you click on another grid cell after changing
a value, or clicking OK in the dialog. The old value would get
saved and the new value lost.
Follow-up after the KIBIS and KIBIS GUI merge requests.
- Move KIBIS from Pcbnew to Eeschema space,
- Make KIBIS obtain the Ku/Kd coefficients via the `SPICE_SIMULATOR` class instead of calling the `ngspice` executable via `system()`,
- Allow to toggle between differential and single-ended model in the GUI,
- Various GUI fixes and improvements.
- Some preliminary refactoring,
- Use multiple types for IBIS drivers instead of a wftype variable,
- Remove the m_requiresUIUpdate variable and its accessors.
This change removes the incorrect assumption that symbol pin numbers are
integers and are the same as indexes in the vector storing the symbol
pins.
"~" is now used to denote a floating sim model pin.
Template instantiations need to follow the template definitions or you
don't get all of the template members, just the ones called from within
the file
Unfortunately, Windows headers define a lot of macros for common words,
so we had to rename some enums to not collide.
We also fix some of the many bugs related to the new simulation
architecture and the Spice Model Editor dialog.
- Tab-switching,
- Automatic expansion of categories on tab-switch,
- Various minor simulation improvements,
- Various new simulation-related bugfixes.
Don't serialize parameters in certain models for default values. Infer
models from Value field for some kinds of models. Resolve synonyms when
loading models from Spice libraries.
Rewrite the spice exporter to work with the new simulation model
architecture and data model, with many bugfixes related to the latter
two along the way.