Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
8d777fc6
Commit
8d777fc6
authored
Jul 30, 2010
by
Dick Hollenbeck
Browse files
Options
Browse Files
Download
Plain Diff
Merge new generic netlist work, code cleaning, and BOM fixes
parents
217efaa8
4eb80203
Changes
12
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
865 additions
and
587 deletions
+865
-587
CHANGELOG.txt
CHANGELOG.txt
+14
-0
CMakeLists.txt
CMakeLists.txt
+2
-2
annotate.cpp
eeschema/annotate.cpp
+81
-43
build_BOM.cpp
eeschema/build_BOM.cpp
+224
-183
class_drawsheetpath.cpp
eeschema/class_drawsheetpath.cpp
+0
-6
class_drawsheetpath.h
eeschema/class_drawsheetpath.h
+51
-41
class_sch_cmp_field.cpp
eeschema/class_sch_cmp_field.cpp
+0
-12
class_sch_cmp_field.h
eeschema/class_sch_cmp_field.h
+11
-2
class_sch_component.h
eeschema/class_sch_component.h
+1
-1
dialog_build_BOM.h
eeschema/dialog_build_BOM.h
+22
-10
netform.cpp
eeschema/netform.cpp
+431
-283
netlist.h
eeschema/netlist.h
+28
-4
No files found.
CHANGELOG.txt
View file @
8d777fc6
...
...
@@ -4,6 +4,20 @@ KiCad ChangeLog 2010
Please add newer entries at the top, list the date and your name with
email address.
2010-Jul-30 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
++eeschema:
* Now link with XML support within wxWidgets.
* Start of export the generic netlist in XML. Still need to rework the chain
loaded netlist plugin.
* OBJ_CMP_TO_LIST class now uses a std::string to hold the 8 bit string m_Ref,
but hides this behind accessors which provide for both Unicode and 8 bit
set and get functions.
* build_BOM.cpp retains the selected filename on subsequent runs as a default.
* Code cleaning, especially in build_BOM.cpp.
* Will work tomorrow also.
2010-jul-27, UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++all:
...
...
CMakeLists.txt
View file @
8d777fc6
...
...
@@ -134,9 +134,9 @@ check_find_package_result(OPENGL_FOUND "OpenGL")
# On Apple only wxwidgets 2.9 or higher doesn't need to find aui part of base
if
(
APPLE
)
find_package
(
wxWidgets COMPONENTS gl adv html core net base QUIET
)
find_package
(
wxWidgets COMPONENTS gl adv html core net base
xml
QUIET
)
else
(
APPLE
)
find_package
(
wxWidgets COMPONENTS gl aui adv html core net base QUIET
)
find_package
(
wxWidgets COMPONENTS gl aui adv html core net base
xml
QUIET
)
endif
(
APPLE
)
check_find_package_result
(
wxWidgets_FOUND
"wxWidgets"
)
...
...
eeschema/annotate.cpp
View file @
8d777fc6
...
...
@@ -381,8 +381,7 @@ int AddComponentsInSheetToList( std::vector <OBJ_CMP_TO_LIST>& aComponentsList,
if
(
DrawLibItem
->
GetRef
(
aSheet
).
IsEmpty
()
)
DrawLibItem
->
SetRef
(
aSheet
,
wxT
(
"DefRef?"
)
);
strncpy
(
new_object
.
m_Reference
,
CONV_TO_UTF8
(
DrawLibItem
->
GetRef
(
aSheet
)
),
32
);
new_object
.
SetRef
(
DrawLibItem
->
GetRef
(
aSheet
)
);
new_object
.
m_NumRef
=
-
1
;
...
...
@@ -409,6 +408,7 @@ static void ReAnnotateComponents( std::vector <OBJ_CMP_TO_LIST>& aComponentsList
/* update the reference numbers */
for
(
unsigned
ii
=
0
;
ii
<
aComponentsList
.
size
();
ii
++
)
{
#if 0
char* Text = aComponentsList[ii].m_Reference;
SCH_COMPONENT* component = aComponentsList[ii].m_RootCmp;
...
...
@@ -419,8 +419,23 @@ static void ReAnnotateComponents( std::vector <OBJ_CMP_TO_LIST>& aComponentsList
component->SetRef( &(aComponentsList[ii].m_SheetPath),
CONV_FROM_UTF8( Text ) );
#else
wxString
ref
=
aComponentsList
[
ii
].
GetRef
();
SCH_COMPONENT
*
component
=
aComponentsList
[
ii
].
m_RootCmp
;
if
(
aComponentsList
[
ii
].
m_NumRef
<
0
)
ref
+=
wxChar
(
'?'
);
else
ref
<<
aComponentsList
[
ii
].
m_NumRef
;
aComponentsList
[
ii
].
SetRef
(
ref
);
component
->
SetRef
(
&
aComponentsList
[
ii
].
m_SheetPath
,
ref
);
#endif
component
->
m_Multi
=
aComponentsList
[
ii
].
m_Unit
;
component
->
SetUnitSelection
(
&
(
aComponentsList
[
ii
].
m_SheetPath
)
,
component
->
SetUnitSelection
(
&
aComponentsList
[
ii
].
m_SheetPath
,
aComponentsList
[
ii
].
m_Unit
);
}
}
...
...
@@ -437,42 +452,58 @@ static void ReAnnotateComponents( std::vector <OBJ_CMP_TO_LIST>& aComponentsList
*/
void
BreakReference
(
std
::
vector
<
OBJ_CMP_TO_LIST
>&
aComponentsList
)
{
char
*
Text
;
std
::
string
refText
;
// construct once outside loop
for
(
unsigned
ii
=
0
;
ii
<
aComponentsList
.
size
();
ii
++
)
{
aComponentsList
[
ii
].
m_NumRef
=
-
1
;
Text
=
aComponentsList
[
ii
].
m_Reference
;
int
ll
=
strlen
(
Text
)
-
1
;
if
(
Text
[
ll
]
==
'?'
)
refText
=
aComponentsList
[
ii
].
GetRefStr
();
int
ll
=
refText
.
length
()
-
1
;
if
(
refText
[
ll
]
==
'?'
)
{
aComponentsList
[
ii
].
m_IsNew
=
true
;
if
(
!
aComponentsList
[
ii
].
IsPartsLocked
()
)
aComponentsList
[
ii
].
m_Unit
=
0x7FFFFFFF
;
Text
[
ll
]
=
0
;
continue
;
refText
.
erase
(
ll
);
// delete last char
aComponentsList
[
ii
].
SetRefStr
(
refText
);
}
if
(
isdigit
(
Text
[
ll
]
)
==
0
)
else
if
(
isdigit
(
ref
Text
[
ll
]
)
==
0
)
{
aComponentsList
[
ii
].
m_IsNew
=
true
;
if
(
!
aComponentsList
[
ii
].
IsPartsLocked
()
)
aComponentsList
[
ii
].
m_Unit
=
0x7FFFFFFF
;
continue
;
}
else
{
while
(
ll
>=
0
)
{
if
(
(
Text
[
ll
]
<=
' '
)
||
isdigit
(
Text
[
ll
]
)
)
if
(
(
refText
[
ll
]
<=
' '
)
||
isdigit
(
ref
Text
[
ll
]
)
)
ll
--
;
else
{
if
(
isdigit
(
Text
[
ll
+
1
]
)
)
aComponentsList
[
ii
].
m_NumRef
=
atoi
(
&
Text
[
ll
+
1
]
);
Text
[
ll
+
1
]
=
0
;
if
(
isdigit
(
refText
[
ll
+
1
]
)
)
{
// nul terminated C string into cp
const
char
*
cp
=
refText
.
c_str
()
+
ll
+
1
;
aComponentsList
[
ii
].
m_NumRef
=
atoi
(
cp
);
}
refText
.
erase
(
ll
+
1
);
// delete from ll+1 to end
break
;
}
}
aComponentsList
[
ii
].
SetRefStr
(
refText
);
}
}
}
...
...
@@ -490,7 +521,7 @@ static void ComputeReferenceNumber( std::vector <OBJ_CMP_TO_LIST>& aComponentsLi
*/
for
(
unsigned
ii
=
0
;
ii
<
aComponentsList
.
size
();
ii
++
)
{
if
(
aComponentsList
[
ii
].
m_Reference
[
0
]
==
'#'
)
if
(
aComponentsList
[
ii
].
GetRefStr
()
[
0
]
==
'#'
)
{
aComponentsList
[
ii
].
m_IsNew
=
true
;
aComponentsList
[
ii
].
m_NumRef
=
0
;
...
...
@@ -716,9 +747,9 @@ int WinEDA_SchematicFrame::CheckAnnotate( wxArrayString* aMessageList,
else
Buff
=
wxT
(
"?"
);
cmpref
=
C
ONV_FROM_UTF8
(
ComponentsList
[
ii
].
m_Reference
);
cmpref
=
C
omponentsList
[
ii
].
GetRef
(
);
msg
.
Printf
(
_
(
"item not annotated: %s%s"
),
cmpref
.
GetData
(),
Buff
.
GetData
(
)
);
GetChars
(
cmpref
),
GetChars
(
Buff
)
);
if
(
(
ComponentsList
[
ii
].
m_Unit
>
0
)
&&
(
ComponentsList
[
ii
].
m_Unit
<
0x7FFFFFFF
)
)
...
...
@@ -748,9 +779,10 @@ int WinEDA_SchematicFrame::CheckAnnotate( wxArrayString* aMessageList,
else
Buff
=
wxT
(
"?"
);
cmpref
=
CONV_FROM_UTF8
(
ComponentsList
[
ii
].
m_Reference
);
msg
.
Printf
(
_
(
"Error item %s%s"
),
cmpref
.
GetData
(),
Buff
.
GetData
()
);
cmpref
=
ComponentsList
[
ii
].
GetRef
();
msg
.
Printf
(
_
(
"Error item %s%s"
),
GetChars
(
cmpref
),
GetChars
(
Buff
)
);
Buff
.
Printf
(
_
(
" unit %d and no more than %d parts"
),
ComponentsList
[
ii
].
m_Unit
,
...
...
@@ -789,9 +821,10 @@ int WinEDA_SchematicFrame::CheckAnnotate( wxArrayString* aMessageList,
else
Buff
=
wxT
(
"?"
);
cmpref
=
CONV_FROM_UTF8
(
ComponentsList
[
ii
].
m_Reference
);
cmpref
=
ComponentsList
[
ii
].
GetRef
();
msg
.
Printf
(
_
(
"Multiple item %s%s"
),
cmpref
.
GetData
(),
Buff
.
GetData
(
)
);
GetChars
(
cmpref
),
GetChars
(
Buff
)
);
if
(
(
ComponentsList
[
ii
].
m_Unit
>
0
)
&&
(
ComponentsList
[
ii
].
m_Unit
<
0x7FFFFFFF
)
)
...
...
@@ -819,9 +852,9 @@ int WinEDA_SchematicFrame::CheckAnnotate( wxArrayString* aMessageList,
else
Buff
=
wxT
(
"?"
);
cmpref
=
C
ONV_FROM_UTF8
(
ComponentsList
[
ii
].
m_Reference
);
cmpref
=
C
omponentsList
[
ii
].
GetRef
(
);
msg
.
Printf
(
_
(
"Multiple item %s%s"
),
cmpref
.
GetData
(),
Buff
.
GetData
(
)
);
GetChars
(
cmpref
),
GetChars
(
Buff
)
);
if
(
(
ComponentsList
[
ii
].
m_Unit
>
0
)
&&
(
ComponentsList
[
ii
].
m_Unit
<
0x7FFFFFFF
)
)
...
...
@@ -846,16 +879,17 @@ int WinEDA_SchematicFrame::CheckAnnotate( wxArrayString* aMessageList,
int
next
=
ii
+
1
;
if
(
ComponentsList
[
ii
].
CompareValue
(
ComponentsList
[
next
]
)
!=
0
)
{
wxString
nextcmpref
;
cmpref
=
CONV_FROM_UTF8
(
ComponentsList
[
ii
].
m_Reference
);
nextcmpref
=
CONV_FROM_UTF8
(
ComponentsList
[
next
].
m_Reference
);
wxString
nextcmpref
=
ComponentsList
[
next
].
GetRef
();
cmpref
=
ComponentsList
[
ii
].
GetRef
();
#if defined(KICAD_GOST)
msg
.
Printf
(
_
(
"Diff values for %s%d.%c (%s) and %s%d.%c (%s)"
),
cmpref
.
GetData
(),
ComponentsList
[
ii
].
m_NumRef
,
ComponentsList
[
ii
].
m_Unit
+
'1'
-
1
,
ComponentsList
[
ii
].
m_Value
->
GetData
(
),
nextcmpref
.
GetData
(
),
GetChars
(
*
ComponentsList
[
ii
].
m_Value
),
GetChars
(
nextcmpref
),
ComponentsList
[
next
].
m_NumRef
,
ComponentsList
[
next
].
m_Unit
+
'1'
-
1
,
ComponentsList
[
next
].
m_Value
->
GetData
()
);
...
...
@@ -864,11 +898,11 @@ int WinEDA_SchematicFrame::CheckAnnotate( wxArrayString* aMessageList,
cmpref
.
GetData
(),
ComponentsList
[
ii
].
m_NumRef
,
ComponentsList
[
ii
].
m_Unit
+
'A'
-
1
,
ComponentsList
[
ii
].
m_Value
->
GetData
(
),
nextcmpref
.
GetData
(
),
GetChars
(
*
ComponentsList
[
ii
].
m_Value
),
GetChars
(
nextcmpref
),
ComponentsList
[
next
].
m_NumRef
,
ComponentsList
[
next
].
m_Unit
+
'A'
-
1
,
ComponentsList
[
next
].
m_Value
->
GetData
(
)
);
GetChars
(
*
ComponentsList
[
next
].
m_Value
)
);
#endif
if
(
aMessageList
)
...
...
@@ -897,15 +931,19 @@ int WinEDA_SchematicFrame::CheckAnnotate( wxArrayString* aMessageList,
/* Same time stamp found. */
wxString
nextcmpref
;
wxString
full_path
;
full_path
.
Printf
(
wxT
(
"%s%8.8X"
),
ComponentsList
[
ii
].
m_SheetPath
.
Path
().
GetData
(
),
GetChars
(
ComponentsList
[
ii
].
m_SheetPath
.
Path
()
),
ComponentsList
[
ii
].
m_TimeStamp
);
cmpref
=
CONV_FROM_UTF8
(
ComponentsList
[
ii
].
m_Reference
);
nextcmpref
=
CONV_FROM_UTF8
(
ComponentsList
[
ii
+
1
].
m_Reference
);
cmpref
=
ComponentsList
[
ii
].
GetRef
();
nextcmpref
=
ComponentsList
[
ii
+
1
].
GetRef
();
msg
.
Printf
(
_
(
"duplicate time stamp (%s) for %s%d and %s%d"
),
full_path
.
GetData
(),
cmpref
.
GetData
(),
ComponentsList
[
ii
].
m_NumRef
,
nextcmpref
.
GetData
(),
ComponentsList
[
ii
+
1
].
m_NumRef
);
GetChars
(
full_path
),
GetChars
(
cmpref
),
ComponentsList
[
ii
].
m_NumRef
,
GetChars
(
nextcmpref
),
ComponentsList
[
ii
+
1
].
m_NumRef
);
if
(
aMessageList
)
{
aMessageList
->
Add
(
msg
+
wxT
(
"
\n
"
));
...
...
eeschema/build_BOM.cpp
View file @
8d777fc6
This diff is collapsed.
Click to expand it.
eeschema/class_drawsheetpath.cpp
View file @
8d777fc6
...
...
@@ -477,12 +477,6 @@ SCH_SHEET_PATH* SCH_SHEET_LIST::GetSheet( int aIndex )
}
/** Function BuildSheetList
* Build the list of sheets and their sheet path from the aSheet sheet
* if aSheet = g_RootSheet, the full sheet path list (and full sheet list) is
* built
* @param aSheet = the starting sheet to build list
*/
void
SCH_SHEET_LIST
::
BuildSheetList
(
SCH_SHEET
*
aSheet
)
{
if
(
m_List
==
NULL
)
...
...
eeschema/class_drawsheetpath.h
View file @
8d777fc6
...
...
@@ -53,18 +53,15 @@
class
SCH_MARKER
;
/****************************************/
/* class to handle and access to a sheet */
/* a 'path' so to speak.. */
/****************************************/
/*
/**
* Class SCH_SHEET_PATH
* handles access to a sheet by way of a path.
* <p>
* The member m_sheets stores the list of sheets from the first (usually
* g_RootSheet)
* to a given sheet in last position.
* The last sheet is usually the sheet we want to select or reach. So Last()
* return this last sheet
* Others sheets are the "path" from the first to the last sheet
* g_RootSheet) to a given sheet in last position.
* The _last_ sheet is usually the sheet we want to select or reach (which is
* what the function Last() returns).
* Others sheets constitute the "path" from the first to the last sheet.
*/
class
SCH_SHEET_PATH
{
...
...
@@ -77,7 +74,7 @@ public:
public
:
SCH_SHEET_PATH
();
~
SCH_SHEET_PATH
()
{
};
//
~SCH_SHEET_PATH() { };
void
Clear
()
{
...
...
@@ -215,15 +212,14 @@ public:
};
/*******************************************************/
/* Class to handle the list of *Sheets* in a hierarchy */
/*******************************************************/
/* sheets are not unique - can have many sheets with the same
/**
* Class SCH_SHEET_LIST
* handles the list of Sheets in a hiearchy.
* Sheets are not unique, there can be many sheets with the same
* filename and the same SCH_SCREEN reference.
*
t
he schematic (SCH_SCREEN) is shared between these sheets,
*
T
he schematic (SCH_SCREEN) is shared between these sheets,
* and component references are specific to a sheet path.
* When a sheet is entered, component references and sheet number are updated
* When a sheet is entered, component references and sheet number are updated
.
*/
class
SCH_SHEET_LIST
{
...
...
@@ -243,9 +239,12 @@ private:
SCH_SHEET_PATH
m_currList
;
public
:
/* The constructor: build the list of sheets from aSheet.
* If aSheet == NULL (default) build the whole list of sheets in hierarchy
* So usually call it with no param.
/**
* Constructor
* builds the list of sheets from aSheet.
* If aSheet == NULL (default) build the whole list of sheets in hierarchy.
* So usually call it with no parameter.
*/
SCH_SHEET_LIST
(
SCH_SHEET
*
aSheet
=
NULL
);
...
...
@@ -256,40 +255,45 @@ public:
m_List
=
NULL
;
}
/*
* Function GetCount()
/**
* Function GetCount()
* @return the number of sheets in list:
* usually the number of sheets found in the whole hierarchy
*/
int
GetCount
()
{
return
m_count
;
}
/** Function GetFirst
/**
* Function GetFirst
* @return the first item (sheet) in m_List and prepare calls to GetNext()
*/
SCH_SHEET_PATH
*
GetFirst
();
/** Function GetNext
/**
* Function GetNext
* @return the next item (sheet) in m_List or NULL if no more item in
* sheet list
*/
SCH_SHEET_PATH
*
GetNext
();
/**
* Get the last sheet in the sheet list.
* Function GetLast
* returns the last sheet in the sheet list.
*
* @return Last sheet in the list or NULL if sheet list is empty.
*/
SCH_SHEET_PATH
*
GetLast
();
/**
* Get the previous sheet in the sheet list.
* Function GetPrevious
* returns the previous sheet in the sheet list.
*
* @return The previous sheet in the sheet list or NULL if already at the
* beginning of the list.
*/
SCH_SHEET_PATH
*
GetPrevious
();
/** Function GetSheet
/**
* Function GetSheet
* @return the item (sheet) in aIndex position in m_List or NULL if less
* than index items
* @param aIndex = index in sheet list to get the sheet
...
...
@@ -297,7 +301,8 @@ public:
SCH_SHEET_PATH
*
GetSheet
(
int
aIndex
);
/**
* Search the entire schematic for the next schematic object.
* Function FindNextItem
* searches the entire schematic for the next schematic object.
*
* @param aType - The type of schematic item to find.
* @param aSheetFound - The sheet the item was found in. NULL if the next item
...
...
@@ -310,7 +315,8 @@ public:
SCH_ITEM
*
aLastItem
=
NULL
,
bool
aWrap
=
true
);
/**
* Search the entire schematic for the previous schematic item.
* Function FindPreviousItem
* searches the entire schematic for the previous schematic item.
*
* @param aType - The type of schematic item to find.
* @param aSheetFound - The sheet the item was found in. NULL if the previous item
...
...
@@ -323,7 +329,8 @@ public:
SCH_ITEM
*
aLastItem
=
NULL
,
bool
aWrap
=
true
);
/**
* Search the entire schematic for the next item that matches the search criteria.
* Function MatchNextItem
* searches the entire schematic for the next item that matches the search criteria.
*
* @param aSearchData - Criteria to search item against.
* @param aSheetFound - The sheet the item was found in. NULL if the next item
...
...
@@ -337,12 +344,15 @@ public:
private
:
/** Function BuildSheetList
* Build the list of sheets and their sheet path from the aSheet sheet
* if aSheet = g_RootSheet, the full sheet path and sheet list is built
* @param aSheet = the starting sheet from the built is made
/**
* Function BuildSheetList
* builds the list of sheets and their sheet path from \a aSheet.
* If aSheet = g_RootSheet, the full sheet path and sheet list is built
*
* @param aSheet is the starting sheet from which the list is built,
* or NULL indicating that g_RootSheet should be used.
*/
void
BuildSheetList
(
SCH_SHEET
*
sheet
);
};
#endif
/
* CLASS_DRAWSHEET_PATH_H */
#endif /
/ CLASS_DRAWSHEET_PATH_H
eeschema/class_sch_cmp_field.cpp
View file @
8d777fc6
...
...
@@ -216,18 +216,6 @@ void SCH_FIELD::SwapData( SCH_FIELD* copyitem )
}
/**
* return True if the field is void, i.e.:
* contains "~" or ""
*/
bool
SCH_FIELD
::
IsVoid
()
{
if
(
m_Text
.
IsEmpty
()
||
m_Text
==
wxT
(
"~"
)
)
return
true
;
return
false
;
}
/**
* Function GetBoundaryBox()
* @return an EDA_Rect contains the real (user coordinates) boundary box for
...
...
eeschema/class_sch_cmp_field.h
View file @
8d777fc6
...
...
@@ -47,11 +47,20 @@ public:
return
wxT
(
"SCH_FIELD"
);
}
void
Place
(
WinEDA_SchematicFrame
*
frame
,
wxDC
*
DC
);
EDA_Rect
GetBoundaryBox
()
const
;
bool
IsVoid
();
/**
* Function IsVoid
* returns true if the field is either empty or holds "~".
*/
bool
IsVoid
()
{
size_t
len
=
m_Text
.
Len
();
return
len
==
0
||
(
len
==
1
&&
m_Text
[
0
]
==
wxChar
(
'~'
)
);
}
void
SwapData
(
SCH_FIELD
*
copyitem
);
/** Function ImportValues
...
...
eeschema/class_sch_component.h
View file @
8d777fc6
eeschema/dialog_build_BOM.h
View file @
8d777fc6
...
...
@@ -9,6 +9,7 @@
#include "dialog_build_BOM_base.h"
class
DIALOG_BUILD_BOM
:
public
DIALOG_BUILD_BOM_BASE
{
private
:
...
...
@@ -22,30 +23,41 @@ private:
void
OnCancelClick
(
wxCommandEvent
&
event
);
void
SavePreferences
();
void
Init
(
);
void
Init
();
void
Create_BOM_Lists
(
int
aTypeFile
,
bool
aIncludeSubComponents
,
char
aExportSeparatorSymbol
,
bool
aRunBrowser
);
void
GenereListeOfItems
(
const
wxString
&
FullFileName
,
bool
aIncludeSubComponents
);
void
CreateExportList
(
const
wxString
&
FullFileName
,
bool
aIncludeSubComponents
);
void
CreatePartsList
(
const
wxString
&
FullFileName
,
bool
aIncludeSubComponents
);
/**
* Function CreateParstList
* prints a list of components, in a form which can be imported by a
* spreadsheet. Form is:
* cmp value; number of components; <footprint>; <field1>; ...;
* list of references having the same value
*/
void
CreatePartsList
(
const
wxString
&
aFullFileName
,
bool
aIncludeSubComponents
);
int
PrintComponentsListByRef
(
FILE
*
f
,
std
::
vector
<
OBJ_CMP_TO_LIST
>&
aList
,
bool
CompactForm
,
bool
aIncludeSubComponents
);
int
PrintComponentsListByVal
(
FILE
*
f
,
std
::
vector
<
OBJ_CMP_TO_LIST
>&
aList
,
bool
aIncludeSubComponents
);
int
PrintComponentsListByPart
(
FILE
*
f
,
std
::
vector
<
OBJ_CMP_TO_LIST
>&
aList
,
bool
aIncludeSubComponents
);
void
PrintFieldData
(
FILE
*
f
,
SCH_COMPONENT
*
DrawLibItem
,
bool
CompactForm
=
FALSE
);
bool
IsFieldChecked
(
int
aFieldId
);
bool
IsFieldChecked
(
int
aFieldId
);
public
:
DIALOG_BUILD_BOM
(
WinEDA_DrawFrame
*
parent
);
~
DIALOG_BUILD_BOM
()
{};
// ~DIALOG_BUILD_BOM() {};
};
#endif // _DIALOG_BUILD_BOM_H_
#endif
// _DIALOG_BUILD_BOM_H_
eeschema/netform.cpp
View file @
8d777fc6
This diff is collapsed.
Click to expand it.
eeschema/netlist.h
View file @
8d777fc6
...
...
@@ -45,6 +45,11 @@ enum TypeNetForm {
*/
class
OBJ_CMP_TO_LIST
{
private
:
/// Component reference prefix, without number (for IC1, this is IC) )
std
::
string
m_Ref
;
// it's private, use the accessors please
public
:
SCH_COMPONENT
*
m_RootCmp
;
// the component in schematic
LIB_COMPONENT
*
m_Entry
;
// the source component in library
...
...
@@ -57,8 +62,6 @@ public:
* components */
wxString
*
m_Value
;
/* Component value (same for all
* instances) */
char
m_Reference
[
32
];
/* Component reference prefix, without
* number (for IC1, this is IC) ) */
int
m_NumRef
;
/* Reference number (for IC1, this is
* 1) ) depending on sheet path*/
int
m_Flag
;
/* flag for computations */
...
...
@@ -73,11 +76,32 @@ public:
m_TimeStamp
=
0
;
m_IsNew
=
false
;
m_Value
=
NULL
;
m_Reference
[
0
]
=
0
;
m_NumRef
=
0
;
m_Flag
=
0
;
}
/* Some accessors which hide the strategy of how the reference is stored,
thereby making it easy to change that strategy.
*/
void
SetRef
(
const
wxString
&
aReference
)
{
m_Ref
=
CONV_TO_UTF8
(
aReference
);
}
wxString
GetRef
()
const
{
return
CONV_FROM_UTF8
(
m_Ref
.
c_str
()
);
}
void
SetRefStr
(
const
std
::
string
&
aReference
)
{
m_Ref
=
aReference
;
}
const
char
*
GetRefStr
()
const
{
return
m_Ref
.
c_str
();
}
int
CompareValue
(
const
OBJ_CMP_TO_LIST
&
item
)
const
{
...
...
@@ -87,7 +111,7 @@ public:
int
CompareRef
(
const
OBJ_CMP_TO_LIST
&
item
)
const
{
return
strnicmp
(
m_Reference
,
item
.
m_Reference
,
32
);
return
m_Ref
.
compare
(
item
.
m_Ref
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment