52 Commits

Author SHA1 Message Date
Seth Hillbrand
5b5c7d41b4 Break up buildConnectionGraph for debugging
Needed to find bottlenecks in fns, so break out individual sections of
the massive function for easier understanding.

buildItemSubgraphs (one section of the previous function) would build
millions of connections that were never used as stacked pins created X!
connections.  Also tested using sets instead of lists and keeping unique
lists to avoid flagging but none of these were as performant as using
flags to remember which items had already been processed.

Fixes https://gitlab.com/kicad/code/kicad/issues/10974

(cherry picked from commit 17b1b68ac78dafdac2c40b2eeef2c908c802d07d)
2022-03-11 16:58:38 -08:00
Wayne Stambaugh
fb46cd8bc5 Expunge the use of the word component from Eeschema code.
The only exception to this is the SPICE simulator's use of component
when referring to physical component (R, L, C, etc.) values.
2021-06-14 14:00:21 -04:00
Wayne Stambaugh
fbc135e69f Rename SCH_COMPONENT to SCH_SYMBOL. 2021-06-10 10:34:49 -04:00
Jeff Young
2e3860de6f Naming conventions. 2021-05-05 22:58:40 +01:00
Wayne Stambaugh
a85898f904 Eeschema header housekeeping round 1. 2021-03-25 10:08:06 -04:00
Jon Evans
ede500f117 Don't create multiple markers for the same issue
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7016
2021-01-12 23:24:13 -05:00
Jeff Young
ad281f7538 Remove duplicated TestDanglingEnds routines.
Also adds a changedItemHandler so that the single remaining version
can update the view.

Fixes https://gitlab.com/kicad/code/kicad/issues/6581
2020-12-06 21:24:16 +00:00
Jeff Young
c85ef8eb69 Make updating netnames in backannotate more discrete.
Trying to be too smart was producing unexpected results.

Fixes https://gitlab.com/kicad/code/kicad/issues/6480
2020-11-25 22:16:56 +00:00
Marek Roszko
1984581c46 Remove common.h from more headers 2020-10-25 22:29:53 -04:00
Jeff Young
fbb20d08cd Don't allow netclass assignment to auto-generated net-names.
They can change the next time they're generated so it's just asking
for heartache.

Fixes https://gitlab.com/kicad/code/kicad/issues/5972
2020-10-12 00:30:18 +01:00
Jon Evans
d40ae3de46 ADDED: ERC check for missing hier labels for sheet ports
A subsheet may have more than one instance of a hier label,
but it's generally a mistake if there is no matching hier label
for a port on the parent sheet.

This is harder to do today now that we don't have manual tool
for placing hier ports, but it's still possible if you place
ports but then rename the label on the subsheet.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/3468
2020-08-25 21:52:52 -04:00
Jon Evans
45cae6405d Improve no-connect ERC and check for floating wires
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2393
Fixes https://gitlab.com/kicad/code/kicad/-/issues/2038
2020-08-25 18:00:16 -04:00
Jon Evans
66bdd37637 Connectivity optimizations
Cache names of potential driving items
Change a few data structures based on profiling
2020-07-09 18:14:37 -04:00
Jon Evans
282fcd5f3c Connectivity optimizations
Don't copy the recursion test cache when copy-constructing
SCH_SHEET_PATHs as it's not needed in connectivity

Fix a few places that were copying unnecessarily
2020-07-08 17:42:12 -04:00
Jon Evans
1e69f592f6 Rework net highlighting to use connections instead of strings
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1933
Fixes https://gitlab.com/kicad/code/kicad/-/issues/3921
2020-05-24 10:46:05 -04:00
Jon Evans
de9520d65e Finish porting netlisters to use CONNECTION_GRAPH 2020-05-23 12:45:24 -04:00
Jon Evans
d7bd4c9b04 Move Eeschema globals to new SCHEMATIC object
Set up a new lineage for SCH_ITEMS to get back to the SCHEMATIC
they live on: Items will all be parented to the SCH_SCREEN that
they are added to, and each SCH_SCREEN will point back to the
SCHEMATIC that it is part of.  Note that this hierarchy is not
the same as the actual schematic hierarchy, which continues to
be managed through SCH_SHEETs and SCH_SHEET_PATHS.
2020-05-18 13:04:56 -04:00
Jeff Young
437f888c25 Schematic Setup dialog.
Includes:
- moving some of the project settings from the Preferences dialog
- ERC severites
- project-specific field-name templates

Fixes https://gitlab.com/kicad/code/kicad/issues/2145
2020-03-10 18:54:17 +00:00
Jon Evans
fe375b4419 Allow sheet pins to be strong drivers if they don't conflict with anything
Also try harder to match bus members in case one was renamed by a higher
priority label.

Fixes https://gitlab.com/kicad/code/kicad/issues/3797
2020-02-05 14:23:55 +00:00
Jon Evans
41725e6b07 Sort nets in netlist by name; generate ordered net codes 2020-01-22 14:59:02 +00:00
Jeff Young
836c1ea56e Fix a bunch of un-caught boost::bad_pointer exceptions.
This also removes vector cover types which do nothing except obfuscate
the underlying implementation.

