From e6e50f3c0dce6b8c92b42f1bfde1a0b716f2d5e1 Mon Sep 17 00:00:00 2001 From: charras Date: Thu, 6 Nov 2008 17:55:32 +0000 Subject: [PATCH] solved: minor problem in crossprobing (eeschema to pcbnew) --- include/build_version.h | 4 +-- pcbnew/cross-probing.cpp | 65 +++++++++++++++++++--------------------- 2 files changed, 32 insertions(+), 37 deletions(-) diff --git a/include/build_version.h b/include/build_version.h index 2cc316276e..2b7736c5b6 100644 --- a/include/build_version.h +++ b/include/build_version.h @@ -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 ; diff --git a/pcbnew/cross-probing.cpp b/pcbnew/cross-probing.cpp index 241ed18f6f..7f3b9c6793 100644 --- a/pcbnew/cross-probing.cpp +++ b/pcbnew/cross-probing.cpp @@ -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" @@ -53,21 +59,12 @@ void RemoteCommand( const char* cmdline ) if( module ) msg.Printf( _( "%s found" ), modName.GetData() ); else - msg.Printf( _( "%s not found"), modName.GetData() ); + msg.Printf( _( "%s not found" ), modName.GetData() ); 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,30 +77,28 @@ 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 ); + module = frame->m_Pcb->FindModuleByReference( modName ); if( module ) 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 ); } @@ -156,7 +151,7 @@ void WinEDA_PcbFrame::SendMessageToEESCHEMA( BOARD_ITEM* objectToSync ) case TYPEMODULE: module = (MODULE*) objectToSync; sprintf( cmd, "$PART: \"%s\"", - CONV_TO_UTF8( module->m_Reference->m_Text ) ); + CONV_TO_UTF8( module->m_Reference->m_Text ) ); break; case TYPEPAD: @@ -164,13 +159,13 @@ void WinEDA_PcbFrame::SendMessageToEESCHEMA( BOARD_ITEM* objectToSync ) pad = (D_PAD*) objectToSync; msg = pad->ReturnStringPadName(); sprintf( cmd, "$PART: \"%s\" $PAD: \"%s\"", - CONV_TO_UTF8( module->m_Reference->m_Text ), - CONV_TO_UTF8( msg ) ); + CONV_TO_UTF8( module->m_Reference->m_Text ), + CONV_TO_UTF8( msg ) ); break; case TYPETEXTEMODULE: - #define REFERENCE 0 - #define VALUE 1 + #define REFERENCE 0 + #define VALUE 1 module = (MODULE*) objectToSync->m_Parent; text_mod = (TEXTE_MODULE*) objectToSync; if( text_mod->m_Type == REFERENCE ) @@ -181,9 +176,9 @@ void WinEDA_PcbFrame::SendMessageToEESCHEMA( BOARD_ITEM* objectToSync ) break; sprintf( cmd, "$PART: \"%s\" %s \"%s\"", - CONV_TO_UTF8( module->m_Reference->m_Text ), - text_key, - CONV_TO_UTF8( text_mod->m_Text ) ); + CONV_TO_UTF8( module->m_Reference->m_Text ), + text_key, + CONV_TO_UTF8( text_mod->m_Text ) ); break; default: