Router recognizes busses of differential pairs
Fixes: lp:1443330 * https://bugs.launchpad.net/kicad/+bug/1443330
This commit is contained in:
parent
d6820bc925
commit
20b4226a25
|
@ -406,40 +406,6 @@ bool DIFF_PAIR_PLACER::SetLayer( int aLayer )
|
|||
}
|
||||
|
||||
|
||||
int DIFF_PAIR_PLACER::matchDpSuffix( wxString aNetName, wxString& aComplementNet, wxString& aBaseDpName )
|
||||
{
|
||||
int rv = 0;
|
||||
|
||||
if( aNetName.EndsWith( "+" ) )
|
||||
{
|
||||
aComplementNet = "-";
|
||||
rv = 1;
|
||||
}
|
||||
else if( aNetName.EndsWith( "_P" ) )
|
||||
{
|
||||
aComplementNet = "_N";
|
||||
rv = 1;
|
||||
}
|
||||
else if( aNetName.EndsWith( "-" ) )
|
||||
{
|
||||
aComplementNet = "+";
|
||||
rv = -1;
|
||||
}
|
||||
else if( aNetName.EndsWith( "_N" ) )
|
||||
{
|
||||
aComplementNet = "_P";
|
||||
rv = -1;
|
||||
}
|
||||
|
||||
if( rv != 0 )
|
||||
{
|
||||
aBaseDpName = aNetName.Left( aNetName.Length() - aComplementNet.Length() );
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
||||
OPT_VECTOR2I DIFF_PAIR_PLACER::getDanglingAnchor( NODE* aNode, ITEM* aItem )
|
||||
{
|
||||
switch( aItem->Kind() )
|
||||
|
|
|
@ -228,7 +228,6 @@ private:
|
|||
|
||||
bool findDpPrimitivePair( const VECTOR2I& aP, ITEM* aItem, DP_PRIMITIVE_PAIR& aPair );
|
||||
OPT_VECTOR2I getDanglingAnchor( NODE* aNode, ITEM* aItem );
|
||||
int matchDpSuffix( wxString aNetName, wxString& aComplementNet, wxString& aBaseDpName );
|
||||
bool attemptWalk( NODE* aNode, DIFF_PAIR* aCurrent, DIFF_PAIR& aWalk, bool aPFirst, bool aWindCw, bool aSolidsOnly );
|
||||
bool propagateDpHeadForces ( const VECTOR2I& aP, VECTOR2I& aNewP );
|
||||
|
||||
|
|
|
@ -233,9 +233,9 @@ int PNS_PCBNEW_RULE_RESOLVER::matchDpSuffix( wxString aNetName, wxString& aCompl
|
|||
aComplementNet = "-";
|
||||
rv = 1;
|
||||
}
|
||||
else if( aNetName.EndsWith( "_P" ) )
|
||||
else if( aNetName.EndsWith( "P" ) )
|
||||
{
|
||||
aComplementNet = "_N";
|
||||
aComplementNet = "N";
|
||||
rv = 1;
|
||||
}
|
||||
else if( aNetName.EndsWith( "-" ) )
|
||||
|
@ -243,12 +243,35 @@ int PNS_PCBNEW_RULE_RESOLVER::matchDpSuffix( wxString aNetName, wxString& aCompl
|
|||
aComplementNet = "+";
|
||||
rv = -1;
|
||||
}
|
||||
else if( aNetName.EndsWith( "_N" ) )
|
||||
else if( aNetName.EndsWith( "N" ) )
|
||||
{
|
||||
aComplementNet = "_P";
|
||||
aComplementNet = "P";
|
||||
rv = -1;
|
||||
}
|
||||
// Match P followed by 2 digits
|
||||
else if( aNetName.Right( 2 ).IsNumber() && aNetName.Right( 3 ).Left( 1 ) == "P" )
|
||||
{
|
||||
aComplementNet = "N" + aNetName.Right( 2 );
|
||||
rv = 1;
|
||||
}
|
||||
// Match P followed by 1 digit
|
||||
else if( aNetName.Right( 1 ).IsNumber() && aNetName.Right( 2 ).Left( 1 ) == "P" )
|
||||
{
|
||||
aComplementNet = "N" + aNetName.Right( 1 );
|
||||
rv = 1;
|
||||
}
|
||||
// Match N followed by 2 digits
|
||||
else if( aNetName.Right( 2 ).IsNumber() && aNetName.Right( 3 ).Left( 1 ) == "N" )
|
||||
{
|
||||
aComplementNet = "P" + aNetName.Right( 2 );
|
||||
rv = -1;
|
||||
}
|
||||
// Match N followed by 1 digit
|
||||
else if( aNetName.Right( 1 ).IsNumber() && aNetName.Right( 2 ).Left( 1 ) == "N" )
|
||||
{
|
||||
aComplementNet = "P" + aNetName.Right( 1 );
|
||||
rv = -1;
|
||||
}
|
||||
|
||||
if( rv != 0 )
|
||||
{
|
||||
aBaseDpName = aNetName.Left( aNetName.Length() - aComplementNet.Length() );
|
||||
|
|
Loading…
Reference in New Issue