Mainly changes SCH_SHEET_PINS and CONFIG_PARAM_ARRAY (which will soon
be replaced by Jon's new stuff).
2020-01-12 19:55:00 +00:00
Ian McInerney
00e58cd974 Fix unintialized values (from coverity scan) 2020-01-12 13:00:42 +00:00
Jon Evans
b4cc28a5b6 Fix memory leaks in CONNECTION_GRAPH
Fixes #3692
2020-01-07 00:13:19 -05:00
Jon Evans
1bffe7f48b Ensure power pins win over bus member renaming
Also switch to a scoped enum for PRIORITY

Fixes https://gitlab.com/kicad/code/kicad/issues/3728
2020-01-02 22:09:15 -05:00
Jon Evans
8b87dc7e0f A slightly better ERC check for hierarchical labels
Fixes: lp:1839822
* https://bugs.launchpad.net/kicad/+bug/1839822
2019-11-29 21:11:44 -05:00
Jeff Young
a568e70b99 Follow naming conventions. 2019-06-10 23:46:01 +01:00
Jon Evans
607650be22 Connectivity: don't consider neighbor propagation when types don't match
Fixes: lp:1831608
* https://bugs.launchpad.net/kicad/+bug/1831608
2019-06-05 22:26:44 -04:00
Jon Evans
8d8c743f97 Connectivity: remove unused method 2019-06-05 21:27:56 -04:00
Jeff Young
792c4328aa Cleanup. 2019-05-10 21:40:08 +01:00
Jon Evans
316be464ab Handle higher-priority connection drivers located in subsheets
Fixes: lp:1827850
* https://bugs.launchpad.net/kicad/+bug/1827850
2019-05-06 22:09:05 -04:00
Jon Evans
09c9db472e Properly handle buses that have been linked by net wires only
Fixes: lp:1825532
* https://bugs.launchpad.net/kicad/+bug/1825532
2019-05-05 19:48:55 -04:00
Jon Evans
6d918ea1f1 A few fixes and refactors to connectivity propagation 2019-05-05 00:03:58 -04:00
Jon Evans
a5a2152ff4 Cache subgraphs by sheet path 2019-04-29 19:58:02 -04:00
Jon Evans
c054944d67 Set real-time connectivity to on by default with a safety valve 2019-04-29 18:59:32 -04:00
Jon Evans
f0376f1379 Improve ERC checking of labels
Fixes: lp:1824629
* https://bugs.launchpad.net/kicad/+bug/1824629
2019-04-25 15:10:39 -04:00
Jon Evans
e06d37090a A few connectivity performance tweaks 2019-04-25 00:37:10 -04:00
Jon Evans
ed27c50692 Improve handling of non-unique connections 2019-04-24 23:47:57 -04:00
Jon Evans
e2c12d8c25 Overhaul connectivity neighbor and global connection processing 2019-04-21 19:10:44 -04:00
Jon Evans
df600fc1a2 Fix a few ERC issues with no-connects and power pins
Fixes: lp:1824359
* https://bugs.launchpad.net/kicad/+bug/1824359
2019-04-11 21:24:39 -04:00
Seth Hillbrand
8c9244e677 Revert "eeschema: Connectivity threading"
This reverts commit 1a031e771f0b1cab3d809270a5075dcd8941845d.

Some nets broken in commit.
2019-04-10 20:08:42 -07:00
Seth Hillbrand
1a031e771f eeschema: Connectivity threading
This threads the first step (update item) in the connectivity routine.
Also eliminates the duplicate call for multiple copies of the same
sheet.
2019-04-10 15:04:22 -07:00
Jon Evans
bd487d2c25 Rework logic for linking local subgraphs together 2019-04-07 23:54:47 -04:00
Jon Evans
ec2c571abb Fix merging of subgraphs with multiple labels 2019-04-03 23:15:45 -04:00
Jon Evans
d5990100e1 Promote locally-labeled nets to global when tied to global buses
Fixes: lp:1822964
* https://bugs.launchpad.net/kicad/+bug/1822964
2019-04-03 22:58:14 -04:00
Jeff Young
3ace73fbdd Fold various SCH pin shadow data structures into SCH_PIN. 2019-04-03 10:18:11 +01:00
Jon Evans
8a9b82c2a2 Switch CONNECTION_GRAPH to wxLogTrace 2019-04-02 22:58:11 -04:00
Jon Evans
8b30cd4389 Fix edge case crash when processing invisible power pins 2019-04-01 20:21:50 -04:00
Jon Evans
2466b4363d Cache subgraph driver connections for improved performance 2019-03-31 19:58:15 -04:00
Jon Evans
f1882f333e Don't call OnModify() before placing new parts
Remove unnecessary calls to TestDanglingEnds()

Disable real-time connectivity updates for now

Revert "Remove unnecessary calls to TestDanglingEnds()"

This reverts commit d93e3894f2bcd6239862ac9eae0cb2f994b9d52a.

Remove debug code
2019-03-31 19:58:08 -04:00
Jon Evans
babdc9fd7b Improve naming of weak subgraphs 2019-03-31 19:57:06 -04:00