25#include "wx/html/m_templ.h"
26#include "wx/html/styleparams.h"
45 _HKI(
"Duplicate sheet names within a given sheet" ),
46 wxT(
"duplicate_sheet_names" ) );
49 _HKI(
"Symbol pin or wire end off connection grid" ),
50 wxT(
"endpoint_off_grid" ) );
53 _HKI(
"Pin not connected" ),
54 wxT(
"pin_not_connected" ) );
57 _HKI(
"Input pin not driven by any Output pins" ),
58 wxT(
"pin_not_driven" ) );
61 _HKI(
"Input Power pin not driven by any Output Power pins" ),
62 wxT(
"power_pin_not_driven" ) );
65 _HKI(
"Multiple pins with the same pin number" ),
66 wxT(
"duplicate_pins" ) );
69 _HKI(
"Conflict problem between pins" ),
70 wxT(
"pin_to_pin" ) );
73 _HKI(
"Conflict problem between pins" ),
74 wxT(
"pin_to_pin" ) );
78 wxT(
"generic-warning" ) );
82 wxT(
"generic-error" ) );
85 _HKI(
"Mismatch between hierarchical labels and sheet pins" ),
86 wxT(
"hier_label_mismatch" ) );
89 _HKI(
"Four connection points are joined together" ),
90 wxT(
"four_way_junction" ) );
93 _HKI(
"Label connects more than one wire" ),
94 wxT(
"label_multiple_wires" ) );
97 _HKI(
"A pin with a \"no connection\" flag is connected" ),
98 wxT(
"no_connect_connected" ) );
101 _HKI(
"Unconnected \"no connection\" flag" ),
102 wxT(
"no_connect_dangling" ) );
105 _HKI(
"Label not connected to anything" ),
106 wxT(
"label_dangling" ) );
109 _HKI(
"Global label not connected anywhere else in the schematic" ),
110 wxT(
"global_label_dangling" ) );
113 _HKI(
"Labels are similar (lower/upper case difference only)"),
114 wxT(
"similar_labels" ) );
117 _HKI(
"Power pins are similar (lower/upper case difference only)"),
118 wxT(
"similar_power" ) );
121 _HKI(
"Power pin and label are similar (lower/upper case difference only)"),
122 wxT(
"similar_label_and_power" ) );
125 _HKI(
"Global label only appears once in the schematic"),
126 wxT(
"single_global_label" ) );
129 _HKI(
"Local and global labels have same name" ),
130 wxT(
"same_local_global_label" ) );
133 _HKI(
"Different footprint assigned in another unit of the symbol" ),
134 wxT(
"different_unit_footprint" ) );
137 _HKI(
"Different net assigned to a shared pin in another unit of the symbol" ),
138 wxT(
"different_unit_net" ) );
141 _HKI(
"Conflict between bus alias definitions across schematic sheets" ),
142 wxT(
"bus_definition_conflict" ) );
145 _HKI(
"More than one name given to this bus or net" ),
146 wxT(
"multiple_net_names" ) );
149 _HKI(
"Net is graphically connected to a bus but not a bus member" ),
150 wxT(
"net_not_bus_member" ) );
153 _HKI(
"Buses are graphically connected but share no bus members" ),
154 wxT(
"bus_to_bus_conflict" ) );
157 _HKI(
"Invalid connection between bus and net items" ),
158 wxT(
"bus_to_net_conflict" ) );
161 _HKI(
"Unresolved text variable" ),
162 wxT(
"unresolved_variable" ) );
165 _HKI(
"Undefined netclass" ),
166 wxT(
"undefined_netclass" ) );
169 _HKI(
"SPICE model issue" ),
170 wxT(
"simulation_model_issue" ) );
173 _HKI(
"Wires not connected to anything" ),
174 wxT(
"wire_dangling" ) );
177 _HKI(
"Library symbol issue" ),
178 wxT(
"lib_symbol_issues" ) );
181 _HKI(
"Symbol doesn't match copy in library" ),
182 wxT(
"lib_symbol_mismatch" ) );
185 _HKI(
"Footprint link issue" ),
186 wxT(
"footprint_link_issues" ) );
189 _HKI(
"Assigned footprint doesn't match footprint filters" ),
190 wxT(
"footprint_filter" ) );
193 _HKI(
"Symbol is not annotated" ),
194 wxT(
"unannotated" ) );
197 _HKI(
"Symbol has more units than are defined" ),
198 wxT(
"extra_units" ) );
201 _HKI(
"Symbol has units that are not placed" ),
202 wxT(
"missing_unit" ) );
205 _HKI(
"Symbol has input pins that are not placed" ),
206 wxT(
"missing_input_pin" ) );
209 _HKI(
"Symbol has bidirectional pins that are not placed" ),
210 wxT(
"missing_bidi_pin" ) );
213 _HKI(
"Symbol has power input pins that are not placed" ),
214 wxT(
"missing_power_pin" ) );
217 _HKI(
"Units of same symbol have different values" ),
218 wxT(
"unit_value_mismatch" ) );
221 _HKI(
"Duplicate reference designators" ),
222 wxT(
"duplicate_reference" ) );
225 _HKI(
"Bus Entry needed" ),
226 wxT(
"bus_entry_needed" ) );
229 _HKI(
"Unconnected wire endpoint" ),
230 wxT(
"unconnected_wire_endpoint" ) );
349 wxFAIL_MSG( wxS(
"Unknown ERC error code" ) );
362 unsigned int aCol )
const
366 std::shared_ptr<ERC_ITEM> ercItem = std::static_pointer_cast<ERC_ITEM>( node->
m_RcItem );
376 if( aSheet != curSheet )
379 aSheet.UpdateAllScreenReferences();
399 SEVERITY severity = ercItem->GetParent()->GetSeverity();
404 msg =
_(
"Excluded warning: " );
406 msg =
_(
"Excluded error: " );
410 msg =
_(
"Warning: " );
414 msg =
_(
"Error: " );
418 msg += ercItem->GetErrorMessage();
424 msg =
_(
"Drawing Sheet" );
428 msg = getItemDesc( schEditFrame->
GetItem( ercItem->GetMainItemID() ),
429 ercItem->MainItemHasSheetPath() ? ercItem->GetMainItemSheetPath()
436 msg = getItemDesc( schEditFrame->
GetItem( ercItem->GetAuxItemID() ),
437 ercItem->AuxItemHasSheetPath() ? ercItem->GetAuxItemSheetPath()
442 msg = getItemDesc( schEditFrame->
GetItem( ercItem->GetAuxItem2ID() ),
447 msg = getItemDesc( schEditFrame->
GetItem( ercItem->GetAuxItem3ID() ),
458 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...
Marker are mainly used to show a DRC or ERC error or warning.
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.
Some functions to handle hotkeys in KiCad.