solved: minor problem in crossprobing (eeschema to pcbnew)

This commit is contained in:
charras 2008-11-06 17:55:32 +00:00
parent 8bed5053da
commit e6e50f3c0d
2 changed files with 32 additions and 37 deletions

View File

@ -9,7 +9,7 @@ COMMON_GLOBL wxString g_BuildVersion
# include "config.h"
(wxT(KICAD_SVN_VERSION))
# else
(wxT("(20081019-unstable)")) /* main program version */
(wxT("(20081106-unstable)")) /* main program version */
# endif
#endif
;
@ -20,7 +20,7 @@ COMMON_GLOBL wxString g_BuildAboutVersion
# include "config.h"
(wxT(KICAD_ABOUT_VERSION))
# else
(wxT("(20081019-unstable)")) /* svn date & rev (normally overridden) */
(wxT("(20081106-unstable)")) /* svn date & rev (normally overridden) */
# endif
#endif
;

View File

@ -3,6 +3,12 @@
/*****************************************************************/
/* 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"
@ -57,17 +63,8 @@ void RemoteCommand( const char* cmdline )
frame->Affiche_Message( msg );
if( module )
{
wxClientDC dc( frame->DrawPanel );
frame->DrawPanel->PrepareGraphicContext( &dc );
frame->DrawPanel->CursorOff( &dc );
frame->GetScreen()->m_Curseur = module->GetPosition();
frame->DrawPanel->CursorOn( &dc );
frame->SetCurItem( module );
}
}
else if( strcmp( idcmd, "$PIN:" ) == 0 )
{
wxString pinName;
@ -80,10 +77,6 @@ void RemoteCommand( const char* cmdline )
if( text && strcmp( text, "$PART:" ) == 0 )
text = strtok( NULL, "\n\r" );
wxClientDC dc( frame->DrawPanel );
frame->DrawPanel->PrepareGraphicContext( &dc );
modName = CONV_FROM_UTF8( text );
module = frame->m_Pcb->FindModuleByReference( modName );
@ -91,19 +84,21 @@ void RemoteCommand( const char* cmdline )
pad = module->FindPadByName( pinName );
if( pad )
netcode = pad->GetNet();
if( netcode > 0 ) /* hightlighted the net selected net*/
{
if( g_HightLigt_Status ) /* erase the old hightlighted net */
frame->Hight_Light( &dc );
g_HightLigth_NetCode = netcode;
frame->Hight_Light( &dc ); /* hightlighted the new one */
frame->DrawPanel->CursorOff( &dc );
netcode = pad->GetNet();
// put cursor on the pad:
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 )
@ -122,7 +117,7 @@ void RemoteCommand( const char* cmdline )
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 );
}