KiCad PCB EDA Suite
pin_type.h File Reference
#include <wx/arrstr.h>
#include <vector>

Go to the source code of this file.

Macros

#define ELECTRICAL_PINTYPES_TOTAL   ( static_cast<int>( ELECTRICAL_PINTYPE::PT_LAST_OPTION ) + 1 )
 
#define GRAPHIC_PINSHAPES_TOTAL   ( static_cast<int>( GRAPHIC_PINSHAPE::LAST_OPTION ) + 1 )
 

Enumerations

enum class  ELECTRICAL_PINTYPE {
  PT_INPUT , PT_OUTPUT , PT_BIDI , PT_TRISTATE ,
  PT_PASSIVE , PT_NIC , PT_UNSPECIFIED , PT_POWER_IN ,
  PT_POWER_OUT , PT_OPENCOLLECTOR , PT_OPENEMITTER , PT_NC ,
  PT_LAST_OPTION = PT_NC
}
 The symbol library pin object electrical types used in ERC tests. More...
 
enum class  GRAPHIC_PINSHAPE {
  LINE , INVERTED , CLOCK , INVERTED_CLOCK ,
  INPUT_LOW , CLOCK_LOW , OUTPUT_LOW , FALLING_EDGE_CLOCK ,
  NONLOGIC , LAST_OPTION = NONLOGIC
}
 

Functions

wxString PinShapeGetText (GRAPHIC_PINSHAPE shape)
 
BITMAPS PinShapeGetBitmap (GRAPHIC_PINSHAPE shape)
 
wxString ElectricalPinTypeGetText (ELECTRICAL_PINTYPE)
 
BITMAPS ElectricalPinTypeGetBitmap (ELECTRICAL_PINTYPE)
 
wxString PinOrientationName (unsigned aPinOrientationCode)
 
int PinOrientationCode (int index)
 
int PinOrientationIndex (int code)
 
const wxArrayString & PinTypeNames ()
 
const std::vector< BITMAPS > & PinTypeIcons ()
 
const wxArrayString & PinShapeNames ()
 
const std::vector< BITMAPS > & PinShapeIcons ()
 
const wxArrayString & PinOrientationNames ()
 
const std::vector< BITMAPS > & PinOrientationIcons ()
 

Macro Definition Documentation

◆ ELECTRICAL_PINTYPES_TOTAL

#define ELECTRICAL_PINTYPES_TOTAL   ( static_cast<int>( ELECTRICAL_PINTYPE::PT_LAST_OPTION ) + 1 )

Definition at line 53 of file pin_type.h.

◆ GRAPHIC_PINSHAPES_TOTAL

#define GRAPHIC_PINSHAPES_TOTAL   ( static_cast<int>( GRAPHIC_PINSHAPE::LAST_OPTION ) + 1 )

Definition at line 70 of file pin_type.h.

Enumeration Type Documentation

◆ ELECTRICAL_PINTYPE

enum class ELECTRICAL_PINTYPE
strong

The symbol library pin object electrical types used in ERC tests.

Enumerator
PT_INPUT 

usual pin input: must be connected

PT_OUTPUT 

usual output

PT_BIDI 

input or output (like port for a microprocessor)

PT_TRISTATE 

tris state bus pin

PT_PASSIVE 

pin for passive symbols: must be connected, and can be connected to any pin

PT_NIC 

not internally connected (may be connected to anything)

PT_UNSPECIFIED 

unknown electrical properties: creates always a warning when connected

PT_POWER_IN 

power input (GND, VCC for ICs). Must be connected to a power output.

PT_POWER_OUT 

output of a regulator: intended to be connected to power input pins

PT_OPENCOLLECTOR 

pin type open collector

PT_OPENEMITTER 

pin type open emitter

PT_NC 

not connected (must be left open)

PT_LAST_OPTION 

sentinel value, set to last usable enum option

Definition at line 35 of file pin_type.h.

