KiCad PCB EDA Suite
Loading...
Searching...
No Matches
SCH Namespace Reference

Classes

struct  IFACE
 

Functions

static int eeschemaMergeExport (int aKind, const wxString &aAncestor, const wxString &aOurs, const wxString &aTheirs, const wxString &aOutput, bool aInteractive, bool aSingleFile, REPORTER *aReporter)
 
static int eeschemaOpenDiffDialogExport (int aKind, const wxString &aFileA, const wxString &aFileB, const wxString &aLabelA, const wxString &aLabelB, wxWindow *aParent, REPORTER *aReporter)
 
static KICAD_DIFF::DIFF_CANVAS_CONTEXT * eeschemaAttachDiffCanvasesExport (int aKind, const wxString &aFileA, const wxString &aFileB, WIDGET_DIFF_CANVAS *aBefore, WIDGET_DIFF_CANVAS *aAfter, KICAD_DIFF::DOCUMENT_DIFF *aDiff, REPORTER *aReporter)
 
static std::unique_ptr< SCHEMATIC > readSchematicFromFile (const std::string &aFilename)
 
bool generateSchematicNetlist (const wxString &aFilename, std::string &aNetlist, KIWAY *aKiway)
 
static PROJECT * symbolLibraryProject ()
 Return the project whose symbol libraries the kiface-level symbol services work with.
 
static bool footprintReferenceMatches (const LIB_ID &aReference, const LIB_ID &aFootprint)
 Whether a footprint reference names aFootprint.
 
static bool symbolFilterMatchesFootprint (const LIB_SYMBOL &aSymbol, const LIB_ID &aFootprint, FOOTPRINT_USER_MATCH &aMatch)
 Whether any footprint filter of a symbol selects a given footprint.
 
static wxString effectiveFootprintText (const LIB_SYMBOL &aSymbol)
 Return the footprint field text in effect for a symbol.
 
static bool symbolPinMapsBindFootprint (const LIB_SYMBOL &aSymbol, const LIB_ID &aFootprint, FOOTPRINT_USER_MATCH &aMatch)
 Whether one of the pin maps of aSymbol is bound to aFootprint; collects the names of the bound maps in aMatch.
 
static bool symbolFootprintFieldNamesFootprint (const LIB_SYMBOL &aSymbol, const LIB_ID &aFootprint, FOOTPRINT_USER_MATCH &aMatch)
 Whether the footprint field of aSymbol names aFootprint; sets the footprint field flag in aMatch.
 
static std::optional< FOOTPRINT_USER_MATCH > symbolUsesFootprint (const LIB_SYMBOL &aSymbol, const LIB_ID &aFootprint)
 Return how aSymbol uses aFootprint, or nothing when it doesn't.
 
static wxString filterFootprintUsers (const wxString &aQueryJson)
 Find the symbols that select a given footprint somehow (but FP field, filters or pin maps)
 
static bool startSymbolLibraryLoad ()
 Start loading the symbol libraries in the background.
 
static float symbolLibraryLoadProgress ()
 Return how far a background load has got.
 
SCH::IFACE KIFACE_BASE, UNITS_PROVIDER kiface ("eeschema", KIWAY::FACE_SCH)
 

Function Documentation

◆ eeschemaAttachDiffCanvasesExport()

KICAD_DIFF::DIFF_CANVAS_CONTEXT * SCH::eeschemaAttachDiffCanvasesExport ( int aKind,
const wxString & aFileA,
const wxString & aFileB,
WIDGET_DIFF_CANVAS * aBefore,
WIDGET_DIFF_CANVAS * aAfter,
KICAD_DIFF::DOCUMENT_DIFF * aDiff,
REPORTER * aReporter )
static

Definition at line 849 of file eeschema.cpp.

References kiface().

Referenced by SCH::IFACE::IfaceOrAddress().

◆ eeschemaMergeExport()

int SCH::eeschemaMergeExport ( int aKind,
const wxString & aAncestor,
const wxString & aOurs,
const wxString & aTheirs,
const wxString & aOutput,
bool aInteractive,
bool aSingleFile,
REPORTER * aReporter )
static

