solved: minor problem in crossprobing (eeschema to pcbnew)
This commit is contained in:
parent
8bed5053da
commit
e6e50f3c0d
|
@ -9,7 +9,7 @@ COMMON_GLOBL wxString g_BuildVersion
|
||||||
# include "config.h"
|
# include "config.h"
|
||||||
(wxT(KICAD_SVN_VERSION))
|
(wxT(KICAD_SVN_VERSION))
|
||||||
# else
|
# else
|
||||||
(wxT("(20081019-unstable)")) /* main program version */
|
(wxT("(20081106-unstable)")) /* main program version */
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
@ -20,7 +20,7 @@ COMMON_GLOBL wxString g_BuildAboutVersion
|
||||||
# include "config.h"
|
# include "config.h"
|
||||||
(wxT(KICAD_ABOUT_VERSION))
|
(wxT(KICAD_ABOUT_VERSION))
|
||||||
# else
|
# else
|
||||||
(wxT("(20081019-unstable)")) /* svn date & rev (normally overridden) */
|
(wxT("(20081106-unstable)")) /* svn date & rev (normally overridden) */
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
|
|
@ -3,6 +3,12 @@
|
||||||
/*****************************************************************/
|
/*****************************************************************/
|
||||||
|
|
||||||
/* cross-probing.cpp */
|
/* cross-probing.cpp */
|
||||||
|
/** Handle messages between pcbnew and eeschema via a socket,
|
||||||
|
* the port number is
|
||||||
|
* KICAD_PCB_PORT_SERVICE_NUMBER (currently 4242) (eeschema to pcbnew)
|
||||||
|
* KICAD_SCH_PORT_SERVICE_NUMBER (currently 4243) (pcbnew to eeschema)
|
||||||
|
* Note: these ports must be enabled for firewall protection
|
||||||
|
*/
|
||||||
|
|
||||||
#include "fctsys.h"
|
#include "fctsys.h"
|
||||||
|
|
||||||
|
@ -53,21 +59,12 @@ void RemoteCommand( const char* cmdline )
|
||||||
if( module )
|
if( module )
|
||||||
msg.Printf( _( "%s found" ), modName.GetData() );
|
msg.Printf( _( "%s found" ), modName.GetData() );
|
||||||
else
|
else
|
||||||
msg.Printf( _( "%s not found"), modName.GetData() );
|
msg.Printf( _( "%s not found" ), modName.GetData() );
|
||||||
|
|
||||||
frame->Affiche_Message( msg );
|
frame->Affiche_Message( msg );
|
||||||
if( module )
|
if( module )
|
||||||
{
|
|
||||||
wxClientDC dc( frame->DrawPanel );
|
|
||||||
|
|
||||||
frame->DrawPanel->PrepareGraphicContext( &dc );
|
|
||||||
frame->DrawPanel->CursorOff( &dc );
|
|
||||||
frame->GetScreen()->m_Curseur = module->GetPosition();
|
frame->GetScreen()->m_Curseur = module->GetPosition();
|
||||||
frame->DrawPanel->CursorOn( &dc );
|
|
||||||
frame->SetCurItem( module );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if( strcmp( idcmd, "$PIN:" ) == 0 )
|
else if( strcmp( idcmd, "$PIN:" ) == 0 )
|
||||||
{
|
{
|
||||||
wxString pinName;
|
wxString pinName;
|
||||||
|
@ -80,30 +77,28 @@ void RemoteCommand( const char* cmdline )
|
||||||
if( text && strcmp( text, "$PART:" ) == 0 )
|
if( text && strcmp( text, "$PART:" ) == 0 )
|
||||||
text = strtok( NULL, "\n\r" );
|
text = strtok( NULL, "\n\r" );
|
||||||
|
|
||||||
wxClientDC dc( frame->DrawPanel );
|
|
||||||
|
|
||||||
frame->DrawPanel->PrepareGraphicContext( &dc );
|
|
||||||
|
|
||||||
modName = CONV_FROM_UTF8( text );
|
modName = CONV_FROM_UTF8( text );
|
||||||
|
|
||||||
module = frame->m_Pcb->FindModuleByReference( modName );
|
module = frame->m_Pcb->FindModuleByReference( modName );
|
||||||
if( module )
|
if( module )
|
||||||
pad = module->FindPadByName( pinName );
|
pad = module->FindPadByName( pinName );
|
||||||
|
|
||||||
if( pad )
|
if( pad )
|
||||||
netcode = pad->GetNet();
|
|
||||||
|
|
||||||
if( netcode > 0 ) /* hightlighted the net selected net*/
|
|
||||||
{
|
{
|
||||||
if( g_HightLigt_Status ) /* erase the old hightlighted net */
|
netcode = pad->GetNet();
|
||||||
frame->Hight_Light( &dc );
|
// put cursor on the pad:
|
||||||
|
|
||||||
g_HightLigth_NetCode = netcode;
|
|
||||||
frame->Hight_Light( &dc ); /* hightlighted the new one */
|
|
||||||
|
|
||||||
frame->DrawPanel->CursorOff( &dc );
|
|
||||||
frame->GetScreen()->m_Curseur = pad->GetPosition();
|
frame->GetScreen()->m_Curseur = pad->GetPosition();
|
||||||
frame->DrawPanel->CursorOn( &dc );
|
}
|
||||||
|
|
||||||
|
if( netcode > 0 ) /* highlight the pad net*/
|
||||||
|
{
|
||||||
|
g_HightLigt_Status = 1;
|
||||||
|
g_HightLigth_NetCode = netcode;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g_HightLigt_Status = 0;
|
||||||
|
g_HightLigth_NetCode = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( module == NULL )
|
if( module == NULL )
|
||||||
|
@ -122,7 +117,7 @@ void RemoteCommand( const char* cmdline )
|
||||||
frame->Affiche_Message( msg );
|
frame->Affiche_Message( msg );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( module ) // if found, center the module on screen.
|
if( module ) // if found, center the module on screen, and redraw the screen.
|
||||||
frame->Recadre_Trace( false );
|
frame->Recadre_Trace( false );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -156,7 +151,7 @@ void WinEDA_PcbFrame::SendMessageToEESCHEMA( BOARD_ITEM* objectToSync )
|
||||||
case TYPEMODULE:
|
case TYPEMODULE:
|
||||||
module = (MODULE*) objectToSync;
|
module = (MODULE*) objectToSync;
|
||||||
sprintf( cmd, "$PART: \"%s\"",
|
sprintf( cmd, "$PART: \"%s\"",
|
||||||
CONV_TO_UTF8( module->m_Reference->m_Text ) );
|
CONV_TO_UTF8( module->m_Reference->m_Text ) );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPEPAD:
|
case TYPEPAD:
|
||||||
|
@ -164,13 +159,13 @@ void WinEDA_PcbFrame::SendMessageToEESCHEMA( BOARD_ITEM* objectToSync )
|
||||||
pad = (D_PAD*) objectToSync;
|
pad = (D_PAD*) objectToSync;
|
||||||
msg = pad->ReturnStringPadName();
|
msg = pad->ReturnStringPadName();
|
||||||
sprintf( cmd, "$PART: \"%s\" $PAD: \"%s\"",
|
sprintf( cmd, "$PART: \"%s\" $PAD: \"%s\"",
|
||||||
CONV_TO_UTF8( module->m_Reference->m_Text ),
|
CONV_TO_UTF8( module->m_Reference->m_Text ),
|
||||||
CONV_TO_UTF8( msg ) );
|
CONV_TO_UTF8( msg ) );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TYPETEXTEMODULE:
|
case TYPETEXTEMODULE:
|
||||||
#define REFERENCE 0
|
#define REFERENCE 0
|
||||||
#define VALUE 1
|
#define VALUE 1
|
||||||
module = (MODULE*) objectToSync->m_Parent;
|
module = (MODULE*) objectToSync->m_Parent;
|
||||||
text_mod = (TEXTE_MODULE*) objectToSync;
|
text_mod = (TEXTE_MODULE*) objectToSync;
|
||||||
if( text_mod->m_Type == REFERENCE )
|
if( text_mod->m_Type == REFERENCE )
|
||||||
|
@ -181,9 +176,9 @@ void WinEDA_PcbFrame::SendMessageToEESCHEMA( BOARD_ITEM* objectToSync )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
sprintf( cmd, "$PART: \"%s\" %s \"%s\"",
|
sprintf( cmd, "$PART: \"%s\" %s \"%s\"",
|
||||||
CONV_TO_UTF8( module->m_Reference->m_Text ),
|
CONV_TO_UTF8( module->m_Reference->m_Text ),
|
||||||
text_key,
|
text_key,
|
||||||
CONV_TO_UTF8( text_mod->m_Text ) );
|
CONV_TO_UTF8( text_mod->m_Text ) );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in New Issue