altium: add some more pin types, and reverse engineer symbol outer and symbol inner
This commit is contained in:
parent
53d90431ea
commit
30ea1a274e
|
@ -74,8 +74,15 @@ ASCH_PIN::ASCH_PIN( const std::map<wxString, wxString>& aProperties )
|
|||
text = ALTIUM_PARSER::PropertiesReadString( aProperties, "TEXT", "" );
|
||||
designator = ALTIUM_PARSER::PropertiesReadString( aProperties, "DESIGNATOR", "" );
|
||||
|
||||
int symbolOuterInt = ALTIUM_PARSER::PropertiesReadInt( aProperties, "SYMBOL_OUTER", 0 );
|
||||
symbolOuter = static_cast<ASCH_PIN_SYMBOL_OUTER>( symbolOuterInt );
|
||||
|
||||
int symbolInnerInt = ALTIUM_PARSER::PropertiesReadInt( aProperties, "SYMBOL_INNER", 0 );
|
||||
symbolInner = static_cast<ASCH_PIN_SYMBOL_INNER>( symbolInnerInt );
|
||||
|
||||
int symbolOuterEdgeInt = ALTIUM_PARSER::PropertiesReadInt( aProperties, "SYMBOL_OUTEREDGE", 0 );
|
||||
symbolOuterEdge = ( symbolOuterEdgeInt >= 0 && symbolOuterEdgeInt <= 1 ) ?
|
||||
symbolOuterEdge = ( symbolOuterEdgeInt == 0 || symbolOuterEdgeInt == 1
|
||||
|| symbolOuterEdgeInt == 4 || symbolOuterEdgeInt == 17 ) ?
|
||||
static_cast<ASCH_PIN_SYMBOL_OUTEREDGE>( symbolOuterEdgeInt ) :
|
||||
ASCH_PIN_SYMBOL_OUTEREDGE::UNKNOWN;
|
||||
|
||||
|
|
|
@ -93,11 +93,44 @@ struct ASCH_COMPONENT
|
|||
};
|
||||
|
||||
|
||||
enum class ASCH_PIN_SYMBOL_OUTER
|
||||
{
|
||||
UNKNOWN = -1,
|
||||
NO_SYMBOL = 0,
|
||||
RIGHT_LEFT_SIGNAL_FLOW = 2,
|
||||
ANALOG_SIGNAL_IN = 5,
|
||||
NOT_LOGIC_CONNECTION = 6,
|
||||
DIGITAL_SIGNAL_IN = 25,
|
||||
LEFT_RIGHT_SIGNAL_FLOW = 33,
|
||||
BIDI_SIGNAL_FLOW = 34
|
||||
};
|
||||
|
||||
|
||||
enum class ASCH_PIN_SYMBOL_INNER
|
||||
{
|
||||
UNKNOWN = -1,
|
||||
NO_SYMBOL = 0,
|
||||
POSPONED_OUTPUT = 8,
|
||||
OPEN_COLLECTOR = 9,
|
||||
HIZ = 10,
|
||||
HIGH_CURRENT = 11,
|
||||
PULSE = 12,
|
||||
SCHMITT = 13,
|
||||
OPEN_COLLECTOR_PULL_UP = 22,
|
||||
OPEN_EMITTER = 23,
|
||||
OPEN_EMITTER_PULL_UP = 24,
|
||||
SHIFT_LEFT = 30,
|
||||
OPEN_OUTPUT = 32
|
||||
};
|
||||
|
||||
|
||||
enum class ASCH_PIN_SYMBOL_OUTEREDGE
|
||||
{
|
||||
UNKNOWN = -1,
|
||||
NO_SYMBOL = 0,
|
||||
NEGATED = 1,
|
||||
UNKNOWN = -1,
|
||||
NO_SYMBOL = 0,
|
||||
NEGATED = 1,
|
||||
LOW_INPUT = 4,
|
||||
LOW_OUTPUT = 17
|
||||
};
|
||||
|
||||
|
||||
|
@ -142,6 +175,9 @@ struct ASCH_PIN
|
|||
wxString text;
|
||||
wxString designator;
|
||||
|
||||
ASCH_PIN_SYMBOL_OUTER symbolOuter;
|
||||
ASCH_PIN_SYMBOL_INNER symbolInner;
|
||||
|
||||
ASCH_PIN_SYMBOL_OUTEREDGE symbolOuterEdge;
|
||||
ASCH_PIN_SYMBOL_INNEREDGE symbolInnerEdge;
|
||||
|
||||
|
|
|
@ -555,6 +555,22 @@ void SCH_ALTIUM_PLUGIN::ParsePin( const std::map<wxString, wxString>& aPropertie
|
|||
break;
|
||||
}
|
||||
}
|
||||
else if( elem.symbolOuterEdge == ASCH_PIN_SYMBOL_OUTEREDGE::LOW_INPUT )
|
||||
{
|
||||
switch( elem.symbolInnerEdge )
|
||||
{
|
||||
case ASCH_PIN_SYMBOL_INNEREDGE::CLOCK:
|
||||
pin->SetShape( GRAPHIC_PINSHAPE::CLOCK_LOW );
|
||||
break;
|
||||
default:
|
||||
pin->SetShape( GRAPHIC_PINSHAPE::INPUT_LOW );
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if( elem.symbolOuterEdge == ASCH_PIN_SYMBOL_OUTEREDGE::LOW_OUTPUT )
|
||||
{
|
||||
pin->SetShape( GRAPHIC_PINSHAPE::OUTPUT_LOW );
|
||||
}
|
||||
else
|
||||
{
|
||||
switch( elem.symbolInnerEdge )
|
||||
|
|
Loading…
Reference in New Issue