Jeff Young
0b06a1376b
Don't turn an empty string into a '0'.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15871
2023-10-13 19:07:45 +01:00
Marek Roszko
0fe2e06949
Fix ambiguous cast compiler errors on MSVC
2023-10-12 19:07:12 -04:00
Jeff Young
e9bdfe7210
Save trace colors during session.
...
My first thought was to move the color out of the TRACE, which is
really a view object. However we can't make signals a first-class
citizen either, because they change depending on what the current
simulation tab is and so (for instance) we can only load in the
workbook signals for the current tab. Hours later I backed it all
out and arrived at this simpler, less "correct" solution.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14231
2023-10-04 17:13:08 +01:00
Jeff Young
ed4d66e76b
Remove dead code.
2023-10-04 17:13:08 +01:00
Jeff Young
0c055e15b7
Keep user-defined signals separate.
...
They can't be plotted till the end of the sim.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15803
2023-10-03 12:59:49 +01:00
Jeff Young
827942c560
Clarity.
2023-10-03 12:59:49 +01:00
Jeff Young
2dfdf0682f
Don't ask for empty data.
2023-10-03 12:59:49 +01:00
Jeff Young
a475b01a90
Remove ic parameter from voltage-controlled sources.
...
It was never supported by ngspice (or LTspice or pspice).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15787
2023-10-01 12:16:25 +01:00
Jeff Young
aab0696bb6
Zoom undo/redo for simulator.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14580
2023-09-26 13:19:41 +01:00
Jeff Young
463e7c3b30
Improve performance & responsiveness of sim updates.
...
The x-axis only needs to be fetched once per update. Same for
redrawing the screen. And there's no reason to fetch more y data
than we have x data for (which happens to subsequent traces as
the sim is still running as we're updating).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15673
2023-09-22 21:40:52 +01:00
Jeff Young
2f475d99dd
Don't update signals and measurements for each refresh.
...
We only need to do them on the final refresh.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15673
2023-09-20 17:34:34 +01:00
Jeff Young
1ff279bf72
Don't auto-adjust time axis while sim is running.
...
Just use start and end time.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15673
2023-09-20 17:34:34 +01:00
Jeff Young
8672cdb3bd
Handle power operating points.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15689
2023-09-19 17:37:51 +01:00
Jeff Young
ff88ed76f0
Hack to prevent timer event starvation on MSW.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15673
2023-09-19 17:04:05 +01:00
Alex Shvartzkop
1decd31baf
Vertically center wxGrid cells by default.
2023-09-18 17:15:34 +03:00
Jeff Young
e5bce16e31
Don't reset cursor x position during a sim refresh.
...
The sim may not be complete yet. And even if it is, the user
didn't ask us to move their cursor. Just leave it where it is
with an undefined y value.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15672
2023-09-17 19:23:46 +01:00
Jeff Young
be4c89011c
Don't confuse "significant digits" with "decimal places".
...
Also raises the default significant digits for cursors to 3.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15669
2023-09-17 12:42:06 +01:00
Jeff Young
ede542f911
Collect comment lines into following spice unit.
...
This can't distinguish a header block comment in front of a file
with multiple spice units, and so will include that into the first
unit only.
Also fixes the pin assignments reference textbox to use a
fixed-width font as many .subckt's contain ASCII graphics for
pin definitions (not that it helps any with the test case from
the given bug).
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15660
2023-09-15 20:08:45 +01:00
Jeff Young
4a59f0de43
Apply DC voltage source exception to current sources.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15626
2023-09-12 13:45:28 +01:00
Marek Roszko
11de95778b
Unwrap the FROM_UTF8 macro in favor of direct function
...
The extern just gets annoying to try to export the func later. We also yeet TO_UTF8 to string_utils.h for parity.
2023-09-09 00:10:57 -04:00
Jeff Young
7a2a2e2df0
Remove error-prone SetReporter() API.
2023-09-06 11:37:50 +01:00
Jeff Young
30a6d33177
Better fix for primary param in value field with other params in params field.
...
(Replaces 2c8178829982c6e15e443b5a7868b8c953d5126f.)
2023-08-30 00:53:01 +01:00
Jeff Young
2c81788299
HasAutofill should not preclude a primary parameter in the value field
2023-08-28 17:44:45 +01:00
Jeff Young
7f14b70ac3
Formatting.
2023-08-26 22:43:00 +01:00
Jeff Young
2d630a3c75
Remove useless assert.
2023-08-26 22:43:00 +01:00
Jeff Young
85240d590b
Remove relative current measurements.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15429
2023-08-18 13:40:52 +01:00
Jeff Young
684344c45c
GUI-created measurements of AC gain signals should be gain, not abs
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15429
2023-08-17 17:42:17 +01:00
Jeff Young
981089bbd3
Show correct description and units for AC/SP measurements.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15429
2023-08-17 13:32:46 +01:00
Jeff Young
da031792af
Add current signals to AC analyses.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15427
2023-08-16 17:24:59 +01:00
Jeff Young
a6bceb8182
Don't set modified when loading workbook.
...
Also keep a shadow variable of the legend position so we can notice
when the mpWindow's OnMouseMove() handler changes it.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15363
2023-08-09 12:09:29 +01:00
Jeff Young
1b080ed02f
Get rid of SIM_NOTEBOOK. It's completely unnecessary.
2023-08-09 12:09:29 +01:00
Mike Williams
bdecdce1b4
Exclude from Sim: move from field to attribute
2023-08-08 12:36:36 -04:00
Ian McInerney
a3a701a95e
Move preferences to an action instead of a wx event
2023-08-08 00:51:22 +01:00
Jeff Young
ddbefe13cd
Improve default margins.
2023-08-06 20:57:42 +01:00
Josue Huaroto
cfa49b5250
Move units labels from ticks to axis label.
2023-08-04 22:41:50 +00:00
Jeff Young
8ac49d0bab
General cleanup, coding standards, removal of dead code, etc.
2023-08-02 16:56:56 +01:00
Jeff Young
f897b4bac1
Remove cover routines for std::vector.
...
They just make it harder to see if we're following std::vector's
contract.
2023-08-02 16:56:56 +01:00
Jeff Young
502b91ba6f
Capitalize type names.
2023-08-02 16:56:56 +01:00
Jeff Young
f332dba095
Try harder to prevent duplicate axis labels.
2023-08-02 16:56:56 +01:00
Jeff Young
485b768da7
Fix issue with stripping non-trailing '9's from tick labels.
2023-08-02 16:56:56 +01:00
Jeff Young
094a80ce31
Stop adding a new return to a sim command every time we read it.
...
Also stop moving the legend down 40 pixels every time it's read.
2023-08-02 16:56:56 +01:00
Jeff Young
fcc770cad6
Fix bugs in .meas cmd syntax for AC small-signal analyses.
2023-08-02 16:56:56 +01:00
Jeff Young
e8ae3533d1
Set format on all matching signals.
2023-08-02 16:56:56 +01:00
jean-pierre charras
3a82374719
sim/sim_model: fix an annoying issue when adding new fields: their ID was
...
set in undefined, that create an issue (the canonical name was returned as
"Field-1", breaking the schematic file).
Now, new field IDs are not set to -1, and the saved file uses the field name
(if exist) when saving fields with undefined ID.
2023-08-01 13:37:53 +02:00
Seth Hillbrand
530af96da2
Prevent null dereference
2023-07-25 10:53:05 -07:00
jean-pierre charras
e9f6ff4366
Simulator frame: removes * indicator for unsaved workbook after saving it.
...
Fixes #15236
https://gitlab.com/kicad/code/kicad/-/issues/15236
2023-07-24 08:55:34 +02:00
Jeff Young
e4b262d6e1
Fixed-y-scale bug fixes.
...
Default dialog to SPICE command.
Any of the three axis locks must lock the plotWindow Y axis (otherwise
locking Y2 but not Y1 doesn't preclude zooming).
2023-07-20 17:41:23 +01:00
Jeff Young
06f19aa761
Implement y axis locking for secondary y axes.
...
Still a bit of a work-in-progress.
Also fixes some bugs with formatting of measurements and cursor values.
2023-07-20 17:21:19 +01:00
Jeff Young
9c08d4febe
ADDED support for simulation plot margins and GUI for Y axis locking.
2023-07-19 23:40:10 +01:00
Jeff Young
65f66755ee
Reduce overhead for unused code.
2023-07-19 23:25:05 +01:00
Jeff Young
764913207c
Read legend position from workbook.
2023-07-19 23:25:04 +01:00
jean-pierre charras
3a4f3cb0b8
Minor Coverity and compil warnings fixes.
2023-07-17 16:19:22 +02:00
Jeff Young
24e9cf4fd8
Improve self-documentation of sim workbook.
2023-07-14 21:02:51 +01:00
Jeff Young
041bd2a54f
JSON bools can be read straight up; no need to compare to "true".
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15197
2023-07-14 20:58:12 +01:00
Jeff Young
054252ccbe
Move sim workbook to json.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15197
2023-07-14 17:46:06 +01:00
Jeff Young
ff044cd0cf
Mostly a terminology update...
...
... but also makes DIALOG_SIM_COMMAND and SIMULATOR_REPORTER a bit
more simulator-agnostic.
2023-07-14 17:46:06 +01:00
Jeff Young
8d2c744349
More error messages for reading workbook files.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15197
2023-07-13 23:54:00 +01:00
Jeff Young
964e42a611
ADDED text-based pole-zero analyses.
2023-07-13 16:18:25 +01:00
Jeff Young
841b693c91
Add pole-zero command parsing and printing.
2023-07-13 16:04:29 +01:00
Jeff Young
2e89c735c0
Fix buffer overrun.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15187
2023-07-13 16:04:29 +01:00
Sergio Costas
181ae7f450
Change all bare isnan calls into std::isnan
2023-07-13 12:55:58 +00:00
Jeff Young
0a28956cf8
Replace misssing "if" stmt and make outer "if" catch all cases of log scales.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15174
2023-07-12 10:41:46 +01:00
jean-pierre charras
6a47fe1e3c
simulator: shows the wxCURSOR_ARROWWAIT cursor only when the sim is running.
...
Reset the mouse cursor to its default shape when the simulation is finished.
2023-07-10 13:30:14 +02:00
Jeff Young
8f9a67063a
Straighten out some really confusing terminology in simulator GUI.
2023-07-09 23:07:54 +01:00
Jeff Young
7608350bdc
Iron out NewPlot vs EditSimCommand.
...
Also don't confuse SIM_PLOT_PANEL_BASE with SIM_PLOT_PANEL.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15157
2023-07-09 22:38:48 +01:00
jean-pierre charras
9ee21e4eeb
simulator: do not show a message saying a command directive has changed
...
when there is no old command directive.
2023-07-08 20:30:57 +02:00
Jeff Young
30c2049977
Handle inference of V7 symbol lib DC voltage/current sources.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/15127
2023-07-07 16:25:05 +01:00
Jeff Young
bde9c2cbc5
ADDED FFT analyses.
...
CHANGED abandon the unpredictable behaviour of the Simulation Command
dialog. You now separately add simulation tabs (which have invariant
command types once created), and the dialog edits the current tab.
Also a bunch of bug fixes to make multiple simulation plots actually
work.
2023-07-07 12:33:50 +01:00
Jeff Young
d5d2800b03
Sort out terminology issues between vectors and plots.
2023-07-07 12:33:50 +01:00
Jeff Young
443a5dc3bb
Syntax help for SPICE functions.
2023-07-07 12:33:49 +01:00
Jeff Young
e494017b54
Fix merge error.
2023-07-04 18:53:15 +01:00
Fabien Corona
886a7c2c04
ADDED: S-parameters simulation
2023-07-04 16:01:12 +00:00
Jeff Young
d563d66b86
ADDED Fourier analyses of .tran data.
2023-07-04 16:54:38 +01:00
Jeff Young
492ef62053
ADDED support to save contributions from all noise generators.
...
You must first check the checkbox in the Simulation Command dialog,
after which the signals will appear in the User Defined Signals
autocomplete lists.
2023-07-04 11:05:10 +01:00
Jeff Young
7d3fa8fb4e
Plotting for noise simulations.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2369
2023-07-03 23:12:28 +01:00
Jeff Young
80340c607c
ADDED noise simulation GUI.
2023-07-03 16:26:20 +01:00
Seth Hillbrand
7779a01d48
SIM_VALUE stores significants in 64-bit
...
stol isn't neccesarily 64-bit though, so we use stoll and catch the
overflow if we have bad input data
Fixes KICAD-2EF
2023-06-29 09:50:27 -07:00
Fabien Corona
8abb701727
IBIS: model type should not be case sensitive
...
Fixes #15068
2023-06-28 22:49:41 +02:00
Ian McInerney
2fb6f19a84
Separate immediate and delayed action dispatch
...
Using a boolean argument just leads to a lot of trailing booleans in the
function calls and is not user friendly. Instead, introduce PostAction()
to send an action that runs after the coroutine (equivalent to passing
false or the default argument), and leave RunAction as the immediate
execution function.
2023-06-27 00:57:59 +01:00
Jeff Young
7138e8a62e
Don't double-create pins when migrating old models.
2023-06-21 16:34:35 +01:00
jean-pierre charras
a9fff82664
spice_library_parser: catch an exception thrown when a spice model cannot be built.
...
Fixes #15012
https://gitlab.com/kicad/code/kicad/-/issues/15012
2023-06-20 10:26:42 +02:00
Jeff Young
5b12b5d031
Cleanup.
2023-06-19 23:03:01 +01:00
Jeff Young
0b58fdb910
Use KIUI to specify the simulation plot axis fonts.
...
Also fixes a bug in generating the x-axis for the first trace.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14997
2023-06-19 22:53:08 +01:00
Jeff Young
9199d7a781
Update simulation results as the sim runs.
...
Also adds a time axis which grows by 2X at a time rather than to the
size of the current data.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/11255
2023-06-18 16:52:11 +01:00
Jeff Young
b1d5da3da3
Allow ngspice to run in the background.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14085
2023-06-17 23:54:33 +01:00
Jeff Young
150e2b8a19
Separate BITMAP2CMP_PANEL from BITMAP2CMP_FRAME.
...
This is primarily to allow wxFormBuilder to create the panel without
the dangerous hack of passing a wxWindow ID into KIWAY_PLAYER's ctor.
2023-06-15 17:39:10 +01:00
Jeff Young
abc0c19d64
Separate SIMULATOR_PANEL from SIMULATOR_FRAME.
...
This is primarily to allow wxFormBuilder to create the panel without
the dangerous hack of passing a wxWindow ID into KIWAY_PLAYER's ctor.
2023-06-15 17:39:10 +01:00
Jeff Young
5c4ca9f092
Renaming to support potential future usage of SIMULATOR_PANEL as a panel within SIMULATOR_FRAME.
2023-06-15 17:39:10 +01:00
Jeff Young
46564055f4
More protection around an exceedingly dangerous hack.
...
The API is needed for wxFormBuilder, and I couldn't figure out any
way around it, but we can at least reduce the risk of someone calling
it accidentally (again).
2023-06-14 12:52:49 +01:00
Jeff Young
e698156975
Upgrade many editing actions to SCHEMATIC_COMMIT.
2023-06-09 22:41:47 +01:00
Jeff Young
5875f89531
Centralize text size clamping.
...
Also introduces alg::clamp to improve readability of
std::max( min, std::max( value, max ) )
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14876
2023-06-03 20:29:51 +01:00
Wayne Stambaugh
bdee545841
Coverity warning fixes.
2023-06-03 07:28:17 -04:00
jean-pierre charras
68464a1993
Simulator: add missing ngspice models.
...
Fixes #14813
https://gitlab.com/kicad/code/kicad/-/issues/14813
2023-05-26 14:46:51 +02:00
Jeff Young
03486443c7
Fix more SPICE case-insensitivity bugs.
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14793
2023-05-22 11:46:28 +01:00
Mark Visser
0d235ac64b
fix bug whereby spice params with capital letters no longer cause an error and data loss
...
Spice parameters were converted to lower-case before comparison. This is incorrect, as it
is legal and common for spice parameters to contain capital letters (e.g. potentiometers
typically use Rt and SET as their parameters).
Spice parameters are not case sensitive, so the correct behaviour is to instead do a
case-insensitive comparison on the parameter name.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/14793
2023-05-21 17:50:35 -04:00
Jeff Young
502da2d03c
Performance improvements.
2023-05-21 11:23:56 +01:00
Marek Roszko
aa230b4e08
Breakup sim_model_ngspice_data.cpp into multiple files to avoid unreasonable compiler link times
2023-05-20 19:58:46 -04:00
Jeff Young
58f4943597
ADDED voltage- & current-controlled voltage & current sources
...
Added GUI support for ngspice VCVS, VCCS, CCVS and CCCS.
2023-05-20 21:04:39 +01:00
Marek Roszko
7774b75172
Another set of C5266 warning fixes
2023-05-18 22:46:57 -04:00
Graham Keeth
df3560ab8e
sim: fixup some diode parameter units
2023-05-10 23:09:13 +00:00