Definition at line 830 of file eeschema.cpp.

References kiface().

Referenced by SCH::IFACE::IfaceOrAddress().

◆ eeschemaOpenDiffDialogExport()

int SCH::eeschemaOpenDiffDialogExport ( int aKind,
const wxString & aFileA,
const wxString & aFileB,
const wxString & aLabelA,
const wxString & aLabelB,
wxWindow * aParent,
REPORTER * aReporter )
static

Definition at line 840 of file eeschema.cpp.

References kiface().

Referenced by SCH::IFACE::IfaceOrAddress().

◆ effectiveFootprintText()

static wxString SCH::effectiveFootprintText ( const LIB_SYMBOL & aSymbol)
static

Return the footprint field text in effect for a symbol.

As in LIB_SYMBOL::Flatten(), the nearest non-empty footprint field in the inheritance chain wins.

Definition at line 293 of file eeschema.cpp.

References FOOTPRINT, and LIB_SYMBOL::GetField().

Referenced by symbolFootprintFieldNamesFootprint().

◆ filterFootprintUsers()

static wxString SCH::filterFootprintUsers ( const wxString & aQueryJson)
static

Find the symbols that select a given footprint somehow (but FP field, filters or pin maps)

Input JSON format: the object written by FOOTPRINT_USERS_QUERY::ToJsonStr()

Output JSON format: the object written by FOOTPRINT_USERS_RESULT::ToJsonStr()

Refer to FOOTPRINT_USERS_QUERY and FOOTPRINT_USERS_RESULT for semantics of the query and result fields.

Parameters
aQueryJsonJSON string with the query parameters
Returns
JSON string describing the matching symbol LIB_IDs

Definition at line 394 of file eeschema.cpp.

References LIBRARY_MANAGER_ADAPTER::AsyncLoad(), LIBRARY_MANAGER_ADAPTER::BlockUntilLoaded(), UTF8::empty(), FOOTPRINT_USERS_QUERY::FromJsonStr(), LIB_ID::GetLibItemName(), LIBRARY_MANAGER_ADAPTER::GetLibraryNames(), SYMBOL_LIBRARY_ADAPTER::GetSymbols(), FOOTPRINT_USERS_QUERY::m_Footprint, FOOTPRINT_USERS_QUERY::m_MatchFilters, FOOTPRINT_USERS_QUERY::m_MatchFootprintField, FOOTPRINT_USERS_QUERY::m_MatchPinMaps, FOOTPRINT_USERS_QUERY::m_MaxResults, result, PROJECT_SCH::SymbolLibAdapter(), symbolLibraryProject(), and symbolUsesFootprint().

Referenced by SCH::IFACE::IfaceOrAddress().

◆ footprintReferenceMatches()

static bool SCH::footprintReferenceMatches ( const LIB_ID & aReference,
const LIB_ID & aFootprint )
static

Whether a footprint reference names aFootprint.

The library item names must agree:

If both sides have a nickname it must match. If the reference has no nickname it matches any footprint nickname.

Matching is case-insensitive, like the rest of the library item name comparisons.

Definition at line 244 of file eeschema.cpp.

References UTF8::empty(), LIB_ID::GetLibNickname(), LIB_ID::GetUniStringLibItemName(), and LIB_ID::GetUniStringLibNickname().

Referenced by symbolFootprintFieldNamesFootprint(), and symbolPinMapsBindFootprint().

◆ generateSchematicNetlist()

bool SCH::generateSchematicNetlist ( const wxString & aFilename,
std::string & aNetlist,
KIWAY * aKiway )

◆ kiface()

◆ readSchematicFromFile()

◆ startSymbolLibraryLoad()

static bool SCH::startSymbolLibraryLoad ( )
static

Start loading the symbol libraries in the background.

Never blocks.

Definition at line 476 of file eeschema.cpp.