36{
37 PT_INPUT,
38 PT_OUTPUT,
39 PT_BIDI,
42 PT_NIC,
48 PT_NC,
49
51};
@ PT_INPUT
usual pin input: must be connected
@ PT_NC
not connected (must be left open)
@ PT_LAST_OPTION
sentinel value, set to last usable enum option
@ PT_OUTPUT
usual output
@ PT_TRISTATE
tris state bus pin
@ PT_NIC
not internally connected (may be connected to anything)
@ PT_BIDI
input or output (like port for a microprocessor)
@ PT_OPENEMITTER
pin type open emitter
@ PT_POWER_OUT
output of a regulator: intended to be connected to power input pins
@ PT_OPENCOLLECTOR
pin type open collector
@ PT_POWER_IN
power input (GND, VCC for ICs). Must be connected to a power output.
@ PT_UNSPECIFIED
unknown electrical properties: creates always a warning when connected
@ PT_PASSIVE
pin for passive symbols: must be connected, and can be connected to any pin

◆ GRAPHIC_PINSHAPE

enum class GRAPHIC_PINSHAPE
strong
Enumerator
LINE 
INVERTED 
CLOCK 
INVERTED_CLOCK 
INPUT_LOW 
CLOCK_LOW 
OUTPUT_LOW 
FALLING_EDGE_CLOCK 
NONLOGIC 
LAST_OPTION 

this is the sentinel value, must be set to last enum value

Definition at line 55 of file pin_type.h.

56{
57 LINE,
59 CLOCK,
66
68};
std::chrono::steady_clock CLOCK
@ LAST_OPTION
this is the sentinel value, must be set to last enum value

Function Documentation

◆ ElectricalPinTypeGetBitmap()

BITMAPS ElectricalPinTypeGetBitmap ( ELECTRICAL_PINTYPE  aType)

Definition at line 268 of file pin_type.cpp.

269{
270 auto findIt = g_pinTypes.find( aType );
271
272 wxCHECK_MSG( findIt != g_pinTypes.end(), BITMAPS::INVALID_BITMAP, wxT( "Pin type not found!" ) );
273
274 return findIt->second.bitmap;
275}
@ INVALID_BITMAP
std::map< ELECTRICAL_PINTYPE, struct pinTypeStruct > g_pinTypes
Definition: pin_type.cpp:51

References g_pinTypes, and INVALID_BITMAP.

Referenced by LIB_PIN::GetMenuImage(), InitTables(), and PinTypeComboBox::PinTypeComboBox().

◆ ElectricalPinTypeGetText()

wxString ElectricalPinTypeGetText ( ELECTRICAL_PINTYPE  aType)

Definition at line 240 of file pin_type.cpp.

241{
242 if( g_pinTypesLanguage != Pgm().GetSelectedLanguageIdentifier() )
243 {
244 g_pinTypes[ELECTRICAL_PINTYPE::PT_INPUT].name = _( "Input" );
245 g_pinTypes[ELECTRICAL_PINTYPE::PT_OUTPUT].name = _( "Output" );
246 g_pinTypes[ELECTRICAL_PINTYPE::PT_BIDI].name = _( "Bidirectional" );
247 g_pinTypes[ELECTRICAL_PINTYPE::PT_TRISTATE].name = _( "Tri-state" );
248 g_pinTypes[ELECTRICAL_PINTYPE::PT_PASSIVE].name = _( "Passive" );
249 g_pinTypes[ELECTRICAL_PINTYPE::PT_NIC].name = _( "Free" );
250 g_pinTypes[ELECTRICAL_PINTYPE::PT_UNSPECIFIED].name = _( "Unspecified" );
251 g_pinTypes[ELECTRICAL_PINTYPE::PT_POWER_IN].name = _( "Power input" );
252 g_pinTypes[ELECTRICAL_PINTYPE::PT_POWER_OUT].name = _( "Power output" );
253 g_pinTypes[ELECTRICAL_PINTYPE::PT_OPENCOLLECTOR].name = _( "Open collector" );
254 g_pinTypes[ELECTRICAL_PINTYPE::PT_OPENEMITTER].name = _( "Open emitter" );
255 g_pinTypes[ELECTRICAL_PINTYPE::PT_NC].name = _( "Unconnected" );
256
257 g_pinTypesLanguage = Pgm().GetSelectedLanguageIdentifier();
258 }
259
260 auto findIt = g_pinTypes.find( aType );
261
262 wxCHECK_MSG( findIt != g_pinTypes.end(), wxT( "???" ), wxT( "Pin type not found!" ) );
263
264 return findIt->second.name;
265}
#define _(s)
int g_pinTypesLanguage
Definition: pin_type.cpp:67
KIWAY Kiway & Pgm(), KFCTL_STANDALONE
The global Program "get" accessor.
Definition: single_top.cpp:111

