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 symbols have been connected to different nets.
Definition: erc.cpp:562
Holds all the data relating to one schematic.
Definition: schematic.h:59
void TestTextVars(DS_PROXY_VIEW_ITEM *aDrawingSheet)
Check for any unresolved text variable references.
Definition: erc.cpp:164
const wxString CommentERC_H[]
Definition: erc.cpp:57
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.
Definition: erc.cpp:282
int TestMultiunitFootprints()
Test if all units of each multiunit symbol have the same footprint assigned.
Definition: erc.cpp:323
const wxString CommentERC_V[]
Definition: erc.cpp:74
int TestLibSymbolIssues()
Test symbols for changed library symbols and broken symbol library links.
Definition: erc.cpp:675
ERC_TESTER(SCHEMATIC *aSchematic)
Definition: erc.h:51
int TestPinToPin()
Checks the full netlist against the pin-to-pin connectivity requirements.
Definition: erc.cpp:431
SCHEMATIC * m_schematic
Definition: erc.h:133
int TestSimilarLabels()
Checks for labels that differ only in capitalization.
Definition: erc.cpp:621
int TestNoConnectPins()
In KiCad 5 and earlier, you could connect stuff up to pins with NC electrical type.
Definition: erc.cpp:389
int TestDuplicateSheetNames(bool aCreateMarker)
Inside a given sheet, one cannot have sheets with duplicate names (file names can be duplicated).
Definition: erc.cpp:118