References LIBRARY_MANAGER_ADAPTER::AsyncLoad(), PROJECT_SCH::SymbolLibAdapter(), and symbolLibraryProject().

Referenced by SCH::IFACE::IfaceOrAddress().

◆ symbolFilterMatchesFootprint()

static bool SCH::symbolFilterMatchesFootprint ( const LIB_SYMBOL & aSymbol,
const LIB_ID & aFootprint,
FOOTPRINT_USER_MATCH & aMatch )
static

Whether any footprint filter of a symbol selects a given footprint.

If it does, the matching filter is stored in aMatch.

Definition at line 264 of file eeschema.cpp.

References filter, and LIB_SYMBOL::GetFPFilters().

Referenced by symbolUsesFootprint().

◆ symbolFootprintFieldNamesFootprint()

static bool SCH::symbolFootprintFieldNamesFootprint ( const LIB_SYMBOL & aSymbol,
const LIB_ID & aFootprint,
FOOTPRINT_USER_MATCH & aMatch )
static

Whether the footprint field of aSymbol names aFootprint; sets the footprint field flag in aMatch.

Definition at line 335 of file eeschema.cpp.

References effectiveFootprintText(), footprintReferenceMatches(), FOOTPRINT_USER_MATCH::m_MatchesFootprintField, and LIB_ID::Parse().

Referenced by symbolUsesFootprint().

◆ symbolLibraryLoadProgress()

static float SCH::symbolLibraryLoadProgress ( )
static

Return how far a background load has got.

Never blocks: callers can poll this while showing a loading indication, and only run filterFootprintUsers() (which does wait for the load) after it returns 1.0.

Definition at line 496 of file eeschema.cpp.

Referenced by SCH::IFACE::IfaceOrAddress().

◆ symbolLibraryProject()

static PROJECT * SCH::symbolLibraryProject ( )
static

Return the project whose symbol libraries the kiface-level symbol services work with.

Definition at line 211 of file eeschema.cpp.

References PGM_BASE::GetSettingsManager(), Pgm(), SETTINGS_MANAGER::Prj(), and top().

Referenced by filterFootprintUsers(), kiface(), and startSymbolLibraryLoad().

◆ symbolPinMapsBindFootprint()

static bool SCH::symbolPinMapsBindFootprint ( const LIB_SYMBOL & aSymbol,
const LIB_ID & aFootprint,
FOOTPRINT_USER_MATCH & aMatch )
static

Whether one of the pin maps of aSymbol is bound to aFootprint; collects the names of the bound maps in aMatch.

The pin maps and the associated footprints are a coupled bundle: each association pairs a footprint with the named map that resolves the symbol's pins onto its pads. A symbol that binds a map to the footprint uses that footprint even when its footprint field names something else, or nothing at all.

Definition at line 317 of file eeschema.cpp.

References footprintReferenceMatches(), LIB_SYMBOL::GetEffectiveAssociatedFootprints(), and FOOTPRINT_USER_MATCH::m_MatchedPinMaps.

Referenced by symbolUsesFootprint().

◆ symbolUsesFootprint()

static std::optional< FOOTPRINT_USER_MATCH > SCH::symbolUsesFootprint ( const LIB_SYMBOL & aSymbol,
const LIB_ID & aFootprint )
static

Return how aSymbol uses aFootprint, or nothing when it doesn't.

A symbol can use a footprint in three independent ways: a footprint filter selects it, its footprint field names it, or one of its pin maps is bound to it. The match reports every way that applies, so that the caller can list a symbol for one of them and still say which others it has.

Definition at line 359 of file eeschema.cpp.

References LIB_SYMBOL::GetLibId(), LIB_SYMBOL::GetPinCount(), LIB_SYMBOL::IsDerived(), FOOTPRINT_USER_MATCH::m_IsDerived, FOOTPRINT_USER_MATCH::m_PinCount, FOOTPRINT_USER_MATCH::m_Symbol, symbolFilterMatchesFootprint(), symbolFootprintFieldNamesFootprint(), and symbolPinMapsBindFootprint().

Referenced by filterFootprintUsers().