References _, g_pinTypes, g_pinTypesLanguage, Pgm(), PT_BIDI, PT_INPUT, PT_NC, PT_NIC, PT_OPENCOLLECTOR, PT_OPENEMITTER, PT_OUTPUT, PT_PASSIVE, PT_POWER_IN, PT_POWER_OUT, PT_TRISTATE, and PT_UNSPECIFIED.

Referenced by LIB_PIN::GetElectricalTypeName(), LIB_PIN::GetMsgPanelInfo(), SCH_PIN::GetMsgPanelInfo(), InitTables(), PinTypeComboBox::PinTypeComboBox(), and ERC_TESTER::TestPinToPin().

◆ PinOrientationCode()

int PinOrientationCode ( int  index)

Definition at line 141 of file pin_type.cpp.

142{
143 if( index >= 0 && index < (int) PIN_ORIENTATION_CNT )
144 return pin_orientation_codes[ index ];
145
146 return PIN_RIGHT;
147}
@ PIN_RIGHT
Definition: lib_pin.h:45
static const int pin_orientation_codes[]
Definition: pin_type.cpp:92
#define PIN_ORIENTATION_CNT
Definition: pin_type.cpp:112

References PIN_ORIENTATION_CNT, pin_orientation_codes, and PIN_RIGHT.

Referenced by DIALOG_PIN_PROPERTIES::OnPropertiesChange(), PIN_TABLE_DATA_MODEL::SetValue(), and DIALOG_PIN_PROPERTIES::TransferDataFromWindow().

◆ PinOrientationIcons()

const std::vector< BITMAPS > & PinOrientationIcons ( )

Definition at line 231 of file pin_type.cpp.

232{
233 if( g_orientationIcons.empty() )
234 InitTables();
235
236 return g_orientationIcons;
237}
static std::vector< BITMAPS > g_orientationIcons
Definition: pin_type.cpp:40
void InitTables()
Definition: pin_type.cpp:164

References g_orientationIcons, and InitTables().

Referenced by DIALOG_LIB_EDIT_PIN_TABLE::DIALOG_LIB_EDIT_PIN_TABLE(), and DIALOG_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES().

◆ PinOrientationIndex()

int PinOrientationIndex ( int  code)

Definition at line 150 of file pin_type.cpp.

151{
152 size_t i;
153
154 for( i = 0; i < PIN_ORIENTATION_CNT; i++ )
155 {
156 if( pin_orientation_codes[i] == code )
157 return (int) i;
158 }
159
160 return wxNOT_FOUND;
161}

References PIN_ORIENTATION_CNT, and pin_orientation_codes.

Referenced by LIB_PIN::GetMsgPanelInfo(), SCH_PIN::GetMsgPanelInfo(), PIN_TABLE_DATA_MODEL::GetValue(), and DIALOG_PIN_PROPERTIES::TransferDataToWindow().

◆ PinOrientationName()

