25#include "wx/html/m_templ.h"
26#include "wx/html/styleparams.h"
48 _(
"Duplicate sheet names within a given sheet" ),
49 wxT(
"duplicate_sheet_names" ) );
52 _(
"Symbol pin or wire end off connection grid" ),
53 wxT(
"endpoint_off_grid" ) );
56 _(
"Pin not connected" ),
57 wxT(
"pin_not_connected" ) );
60 _(
"Input pin not driven by any Output pins" ),
61 wxT(
"pin_not_driven" ) );
64 _(
"Input Power pin not driven by any Output Power pins" ),
65 wxT(
"power_pin_not_driven" ) );
68 _(
"Multiple pins with the same pin numbers" ),
69 wxT(
"duplicate_pins" ) );
72 _(
"Conflict problem between pins" ),
73 wxT(
"pin_to_pin" ) );
76 _(
"Conflict problem between pins" ),
77 wxT(
"pin_to_pin" ) );
81 wxT(
"generic-warning" ) );
85 wxT(
"generic-error" ) );
88 _(
"Mismatch between hierarchical labels and sheet pins" ),
89 wxT(
"hier_label_mismatch" ) );
92 _(
"Four connection points are joined together" ),
93 wxT(
"four_way_junction" ) );
96 _(
"Label connects more than one wire" ),
97 wxT(
"label_multiple_wires" ) );
100 _(
"A pin with a \"no connection\" flag is connected" ),
101 wxT(
"no_connect_connected" ) );
104 _(
"Unconnected \"no connection\" flag" ),
105 wxT(
"no_connect_dangling" ) );
108 _(
"Label not connected to anything" ),
109 wxT(
"label_dangling" ) );
112 _(
"Global label not connected anywhere else in the schematic" ),
113 wxT(
"global_label_dangling" ) );
116 _(
"Labels are similar (lower/upper case difference only)"),
117 wxT(
"similar_labels" ) );
120 _(
"Power pins are similar (lower/upper case difference only)"),
121 wxT(
"similar_power" ) );
124 _(
"Power pin and label are similar (lower/upper case difference only)"),
125 wxT(
"similar_label_and_power" ) );
128 _(
"Global label only appears once in the schematic"),
129 wxT(
"single_global_label" ) );
132 _(
"Local and global labels have same name" ),
133 wxT(
"same_local_global_label" ) );
136 _(
"Different footprint assigned in another unit of the symbol" ),
137 wxT(
"different_unit_footprint" ) );
140 _(
"Different net assigned to a shared pin in another unit of the symbol" ),
141 wxT(
"different_unit_net" ) );
144 _(
"Conflict between bus alias definitions across schematic sheets" ),
145 wxT(
"bus_definition_conflict" ) );
148 _(
"More than one name given to this bus or net" ),
149 wxT(
"multiple_net_names" ) );
152 _(
"Net is graphically connected to a bus but not a bus member" ),
153 wxT(
"net_not_bus_member" ) );
156 _(
"Buses are graphically connected but share no bus members" ),
157 wxT(
"bus_to_bus_conflict" ) );
160 _(
"Invalid connection between bus and net items" ),
161 wxT(
"bus_to_net_conflict" ) );
164 _(
"Unresolved text variable" ),
165 wxT(
"unresolved_variable" ) );
168 _(
"Undefined netclass" ),
169 wxT(
"undefined_netclass" ) );
172 _(
"SPICE model issue" ),
173 wxT(
"simulation_model_issue" ) );
176 _(
"Wires not connected to anything" ),
177 wxT(
"wire_dangling" ) );
180 _(
"Library symbol issue" ),
181 wxT(
"lib_symbol_issues" ) );
184 _(
"Symbol doesn't match copy in library" ),
185 wxT(
"lib_symbol_mismatch" ) );
188 _(
"Footprint link issue" ),
189 wxT(
"footprint_link_issues" ) );
192 _(
"Assigned footprint doesn't match footprint filters" ),
193 wxT(
"footprint_filter" ) );
196 _(
"Symbol is not annotated" ),
197 wxT(
"unannotated" ) );
200 _(
"Symbol has more units than are defined" ),
201 wxT(
"extra_units" ) );
204 _(
"Symbol has units that are not placed" ),
205 wxT(
"missing_unit" ) );
208 _(
"Symbol has input pins that are not placed" ),
209 wxT(
"missing_input_pin" ) );
212 _(
"Symbol has bidirectional pins that are not placed" ),
213 wxT(
"missing_bidi_pin" ) );
216 _(
"Symbol has power input pins that are not placed" ),
217 wxT(
"missing_power_pin" ) );
220 _(
"Units of same symbol have different values" ),
221 wxT(
"unit_value_mismatch" ) );
224 _(
"Duplicate reference designators" ),
225 wxT(
"duplicate_reference" ) );
228 _(
"Bus Entry needed" ),
229 wxT(
"bus_entry_needed" ) );
232 _(
"Unconnected wire endpoint" ),
233 wxT(
"unconnected_wire_endpoint" ) );
352 wxFAIL_MSG( wxS(
"Unknown ERC error code" ) );
365 unsigned int aCol )
const
369 std::shared_ptr<ERC_ITEM> ercItem = std::static_pointer_cast<ERC_ITEM>( node->
m_RcItem );
379 if( aSheet != curSheet )
382 aSheet.UpdateAllScreenReferences();
402 SEVERITY severity = ercItem->GetParent()->GetSeverity();
407 msg =
_(
"Excluded warning: " );
409 msg =
_(
"Excluded error: " );
413 msg =
_(
"Warning: " );
417 msg =
_(
"Error: " );
421 msg += ercItem->GetErrorMessage();
427 msg =
_(
"Drawing Sheet" );
431 msg = getItemDesc( schEditFrame->
GetItem( ercItem->GetMainItemID() ),
432 ercItem->MainItemHasSheetPath() ? ercItem->GetMainItemSheetPath()
439 msg = getItemDesc( schEditFrame->
GetItem( ercItem->GetAuxItemID() ),
440 ercItem->AuxItemHasSheetPath() ? ercItem->GetAuxItemSheetPath()
445 msg = getItemDesc( schEditFrame->
GetItem( ercItem->GetAuxItem2ID() ),
450 msg = getItemDesc( schEditFrame->
GetItem( ercItem->GetAuxItem3ID() ),
461 msg.Replace( wxS(
"\n" ), wxS(
" " ) );
A base class for most all the KiCad significant classes used in schematics and boards.
virtual wxString GetItemDescription(UNITS_PROVIDER *aUnitsProvider, bool aFull) const
Return a user-visible description string of this item.
static ERC_ITEM differentUnitValue
static ERC_ITEM busToBusConflict
static ERC_ITEM labelMultipleWires
static ERC_ITEM pinTableWarning
static ERC_ITEM footprintLinkIssues
static ERC_ITEM unresolvedVariable
static ERC_ITEM duplicateSheetName
static ERC_ITEM noConnectDangling
static ERC_ITEM busDefinitionConflict
static ERC_ITEM fourWayJunction
static ERC_ITEM genericError
static ERC_ITEM libSymbolIssues
static ERC_ITEM pinNotDriven
static ERC_ITEM undefinedNetclass
static ERC_ITEM extraUnits
static ERC_ITEM heading_conflicts
static std::shared_ptr< ERC_ITEM > Create(int aErrorCode)
Constructs an ERC_ITEM for the given error code.
static ERC_ITEM noConnectConnected
static ERC_ITEM heading_misc
static ERC_ITEM endpointOffGrid
static ERC_ITEM busToNetConflict
static ERC_ITEM differentUnitFootprint
static ERC_ITEM sameLocalGlobalLabel
static ERC_ITEM hierLabelMismatch
static ERC_ITEM heading_connections
static ERC_ITEM missingUnits
static ERC_ITEM similarLabels
static ERC_ITEM unconnectedWireEndpoint
static ERC_ITEM heading_internal
static std::vector< std::reference_wrapper< RC_ITEM > > allItemTypes
A list of all ERC_ITEM types which are valid error codes.
static ERC_ITEM globalLabelDangling
static ERC_ITEM labelDangling
static ERC_ITEM differentUnitNet
static ERC_ITEM pinTableError
static ERC_ITEM similarLabelAndPower
static ERC_ITEM genericWarning
static ERC_ITEM footprintFilters
static ERC_ITEM netNotBusMember
static ERC_ITEM wireDangling
static ERC_ITEM powerpinNotDriven
static ERC_ITEM missingPowerInputPin
static ERC_ITEM missingBidiPin
static ERC_ITEM unannotated
static ERC_ITEM missingInputPin
static ERC_ITEM singleGlobalLabel
static ERC_ITEM busEntryNeeded
static ERC_ITEM simulationModelIssues
static ERC_ITEM multipleNetNames
static ERC_ITEM similarPower
static ERC_ITEM pinNotConnected
static ERC_ITEM libSymbolMismatch
static ERC_ITEM duplicateReference
static ERC_ITEM duplicatePinError
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...
enum MARKER_T GetMarkerType() const
wxString GetComment() const
EDA_DRAW_FRAME * m_editFrame
static RC_TREE_NODE * ToNode(wxDataViewItem aItem)
std::shared_ptr< RC_ITEM > m_RcItem
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.
@ ERCE_UNANNOTATED
Symbol has not been annotated.
@ ERCE_POWERPIN_NOT_DRIVEN
Power input pin connected to some others pins but no power out pin to drive it.
@ ERCE_DRIVER_CONFLICT
Conflicting drivers (labels, etc) on a subgraph.
@ ERCE_SIMILAR_POWER
2 power pins are equal for case insensitive comparisons.
@ ERCE_MISSING_POWER_INPUT_PIN
Symbol has power input pins that are not placed on the schematic.
@ ERCE_UNCONNECTED_WIRE_ENDPOINT
A label is connected to more than one wire.
@ ERCE_SIMILAR_LABELS
2 labels are equal for case insensitive comparisons.
@ ERCE_LABEL_NOT_CONNECTED
Label not connected to anything.
@ ERCE_ENDPOINT_OFF_GRID
Pin or wire-end off grid.
@ ERCE_DUPLICATE_REFERENCE
More than one symbol with the same reference.
@ ERCE_EXTRA_UNITS
Symbol has more units than are defined.
@ ERCE_SAME_LOCAL_GLOBAL_LABEL
2 labels are equal for case insensitive comparisons.
@ ERCE_BUS_TO_BUS_CONFLICT
A connection between bus objects doesn't share at least one net.
@ ERCE_SIMILAR_LABEL_AND_POWER
label and pin are equal for case insensitive comparisons.
@ ERCE_BUS_ENTRY_CONFLICT
A wire connected to a bus doesn't match the bus.
@ ERCE_FOOTPRINT_LINK_ISSUES
The footprint link is invalid, or points to a missing (or inactive) footprint or library.
@ ERCE_BUS_TO_NET_CONFLICT
A bus wire is graphically connected to a net port/pin (or vice versa).
@ ERCE_DUPLICATE_PIN_ERROR
@ ERCE_NOCONNECT_NOT_CONNECTED
A no connect symbol is not connected to anything.
@ ERCE_DIFFERENT_UNIT_NET
Shared pin in a multi-unit symbol is connected to more than one net.
@ ERCE_FOUR_WAY_JUNCTION
A four-way junction was found.
@ ERCE_PIN_NOT_CONNECTED
Pin not connected and not no connect symbol.
@ ERCE_UNDEFINED_NETCLASS
A netclass was referenced but not defined.
@ ERCE_GLOBLABEL_DANGLING
A global label is dangling.
@ ERCE_BUS_ENTRY_NEEDED
Importer failed to auto-place a bus entry.
@ ERCE_UNRESOLVED_VARIABLE
A text variable could not be resolved.
@ ERCE_SIMULATION_MODEL
An error was found in the simulation model.
@ ERCE_LIB_SYMBOL_MISMATCH
Symbol doesn't match copy in library.
@ ERCE_DIFFERENT_UNIT_FP
Different units of the same symbol have different footprints assigned.
@ ERCE_NOCONNECT_CONNECTED
A no connect symbol is connected to more than 1 pin.
@ ERCE_PIN_TO_PIN_WARNING
@ ERCE_PIN_NOT_DRIVEN
Pin connected to some others pins but no pin to drive it.
@ ERCE_MISSING_INPUT_PIN
Symbol has input pins that are not placed.
@ ERCE_MISSING_UNIT
Symbol has units that are not placed on the schematic.
@ ERCE_DUPLICATE_SHEET_NAME
Duplicate sheet names within a given sheet.
@ ERCE_MISSING_BIDI_PIN
Symbol has bi-directional pins that are not placed.
@ ERCE_LIB_SYMBOL_ISSUES
Symbol not found in active libraries.
@ ERCE_FOOTPRINT_FILTERS
The assigned footprint doesn't match the footprint filters.
@ ERCE_HIERACHICAL_LABEL
Mismatch between hierarchical labels and pins sheets.
@ ERCE_WIRE_DANGLING
Some wires are not connected to anything else.
@ ERCE_BUS_ALIAS_CONFLICT
Conflicting bus alias definitions across sheets.
@ ERCE_SINGLE_GLOBAL_LABEL
A global label only exists once in the schematic.
@ ERCE_LABEL_MULTIPLE_WIRES
A label is connected to more than one wire.
@ ERCE_DIFFERENT_UNIT_VALUE
Units of same symbol have different values.