* coding standard fixes
* library part not library component (no such thing as a library component)
* string concatenation fix
* and an inline harmless debug/dump function
This commit is contained in:
Dick Hollenbeck 2016-06-24 12:55:54 +02:00 committed by Maciej Suminski
parent c11b0cef99
commit e47f0df068
6 changed files with 46 additions and 24 deletions

View File

@ -187,14 +187,14 @@ void SCH_EDIT_FRAME::AnnotateComponents( bool aAnnotateSchematic,
int SCH_EDIT_FRAME::CheckAnnotate( wxArrayString* aMessageList, bool aOneSheetOnly ) int SCH_EDIT_FRAME::CheckAnnotate( wxArrayString* aMessageList, bool aOneSheetOnly )
{ {
// build the screen list // build the screen list
SCH_SHEET_LIST SheetList( g_RootSheet ); SCH_SHEET_LIST sheetList( g_RootSheet );
SCH_REFERENCE_LIST ComponentsList; SCH_REFERENCE_LIST componentsList;
// Build the list of components // Build the list of components
if( !aOneSheetOnly ) if( !aOneSheetOnly )
SheetList.GetComponents( Prj().SchLibs(), ComponentsList ); sheetList.GetComponents( Prj().SchLibs(), componentsList );
else else
m_CurrentSheet->GetComponents( Prj().SchLibs(), ComponentsList ); m_CurrentSheet->GetComponents( Prj().SchLibs(), componentsList );
return ComponentsList.CheckAnnotation( aMessageList ); return componentsList.CheckAnnotation( aMessageList );
} }

View File

@ -373,7 +373,7 @@ void SCH_REFERENCE_LIST::Annotate( bool aUseSheetNum, int aSheetIntervalId,
} }
// Annotation of one part per package components (trivial case). // Annotation of one part per package components (trivial case).
if( componentFlatList[ii].GetLibComponent()->GetUnitCount() <= 1 ) if( componentFlatList[ii].GetLibPart()->GetUnitCount() <= 1 )
{ {
if( componentFlatList[ii].m_IsNew ) if( componentFlatList[ii].m_IsNew )
{ {
@ -392,7 +392,7 @@ void SCH_REFERENCE_LIST::Annotate( bool aUseSheetNum, int aSheetIntervalId,
} }
// Annotation of multi-unit parts ( n units per part ) (complex case) // Annotation of multi-unit parts ( n units per part ) (complex case)
NumberOfUnits = componentFlatList[ii].GetLibComponent()->GetUnitCount(); NumberOfUnits = componentFlatList[ii].GetLibPart()->GetUnitCount();
if( componentFlatList[ii].m_IsNew ) if( componentFlatList[ii].m_IsNew )
{ {
@ -540,7 +540,7 @@ int SCH_REFERENCE_LIST::CheckAnnotation( wxArrayString* aMessageList )
// Error if unit number selected does not exist ( greater than the number of // Error if unit number selected does not exist ( greater than the number of
// parts in the component ). This can happen if a component has changed in a // parts in the component ). This can happen if a component has changed in a
// library after a previous annotation. // library after a previous annotation.
if( std::max( componentFlatList[ii].GetLibComponent()->GetUnitCount(), 1 ) if( std::max( componentFlatList[ii].GetLibPart()->GetUnitCount(), 1 )
< componentFlatList[ii].m_Unit ) < componentFlatList[ii].m_Unit )
{ {
if( componentFlatList[ii].m_NumRef >= 0 ) if( componentFlatList[ii].m_NumRef >= 0 )
@ -552,7 +552,7 @@ int SCH_REFERENCE_LIST::CheckAnnotation( wxArrayString* aMessageList )
GetChars( componentFlatList[ii].GetRef() ), GetChars( componentFlatList[ii].GetRef() ),
GetChars( tmp ), GetChars( tmp ),
componentFlatList[ii].m_Unit, componentFlatList[ii].m_Unit,
componentFlatList[ii].GetLibComponent()->GetUnitCount() ); componentFlatList[ii].GetLibPart()->GetUnitCount() );
if( aMessageList ) if( aMessageList )
aMessageList->Add( msg ); aMessageList->Add( msg );
@ -609,8 +609,8 @@ int SCH_REFERENCE_LIST::CheckAnnotation( wxArrayString* aMessageList )
/* Test error if units are different but number of parts per package /* Test error if units are different but number of parts per package
* too high (ex U3 ( 1 part) and we find U3B this is an error) */ * too high (ex U3 ( 1 part) and we find U3B this is an error) */
if( componentFlatList[ii].GetLibComponent()->GetUnitCount() if( componentFlatList[ii].GetLibPart()->GetUnitCount()
!= componentFlatList[ii + 1].GetLibComponent()->GetUnitCount() ) != componentFlatList[ii + 1].GetLibPart()->GetUnitCount() )
{ {
if( componentFlatList[ii].m_NumRef >= 0 ) if( componentFlatList[ii].m_NumRef >= 0 )
tmp << componentFlatList[ii].m_NumRef; tmp << componentFlatList[ii].m_NumRef;
@ -694,13 +694,13 @@ int SCH_REFERENCE_LIST::CheckAnnotation( wxArrayString* aMessageList )
} }
SCH_REFERENCE::SCH_REFERENCE( SCH_COMPONENT* aComponent, LIB_PART* aLibComponent, SCH_REFERENCE::SCH_REFERENCE( SCH_COMPONENT* aComponent, LIB_PART* aLibPart,
SCH_SHEET_PATH& aSheetPath ) SCH_SHEET_PATH& aSheetPath )
{ {
wxASSERT( aComponent != NULL && aLibComponent != NULL ); wxASSERT( aComponent != NULL && aLibPart != NULL );
m_RootCmp = aComponent; m_RootCmp = aComponent;
m_Entry = aLibComponent; m_Entry = aLibPart;
m_Unit = aComponent->GetUnitSelection( &aSheetPath ); m_Unit = aComponent->GetUnitSelection( &aSheetPath );
m_SheetPath = aSheetPath; m_SheetPath = aSheetPath;
m_IsNew = false; m_IsNew = false;
@ -712,7 +712,8 @@ SCH_REFERENCE::SCH_REFERENCE( SCH_COMPONENT* aComponent, LIB_PART* aLibComp
if( aComponent->GetRef( &aSheetPath ).IsEmpty() ) if( aComponent->GetRef( &aSheetPath ).IsEmpty() )
aComponent->SetRef( &aSheetPath, wxT( "DefRef?" ) ); aComponent->SetRef( &aSheetPath, wxT( "DefRef?" ) );
SetRef( aComponent->GetRef( &aSheetPath ) ); wxString ref = aComponent->GetRef( &aSheetPath );
SetRef( ref );
m_NumRef = -1; m_NumRef = -1;

View File

@ -529,7 +529,8 @@ void SCH_COMPONENT::SetRef( const SCH_SHEET_PATH* sheet, const wxString& ref )
h_ref += wxT( " " ); h_ref += wxT( " " );
tokenizer.GetNextToken(); // Skip old reference tokenizer.GetNextToken(); // Skip old reference
h_ref += tokenizer.GetNextToken(); // Add part selection h_ref += tokenizer.GetNextToken(); // Add part selection
// Ann the part selection
// Add the part selection
m_PathsAndReferences[ii] = h_ref; m_PathsAndReferences[ii] = h_ref;
notInArray = false; notInArray = false;
} }

View File

@ -66,7 +66,7 @@ class SCH_REFERENCE
bool m_IsNew; ///< True if not yet annotated. bool m_IsNew; ///< True if not yet annotated.
int m_SheetNum; ///< The sheet number for the reference. int m_SheetNum; ///< The sheet number for the reference.
time_t m_TimeStamp; ///< The time stamp for the reference. time_t m_TimeStamp; ///< The time stamp for the reference.
EDA_TEXT* m_Value; ///< The component value of the refernce. It is the EDA_TEXT* m_Value; ///< The component value of the reference. It is the
///< same for all instances. ///< same for all instances.
int m_NumRef; ///< The numeric part of the reference designator. int m_NumRef; ///< The numeric part of the reference designator.
int m_Flag; int m_Flag;
@ -90,12 +90,12 @@ public:
m_SheetNum = 0; m_SheetNum = 0;
} }
SCH_REFERENCE( SCH_COMPONENT* aComponent, LIB_PART* aLibComponent, SCH_REFERENCE( SCH_COMPONENT* aComponent, LIB_PART* aLibComponent,
SCH_SHEET_PATH& aSheetPath ); SCH_SHEET_PATH& aSheetPath );
SCH_COMPONENT* GetComp() const { return m_RootCmp; } SCH_COMPONENT* GetComp() const { return m_RootCmp; }
LIB_PART* GetLibComponent() const { return m_Entry; } LIB_PART* GetLibPart() const { return m_Entry; }
SCH_SHEET_PATH GetSheetPath() const { return m_SheetPath; } SCH_SHEET_PATH GetSheetPath() const { return m_SheetPath; }
@ -438,6 +438,25 @@ public:
*/ */
int GetLastReference( int aIndex, int aMinValue ); int GetLastReference( int aIndex, int aMinValue );
#if defined(DEBUG)
void Show( const char* aPrefix = "" )
{
printf( "%s\n", aPrefix );
for( unsigned i=0; i<componentFlatList.size(); ++i )
{
SCH_REFERENCE& schref = componentFlatList[i];
printf( " [%-2d] ref:%-8s num:%-3d lib_part:%s\n",
i,
schref.m_Ref.c_str(),
schref.m_NumRef,
TO_UTF8( schref.GetLibPart()->GetName() )
);
}
}
#endif
private: private:
/* sort functions used to sort componentFlatList /* sort functions used to sort componentFlatList
*/ */

View File

@ -595,6 +595,6 @@ protected:
}; };
typedef std::vector< SCH_SHEET* > SCH_SHEETS; typedef std::vector< SCH_SHEET* > SCH_SHEETS; // no ownership over contained SCH_SHEETs
#endif /* SCH_SHEEET_H */ #endif // SCH_SHEEET_H

View File

@ -207,7 +207,7 @@ void SCH_SHEET_PATH::AnnotatePowerSymbols( PART_LIBS* aLibs, int* aReference )
refstr.RemoveLast(); refstr.RemoveLast();
if( !refstr.StartsWith( wxT( "#" ) ) ) if( !refstr.StartsWith( wxT( "#" ) ) )
refstr = wxT( "#" ) + refstr; refstr.insert( refstr.begin(), wxChar( '#' ) );
refstr << wxT( "0" ) << ref; refstr << wxT( "0" ) << ref;
component->SetRef( this, refstr ); component->SetRef( this, refstr );
@ -237,7 +237,8 @@ void SCH_SHEET_PATH::GetComponents( PART_LIBS* aLibs, SCH_REFERENCE_LIST& aRefer
if( part ) if( part )
{ {
SCH_REFERENCE reference = SCH_REFERENCE( component, part, *this ); SCH_REFERENCE reference( component, part, *this );
reference.SetSheetNumber( m_pageNumber ); reference.SetSheetNumber( m_pageNumber );
aReferences.AddItem( reference ); aReferences.AddItem( reference );
} }
@ -247,7 +248,7 @@ void SCH_SHEET_PATH::GetComponents( PART_LIBS* aLibs, SCH_REFERENCE_LIST& aRefer
void SCH_SHEET_PATH::GetMultiUnitComponents( PART_LIBS* aLibs, void SCH_SHEET_PATH::GetMultiUnitComponents( PART_LIBS* aLibs,
SCH_MULTI_UNIT_REFERENCE_MAP &aRefList, SCH_MULTI_UNIT_REFERENCE_MAP& aRefList,
bool aIncludePowerSymbols ) bool aIncludePowerSymbols )
{ {