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" ),
 
  106        wxT( 
"label_dangling" ) );
 
  109        _HKI( 
"Label connected to only one pin" ),
 
  110        wxT( 
"isolated_pin_label" ) );
 
  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( 
"Ground pin not connected to ground net" ),
 
  162        wxT( 
"ground_pin_not_ground" ) );
 
  165        _HKI( 
"Pin name resembles stacked pin" ),
 
  166        wxT( 
"stacked_pin_name" ) );
 
  169        _HKI( 
"Unresolved text variable" ),
 
  170        wxT( 
"unresolved_variable" ) );
 
  173        _HKI( 
"Undefined netclass" ),
 
  174        wxT( 
"undefined_netclass" ) );
 
  177        _HKI( 
"SPICE model issue" ),
 
  178        wxT( 
"simulation_model_issue" ) );
 
  181        _HKI( 
"Wires not connected to anything" ),
 
  182        wxT( 
"wire_dangling" ) );
 
  185        _HKI( 
"Library symbol issue" ),
 
  186        wxT( 
"lib_symbol_issues" ) );
 
  189        _HKI( 
"Symbol doesn't match copy in library" ),
 
  190        wxT( 
"lib_symbol_mismatch" ) );
 
  193        _HKI( 
"Footprint link issue" ),
 
  194        wxT( 
"footprint_link_issues" ) );
 
  197        _HKI( 
"Assigned footprint doesn't match footprint filters" ),
 
  198        wxT( 
"footprint_filter" ) );
 
  201        _HKI( 
"Symbol is not annotated" ),
 
  202        wxT( 
"unannotated" ) );
 
  205        _HKI( 
"Symbol has more units than are defined" ),
 
  206        wxT( 
"extra_units" ) );
 
  209        _HKI( 
"Symbol has units that are not placed" ),
 
  210        wxT( 
"missing_unit" ) );
 
  213        _HKI( 
"Symbol has input pins that are not placed" ),
 
  214        wxT( 
"missing_input_pin" ) );
 
  217        _HKI( 
"Symbol has bidirectional pins that are not placed" ),
 
  218        wxT( 
"missing_bidi_pin" ) );
 
  221        _HKI( 
"Symbol has power input pins that are not placed" ),
 
  222        wxT( 
"missing_power_pin" ) );
 
  225        _HKI( 
"Units of same symbol have different values" ),
 
  226        wxT( 
"unit_value_mismatch" ) );
 
  229        _HKI( 
"Duplicate reference designators" ),
 
  230        wxT( 
"duplicate_reference" ) );
 
  233        _HKI( 
"Bus Entry needed" ),
 
  234        wxT( 
"bus_entry_needed" ) );
 
  237        _HKI( 
"Unconnected wire endpoint" ),
 
  238        wxT( 
"unconnected_wire_endpoint" ) );
 
  362        wxFAIL_MSG( wxS( 
"Unknown ERC error code" ) );
 
 
  375                               unsigned int aCol )
 const 
  379    std::shared_ptr<ERC_ITEM> ercItem = std::static_pointer_cast<ERC_ITEM>( node->
m_RcItem );
 
  389                if( aSheet != curSheet )
 
  392                    aSheet.UpdateAllScreenReferences();
 
  412            SEVERITY severity = ercItem->GetParent()->GetSeverity();
 
  417                    msg = 
_( 
"Excluded warning: " );
 
  419                    msg = 
_( 
"Excluded error: " );
 
  423                msg = 
_( 
"Warning: " );
 
  427                msg = 
_( 
"Error: " );
 
  431        msg += ercItem->GetErrorMessage();
 
  437            msg = 
_( 
"Drawing Sheet" );
 
  441            msg = getItemDesc( schEditFrame->
ResolveItem( ercItem->GetMainItemID() ),
 
  442                               ercItem->MainItemHasSheetPath() ? ercItem->GetMainItemSheetPath()
 
  449        msg = getItemDesc( schEditFrame->
ResolveItem( ercItem->GetAuxItemID() ),
 
  450                           ercItem->AuxItemHasSheetPath() ? ercItem->GetAuxItemSheetPath()
 
  455        msg = getItemDesc( schEditFrame->
ResolveItem( ercItem->GetAuxItem2ID() ),
 
  460        msg = getItemDesc( schEditFrame->
ResolveItem( ercItem->GetAuxItem3ID() ),
 
  471    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 isolatedPinLabel
 
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 labelDangling
 
static ERC_ITEM differentUnitNet
 
static ERC_ITEM pinTableError
 
static ERC_ITEM similarLabelAndPower
 
static ERC_ITEM groundPinNotGround
 
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 stackedPinName
 
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.
 
SCH_SHEET_PATH & GetCurrentSheet() const
 
EDA_ITEM * ResolveItem(const KIID &aId, bool aAllowNullptrReturn=false) const override
Fetch an item by KIID.
 
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_GROUND_PIN_NOT_GROUND
A ground-labeled pin is not on a ground net while another pin is.
 
@ ERCE_SIMILAR_LABELS
2 labels are equal for case insensitive comparisons.
 
@ ERCE_STACKED_PIN_SYNTAX
Pin name resembles stacked pin notation.
 
@ ERCE_LABEL_NOT_CONNECTED
Label not connected to any pins.
 
@ 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_LABEL_SINGLE_PIN
A label is connected only to a single pin.
 
@ 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_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 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.