CADSTAR Schematic Archive Importer: Parse missing TERMATTR node
This commit is contained in:
parent
8633410bec
commit
73ad503db3
|
@ -455,7 +455,7 @@ void CADSTAR_SCH_ARCHIVE_PARSER::COMP::Parse( XNODE* aNode )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
THROW_UNKNOWN_NODE_IO_ERROR( cNode->GetName(), wxT( "ATTR" ) );
|
THROW_UNKNOWN_NODE_IO_ERROR( cNode->GetName(), aNode->GetName() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -482,7 +482,31 @@ void CADSTAR_SCH_ARCHIVE_PARSER::PARTREF::Parse( XNODE* aNode )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
THROW_UNKNOWN_NODE_IO_ERROR( cNode->GetName(), wxT( "ATTR" ) );
|
THROW_UNKNOWN_NODE_IO_ERROR( cNode->GetName(), aNode->GetName() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CADSTAR_SCH_ARCHIVE_PARSER::TERMATTR::Parse( XNODE* aNode )
|
||||||
|
{
|
||||||
|
wxCHECK( aNode->GetName() == wxT( "TERMATTR" ), /* void */ );
|
||||||
|
|
||||||
|
TerminalID = GetXmlAttributeIDLong( aNode, 0 );
|
||||||
|
|
||||||
|
XNODE* cNode = aNode->GetChildren();
|
||||||
|
bool attrParsed = false;
|
||||||
|
|
||||||
|
for( ; cNode; cNode = cNode->GetNext() )
|
||||||
|
{
|
||||||
|
if( !attrParsed && cNode->GetName() == wxT( "ATTR" ) )
|
||||||
|
{
|
||||||
|
Value.Parse( cNode );
|
||||||
|
attrParsed = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
THROW_UNKNOWN_NODE_IO_ERROR( cNode->GetName(), aNode->GetName() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -506,7 +530,7 @@ void CADSTAR_SCH_ARCHIVE_PARSER::SYMPINNAME_LABEL::Parse( XNODE* aNode )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
THROW_UNKNOWN_NODE_IO_ERROR( cNode->GetName(), wxT( "ATTR" ) );
|
THROW_UNKNOWN_NODE_IO_ERROR( cNode->GetName(), aNode->GetName() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -530,7 +554,7 @@ void CADSTAR_SCH_ARCHIVE_PARSER::SYMBOL::PIN_NUM::Parse( XNODE* aNode )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
THROW_UNKNOWN_NODE_IO_ERROR( cNode->GetName(), wxT( "ATTR" ) );
|
THROW_UNKNOWN_NODE_IO_ERROR( cNode->GetName(), aNode->GetName() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -666,6 +690,12 @@ void CADSTAR_SCH_ARCHIVE_PARSER::SYMBOL::Parse( XNODE* aNode )
|
||||||
IsSymbolVariant = true;
|
IsSymbolVariant = true;
|
||||||
SymbolVariant.Parse( cNode );
|
SymbolVariant.Parse( cNode );
|
||||||
}
|
}
|
||||||
|
else if( cNodeName == wxT( "TERMATTR" ) )
|
||||||
|
{
|
||||||
|
TERMATTR termattr;
|
||||||
|
termattr.Parse( cNode );
|
||||||
|
TerminalAttributes.insert( std::make_pair( termattr.TerminalID, termattr ) );
|
||||||
|
}
|
||||||
else if( cNodeName == wxT( "SYMPINLABEL" ) )
|
else if( cNodeName == wxT( "SYMPINLABEL" ) )
|
||||||
{
|
{
|
||||||
SYMPINNAME_LABEL sympinname;
|
SYMPINNAME_LABEL sympinname;
|
||||||
|
|
|
@ -194,6 +194,15 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
struct TERMATTR
|
||||||
|
{
|
||||||
|
TERMINAL_ID TerminalID;
|
||||||
|
ATTRIBUTE_VALUE Value;
|
||||||
|
|
||||||
|
void Parse( XNODE* aNode );
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
struct SYMPINNAME_LABEL
|
struct SYMPINNAME_LABEL
|
||||||
{
|
{
|
||||||
TERMINAL_ID TerminalID;
|
TERMINAL_ID TerminalID;
|
||||||
|
@ -269,6 +278,7 @@ public:
|
||||||
SYMBOL_ID VariantParentSymbolID = wxEmptyString;
|
SYMBOL_ID VariantParentSymbolID = wxEmptyString;
|
||||||
VARIANT_ID VariantID = wxEmptyString;
|
VARIANT_ID VariantID = wxEmptyString;
|
||||||
|
|
||||||
|
std::map<TERMINAL_ID, TERMATTR> TerminalAttributes;
|
||||||
std::map<TERMINAL_ID, SYMPINNAME_LABEL> PinLabels;
|
std::map<TERMINAL_ID, SYMPINNAME_LABEL> PinLabels;
|
||||||
std::map<TERMINAL_ID, SYMPINNAME_LABEL> PinNames;
|
std::map<TERMINAL_ID, SYMPINNAME_LABEL> PinNames;
|
||||||
std::map<TERMINAL_ID, PIN_NUM> PinNumbers;
|
std::map<TERMINAL_ID, PIN_NUM> PinNumbers;
|
||||||
|
|
Loading…
Reference in New Issue