KiCad PCB EDA Suite
Loading...
Searching...
No Matches
erc_item.cpp
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, you may find one here:
18 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
19 * or you may search the http://www.gnu.org website for the version 2 license,
20 * or you may write to the Free Software Foundation, Inc.,
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22 */
23
24
25#include "wx/html/m_templ.h"
26#include "wx/html/styleparams.h"
27#include <erc/erc.h>
28#include <eda_draw_frame.h>
29#include <marker_base.h>
30#include <sch_edit_frame.h>
31#include <i18n_utility.h>
32
33
34// These, being statically-defined, require specialized I18N handling.
35// We don't translate on initialization and instead do it in the getters.
36
37// NOTE: Avoid changing the settings key for an ERC item after it has been created
38
39ERC_ITEM ERC_ITEM::heading_connections( 0, _HKI( "Connections" ), "" );
40ERC_ITEM ERC_ITEM::heading_conflicts( 0, _HKI( "Conflicts" ), "" );
41ERC_ITEM ERC_ITEM::heading_misc( 0, _HKI( "Miscellaneous" ), "" );
43
45 _HKI( "Duplicate sheet names within a given sheet" ),
46 wxT( "duplicate_sheet_names" ) );
47
49 _HKI( "Symbol pin or wire end off connection grid" ),
50 wxT( "endpoint_off_grid" ) );
51
53 _HKI( "Pin not connected" ),
54 wxT( "pin_not_connected" ) );
55
57 _HKI( "Input pin not driven by any Output pins" ),
58 wxT( "pin_not_driven" ) );
59
61 _HKI( "Input Power pin not driven by any Output Power pins" ),
62 wxT( "power_pin_not_driven" ) );
63
65 _HKI( "Multiple pins with the same pin number" ),
66 wxT( "duplicate_pins" ) );
67
69 _HKI( "Conflict problem between pins" ),
70 wxT( "pin_to_pin" ) );
71
73 _HKI( "Conflict problem between pins" ),
74 wxT( "pin_to_pin" ) );
75
77 _HKI( "Warning" ),
78 wxT( "generic-warning" ) );
79
81 _HKI( "Error" ),
82 wxT( "generic-error" ) );
83
85 _HKI( "Mismatch between hierarchical labels and sheet pins" ),
86 wxT( "hier_label_mismatch" ) );
87
89 _HKI( "Four connection points are joined together" ),
90 wxT( "four_way_junction" ) );
91
93 _HKI( "Label connects more than one wire" ),
94 wxT( "label_multiple_wires" ) );
95
97 _HKI( "A pin with a \"no connection\" flag is connected" ),
98 wxT( "no_connect_connected" ) );
99
101 _HKI( "Unconnected \"no connection\" flag" ),
102 wxT( "no_connect_dangling" ) );
103
105 _HKI( "Label not connected to anything" ),
106 wxT( "label_dangling" ) );
107
109 _HKI( "Global label not connected anywhere else in the schematic" ),
110 wxT( "global_label_dangling" ) );
111
113 _HKI( "Labels are similar (lower/upper case difference only)"),
114 wxT( "similar_labels" ) );
115
117 _HKI( "Power pins are similar (lower/upper case difference only)"),
118 wxT( "similar_power" ) );
119
121 _HKI( "Power pin and label are similar (lower/upper case difference only)"),
122 wxT( "similar_label_and_power" ) );
123
125 _HKI( "Global label only appears once in the schematic"),
126 wxT( "single_global_label" ) );
127
129 _HKI( "Local and global labels have same name" ),
130 wxT( "same_local_global_label" ) );
131
133 _HKI( "Different footprint assigned in another unit of the symbol" ),
134 wxT( "different_unit_footprint" ) );
135
137 _HKI( "Different net assigned to a shared pin in another unit of the symbol" ),
138 wxT( "different_unit_net" ) );
139
141 _HKI( "Conflict between bus alias definitions across schematic sheets" ),
142 wxT( "bus_definition_conflict" ) );
143
145 _HKI( "More than one name given to this bus or net" ),
146 wxT( "multiple_net_names" ) );
147
149 _HKI( "Net is graphically connected to a bus but not a bus member" ),
150 wxT( "net_not_bus_member" ) );
151
153 _HKI( "Buses are graphically connected but share no bus members" ),
154 wxT( "bus_to_bus_conflict" ) );
155
157 _HKI( "Invalid connection between bus and net items" ),
158 wxT( "bus_to_net_conflict" ) );
159
161 _HKI( "Unresolved text variable" ),
162 wxT( "unresolved_variable" ) );
163
165 _HKI( "Undefined netclass" ),
166 wxT( "undefined_netclass" ) );
167
169 _HKI( "SPICE model issue" ),
170 wxT( "simulation_model_issue" ) );
171
173 _HKI( "Wires not connected to anything" ),
174 wxT( "wire_dangling" ) );
175
177 _HKI( "Library symbol issue" ),
178 wxT( "lib_symbol_issues" ) );
179
181 _HKI( "Symbol doesn't match copy in library" ),
182 wxT( "lib_symbol_mismatch" ) );
183
185 _HKI( "Footprint link issue" ),
186 wxT( "footprint_link_issues" ) );
187
189 _HKI( "Assigned footprint doesn't match footprint filters" ),
190 wxT( "footprint_filter" ) );
191
193 _HKI( "Symbol is not annotated" ),
194 wxT( "unannotated" ) );
195
197 _HKI( "Symbol has more units than are defined" ),
198 wxT( "extra_units" ) );
199
201 _HKI( "Symbol has units that are not placed" ),
202 wxT( "missing_unit" ) );
203
205 _HKI( "Symbol has input pins that are not placed" ),
206 wxT( "missing_input_pin" ) );
207
209 _HKI( "Symbol has bidirectional pins that are not placed" ),
210 wxT( "missing_bidi_pin" ) );
211
213 _HKI( "Symbol has power input pins that are not placed" ),
214 wxT( "missing_power_pin" ) );
215
217 _HKI( "Units of same symbol have different values" ),
218 wxT( "unit_value_mismatch" ) );
219
221 _HKI( "Duplicate reference designators" ),
222 wxT( "duplicate_reference" ) );
223
225 _HKI( "Bus Entry needed" ),
226 wxT( "bus_entry_needed" ) );
227
229 _HKI( "Unconnected wire endpoint" ),
230 wxT( "unconnected_wire_endpoint" ) );
231
232std::vector<std::reference_wrapper<RC_ITEM>> ERC_ITEM::allItemTypes(
233 {
250
264
272 // Commented out until the logic for this element is coded
273 // TODO: Add bus label syntax checking
274 // ERC_ITEM::busLabelSyntax,
284
285 // ERC_ITEM types with no user-editable severities
286 // NOTE: this MUST be the last grouping in the list!
293 } );
294
295
296std::shared_ptr<ERC_ITEM> ERC_ITEM::Create( int aErrorCode )
297{
298 switch( aErrorCode )
299 {
300 case ERCE_DUPLICATE_SHEET_NAME: return std::make_shared<ERC_ITEM>( duplicateSheetName );
301 case ERCE_ENDPOINT_OFF_GRID: return std::make_shared<ERC_ITEM>( endpointOffGrid );
302 case ERCE_PIN_NOT_CONNECTED: return std::make_shared<ERC_ITEM>( pinNotConnected );
303 case ERCE_PIN_NOT_DRIVEN: return std::make_shared<ERC_ITEM>( pinNotDriven );
304 case ERCE_POWERPIN_NOT_DRIVEN: return std::make_shared<ERC_ITEM>( powerpinNotDriven );
305 case ERCE_DUPLICATE_PIN_ERROR: return std::make_shared<ERC_ITEM>( duplicatePinError );
306 case ERCE_PIN_TO_PIN_WARNING: return std::make_shared<ERC_ITEM>( pinTableWarning );
307 case ERCE_PIN_TO_PIN_ERROR: return std::make_shared<ERC_ITEM>( pinTableError );
308 case ERCE_GENERIC_WARNING: return std::make_shared<ERC_ITEM>( genericWarning );
309 case ERCE_GENERIC_ERROR: return std::make_shared<ERC_ITEM>( genericError );
310 case ERCE_HIERACHICAL_LABEL: return std::make_shared<ERC_ITEM>( hierLabelMismatch );
311 case ERCE_NOCONNECT_CONNECTED: return std::make_shared<ERC_ITEM>( noConnectConnected );
312 case ERCE_NOCONNECT_NOT_CONNECTED: return std::make_shared<ERC_ITEM>( noConnectDangling );
313 case ERCE_FOUR_WAY_JUNCTION: return std::make_shared<ERC_ITEM>( fourWayJunction );
314 case ERCE_LABEL_MULTIPLE_WIRES: return std::make_shared<ERC_ITEM>( labelMultipleWires );
315 case ERCE_LABEL_NOT_CONNECTED: return std::make_shared<ERC_ITEM>( labelDangling );
316 case ERCE_SIMILAR_LABELS: return std::make_shared<ERC_ITEM>( similarLabels );
317 case ERCE_SIMILAR_POWER: return std::make_shared<ERC_ITEM>( similarPower );
318 case ERCE_SIMILAR_LABEL_AND_POWER: return std::make_shared<ERC_ITEM>( similarLabelAndPower );
319 case ERCE_SINGLE_GLOBAL_LABEL: return std::make_shared<ERC_ITEM>( singleGlobalLabel );
320 case ERCE_SAME_LOCAL_GLOBAL_LABEL: return std::make_shared<ERC_ITEM>( sameLocalGlobalLabel );
321 case ERCE_DIFFERENT_UNIT_FP: return std::make_shared<ERC_ITEM>( differentUnitFootprint );
322 case ERCE_DIFFERENT_UNIT_NET: return std::make_shared<ERC_ITEM>( differentUnitNet );
323 case ERCE_BUS_ALIAS_CONFLICT: return std::make_shared<ERC_ITEM>( busDefinitionConflict );
324 case ERCE_DRIVER_CONFLICT: return std::make_shared<ERC_ITEM>( multipleNetNames );
325 case ERCE_BUS_ENTRY_CONFLICT: return std::make_shared<ERC_ITEM>( netNotBusMember );
326 case ERCE_BUS_TO_BUS_CONFLICT: return std::make_shared<ERC_ITEM>( busToBusConflict );
327 case ERCE_BUS_TO_NET_CONFLICT: return std::make_shared<ERC_ITEM>( busToNetConflict );
328 case ERCE_GLOBLABEL_DANGLING: return std::make_shared<ERC_ITEM>( globalLabelDangling );
329 case ERCE_UNRESOLVED_VARIABLE: return std::make_shared<ERC_ITEM>( unresolvedVariable );
330 case ERCE_UNDEFINED_NETCLASS: return std::make_shared<ERC_ITEM>( undefinedNetclass );
331 case ERCE_SIMULATION_MODEL: return std::make_shared<ERC_ITEM>( simulationModelIssues );
332 case ERCE_WIRE_DANGLING: return std::make_shared<ERC_ITEM>( wireDangling );
333 case ERCE_LIB_SYMBOL_ISSUES: return std::make_shared<ERC_ITEM>( libSymbolIssues );
334 case ERCE_LIB_SYMBOL_MISMATCH: return std::make_shared<ERC_ITEM>( libSymbolMismatch );
335 case ERCE_FOOTPRINT_LINK_ISSUES: return std::make_shared<ERC_ITEM>( footprintLinkIssues );
336 case ERCE_FOOTPRINT_FILTERS: return std::make_shared<ERC_ITEM>( footprintFilters );
337 case ERCE_UNANNOTATED: return std::make_shared<ERC_ITEM>( unannotated );
338 case ERCE_EXTRA_UNITS: return std::make_shared<ERC_ITEM>( extraUnits );
339 case ERCE_DIFFERENT_UNIT_VALUE: return std::make_shared<ERC_ITEM>( differentUnitValue );
340 case ERCE_DUPLICATE_REFERENCE: return std::make_shared<ERC_ITEM>( duplicateReference );
341 case ERCE_BUS_ENTRY_NEEDED: return std::make_shared<ERC_ITEM>( busEntryNeeded );
342 case ERCE_MISSING_UNIT: return std::make_shared<ERC_ITEM>( missingUnits );
343 case ERCE_MISSING_INPUT_PIN: return std::make_shared<ERC_ITEM>( missingInputPin );
344 case ERCE_MISSING_POWER_INPUT_PIN: return std::make_shared<ERC_ITEM>( missingPowerInputPin );
345 case ERCE_MISSING_BIDI_PIN: return std::make_shared<ERC_ITEM>( missingBidiPin );
346 case ERCE_UNCONNECTED_WIRE_ENDPOINT: return std::make_shared<ERC_ITEM>( unconnectedWireEndpoint );
347 case ERCE_UNSPECIFIED:
348 default:
349 wxFAIL_MSG( wxS( "Unknown ERC error code" ) );
350 break;
351 }
352
353 return nullptr;
354}
355
361void ERC_TREE_MODEL::GetValue( wxVariant& aVariant, wxDataViewItem const& aItem,
362 unsigned int aCol ) const
363{
364 SCH_EDIT_FRAME* schEditFrame = static_cast<SCH_EDIT_FRAME*>( m_editFrame );
365 const RC_TREE_NODE* node = ToNode( aItem );
366 std::shared_ptr<ERC_ITEM> ercItem = std::static_pointer_cast<ERC_ITEM>( node->m_RcItem );
367 MARKER_BASE* marker = ercItem->GetParent();
368 wxString msg;
369
370 auto getItemDesc =
371 [&]( EDA_ITEM* aCurrItem, SCH_SHEET_PATH& aSheet )
372 {
373 SCH_SHEET_PATH curSheet = schEditFrame->GetCurrentSheet();
374 wxString desc;
375
376 if( aSheet != curSheet )
377 {
378 schEditFrame->SetCurrentSheet( aSheet );
379 aSheet.UpdateAllScreenReferences();
380 {
381 desc = aCurrItem->GetItemDescription( m_editFrame, true );
382 }
383 schEditFrame->SetCurrentSheet( curSheet );
384 curSheet.UpdateAllScreenReferences();
385 }
386 else
387 {
388 desc = aCurrItem->GetItemDescription( m_editFrame, true );
389 }
390
391 return desc;
392 };
393
394 switch( node->m_Type )
395 {
397 if( marker )
398 {
399 SEVERITY severity = ercItem->GetParent()->GetSeverity();
400
401 if( severity == RPT_SEVERITY_EXCLUSION )
402 {
403 if( schEditFrame->GetSeverity( ercItem->GetErrorCode() ) == RPT_SEVERITY_WARNING )
404 msg = _( "Excluded warning: " );
405 else
406 msg = _( "Excluded error: " );
407 }
408 else if( severity == RPT_SEVERITY_WARNING )
409 {
410 msg = _( "Warning: " );
411 }
412 else
413 {
414 msg = _( "Error: " );
415 }
416 }
417
418 msg += ercItem->GetErrorMessage();
419 break;
420
422 if( marker && marker->GetMarkerType() == MARKER_BASE::MARKER_DRAWING_SHEET )
423 {
424 msg = _( "Drawing Sheet" );
425 }
426 else
427 {
428 msg = getItemDesc( schEditFrame->GetItem( ercItem->GetMainItemID() ),
429 ercItem->MainItemHasSheetPath() ? ercItem->GetMainItemSheetPath()
430 : schEditFrame->GetCurrentSheet() );
431 }
432
433 break;
434
436 msg = getItemDesc( schEditFrame->GetItem( ercItem->GetAuxItemID() ),
437 ercItem->AuxItemHasSheetPath() ? ercItem->GetAuxItemSheetPath()
438 : schEditFrame->GetCurrentSheet() );
439 break;
440
442 msg = getItemDesc( schEditFrame->GetItem( ercItem->GetAuxItem2ID() ),
443 schEditFrame->GetCurrentSheet() );
444 break;
445
447 msg = getItemDesc( schEditFrame->GetItem( ercItem->GetAuxItem3ID() ),
448 schEditFrame->GetCurrentSheet() );
449 break;
450
452 if( marker )
453 msg = marker->GetComment();
454
455 break;
456 }
457
458 msg.Replace( wxS( "\n" ), wxS( " " ) );
459 aVariant = msg;
460}
A base class for most all the KiCad significant classes used in schematics and boards.
Definition: eda_item.h:89
virtual wxString GetItemDescription(UNITS_PROVIDER *aUnitsProvider, bool aFull) const
Return a user-visible description string of this item.
Definition: eda_item.cpp:111
static ERC_ITEM differentUnitValue
Definition: erc_item.h:243
static ERC_ITEM busToBusConflict
Definition: erc_item.h:227
static ERC_ITEM labelMultipleWires
Definition: erc_item.h:213
static ERC_ITEM pinTableWarning
Definition: erc_item.h:206
static ERC_ITEM footprintLinkIssues
Definition: erc_item.h:235
static ERC_ITEM unresolvedVariable
Definition: erc_item.h:229
static ERC_ITEM duplicateSheetName
Definition: erc_item.h:200
static ERC_ITEM noConnectDangling
Definition: erc_item.h:214
static ERC_ITEM busDefinitionConflict
Definition: erc_item.h:224
static ERC_ITEM fourWayJunction
Definition: erc_item.h:212
static ERC_ITEM genericError
Definition: erc_item.h:209
static ERC_ITEM libSymbolIssues
Definition: erc_item.h:233
static ERC_ITEM pinNotDriven
Definition: erc_item.h:203
static ERC_ITEM undefinedNetclass
Definition: erc_item.h:230
static ERC_ITEM extraUnits
Definition: erc_item.h:238
static ERC_ITEM heading_conflicts
Definition: erc_item.h:196
static std::shared_ptr< ERC_ITEM > Create(int aErrorCode)
Constructs an ERC_ITEM for the given error code.
Definition: erc_item.cpp:296
static ERC_ITEM noConnectConnected
Definition: erc_item.h:211
static ERC_ITEM heading_misc
Definition: erc_item.h:197
static ERC_ITEM endpointOffGrid
Definition: erc_item.h:201
static ERC_ITEM busToNetConflict
Definition: erc_item.h:228
static ERC_ITEM differentUnitFootprint
Definition: erc_item.h:222
static ERC_ITEM sameLocalGlobalLabel
Definition: erc_item.h:218
static ERC_ITEM hierLabelMismatch
Definition: erc_item.h:210
static ERC_ITEM heading_connections
Definition: erc_item.h:195
static ERC_ITEM missingUnits
Definition: erc_item.h:239
static ERC_ITEM similarLabels
Definition: erc_item.h:219
static ERC_ITEM unconnectedWireEndpoint
Definition: erc_item.h:246
static ERC_ITEM heading_internal
Definition: erc_item.h:198
static std::vector< std::reference_wrapper< RC_ITEM > > allItemTypes
A list of all ERC_ITEM types which are valid error codes.
Definition: erc_item.h:193
static ERC_ITEM globalLabelDangling
Definition: erc_item.h:216
static ERC_ITEM labelDangling
Definition: erc_item.h:215
static ERC_ITEM differentUnitNet
Definition: erc_item.h:223
static ERC_ITEM pinTableError
Definition: erc_item.h:207
static ERC_ITEM similarLabelAndPower
Definition: erc_item.h:221
static ERC_ITEM genericWarning
Definition: erc_item.h:208
static ERC_ITEM footprintFilters
Definition: erc_item.h:236
static ERC_ITEM netNotBusMember
Definition: erc_item.h:226
static ERC_ITEM wireDangling
Definition: erc_item.h:232
static ERC_ITEM powerpinNotDriven
Definition: erc_item.h:204
static ERC_ITEM missingPowerInputPin
Definition: erc_item.h:242
static ERC_ITEM missingBidiPin
Definition: erc_item.h:241
static ERC_ITEM unannotated
Definition: erc_item.h:237
static ERC_ITEM missingInputPin
Definition: erc_item.h:240
static ERC_ITEM singleGlobalLabel
Definition: erc_item.h:217
static ERC_ITEM busEntryNeeded
Definition: erc_item.h:245
static ERC_ITEM simulationModelIssues
Definition: erc_item.h:231
static ERC_ITEM multipleNetNames
Definition: erc_item.h:225
static ERC_ITEM similarPower
Definition: erc_item.h:220
static ERC_ITEM pinNotConnected
Definition: erc_item.h:202
static ERC_ITEM libSymbolMismatch
Definition: erc_item.h:234
static ERC_ITEM duplicateReference
Definition: erc_item.h:244
static ERC_ITEM duplicatePinError
Definition: erc_item.h:205
void GetValue(wxVariant &aVariant, wxDataViewItem const &aItem, unsigned int aCol) const override
Override of RC_TREE_MODEL::GetValue which returns item descriptions in a specific SCH_SHEET_PATH cont...
Definition: erc_item.cpp:361
Marker are mainly used to show a DRC or ERC error or warning.
Definition: marker_base.h:49
@ MARKER_DRAWING_SHEET
Definition: marker_base.h:56
enum MARKER_T GetMarkerType() const
Definition: marker_base.h:96
wxString GetComment() const
Definition: marker_base.h:105
EDA_DRAW_FRAME * m_editFrame
Definition: rc_item.h:307
static RC_TREE_NODE * ToNode(wxDataViewItem aItem)
Definition: rc_item.h:238
std::shared_ptr< RC_ITEM > m_RcItem
Definition: rc_item.h:223
NODE_TYPE m_Type
Definition: rc_item.h:222
Schematic editor (Eeschema) main window.
EDA_ITEM * GetItem(const KIID &aId) const override
Fetch an item by KIID.
SCH_SHEET_PATH & GetCurrentSheet() const
void SetCurrentSheet(const SCH_SHEET_PATH &aSheet)
SEVERITY GetSeverity(int aErrorCode) const override
Handle access to a stack of flattened SCH_SHEET objects by way of a path for creating a flattened sch...
void UpdateAllScreenReferences() const
Update all the symbol references for this sheet path.
#define _HKI(x)
#define _(s)
@ ERCE_UNSPECIFIED
Definition: erc_settings.h:38
@ ERCE_UNANNOTATED
Symbol has not been annotated.
Definition: erc_settings.h:82
@ ERCE_POWERPIN_NOT_DRIVEN
Power input pin connected to some others pins but no power out pin to drive it.
Definition: erc_settings.h:45
@ ERCE_DRIVER_CONFLICT
Conflicting drivers (labels, etc) on a subgraph.
Definition: erc_settings.h:66
@ ERCE_SIMILAR_POWER
2 power pins are equal for case insensitive comparisons.
Definition: erc_settings.h:52
@ ERCE_MISSING_POWER_INPUT_PIN
Symbol has power input pins that are not placed on the schematic.
Definition: erc_settings.h:58
@ ERCE_UNCONNECTED_WIRE_ENDPOINT
A label is connected to more than one wire.
Definition: erc_settings.h:89
@ ERCE_SIMILAR_LABELS
2 labels are equal for case insensitive comparisons.
Definition: erc_settings.h:51
@ ERCE_LABEL_NOT_CONNECTED
Label not connected to anything.
Definition: erc_settings.h:50
@ ERCE_ENDPOINT_OFF_GRID
Pin or wire-end off grid.
Definition: erc_settings.h:41
@ ERCE_DUPLICATE_REFERENCE
More than one symbol with the same reference.
Definition: erc_settings.h:85
@ ERCE_EXTRA_UNITS
Symbol has more units than are defined.
Definition: erc_settings.h:83
@ ERCE_SAME_LOCAL_GLOBAL_LABEL
2 labels are equal for case insensitive comparisons.
Definition: erc_settings.h:55
@ ERCE_BUS_TO_BUS_CONFLICT
A connection between bus objects doesn't share at least one net.
Definition: erc_settings.h:68
@ ERCE_SIMILAR_LABEL_AND_POWER
label and pin are equal for case insensitive comparisons.
Definition: erc_settings.h:53
@ ERCE_BUS_ENTRY_CONFLICT
A wire connected to a bus doesn't match the bus.
Definition: erc_settings.h:67
@ ERCE_FOOTPRINT_LINK_ISSUES
The footprint link is invalid, or points to a missing (or inactive) footprint or library.
Definition: erc_settings.h:79
@ ERCE_BUS_TO_NET_CONFLICT
A bus wire is graphically connected to a net port/pin (or vice versa).
Definition: erc_settings.h:70
@ ERCE_DUPLICATE_PIN_ERROR
Definition: erc_settings.h:96
@ ERCE_NOCONNECT_NOT_CONNECTED
A no connect symbol is not connected to anything.
Definition: erc_settings.h:49
@ ERCE_DIFFERENT_UNIT_NET
Shared pin in a multi-unit symbol is connected to more than one net.
Definition: erc_settings.h:63
@ ERCE_FOUR_WAY_JUNCTION
A four-way junction was found.
Definition: erc_settings.h:87
@ ERCE_PIN_NOT_CONNECTED
Pin not connected and not no connect symbol.
Definition: erc_settings.h:42
@ ERCE_UNDEFINED_NETCLASS
A netclass was referenced but not defined.
Definition: erc_settings.h:74
@ ERCE_GLOBLABEL_DANGLING
A global label is dangling.
Definition: erc_settings.h:72
@ ERCE_BUS_ENTRY_NEEDED
Importer failed to auto-place a bus entry.
Definition: erc_settings.h:86
@ ERCE_UNRESOLVED_VARIABLE
A text variable could not be resolved.
Definition: erc_settings.h:73
@ ERCE_SIMULATION_MODEL
An error was found in the simulation model.
Definition: erc_settings.h:75
@ ERCE_LIB_SYMBOL_MISMATCH
Symbol doesn't match copy in library.
Definition: erc_settings.h:78
@ ERCE_GENERIC_ERROR
Definition: erc_settings.h:102
@ ERCE_DIFFERENT_UNIT_FP
Different units of the same symbol have different footprints assigned.
Definition: erc_settings.h:56
@ ERCE_NOCONNECT_CONNECTED
A no connect symbol is connected to more than 1 pin.
Definition: erc_settings.h:48
@ ERCE_PIN_TO_PIN_WARNING
Definition: erc_settings.h:97
@ ERCE_PIN_NOT_DRIVEN
Pin connected to some others pins but no pin to drive it.
Definition: erc_settings.h:43
@ ERCE_MISSING_INPUT_PIN
Symbol has input pins that are not placed.
Definition: erc_settings.h:60
@ ERCE_MISSING_UNIT
Symbol has units that are not placed on the schematic.
Definition: erc_settings.h:62
@ ERCE_DUPLICATE_SHEET_NAME
Duplicate sheet names within a given sheet.
Definition: erc_settings.h:40
@ ERCE_MISSING_BIDI_PIN
Symbol has bi-directional pins that are not placed.
Definition: erc_settings.h:61
@ ERCE_LIB_SYMBOL_ISSUES
Symbol not found in active libraries.
Definition: erc_settings.h:77
@ ERCE_FOOTPRINT_FILTERS
The assigned footprint doesn't match the footprint filters.
Definition: erc_settings.h:81
@ ERCE_HIERACHICAL_LABEL
Mismatch between hierarchical labels and pins sheets.
Definition: erc_settings.h:47
@ ERCE_WIRE_DANGLING
Some wires are not connected to anything else.
Definition: erc_settings.h:76
@ ERCE_BUS_ALIAS_CONFLICT
Conflicting bus alias definitions across sheets.
Definition: erc_settings.h:65
@ ERCE_GENERIC_WARNING
Definition: erc_settings.h:101
@ ERCE_SINGLE_GLOBAL_LABEL
A global label only exists once in the schematic.
Definition: erc_settings.h:54
@ ERCE_LABEL_MULTIPLE_WIRES
A label is connected to more than one wire.
Definition: erc_settings.h:88
@ ERCE_DIFFERENT_UNIT_VALUE
Units of same symbol have different values.
Definition: erc_settings.h:84
@ ERCE_PIN_TO_PIN_ERROR
Definition: erc_settings.h:98
Some functions to handle hotkeys in KiCad.
SEVERITY
@ RPT_SEVERITY_WARNING
@ RPT_SEVERITY_EXCLUSION