Seth Hillbrand
deb7a0beff
Avoid marking symbols that will not be processed
...
We want to shorting the processing time by marking symbols that have
already been processed. But we must avoid marking symbols that will not
be processed due to their other flags
Fixes https://gitlab.com/kicad/code/kicad/issues/11164
(cherry picked from commit 2208e0db16
)
2022-03-17 10:10:56 -07:00
Seth Hillbrand
d653484d72
Move connected_items from hash table to tree
...
This gains about 10% speed in heavily connected sheets
Fixes https://gitlab.com/kicad/code/kicad/issues/10974
(cherry picked from commit 187aa1c171
)
2022-03-11 16:58:38 -08:00
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 17b1b68ac7
)
2022-03-11 16:58:38 -08:00
Seth Hillbrand
8fd87e1f04
Change connectivity item group from set to vector
...
Reserve space for new items to speed construction of connectivity graph
Fixes https://gitlab.com/kicad/code/kicad/issues/10974
(cherry picked from commit 7aebc4b11f
)
2022-03-05 13:04:11 -05:00
Jeff Young
c7dda3fbec
Formatting.
2022-02-22 22:19:55 +00:00
Marek Roszko
c4c56de708
Neurotically update position wxPoint usages
2022-01-01 11:55:51 -05:00
Marek Roszko
347e03363a
Convert wxPoint/wxSize starting from EDA_RECT usages
2022-01-01 11:30:33 -05:00
Jeff Young
e48d4a653a
Pick better auto-generated netnames.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/4312
2021-12-24 18:13:16 +00:00
Jeff Young
889970a449
SCH_NETCLASS_FLAGs and SCH_FIELDs for labels.
...
ADDED: a new label type for netclass flags.
ADDED: the ability to define fields on labels.
2021-12-24 16:13:27 +00:00
Jon Evans
a205595404
PROF_COUNTER -> PROF_TIMER
...
I want to add an event counter, and this one is a timer
2021-12-05 14:25:37 -05:00
jean-pierre charras
3a00d76207
Fix a compil warning (shadowed var) and add a comment.
2021-12-01 11:05:16 +01:00
Jon Evans
d7f5917fb0
ERC: flag duplicated local labels with no pins as floating
...
See https://gitlab.com/kicad/code/kicad/-/issues/9593
2021-11-27 22:34:11 -05:00
Jon Evans
08cb573e11
Do not propagate bus entries across buses and wires at the same point
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/9678
2021-11-25 13:36:30 -05:00
Jeff Young
7fc04c3cf2
Fixes for realtime connectivity being off.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/9628
2021-11-24 13:20:44 +00:00
Wayne Stambaugh
53f5d616aa
Coverity issue fixes.
2021-11-13 11:38:31 -05:00
Jeff Young
83e5208213
Fix a couple of holes in the IsTestEnabled() checks.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7270
2021-11-04 16:24:06 +00:00
Jeff Young
75b5bcf46d
Make Coverity happy.
2021-10-19 17:14:04 +01:00
Jeff Young
4e48a16847
Look for all types of label conficts in ERC.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/9367
2021-10-18 18:09:40 +01:00
Jeff Young
f606679164
Proper numeric sorting for intersheet refs.
...
Also expunges the horrifically named std::remove and std::remove_if
(neither of which remove anything).
2021-10-01 18:29:21 +01:00
Jeff Young
6aaf4413b3
Fix kicad_string.h / string.cpp mismatch.
...
They don't define a KiCad string class, so the header file name was
somewhat misleading. But the fact that they didn't match definitely
made coding more difficult.
2021-07-29 16:03:25 +01:00
Jon Evans
3aab37bd2a
Fix determinism issue when comparing a local and hierarchical label
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8406
2021-07-03 16:43:00 -04:00
Jeff Young
bcdec0dea7
Move '~' pin name processing to LIB_PIN and SCH_PIN.
...
This will also allow us to do variable processing in the future if
desired.
2021-06-12 19:54:34 +01:00
Wayne Stambaugh
fbc135e69f
Rename SCH_COMPONENT to SCH_SYMBOL.
2021-06-10 10:34:49 -04:00
Marek Roszko
4df3cb912d
Remove another leaky wx/log.h header
2021-06-03 08:11:15 -04:00
Jon Evans
9effeb1fcb
Don't crash if an invalid bus connection is made
...
Certain situations can trigger the stale cleanup being run
on a bus that doesn't actually contain the stated member.
In this case we should just keep calm and carry on -- who knows
what netlist will be generated, but we shouldn't crash.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8530
2021-06-01 21:49:25 -04:00
Jon Evans
55c1d814f9
Fix hierarchical propagation for designs with unmatched hier ports
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/8397
2021-05-10 17:54:09 -04:00
Jeff Young
2e3860de6f
Naming conventions.
2021-05-05 22:58:40 +01:00
Wayne Stambaugh
2b86b34124
Eeschema: split out SCH_SHEET_PIN declarations into separate header.
2021-04-06 17:15:49 -04:00
Wayne Stambaugh
1786ae8773
Eeschema: use symbol nomenclature for object file naming.
2021-02-24 08:48:02 -05:00
Jon Evans
d951ac5bfe
Fix logic issue with sheet pin ERC
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7592
2021-02-18 12:10:59 -05:00
Jon Evans
212c67c365
Fix bus<>net conflict ERC not checking local labels
2021-02-14 21:35:29 -05:00
Jon Evans
07e1ae1b56
Fix logic of global label ERC check
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7392
2021-02-13 10:29:31 -05:00
Jon Evans
dbd749c07a
ERC warn if hierarchical labels have no matching sheet pin
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7511
2021-02-13 10:24:22 -05:00
Jon Evans
7015f4cf75
Use full names for bus membership ERC checking
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7522
2021-02-13 10:09:16 -05:00
Jon Evans
73ea0fc15e
Always upgrade to a stronger driver even if the path is longer
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7492
2021-02-11 17:25:14 -05:00
Jon Evans
8e9b457887
Make sure sheet pin connections get reset every time
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7499
2021-02-11 17:25:14 -05:00
Jeff Young
0ba0160da9
Add a PT_NIC pin electrical type and a netlist token for SCH_NO_CONNECT.
...
ADDED a new pin electrical type "free" for internally unconnected pins.
CHANGED the "unconnected" pin electrical type is now represented by
"no_connect" in files and netlists. (The legacy syntax is also accepted
in files.)
2021-01-23 00:10:01 +00:00
Jeff Young
274fc60fe9
Formatting.
2021-01-23 00:10:01 +00:00
Jon Evans
6cd4fcf30c
Don't pick a name with a longer path to override with
...
Only triggered on some platforms because of compiler-dependent
unordered_set iteration
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7169
2021-01-18 21:50:26 -05:00
Jeff Young
95ca5a0233
Don't record null drivers.
...
Fixes https://gitlab.com/kicad/code/kicad/issues/7155
2021-01-17 16:24:22 +00:00
Jeff Young
f3a6d2655e
Improvements to ERC and bus parsing.
...
1) Add some nullptr safety to ERC.
2) Allow unconnected flagging on bus/wire entries.
3) Allow commas in bus group definitions.
Fixes https://gitlab.com/kicad/code/kicad/issues/7155
2021-01-17 16:24:22 +00:00
Jon Evans
02681fcf0e
Move no-connect processing to connection graph
...
This way the net names can be inspected in eeschema and cross-probing works.
Testcases updated for the name changes
CHANGED: all unconnected pins are now included in the netlist with no_connect_ prefixes
2021-01-14 20:55:49 -05:00
Jon Evans
9b69c1e198
Fix a bone-headed cause of non-determinism
2021-01-14 19:20:37 -05:00
Jon Evans
654e9a77db
Connectivity: defer and parallelize item updates
...
Good for ~15% performance improvement in large designs
2021-01-14 12:21:19 -05:00
Jon Evans
6fb1ed2824
Make sure hierarchical overrides are deterministic
...
Without alphabetic sorting here, we are at the mercy of
the r-tree and multithreading.
2021-01-14 12:21:19 -05:00
Jon Evans
b90e72ed07
Don't simplify hierarchical nets based on weak drivers
...
This behavior provided shorter net names, but was confusing if
the user gives an explicit strong driver in the subsheet but not
one in the parent sheet.
Testcases updated for net name changes; connectivity is the same
Fixes https://gitlab.com/kicad/code/kicad/-/issues/4201
2021-01-13 22:10:56 -05:00
Jon Evans
24ff66f5a2
ERC: flag unconnected sheet pins
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/1780
2021-01-13 19:47:28 -05:00
Jon Evans
693e40b5b0
Exclude buses from dangling label checks
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7017
2021-01-13 19:37:05 -05: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
Jon Evans
5ceadbda3b
Don't show redundant ERC markers from subsheets
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/7016
2021-01-12 23:24:13 -05:00