KiCad PCB EDA Suite
erc.h
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 (C) 2009 Jean-Pierre Charras, jp.charras at wanadoo.fr
5  * Copyright (C) 2011 Wayne Stambaugh <stambaughw@gmail.com>
6  * Copyright (C) 2009-2020 KiCad Developers, see change_log.txt for contributors.
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, you may find one here:
20  * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
21  * or you may search the http://www.gnu.org website for the version 2 license,
22  * or you may write to the Free Software Foundation, Inc.,
23  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
24  */
25 
30 #ifndef _ERC_H
31 #define _ERC_H
32 
33 #include <erc_settings.h>
34 
35 
36 class NETLIST_OBJECT;
37 class NETLIST_OBJECT_LIST;
38 class SCH_SHEET_LIST;
39 class SCHEMATIC;
40 class DS_PROXY_VIEW_ITEM;
41 
42 
43 extern const wxString CommentERC_H[];
44 extern const wxString CommentERC_V[];
45 
46 
48 {
49 public:
50 
51  ERC_TESTER( SCHEMATIC* aSchematic ) :
52  m_schematic( aSchematic )
53  {
54  }
55 
66  void TestOthersItems( NETLIST_OBJECT_LIST* aList, unsigned aNetItemRef, unsigned aNetStart,
67  int* aMinConnexion );
68 
77  int TestDuplicateSheetNames( bool aCreateMarker );
78 
82  void TestTextVars( DS_PROXY_VIEW_ITEM* aDrawingSheet );
83 
93 
99 
105  int TestNoConnectPins();
106 
111  int TestPinToPin();
112 
118 
123  int TestSimilarLabels();
124 
129  int TestLibSymbolIssues();
130 
131 private:
132 
134 };
135 
136 
137 #endif // _ERC_H
A container for handling SCH_SHEET_PATH objects in a flattened hierarchy.
int TestMultUnitPinConflicts()
Checks if shared pins on multi-unit components have been connected to different nets.
Holds all the data relating to one schematic A schematic may consist of one or more sheets (and one r...
Definition: schematic.h:58
void TestTextVars(DS_PROXY_VIEW_ITEM *aDrawingSheet)
Check for any unresolved text variable references.
const wxString CommentERC_H[]
void TestOthersItems(NETLIST_OBJECT_LIST *aList, unsigned aNetItemRef, unsigned aNetStart, int *aMinConnexion)
Perform ERC testing for electrical conflicts between NetItemRef and other items (mainly pin) on the s...
Definition: erc.h:47
int TestConflictingBusAliases()
Check that there are no conflicting bus alias definitions in the schematic.
int TestMultiunitFootprints()
Test if all units of each multiunit component have the same footprint assigned.
const wxString CommentERC_V[]
int TestLibSymbolIssues()
Test symbols for changed library symbols and broken symbol library links.
ERC_TESTER(SCHEMATIC *aSchematic)
Definition: erc.h:51
int TestPinToPin()
Checks the full netlist against the pin-to-pin connectivity requirements.
SCHEMATIC * m_schematic
Definition: erc.h:133
int TestSimilarLabels()
Checks for labels that differ only in capitalization.
int TestNoConnectPins()
In KiCad 5 and earlier, you could connect stuff up to pins with NC electrical type.
int TestDuplicateSheetNames(bool aCreateMarker)
Inside a given sheet, one cannot have sheets with duplicate names (file names can be duplicated).