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 <[email protected]>
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
36class NETLIST_OBJECT;
37class NETLIST_OBJECT_LIST;
38class SCH_SHEET_LIST;
39class SCHEMATIC;
41
42
43extern const wxString CommentERC_H[];
44extern const wxString CommentERC_V[];
45
46
48{
49public:
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
130
135 int TestOffGridEndpoints( int aGridSize );
136
137private:
138
140};
141
142
143#endif // _ERC_H
Definition: erc.h:48
int TestLibSymbolIssues()
Test symbols for changed library symbols and broken symbol library links.
Definition: erc.cpp:701
void TestTextVars(DS_PROXY_VIEW_ITEM *aDrawingSheet)
Check for any unresolved text variable references.
Definition: erc.cpp:167
int TestPinToPin()
Checks the full netlist against the pin-to-pin connectivity requirements.
Definition: erc.cpp:444
int TestSimilarLabels()
Checks for labels that differ only in capitalization.
Definition: erc.cpp:649
int TestDuplicateSheetNames(bool aCreateMarker)
Inside a given sheet, one cannot have sheets with duplicate names (file names can be duplicated).
Definition: erc.cpp:121
int TestMultUnitPinConflicts()
Checks if shared pins on multi-unit symbols have been connected to different nets.
Definition: erc.cpp:591
int TestOffGridEndpoints(int aGridSize)
Test pins and wire ends for being off grid.
Definition: erc.cpp:791
int TestConflictingBusAliases()
Check that there are no conflicting bus alias definitions in the schematic.
Definition: erc.cpp:296
int TestNoConnectPins()
In KiCad 5 and earlier, you could connect stuff up to pins with NC electrical type.
Definition: erc.cpp:402
ERC_TESTER(SCHEMATIC *aSchematic)
Definition: erc.h:51
SCHEMATIC * m_schematic
Definition: erc.h:139
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...
int TestMultiunitFootprints()
Test if all units of each multiunit symbol have the same footprint assigned.
Definition: erc.cpp:337
Holds all the data relating to one schematic.
Definition: schematic.h:60
A container for handling SCH_SHEET_PATH objects in a flattened hierarchy.
const wxString CommentERC_V[]
Definition: erc.cpp:77
const wxString CommentERC_H[]
Definition: erc.cpp:60