wxString PinOrientationName ( unsigned  aPinOrientationCode)

Definition at line 119 of file pin_type.cpp.

120{
121 /* Note: The following name lists are sentence capitalized per the GNOME UI
122 * standards for list controls. Please do not change the capitalization
123 * of these strings unless the GNOME UI standards are changed.
124 */
125 const wxString pin_orientation_names[] =
126 {
127 _( "Right" ),
128 _( "Left" ),
129 _( "Up" ),
130 _( "Down" ),
131 wxT( "???" )
132 };
133
134 if( aPinOrientationCode > PIN_ORIENTATION_CNT )
135 aPinOrientationCode = PIN_ORIENTATION_CNT;
136
137 return pin_orientation_names[ aPinOrientationCode ];
138}

References _, and PIN_ORIENTATION_CNT.

Referenced by LIB_PIN::GetMsgPanelInfo(), SCH_PIN::GetMsgPanelInfo(), and InitTables().

◆ PinOrientationNames()

const wxArrayString & PinOrientationNames ( )

◆ PinShapeGetBitmap()

BITMAPS PinShapeGetBitmap ( GRAPHIC_PINSHAPE  shape)

Definition at line 288 of file pin_type.cpp.

289{
290 auto findIt = pinShapes.find( aShape );
291
292 wxCHECK_MSG( findIt != pinShapes.end(), BITMAPS::INVALID_BITMAP, wxT( "Pin type not found!" ) );
293
294 return findIt->second.bitmap;
295}
const std::map< GRAPHIC_PINSHAPE, struct pinShapeStruct > pinShapes
Definition: pin_type.cpp:78

References INVALID_BITMAP, and pinShapes.

Referenced by InitTables(), PinShapeComboBox::PinShapeComboBox(), and DIALOG_SIM_MODEL< T_symbol, T_field >::updatePinAssignments().

◆ PinShapeGetText()

wxString PinShapeGetText ( GRAPHIC_PINSHAPE  shape)

Definition at line 278 of file pin_type.cpp.

279{
280 auto findIt = pinShapes.find( aShape );
281
282 wxCHECK_MSG( findIt != pinShapes.end(), wxT( "?" ), wxT( "Pin type not found!" ) );
283
284 return findIt->second.name;
285}

References pinShapes.

Referenced by LIB_PIN::GetItemDescription(), LIB_PIN::GetMsgPanelInfo(), SCH_PIN::GetMsgPanelInfo(), InitTables(), and PinShapeComboBox::PinShapeComboBox().

◆ PinShapeIcons()

const std::vector< BITMAPS > & PinShapeIcons ( )

Definition at line 213 of file pin_type.cpp.

214{
215 if( g_shapeIcons.empty() )
216 InitTables();
217
218 return g_shapeIcons;
219}
static std::vector< BITMAPS > g_shapeIcons
Definition: pin_type.cpp:37

References g_shapeIcons, and InitTables().

Referenced by SCH_PIN_TABLE_DATA_MODEL::BuildAttrs(), DIALOG_LIB_EDIT_PIN_TABLE::DIALOG_LIB_EDIT_PIN_TABLE(), and DIALOG_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES().

◆ PinShapeNames()

◆ PinTypeIcons()

const std::vector< BITMAPS > & PinTypeIcons ( )

Definition at line 195 of file pin_type.cpp.

196{
197 if( g_typeIcons.empty() )
198 InitTables();
199
200 return g_typeIcons;
201}
static std::vector< BITMAPS > g_typeIcons
Definition: pin_type.cpp:34

References g_typeIcons, and InitTables().

Referenced by SCH_PIN_TABLE_DATA_MODEL::BuildAttrs(), DIALOG_LIB_EDIT_PIN_TABLE::DIALOG_LIB_EDIT_PIN_TABLE(), and DIALOG_PIN_PROPERTIES::DIALOG_PIN_PROPERTIES().

◆ PinTypeNames()