Fix annotation of incomplete multi-unit symbols and re-annotation of duplicates

Fixes https://gitlab.com/kicad/code/kicad/-/issues/11496
This commit is contained in:
Roberto Fernandez Bautista 2022-04-17 23:23:22 +02:00
parent c0a9a02591
commit 55f22c526a
17 changed files with 3930 additions and 110 deletions

View File

@ -1,7 +1,7 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2004-2021 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright (C) 2004-2022 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@ -185,10 +185,6 @@ void SCH_EDIT_FRAME::AnnotateSymbols( ANNOTATE_SCOPE_T aAnnotateScope,
// Store previous annotations for building info messages
mapExistingAnnotation( previousAnnotation );
// If it is an annotation for all the symbols, reset previous annotation.
if( aResetAnnotation )
DeleteAnnotation( aAnnotateScope, &appendUndo );
// Set sheet number and number of sheets.
SetSheetNumberAndCount();
@ -208,6 +204,12 @@ void SCH_EDIT_FRAME::AnnotateSymbols( ANNOTATE_SCOPE_T aAnnotateScope,
break;
}
// Remove annotation only updates the "new" flag to indicate to the algorithm
// that these references must be reannotated, but keeps the original reference
// so that we can reannotate multi-unit symbols together.
if( aResetAnnotation )
references.RemoveAnnotation();
// Build additional list of references to be used during reannotation
// to avoid duplicate designators (no additional references when annotating
// the full schematic)

View File

@ -3,7 +3,7 @@
*
* Copyright (C) 1992-2018 jean-pierre Charras <jp.charras at wanadoo.fr>
* Copyright (C) 1992-2011 Wayne Stambaugh <stambaughw@gmail.com>
* Copyright (C) 1992-2021 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright (C) 1992-2022 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@ -29,6 +29,7 @@
*/
#include <sch_reference_list.h>
#include <core/kicad_algo.h>
#include <wx/regex.h>
#include <algorithm>
@ -48,7 +49,7 @@ void SCH_REFERENCE_LIST::RemoveItem( unsigned int aIndex )
}
bool SCH_REFERENCE_LIST::Contains( const SCH_REFERENCE& aItem )
bool SCH_REFERENCE_LIST::Contains( const SCH_REFERENCE& aItem ) const
{
for( unsigned ii = 0; ii < GetCount(); ii++ )
{
@ -154,14 +155,14 @@ bool SCH_REFERENCE_LIST::sortByTimeStamp( const SCH_REFERENCE& item1,
}
int SCH_REFERENCE_LIST::FindUnit( size_t aIndex, int aUnit ) const
int SCH_REFERENCE_LIST::FindUnit( size_t aIndex, int aUnit, bool aIncludeNew ) const
{
int NumRef = flatList[aIndex].m_numRef;
for( size_t ii = 0; ii < flatList.size(); ii++ )
{
if( ( aIndex == ii )
|| ( flatList[ii].m_isNew )
|| ( flatList[ii].m_isNew && !aIncludeNew )
|| ( flatList[ii].m_numRef != NumRef )
|| ( flatList[aIndex].CompareRef( flatList[ii] ) != 0 ) )
continue;
@ -210,34 +211,98 @@ void SCH_REFERENCE_LIST::GetRefsInUse( int aIndex, std::vector< int >& aIdList,
aIdList.push_back( ref.m_numRef );
}
sort( aIdList.begin(), aIdList.end() );
std::sort( aIdList.begin(), aIdList.end() );
// Ensure each reference number appears only once. If there are symbols with
// multiple parts per package the same number will be stored for each part.
std::vector< int >::iterator it = unique( aIdList.begin(), aIdList.end() );
// Using the C++ unique algorithm only moves the duplicate entries to the end of
// of the array. This removes the duplicate entries from the array.
aIdList.resize( it - aIdList.begin() );
alg::remove_duplicates( aIdList );
}
int SCH_REFERENCE_LIST::GetLastReference( int aIndex, int aMinValue ) const
std::vector<int> SCH_REFERENCE_LIST::GetUnitsMatchingRef( const SCH_REFERENCE& aRef ) const
{
int lastNumber = aMinValue;
std::vector<int> unitsList;
// Always add this reference to the list
unitsList.push_back( aRef.m_unit );
for( SCH_REFERENCE ref : flatList )
{
if( ref.CompareValue( aRef ) != 0 )
continue;
if( ref.CompareLibName( aRef ) != 0 )
continue;
// Split if needed before comparing ref and number
if( ref.IsSplitNeeded() )
ref.Split();
if( ref.CompareRef( aRef ) != 0 )
continue;
if( ref.m_numRef != aRef.m_numRef )
continue;
unitsList.push_back( ref.m_unit );
}
std::sort( unitsList.begin(), unitsList.end() );
// Ensure each reference number appears only once. If there are symbols with
// multiple parts per package the same number will be stored for each part.
alg::remove_duplicates( unitsList );
return unitsList;
}
int SCH_REFERENCE_LIST::FindFirstUnusedReference( const SCH_REFERENCE& aRef, int aMinValue,
const std::vector<int>& aRequiredUnits ) const
{
// Create a map of references indexed by reference number, only including those with the same
// reference prefix as aRef
std::map<int, std::vector<SCH_REFERENCE>> refNumberMap;
for( const SCH_REFERENCE& ref : flatList )
{
// search only for the current reference prefix:
if( flatList[aIndex].CompareRef( ref ) != 0 )
if( ref.CompareRef( aRef ) != 0 )
continue;
// update max value for the current reference prefix
if( lastNumber < ref.m_numRef )
lastNumber = ref.m_numRef;
if( ref.m_isNew )
continue; // It will be reannotated
refNumberMap[ref.m_numRef].push_back( ref );
}
return lastNumber;
// Start at the given minimum value
int minFreeNumber = aMinValue;
for( ; refNumberMap[minFreeNumber].size() > 0; ++minFreeNumber )
{
auto isNumberInUse = [&]() -> bool
{
for( const int& unit : aRequiredUnits )
{
for( const SCH_REFERENCE& ref : refNumberMap[minFreeNumber] )
{
if( ref.CompareLibName( aRef ) || ref.CompareValue( aRef )
|| ref.GetUnit() == unit )
{
return true;
}
}
}
return false;
};
if( !isNumberInUse() )
return minFreeNumber;
}
return minFreeNumber;
}
@ -261,7 +326,7 @@ std::vector<SYMBOL_INSTANCE_REFERENCE> SCH_REFERENCE_LIST::GetSymbolInstances()
}
int SCH_REFERENCE_LIST::CreateFirstFreeRefId( std::vector<int>& aIdList, int aFirstValue )
int SCH_REFERENCE_LIST::createFirstFreeRefId( std::vector<int>& aIdList, int aFirstValue )
{
int expectedId = aFirstValue;
@ -327,9 +392,9 @@ void SCH_REFERENCE_LIST::ReannotateDuplicates( const SCH_REFERENCE_LIST& aAdditi
if( refstr[refstr.Len() - 1] == '?' )
continue;
lockedSymbols[refstr].AddItem( ref );
ref.m_isNew = true; // We want to reannotate all references
lockedSymbols[refstr].AddItem( ref );
}
Annotate( false, 0, 0, lockedSymbols, aAdditionalReferences, true );
@ -390,10 +455,6 @@ void SCH_REFERENCE_LIST::Annotate( bool aUseSheetNum, int aSheetIntervalId, int
else
minRefId = aStartNumber + 1;
// This is the list of all Id already in use for a given reference prefix.
// Will be refilled for each new reference prefix.
std::vector<int>idList;
GetRefsInUse( first, idList, minRefId );
for( unsigned ii = 0; ii < flatList.size(); ii++ )
{
@ -435,23 +496,20 @@ void SCH_REFERENCE_LIST::Annotate( bool aUseSheetNum, int aSheetIntervalId, int
minRefId = ref_unit.m_sheetNum * aSheetIntervalId + 1;
else
minRefId = aStartNumber + 1;
GetRefsInUse( first, idList, minRefId );
}
// Find references greater than current reference (unless not annotated)
if( aStartAtCurrent && ref_unit.m_numRef > 0 )
{
minRefId = ref_unit.m_numRef;
GetRefsInUse( first, idList, minRefId );
}
// Annotation of one part per package symbols (trivial case).
if( ref_unit.GetLibPart()->GetUnitCount() <= 1 )
{
if( ref_unit.m_isNew )
{
LastReferenceNumber = CreateFirstFreeRefId( idList, minRefId );
std::vector<int> idList;
GetRefsInUse( first, idList, minRefId );
LastReferenceNumber = createFirstFreeRefId( idList, minRefId );
ref_unit.m_numRef = LastReferenceNumber;
}
@ -463,45 +521,46 @@ void SCH_REFERENCE_LIST::Annotate( bool aUseSheetNum, int aSheetIntervalId, int
// Annotation of multi-unit parts ( n units per part ) (complex case)
NumberOfUnits = ref_unit.GetLibPart()->GetUnitCount();
if( ref_unit.m_isNew )
{
LastReferenceNumber = CreateFirstFreeRefId( idList, minRefId );
ref_unit.m_numRef = LastReferenceNumber;
ref_unit.m_flag = 1;
}
// If this symbol is in aLockedUnitMap, copy the annotation to all
// symbols that are not it
if( lockedList != nullptr )
{
unsigned n_refs = lockedList->GetCount();
std::vector<int> units = lockedList->GetUnitsMatchingRef( ref_unit );
for( unsigned thisRefI = 0; thisRefI < n_refs; ++thisRefI )
if( ref_unit.m_isNew )
{
SCH_REFERENCE &thisRef = (*lockedList)[thisRefI];
LastReferenceNumber = FindFirstUnusedReference( ref_unit, minRefId, units );
ref_unit.m_numRef = LastReferenceNumber;
ref_unit.m_isNew = false;
ref_unit.m_flag = 1;
}
if( thisRef.IsSameInstance( ref_unit ) )
for( unsigned lockedRefI = 0; lockedRefI < n_refs; ++lockedRefI )
{
SCH_REFERENCE& lockedRef = ( *lockedList )[lockedRefI];
if( lockedRef.IsSameInstance( ref_unit ) )
{
// This is the symbol we're currently annotating. Hold the unit!
ref_unit.m_unit = thisRef.m_unit;
ref_unit.m_unit = lockedRef.m_unit;
// lock this new full reference
inUseRefs.insert( buildFullReference( ref_unit ) );
}
if( thisRef.CompareValue( ref_unit ) != 0 )
if( lockedRef.CompareValue( ref_unit ) != 0 )
continue;
if( thisRef.CompareLibName( ref_unit ) != 0 )
if( lockedRef.CompareLibName( ref_unit ) != 0 )
continue;
// Find the matching symbol
for( unsigned jj = ii + 1; jj < flatList.size(); jj++ )
{
if( ! thisRef.IsSameInstance( flatList[jj] ) )
if( !lockedRef.IsSameInstance( flatList[jj] ) )
continue;
wxString ref_candidate = buildFullReference( ref_unit, thisRef.m_unit );
wxString ref_candidate = buildFullReference( ref_unit, lockedRef.m_unit );
// propagate the new reference and unit selection to the "old" symbol,
// if this new full reference is not already used (can happens when initial
@ -518,56 +577,16 @@ void SCH_REFERENCE_LIST::Annotate( bool aUseSheetNum, int aSheetIntervalId, int
}
}
}
else
else if( ref_unit.m_isNew )
{
/* search for others units of this symbol.
* we search for others parts that have the same value and the same
* reference prefix (ref without ref number)
*/
for( Unit = 1; Unit <= NumberOfUnits; Unit++ )
{
if( ref_unit.m_unit == Unit )
continue;
int found = FindUnit( ii, Unit );
if( found >= 0 )
continue; // this unit exists for this reference (unit already annotated)
// Search a symbol to annotate ( same prefix, same value, not annotated)
for( unsigned jj = ii + 1; jj < flatList.size(); jj++ )
{
auto& cmp_unit = flatList[jj];
if( cmp_unit.m_flag ) // already tested
continue;
if( cmp_unit.CompareRef( ref_unit ) != 0 )
continue;
if( cmp_unit.CompareValue( ref_unit ) != 0 )
continue;
if( cmp_unit.CompareLibName( ref_unit ) != 0 )
continue;
if( aUseSheetNum &&
cmp_unit.GetSheetPath().Cmp( ref_unit.GetSheetPath() ) != 0 )
continue;
if( !cmp_unit.m_isNew )
continue;
// Symbol without reference number found, annotate it if possible.
if( cmp_unit.m_unit == Unit )
{
cmp_unit.m_numRef = ref_unit.m_numRef;
cmp_unit.m_flag = 1;
cmp_unit.m_isNew = false;
break;
}
}
}
// Reference belonging to multi-unit symbol that has not yet been annotated. We don't
// know what group this might belong to, so just find the first unused reference for
// this specific unit. The other units will be annotated in the following passes.
std::vector<int> units = { ref_unit.GetUnit() };
LastReferenceNumber = FindFirstUnusedReference( ref_unit, minRefId, units );
ref_unit.m_numRef = LastReferenceNumber;
ref_unit.m_isNew = false;
ref_unit.m_flag = 1;
}
}
@ -824,6 +843,16 @@ void SCH_REFERENCE::Split()
}
bool SCH_REFERENCE::IsSplitNeeded()
{
std::string refText = GetRefStr();
int ll = refText.length() - 1;
return ( refText[ll] == '?' ) || isdigit( refText[ll] );
}
wxString SCH_REFERENCE_LIST::Shorthand( std::vector<SCH_REFERENCE> aList )
{
wxString retVal;

View File

@ -3,7 +3,7 @@
*
* Copyright (C) 1992-2011 jean-pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
* Copyright (C) 2011 Wayne Stambaugh <stambaughw@gmail.com>
* Copyright (C) 1992-2021 KiCad Developers, see AUTHORS.txt for contributors.
* Copyright (C) 1992-2022 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@ -97,6 +97,13 @@ public:
*/
void Split();
/**
* Determine if this reference needs to be split or if it likely already has been
*
* @return true if this reference hasn't been split yet
*/
bool IsSplitNeeded();
void SetRef( const wxString& aReference ) { m_ref = aReference; }
wxString GetRef() const { return m_ref; }
@ -245,7 +252,7 @@ public:
* @param aItem Reference to check
* @return true if aItem exists in this list
*/
bool Contains( const SCH_REFERENCE& aItem );
bool Contains( const SCH_REFERENCE& aItem ) const;
/* Sort functions:
* Sort functions are used to sort symbols for annotation or BOM generation. Because
@ -269,6 +276,17 @@ public:
flatList[ii].Split();
}
/**
* Treat all symbols in this list as non-annotated. Does not update annotation state of the
* symbols.
* @see SCH_REFERENCE_LIST::UpdateAnnotation
*/
void RemoveAnnotation()
{
for( unsigned ii = 0; ii < GetCount(); ii++ )
flatList[ii].m_isNew = true;
}
/**
* Update the symbol references for the schematic project (or the current sheet).
*
@ -410,9 +428,10 @@ public:
*
* @param aIndex is the index in aSymbolsList for of given #SCH_REFERENCE item to test.
* @param aUnit is the given unit number to search.
* @param aIncludeNew true to include references with the "new" flag in the search.
* @return index in aSymbolsList if found or -1 if not found.
*/
int FindUnit( size_t aIndex, int aUnit ) const;
int FindUnit( size_t aIndex, int aUnit, bool aIncludeNew = false ) const;
/**
* Search the list for a symbol with the given KIID path.
@ -430,16 +449,26 @@ public:
* @param aIdList is the buffer to fill.
* @param aMinRefId is the minimum ID value to store. All values < aMinRefId are ignored.
*/
void GetRefsInUse( int aIndex, std::vector< int >& aIdList, int aMinRefId ) const;
void GetRefsInUse( int aIndex, std::vector<int>& aIdList, int aMinRefId ) const;
/**
* Return the last used (greatest) reference number in the reference list for the prefix
* used by the symbol pointed to by \a aIndex. The symbol list must be sorted.
* Return all the unit numbers for a given reference, comparing library reference, value,
* reference number and reference prefix.
*
* @param aRef is the index of a symbol to use for reference prefix and number filtering.
*/
std::vector<int> GetUnitsMatchingRef( const SCH_REFERENCE& aRef ) const;
/**
* Return the first unused reference number from the properties given in aRef, ensuring
* all of the units in aRequiredUnits are also unused.
*
* @param aIndex The index of the reference item used for the search pattern.
* @param aMinValue The minimum value for the current search.
* @param aRequiredUnits List of units to ensure are free
*/
int GetLastReference( int aIndex, int aMinValue ) const;
int FindFirstUnusedReference( const SCH_REFERENCE& aRef, int aMinValue,
const std::vector<int>& aRequiredUnits ) const;
std::vector<SYMBOL_INSTANCE_REFERENCE> GetSymbolInstances() const;
@ -492,7 +521,7 @@ private:
* @param aFirstValue The first expected free value
* @return The first free (not yet used) value.
*/
int CreateFirstFreeRefId( std::vector<int>& aIdList, int aFirstValue );
static int createFirstFreeRefId( std::vector<int>& aIdList, int aFirstValue );
// Used for sorting static sortByTimeStamp function
friend class BACK_ANNOTATE;

View File

@ -175,6 +175,14 @@ void delete_if( _Container& __c, _Function&& __f )
__c.erase( std::remove_if( __c.begin(), __c.end(), std::forward<_Function>( __f ) ), __c.end() );
}
/**
* @brief Deletes all duplicate values from \a __c.
*/
template <class _Container>
void remove_duplicates( _Container& __c )
{
__c.erase( std::unique( __c.begin(), __c.end() ), __c.end() );
}
/**
* @brief Integral version of std::signbit that works all compilers.

View File

@ -0,0 +1,326 @@
{
"board": {
"design_settings": {
"defaults": {
"board_outline_line_width": 0.1,
"copper_line_width": 0.2,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"other_line_width": 0.15,
"silk_line_width": 0.15,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.15
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"rules": {
"min_copper_edge_clearance": 0.0,
"solder_mask_clearance": 0.0,
"solder_mask_min_width": 0.0
},
"track_widths": [],
"via_dimensions": []
},
"layer_presets": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_label_syntax": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"extra_units": "error",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"lib_symbol_issues": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"similar_labels": "warning",
"unannotated": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "test_multiunit_reannotate.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12.0,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.25,
"via_diameter": 0.8,
"via_drill": 0.4,
"wire_width": 6.0
}
],
"meta": {
"version": 2
},
"net_colors": null
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"specctra_dsn": "",
"step": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"drawing": {
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"ngspice": {
"fix_include_paths": true,
"fix_passive_vals": false,
"meta": {
"version": 0
},
"model_mode": 0,
"workbook_filename": ""
},
"page_layout_descr_file": "",
"plot_directory": "",
"spice_adjust_passive_values": false,
"spice_external_command": "spice \"%I\"",
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"e63e39d7-6ac0-4ffd-8aa3-1841a4541b55",
""
]
],
"text_variables": {}
}

View File

@ -0,0 +1,357 @@
(kicad_sch (version 20211123) (generator eeschema)
(uuid e63e39d7-6ac0-4ffd-8aa3-1841a4541b55)
(paper "A4")
(lib_symbols
(symbol "Comparator:LM2903" (pin_names (offset 0.127)) (in_bom yes) (on_board yes)
(property "Reference" "U" (id 0) (at 3.81 3.81 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "LM2903" (id 1) (at 6.35 -3.81 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_locked" "" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "ki_keywords" "cmp open collector" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Low-Power, Low-Offset Voltage, Dual Comparators, DIP-8/SOIC-8/SOP-8/TSSOP-8/VSSOP-8" (id 6) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "SOIC*3.9x4.9mm*P1.27mm* DIP*W7.62mm* SOP*5.28x5.23mm*P1.27mm* VSSOP*3.0x3.0mm*P0.65mm* TSSOP*4.4x3mm*P0.65mm*" (id 7) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "LM2903_1_1"
(polyline
(pts
(xy -5.08 5.08)
(xy 5.08 0)
(xy -5.08 -5.08)
(xy -5.08 5.08)
)
(stroke (width 0.254) (type default) (color 0 0 0 0))
(fill (type background))
)
(polyline
(pts
(xy 3.302 -0.508)
(xy 2.794 -0.508)
(xy 3.302 0)
(xy 2.794 0.508)
(xy 2.286 0)
(xy 2.794 -0.508)
(xy 2.286 -0.508)
)
(stroke (width 0.127) (type default) (color 0 0 0 0))
(fill (type none))
)
(pin open_collector line (at 7.62 0 180) (length 2.54)
(name "~" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin input line (at -7.62 -2.54 0) (length 2.54)
(name "-" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin input line (at -7.62 2.54 0) (length 2.54)
(name "+" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
)
(symbol "LM2903_2_1"
(polyline
(pts
(xy -5.08 5.08)
(xy 5.08 0)
(xy -5.08 -5.08)
(xy -5.08 5.08)
)
(stroke (width 0.254) (type default) (color 0 0 0 0))
(fill (type background))
)
(polyline
(pts
(xy 3.302 -0.508)
(xy 2.794 -0.508)
(xy 3.302 0)
(xy 2.794 0.508)
(xy 2.286 0)
(xy 2.794 -0.508)
(xy 2.286 -0.508)
)
(stroke (width 0.127) (type default) (color 0 0 0 0))
(fill (type none))
)
(pin input line (at -7.62 2.54 0) (length 2.54)
(name "+" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin input line (at -7.62 -2.54 0) (length 2.54)
(name "_" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin open_collector line (at 7.62 0 180) (length 2.54)
(name "~" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
)
(symbol "LM2903_3_1"
(pin power_in line (at -2.54 -7.62 90) (length 3.81)
(name "V-" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at -2.54 7.62 270) (length 3.81)
(name "V+" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
)
)
)
(polyline (pts (xy 86.36 105.41) (xy 168.91 105.41))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 6341adf7-15a3-420c-8496-dc68a5a0f167)
)
(polyline (pts (xy 168.91 105.41) (xy 168.91 134.62))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 67e5abec-f0a1-4faa-829c-13ad7561ae24)
)
(polyline (pts (xy 168.91 134.62) (xy 86.36 134.62))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 9eb2304e-04d2-47fc-8ee5-fccd2e9f90f2)
)
(polyline (pts (xy 86.36 105.41) (xy 86.36 134.62))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid ce581da9-ac1a-4c11-bedb-fb991b651d4d)
)
(text "TO BE REANNOTATED" (at 115.57 133.35 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid 2420fd82-7ec8-4e8a-99d9-d1065447a473)
)
(text "U2B missing" (at 120.65 92.71 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid b008cb3a-bc95-4a80-9811-6665e830944e)
)
(symbol (lib_id "Comparator:LM2903") (at 157.48 91.44 0) (unit 3)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 3f20a749-efe3-4804-8fef-435caaa8dacb)
(property "Reference" "U2" (id 0) (at 156.21 90.1699 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "LM2903" (id 1) (at 156.21 92.7099 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (id 2) (at 157.48 91.44 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 157.48 91.44 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5f091d3c-9b63-4a96-8626-8a903efff083))
(pin "2" (uuid 138f1880-267a-4cf0-89d9-93f27ab943b1))
(pin "3" (uuid 8db72d04-aa4e-4246-8b1e-434f2f787f79))
(pin "5" (uuid d66e67f7-c757-4204-a0b8-2fd904150171))
(pin "6" (uuid 90146c19-1be3-40dc-ab0e-a10af12a19b3))
(pin "7" (uuid 4f28bce8-cbce-4bf4-86e5-c68d6f15e557))
(pin "4" (uuid 25b671c2-8f85-423d-b529-05799bc4badd))
(pin "8" (uuid 435b8f75-555b-4212-8fe2-c343b2a3f9b9))
)
(symbol (lib_id "Comparator:LM2903") (at 157.48 59.69 0) (unit 3)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 4beb5b03-60d3-49da-ad35-51f275a031d5)
(property "Reference" "U1" (id 0) (at 156.21 58.4199 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "" (id 1) (at 156.21 60.9599 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (id 2) (at 157.48 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 157.48 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5f091d3c-9b63-4a96-8626-8a903efff083))
(pin "2" (uuid 138f1880-267a-4cf0-89d9-93f27ab943b1))
(pin "3" (uuid 8db72d04-aa4e-4246-8b1e-434f2f787f79))
(pin "5" (uuid d66e67f7-c757-4204-a0b8-2fd904150171))
(pin "6" (uuid 90146c19-1be3-40dc-ab0e-a10af12a19b3))
(pin "7" (uuid 4f28bce8-cbce-4bf4-86e5-c68d6f15e557))
(pin "4" (uuid 55fea3d7-3338-41ba-9742-415078f59a75))
(pin "8" (uuid 939d2085-ca84-435b-8eaa-0232903653b7))
)
(symbol (lib_id "Comparator:LM2903") (at 99.06 120.65 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid cf058f25-2bad-4c49-a0c4-f059825c427f)
(property "Reference" "U99" (id 0) (at 99.06 110.49 0))
(property "Value" "" (id 1) (at 99.06 113.03 0))
(property "Footprint" "" (id 2) (at 99.06 120.65 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 99.06 120.65 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 4684bd5c-d6ff-4a61-939e-8734e6c74c3a))
(pin "2" (uuid 78f48a94-b821-4b65-8ec6-dd89469e1860))
(pin "3" (uuid f249c2ca-9875-4c92-aeb9-3c4a8a5a3f2a))
(pin "5" (uuid 33aa4306-27d6-4090-96fe-2e0a2a713e0b))
(pin "6" (uuid a631a287-dbe8-4491-9924-f1eeb226bfe0))
(pin "7" (uuid 89bc2a9a-0459-4374-90b7-e699bb20f381))
(pin "4" (uuid 956ad4a4-cb8d-4eef-aba4-03ec6d18e652))
(pin "8" (uuid 1e3e2138-6822-4c2d-8218-89e25ffe3f06))
)
(symbol (lib_id "Comparator:LM2903") (at 99.06 92.71 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid d43a1d25-d37a-467a-8b09-10cf2e2ace09)
(property "Reference" "U2" (id 0) (at 99.06 82.55 0))
(property "Value" "LM2903" (id 1) (at 99.06 85.09 0))
(property "Footprint" "" (id 2) (at 99.06 92.71 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 99.06 92.71 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 2900965f-8b8d-458a-b86a-6e9955743074))
(pin "2" (uuid f37a2c24-4f47-4e4d-9f7f-0bcaef509ec5))
(pin "3" (uuid 5a7f5ba6-06c4-4b39-9065-c4c0d044c803))
(pin "5" (uuid 33aa4306-27d6-4090-96fe-2e0a2a713e0b))
(pin "6" (uuid a631a287-dbe8-4491-9924-f1eeb226bfe0))
(pin "7" (uuid 89bc2a9a-0459-4374-90b7-e699bb20f381))
(pin "4" (uuid 956ad4a4-cb8d-4eef-aba4-03ec6d18e652))
(pin "8" (uuid 1e3e2138-6822-4c2d-8218-89e25ffe3f06))
)
(symbol (lib_id "Comparator:LM2903") (at 157.48 119.38 0) (unit 3)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid db066797-b21c-4c1c-9591-8c7c549f8087)
(property "Reference" "U99" (id 0) (at 156.21 118.1099 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "LM2903" (id 1) (at 156.21 120.6499 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (id 2) (at 157.48 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 157.48 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5f091d3c-9b63-4a96-8626-8a903efff083))
(pin "2" (uuid 138f1880-267a-4cf0-89d9-93f27ab943b1))
(pin "3" (uuid 8db72d04-aa4e-4246-8b1e-434f2f787f79))
(pin "5" (uuid d66e67f7-c757-4204-a0b8-2fd904150171))
(pin "6" (uuid 90146c19-1be3-40dc-ab0e-a10af12a19b3))
(pin "7" (uuid 4f28bce8-cbce-4bf4-86e5-c68d6f15e557))
(pin "4" (uuid 81a0a986-adf1-4b06-8f68-9208105ebae6))
(pin "8" (uuid 7aeda96c-46b8-4006-b414-502a4fefdd07))
)
(symbol (lib_id "Comparator:LM2903") (at 99.06 60.96 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid e09508cd-85e8-48bb-9bcb-9bab32279ab6)
(property "Reference" "U1" (id 0) (at 99.06 50.8 0))
(property "Value" "" (id 1) (at 99.06 53.34 0))
(property "Footprint" "" (id 2) (at 99.06 60.96 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 99.06 60.96 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid b2837d6b-6cc1-45c4-aa75-fd2bb220208e))
(pin "2" (uuid 0bb36be2-ca53-49e2-aeb3-4c5728e3d819))
(pin "3" (uuid a0fa8234-8777-4a66-8b79-9ecbb37d6605))
(pin "5" (uuid 33aa4306-27d6-4090-96fe-2e0a2a713e0b))
(pin "6" (uuid a631a287-dbe8-4491-9924-f1eeb226bfe0))
(pin "7" (uuid 89bc2a9a-0459-4374-90b7-e699bb20f381))
(pin "4" (uuid 956ad4a4-cb8d-4eef-aba4-03ec6d18e652))
(pin "8" (uuid 1e3e2138-6822-4c2d-8218-89e25ffe3f06))
)
(symbol (lib_id "Comparator:LM2903") (at 129.54 59.69 0) (unit 2)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid e0a3a04a-2f9e-4cce-bac0-1a7c08ef4522)
(property "Reference" "U1" (id 0) (at 129.54 49.53 0))
(property "Value" "" (id 1) (at 129.54 52.07 0))
(property "Footprint" "" (id 2) (at 129.54 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 129.54 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5b02613f-efef-4dd0-85cc-be1c896d096d))
(pin "2" (uuid 7d6d569a-7369-4b37-b54d-19f8e663e1c4))
(pin "3" (uuid ab5eedbe-bf43-43a6-87ca-b41cff2974ef))
(pin "5" (uuid 9e9af72c-36cd-4137-88d9-d05214970ed2))
(pin "6" (uuid b42b3d16-0988-4f7b-ad3f-dfc376005ee3))
(pin "7" (uuid 7c15e983-d86d-4112-8b09-d22a0e2aa9db))
(pin "4" (uuid bd03a794-c35b-42b3-a331-b23630dee108))
(pin "8" (uuid 79a4d627-c9cc-4d76-8b31-68992e42badf))
)
(symbol (lib_id "Comparator:LM2903") (at 129.54 119.38 0) (unit 2)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid e6c8127f-e282-4128-8744-05f7893bc3ec)
(property "Reference" "U99" (id 0) (at 129.54 109.22 0))
(property "Value" "" (id 1) (at 129.54 111.76 0))
(property "Footprint" "" (id 2) (at 129.54 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 129.54 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5b02613f-efef-4dd0-85cc-be1c896d096d))
(pin "2" (uuid 7d6d569a-7369-4b37-b54d-19f8e663e1c4))
(pin "3" (uuid ab5eedbe-bf43-43a6-87ca-b41cff2974ef))
(pin "5" (uuid f1cb5557-7e5b-4159-9575-fba45fd2768c))
(pin "6" (uuid 24b5c9f7-542e-4a5e-b548-b99bbce6bbc7))
(pin "7" (uuid 2baf912f-7f66-472f-93b9-411440649bc1))
(pin "4" (uuid bd03a794-c35b-42b3-a331-b23630dee108))
(pin "8" (uuid 79a4d627-c9cc-4d76-8b31-68992e42badf))
)
(sheet_instances
(path "/" (page "1"))
)
(symbol_instances
(path "/e09508cd-85e8-48bb-9bcb-9bab32279ab6"
(reference "U1") (unit 1) (value "LM2903") (footprint "")
)
(path "/e0a3a04a-2f9e-4cce-bac0-1a7c08ef4522"
(reference "U1") (unit 2) (value "LM2903") (footprint "")
)
(path "/4beb5b03-60d3-49da-ad35-51f275a031d5"
(reference "U1") (unit 3) (value "LM2903") (footprint "")
)
(path "/d43a1d25-d37a-467a-8b09-10cf2e2ace09"
(reference "U2") (unit 1) (value "LM2903") (footprint "")
)
(path "/3f20a749-efe3-4804-8fef-435caaa8dacb"
(reference "U2") (unit 3) (value "LM2903") (footprint "")
)
(path "/cf058f25-2bad-4c49-a0c4-f059825c427f"
(reference "U99") (unit 1) (value "LM2903") (footprint "")
)
(path "/e6c8127f-e282-4128-8744-05f7893bc3ec"
(reference "U99") (unit 2) (value "LM2903") (footprint "")
)
(path "/db066797-b21c-4c1c-9591-8c7c549f8087"
(reference "U99") (unit 3) (value "LM2903") (footprint "")
)
)
)

View File

@ -0,0 +1,326 @@
{
"board": {
"design_settings": {
"defaults": {
"board_outline_line_width": 0.1,
"copper_line_width": 0.2,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"other_line_width": 0.15,
"silk_line_width": 0.15,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.15
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"rules": {
"min_copper_edge_clearance": 0.0,
"solder_mask_clearance": 0.0,
"solder_mask_min_width": 0.0
},
"track_widths": [],
"via_dimensions": []
},
"layer_presets": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_label_syntax": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"extra_units": "error",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"lib_symbol_issues": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"similar_labels": "warning",
"unannotated": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "test_multiunit_reannotate.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12.0,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.25,
"via_diameter": 0.8,
"via_drill": 0.4,
"wire_width": 6.0
}
],
"meta": {
"version": 2
},
"net_colors": null
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"specctra_dsn": "",
"step": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"drawing": {
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"ngspice": {
"fix_include_paths": true,
"fix_passive_vals": false,
"meta": {
"version": 0
},
"model_mode": 0,
"workbook_filename": ""
},
"page_layout_descr_file": "",
"plot_directory": "",
"spice_adjust_passive_values": false,
"spice_external_command": "spice \"%I\"",
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"e63e39d7-6ac0-4ffd-8aa3-1841a4541b55",
""
]
],
"text_variables": {}
}

View File

@ -0,0 +1,445 @@
(kicad_sch (version 20211123) (generator eeschema)
(uuid e63e39d7-6ac0-4ffd-8aa3-1841a4541b55)
(paper "A4")
(lib_symbols
(symbol "Comparator:LM2903" (pin_names (offset 0.127)) (in_bom yes) (on_board yes)
(property "Reference" "U" (id 0) (at 3.81 3.81 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "LM2903" (id 1) (at 6.35 -3.81 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_locked" "" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "ki_keywords" "cmp open collector" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Low-Power, Low-Offset Voltage, Dual Comparators, DIP-8/SOIC-8/SOP-8/TSSOP-8/VSSOP-8" (id 6) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "SOIC*3.9x4.9mm*P1.27mm* DIP*W7.62mm* SOP*5.28x5.23mm*P1.27mm* VSSOP*3.0x3.0mm*P0.65mm* TSSOP*4.4x3mm*P0.65mm*" (id 7) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "LM2903_1_1"
(polyline
(pts
(xy -5.08 5.08)
(xy 5.08 0)
(xy -5.08 -5.08)
(xy -5.08 5.08)
)
(stroke (width 0.254) (type default) (color 0 0 0 0))
(fill (type background))
)
(polyline
(pts
(xy 3.302 -0.508)
(xy 2.794 -0.508)
(xy 3.302 0)
(xy 2.794 0.508)
(xy 2.286 0)
(xy 2.794 -0.508)
(xy 2.286 -0.508)
)
(stroke (width 0.127) (type default) (color 0 0 0 0))
(fill (type none))
)
(pin open_collector line (at 7.62 0 180) (length 2.54)
(name "~" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin input line (at -7.62 -2.54 0) (length 2.54)
(name "-" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin input line (at -7.62 2.54 0) (length 2.54)
(name "+" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
)
(symbol "LM2903_2_1"
(polyline
(pts
(xy -5.08 5.08)
(xy 5.08 0)
(xy -5.08 -5.08)
(xy -5.08 5.08)
)
(stroke (width 0.254) (type default) (color 0 0 0 0))
(fill (type background))
)
(polyline
(pts
(xy 3.302 -0.508)
(xy 2.794 -0.508)
(xy 3.302 0)
(xy 2.794 0.508)
(xy 2.286 0)
(xy 2.794 -0.508)
(xy 2.286 -0.508)
)
(stroke (width 0.127) (type default) (color 0 0 0 0))
(fill (type none))
)
(pin input line (at -7.62 2.54 0) (length 2.54)
(name "+" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin input line (at -7.62 -2.54 0) (length 2.54)
(name "_" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin open_collector line (at 7.62 0 180) (length 2.54)
(name "~" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
)
(symbol "LM2903_3_1"
(pin power_in line (at -2.54 -7.62 90) (length 3.81)
(name "V-" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at -2.54 7.62 270) (length 3.81)
(name "V+" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
)
)
(symbol "Device:Opamp_Dual" (in_bom yes) (on_board yes)
(property "Reference" "U" (id 0) (at 0 5.08 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "Opamp_Dual" (id 1) (at 0 -5.08 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_locked" "" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "ki_keywords" "dual opamp" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Dual operational amplifier" (id 6) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "SOIC*3.9x4.9mm*P1.27mm* DIP*W7.62mm* MSOP*3x3mm*P0.65mm* SSOP*2.95x2.8mm*P0.65mm* TSSOP*3x3mm*P0.65mm* VSSOP*P0.5mm* TO?99*" (id 7) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "Opamp_Dual_1_1"
(polyline
(pts
(xy -5.08 5.08)
(xy 5.08 0)
(xy -5.08 -5.08)
(xy -5.08 5.08)
)
(stroke (width 0.254) (type default) (color 0 0 0 0))
(fill (type background))
)
(pin output line (at 7.62 0 180) (length 2.54)
(name "~" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin input line (at -7.62 -2.54 0) (length 2.54)
(name "-" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin input line (at -7.62 2.54 0) (length 2.54)
(name "+" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
)
(symbol "Opamp_Dual_2_1"
(polyline
(pts
(xy -5.08 5.08)
(xy 5.08 0)
(xy -5.08 -5.08)
(xy -5.08 5.08)
)
(stroke (width 0.254) (type default) (color 0 0 0 0))
(fill (type background))
)
(pin input line (at -7.62 2.54 0) (length 2.54)
(name "+" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin input line (at -7.62 -2.54 0) (length 2.54)
(name "-" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin output line (at 7.62 0 180) (length 2.54)
(name "~" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
)
(symbol "Opamp_Dual_3_1"
(pin power_in line (at -2.54 -7.62 90) (length 3.81)
(name "V-" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at -2.54 7.62 270) (length 3.81)
(name "V+" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
)
)
)
(polyline (pts (xy 86.36 105.41) (xy 168.91 105.41))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 6341adf7-15a3-420c-8496-dc68a5a0f167)
)
(polyline (pts (xy 168.91 105.41) (xy 168.91 134.62))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 67e5abec-f0a1-4faa-829c-13ad7561ae24)
)
(polyline (pts (xy 168.91 134.62) (xy 86.36 134.62))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 9eb2304e-04d2-47fc-8ee5-fccd2e9f90f2)
)
(polyline (pts (xy 86.36 105.41) (xy 86.36 134.62))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid ce581da9-ac1a-4c11-bedb-fb991b651d4d)
)
(text "TO BE REANNOTATED" (at 115.57 133.35 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid 2420fd82-7ec8-4e8a-99d9-d1065447a473)
)
(text "Different LibRef, same value" (at 46.99 86.36 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid 87579f95-2c32-4bae-a1c8-4e64d4b74077)
)
(text "U2B missing" (at 120.65 92.71 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid b008cb3a-bc95-4a80-9811-6665e830944e)
)
(symbol (lib_id "Comparator:LM2903") (at 157.48 59.69 0) (unit 3)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 4beb5b03-60d3-49da-ad35-51f275a031d5)
(property "Reference" "U1" (id 0) (at 156.21 58.4199 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "LM2903" (id 1) (at 156.21 60.9599 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (id 2) (at 157.48 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 157.48 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5f091d3c-9b63-4a96-8626-8a903efff084))
(pin "2" (uuid 138f1880-267a-4cf0-89d9-93f27ab943b2))
(pin "3" (uuid 8db72d04-aa4e-4246-8b1e-434f2f787f7a))
(pin "5" (uuid d66e67f7-c757-4204-a0b8-2fd904150172))
(pin "6" (uuid 90146c19-1be3-40dc-ab0e-a10af12a19b4))
(pin "7" (uuid 4f28bce8-cbce-4bf4-86e5-c68d6f15e558))
(pin "4" (uuid 55fea3d7-3338-41ba-9742-415078f59a75))
(pin "8" (uuid 939d2085-ca84-435b-8eaa-0232903653b7))
)
(symbol (lib_id "Device:Opamp_Dual") (at 157.48 88.9 0) (unit 3)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 9c6c5675-d78d-4a6d-b00f-22547ffb1790)
(property "Reference" "U2" (id 0) (at 156.21 87.6299 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "" (id 1) (at 156.21 90.1699 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (id 2) (at 157.48 88.9 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 157.48 88.9 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 227730e1-4daf-4051-8b85-ab4727bd16bc))
(pin "2" (uuid 4e0bef99-39db-445c-a84c-f54440c5149f))
(pin "3" (uuid 353ae3e9-aaa3-42cb-9754-fa9a32ea32df))
(pin "5" (uuid bfe48729-56df-40a2-af3a-8aebff35285b))
(pin "6" (uuid 55785d1b-646a-4d97-9117-bf24339cded2))
(pin "7" (uuid 5ff2baa3-7c8e-4eca-beb9-d74306e1eb40))
(pin "4" (uuid 3c048d02-8b0a-4f38-b4ad-44dab638b480))
(pin "8" (uuid 08bbe74e-336e-46fb-bf46-95e809a2c1f8))
)
(symbol (lib_id "Device:Opamp_Dual") (at 99.06 90.17 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid a2689e5c-8ccd-4e2c-8098-087f3c734022)
(property "Reference" "U2" (id 0) (at 99.06 80.01 0))
(property "Value" "" (id 1) (at 99.06 82.55 0))
(property "Footprint" "" (id 2) (at 99.06 90.17 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "~" (id 3) (at 99.06 90.17 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid e70e5b60-a459-4c08-abff-54232432d8fa))
(pin "2" (uuid aed451a7-38ba-4d37-91a4-86065f3970c8))
(pin "3" (uuid 53ded23b-dad2-4c6d-9d77-91fa13f8ed66))
(pin "5" (uuid 77da69f1-4a7e-4daf-b100-27fb75871e8c))
(pin "6" (uuid e48c2411-8cec-4a56-a964-fc311cc46655))
(pin "7" (uuid 5b55646c-afd9-4127-85d7-7d899753820b))
(pin "4" (uuid c9549976-7e08-4d60-8899-3ba07e9939f9))
(pin "8" (uuid 86bba780-a183-42d2-86e6-b1ca627942a1))
)
(symbol (lib_id "Comparator:LM2903") (at 99.06 120.65 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid cf058f25-2bad-4c49-a0c4-f059825c427f)
(property "Reference" "U99" (id 0) (at 99.06 110.49 0))
(property "Value" "LM2903" (id 1) (at 99.06 113.03 0))
(property "Footprint" "" (id 2) (at 99.06 120.65 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 99.06 120.65 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 4684bd5c-d6ff-4a61-939e-8734e6c74c3a))
(pin "2" (uuid 78f48a94-b821-4b65-8ec6-dd89469e1860))
(pin "3" (uuid f249c2ca-9875-4c92-aeb9-3c4a8a5a3f2a))
(pin "5" (uuid 33aa4306-27d6-4090-96fe-2e0a2a713e0b))
(pin "6" (uuid a631a287-dbe8-4491-9924-f1eeb226bfe0))
(pin "7" (uuid 89bc2a9a-0459-4374-90b7-e699bb20f381))
(pin "4" (uuid 956ad4a4-cb8d-4eef-aba4-03ec6d18e652))
(pin "8" (uuid 1e3e2138-6822-4c2d-8218-89e25ffe3f06))
)
(symbol (lib_id "Comparator:LM2903") (at 157.48 119.38 0) (unit 3)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid db066797-b21c-4c1c-9591-8c7c549f8087)
(property "Reference" "U99" (id 0) (at 156.21 118.1099 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "LM2903" (id 1) (at 156.21 120.6499 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (id 2) (at 157.48 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 157.48 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5f091d3c-9b63-4a96-8626-8a903efff085))
(pin "2" (uuid 138f1880-267a-4cf0-89d9-93f27ab943b3))
(pin "3" (uuid 8db72d04-aa4e-4246-8b1e-434f2f787f7b))
(pin "5" (uuid d66e67f7-c757-4204-a0b8-2fd904150173))
(pin "6" (uuid 90146c19-1be3-40dc-ab0e-a10af12a19b5))
(pin "7" (uuid 4f28bce8-cbce-4bf4-86e5-c68d6f15e559))
(pin "4" (uuid 81a0a986-adf1-4b06-8f68-9208105ebae6))
(pin "8" (uuid 7aeda96c-46b8-4006-b414-502a4fefdd07))
)
(symbol (lib_id "Comparator:LM2903") (at 99.06 60.96 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid e09508cd-85e8-48bb-9bcb-9bab32279ab6)
(property "Reference" "U1" (id 0) (at 99.06 50.8 0))
(property "Value" "LM2903" (id 1) (at 99.06 53.34 0))
(property "Footprint" "" (id 2) (at 99.06 60.96 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 99.06 60.96 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid b2837d6b-6cc1-45c4-aa75-fd2bb220208e))
(pin "2" (uuid 0bb36be2-ca53-49e2-aeb3-4c5728e3d819))
(pin "3" (uuid a0fa8234-8777-4a66-8b79-9ecbb37d6605))
(pin "5" (uuid 33aa4306-27d6-4090-96fe-2e0a2a713e0d))
(pin "6" (uuid a631a287-dbe8-4491-9924-f1eeb226bfe2))
(pin "7" (uuid 89bc2a9a-0459-4374-90b7-e699bb20f383))
(pin "4" (uuid 956ad4a4-cb8d-4eef-aba4-03ec6d18e654))
(pin "8" (uuid 1e3e2138-6822-4c2d-8218-89e25ffe3f08))
)
(symbol (lib_id "Comparator:LM2903") (at 129.54 59.69 0) (unit 2)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid e0a3a04a-2f9e-4cce-bac0-1a7c08ef4522)
(property "Reference" "U1" (id 0) (at 129.54 49.53 0))
(property "Value" "LM2903" (id 1) (at 129.54 52.07 0))
(property "Footprint" "" (id 2) (at 129.54 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 129.54 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5b02613f-efef-4dd0-85cc-be1c896d096d))
(pin "2" (uuid 7d6d569a-7369-4b37-b54d-19f8e663e1c4))
(pin "3" (uuid ab5eedbe-bf43-43a6-87ca-b41cff2974ef))
(pin "5" (uuid 9e9af72c-36cd-4137-88d9-d05214970ed2))
(pin "6" (uuid b42b3d16-0988-4f7b-ad3f-dfc376005ee3))
(pin "7" (uuid 7c15e983-d86d-4112-8b09-d22a0e2aa9db))
(pin "4" (uuid bd03a794-c35b-42b3-a331-b23630dee108))
(pin "8" (uuid 79a4d627-c9cc-4d76-8b31-68992e42badf))
)
(symbol (lib_id "Comparator:LM2903") (at 129.54 119.38 0) (unit 2)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid e6c8127f-e282-4128-8744-05f7893bc3ec)
(property "Reference" "U99" (id 0) (at 129.54 109.22 0))
(property "Value" "LM2903" (id 1) (at 129.54 111.76 0))
(property "Footprint" "" (id 2) (at 129.54 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 129.54 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5b02613f-efef-4dd0-85cc-be1c896d096e))
(pin "2" (uuid 7d6d569a-7369-4b37-b54d-19f8e663e1c5))
(pin "3" (uuid ab5eedbe-bf43-43a6-87ca-b41cff2974f0))
(pin "5" (uuid f1cb5557-7e5b-4159-9575-fba45fd2768c))
(pin "6" (uuid 24b5c9f7-542e-4a5e-b548-b99bbce6bbc7))
(pin "7" (uuid 2baf912f-7f66-472f-93b9-411440649bc1))
(pin "4" (uuid bd03a794-c35b-42b3-a331-b23630dee109))
(pin "8" (uuid 79a4d627-c9cc-4d76-8b31-68992e42bae0))
)
(sheet_instances
(path "/" (page "1"))
)
(symbol_instances
(path "/e09508cd-85e8-48bb-9bcb-9bab32279ab6"
(reference "U1") (unit 1) (value "LM2903") (footprint "")
)
(path "/e0a3a04a-2f9e-4cce-bac0-1a7c08ef4522"
(reference "U1") (unit 2) (value "LM2903") (footprint "")
)
(path "/4beb5b03-60d3-49da-ad35-51f275a031d5"
(reference "U1") (unit 3) (value "LM2903") (footprint "")
)
(path "/a2689e5c-8ccd-4e2c-8098-087f3c734022"
(reference "U2") (unit 1) (value "LM2903") (footprint "")
)
(path "/9c6c5675-d78d-4a6d-b00f-22547ffb1790"
(reference "U2") (unit 3) (value "LM2903") (footprint "")
)
(path "/cf058f25-2bad-4c49-a0c4-f059825c427f"
(reference "U99") (unit 1) (value "LM2903") (footprint "")
)
(path "/e6c8127f-e282-4128-8744-05f7893bc3ec"
(reference "U99") (unit 2) (value "LM2903") (footprint "")
)
(path "/db066797-b21c-4c1c-9591-8c7c549f8087"
(reference "U99") (unit 3) (value "LM2903") (footprint "")
)
)
)

View File

@ -0,0 +1,326 @@
{
"board": {
"design_settings": {
"defaults": {
"board_outline_line_width": 0.1,
"copper_line_width": 0.2,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"other_line_width": 0.15,
"silk_line_width": 0.15,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.15
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"rules": {
"min_copper_edge_clearance": 0.0,
"solder_mask_clearance": 0.0,
"solder_mask_min_width": 0.0
},
"track_widths": [],
"via_dimensions": []
},
"layer_presets": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_label_syntax": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"extra_units": "error",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"lib_symbol_issues": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"similar_labels": "warning",
"unannotated": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "test_multiunit_reannotate.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12.0,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.25,
"via_diameter": 0.8,
"via_drill": 0.4,
"wire_width": 6.0
}
],
"meta": {
"version": 2
},
"net_colors": null
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"specctra_dsn": "",
"step": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"drawing": {
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"ngspice": {
"fix_include_paths": true,
"fix_passive_vals": false,
"meta": {
"version": 0
},
"model_mode": 0,
"workbook_filename": ""
},
"page_layout_descr_file": "",
"plot_directory": "",
"spice_adjust_passive_values": false,
"spice_external_command": "spice \"%I\"",
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"e63e39d7-6ac0-4ffd-8aa3-1841a4541b55",
""
]
],
"text_variables": {}
}

View File

@ -0,0 +1,361 @@
(kicad_sch (version 20211123) (generator eeschema)
(uuid e63e39d7-6ac0-4ffd-8aa3-1841a4541b55)
(paper "A4")
(lib_symbols
(symbol "Comparator:LM2903" (pin_names (offset 0.127)) (in_bom yes) (on_board yes)
(property "Reference" "U" (id 0) (at 3.81 3.81 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "LM2903" (id 1) (at 6.35 -3.81 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_locked" "" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "ki_keywords" "cmp open collector" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Low-Power, Low-Offset Voltage, Dual Comparators, DIP-8/SOIC-8/SOP-8/TSSOP-8/VSSOP-8" (id 6) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "SOIC*3.9x4.9mm*P1.27mm* DIP*W7.62mm* SOP*5.28x5.23mm*P1.27mm* VSSOP*3.0x3.0mm*P0.65mm* TSSOP*4.4x3mm*P0.65mm*" (id 7) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "LM2903_1_1"
(polyline
(pts
(xy -5.08 5.08)
(xy 5.08 0)
(xy -5.08 -5.08)
(xy -5.08 5.08)
)
(stroke (width 0.254) (type default) (color 0 0 0 0))
(fill (type background))
)
(polyline
(pts
(xy 3.302 -0.508)
(xy 2.794 -0.508)
(xy 3.302 0)
(xy 2.794 0.508)
(xy 2.286 0)
(xy 2.794 -0.508)
(xy 2.286 -0.508)
)
(stroke (width 0.127) (type default) (color 0 0 0 0))
(fill (type none))
)
(pin open_collector line (at 7.62 0 180) (length 2.54)
(name "~" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin input line (at -7.62 -2.54 0) (length 2.54)
(name "-" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin input line (at -7.62 2.54 0) (length 2.54)
(name "+" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
)
(symbol "LM2903_2_1"
(polyline
(pts
(xy -5.08 5.08)
(xy 5.08 0)
(xy -5.08 -5.08)
(xy -5.08 5.08)
)
(stroke (width 0.254) (type default) (color 0 0 0 0))
(fill (type background))
)
(polyline
(pts
(xy 3.302 -0.508)
(xy 2.794 -0.508)
(xy 3.302 0)
(xy 2.794 0.508)
(xy 2.286 0)
(xy 2.794 -0.508)
(xy 2.286 -0.508)
)
(stroke (width 0.127) (type default) (color 0 0 0 0))
(fill (type none))
)
(pin input line (at -7.62 2.54 0) (length 2.54)
(name "+" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin input line (at -7.62 -2.54 0) (length 2.54)
(name "_" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin open_collector line (at 7.62 0 180) (length 2.54)
(name "~" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
)
(symbol "LM2903_3_1"
(pin power_in line (at -2.54 -7.62 90) (length 3.81)
(name "V-" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at -2.54 7.62 270) (length 3.81)
(name "V+" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
)
)
)
(polyline (pts (xy 86.36 105.41) (xy 168.91 105.41))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 6341adf7-15a3-420c-8496-dc68a5a0f167)
)
(polyline (pts (xy 168.91 105.41) (xy 168.91 134.62))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 67e5abec-f0a1-4faa-829c-13ad7561ae24)
)
(polyline (pts (xy 168.91 134.62) (xy 86.36 134.62))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 9eb2304e-04d2-47fc-8ee5-fccd2e9f90f2)
)
(polyline (pts (xy 86.36 105.41) (xy 86.36 134.62))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid ce581da9-ac1a-4c11-bedb-fb991b651d4d)
)
(text "TO BE REANNOTATED" (at 115.57 133.35 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid 2420fd82-7ec8-4e8a-99d9-d1065447a473)
)
(text "Same Libref, different Value" (at 48.26 91.44 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid 4ef07d45-f940-4cb6-bb96-2ddec13fd099)
)
(text "U2B missing" (at 120.65 92.71 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid b008cb3a-bc95-4a80-9811-6665e830944e)
)
(symbol (lib_id "Comparator:LM2903") (at 157.48 91.44 0) (unit 3)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 3f20a749-efe3-4804-8fef-435caaa8dacb)
(property "Reference" "U2" (id 0) (at 156.21 90.1699 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "" (id 1) (at 156.21 92.7099 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (id 2) (at 157.48 91.44 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 157.48 91.44 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5f091d3c-9b63-4a96-8626-8a903efff083))
(pin "2" (uuid 138f1880-267a-4cf0-89d9-93f27ab943b1))
(pin "3" (uuid 8db72d04-aa4e-4246-8b1e-434f2f787f79))
(pin "5" (uuid d66e67f7-c757-4204-a0b8-2fd904150171))
(pin "6" (uuid 90146c19-1be3-40dc-ab0e-a10af12a19b3))
(pin "7" (uuid 4f28bce8-cbce-4bf4-86e5-c68d6f15e557))
(pin "4" (uuid 25b671c2-8f85-423d-b529-05799bc4badd))
(pin "8" (uuid 435b8f75-555b-4212-8fe2-c343b2a3f9b9))
)
(symbol (lib_id "Comparator:LM2903") (at 157.48 59.69 0) (unit 3)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 4beb5b03-60d3-49da-ad35-51f275a031d5)
(property "Reference" "U1" (id 0) (at 156.21 58.4199 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "LM2903" (id 1) (at 156.21 60.9599 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (id 2) (at 157.48 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 157.48 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5f091d3c-9b63-4a96-8626-8a903efff084))
(pin "2" (uuid 138f1880-267a-4cf0-89d9-93f27ab943b2))
(pin "3" (uuid 8db72d04-aa4e-4246-8b1e-434f2f787f7a))
(pin "5" (uuid d66e67f7-c757-4204-a0b8-2fd904150172))
(pin "6" (uuid 90146c19-1be3-40dc-ab0e-a10af12a19b4))
(pin "7" (uuid 4f28bce8-cbce-4bf4-86e5-c68d6f15e558))
(pin "4" (uuid 55fea3d7-3338-41ba-9742-415078f59a75))
(pin "8" (uuid 939d2085-ca84-435b-8eaa-0232903653b7))
)
(symbol (lib_id "Comparator:LM2903") (at 99.06 120.65 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid cf058f25-2bad-4c49-a0c4-f059825c427f)
(property "Reference" "U99" (id 0) (at 99.06 110.49 0))
(property "Value" "LM2903" (id 1) (at 99.06 113.03 0))
(property "Footprint" "" (id 2) (at 99.06 120.65 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 99.06 120.65 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 4684bd5c-d6ff-4a61-939e-8734e6c74c3a))
(pin "2" (uuid 78f48a94-b821-4b65-8ec6-dd89469e1860))
(pin "3" (uuid f249c2ca-9875-4c92-aeb9-3c4a8a5a3f2a))
(pin "5" (uuid 33aa4306-27d6-4090-96fe-2e0a2a713e0b))
(pin "6" (uuid a631a287-dbe8-4491-9924-f1eeb226bfe0))
(pin "7" (uuid 89bc2a9a-0459-4374-90b7-e699bb20f381))
(pin "4" (uuid 956ad4a4-cb8d-4eef-aba4-03ec6d18e652))
(pin "8" (uuid 1e3e2138-6822-4c2d-8218-89e25ffe3f06))
)
(symbol (lib_id "Comparator:LM2903") (at 99.06 92.71 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid d43a1d25-d37a-467a-8b09-10cf2e2ace09)
(property "Reference" "U2" (id 0) (at 99.06 82.55 0))
(property "Value" "" (id 1) (at 99.06 85.09 0))
(property "Footprint" "" (id 2) (at 99.06 92.71 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 99.06 92.71 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 2900965f-8b8d-458a-b86a-6e9955743074))
(pin "2" (uuid f37a2c24-4f47-4e4d-9f7f-0bcaef509ec5))
(pin "3" (uuid 5a7f5ba6-06c4-4b39-9065-c4c0d044c803))
(pin "5" (uuid 33aa4306-27d6-4090-96fe-2e0a2a713e0c))
(pin "6" (uuid a631a287-dbe8-4491-9924-f1eeb226bfe1))
(pin "7" (uuid 89bc2a9a-0459-4374-90b7-e699bb20f382))
(pin "4" (uuid 956ad4a4-cb8d-4eef-aba4-03ec6d18e653))
(pin "8" (uuid 1e3e2138-6822-4c2d-8218-89e25ffe3f07))
)
(symbol (lib_id "Comparator:LM2903") (at 157.48 119.38 0) (unit 3)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid db066797-b21c-4c1c-9591-8c7c549f8087)
(property "Reference" "U99" (id 0) (at 156.21 118.1099 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "LM2903" (id 1) (at 156.21 120.6499 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (id 2) (at 157.48 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 157.48 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5f091d3c-9b63-4a96-8626-8a903efff085))
(pin "2" (uuid 138f1880-267a-4cf0-89d9-93f27ab943b3))
(pin "3" (uuid 8db72d04-aa4e-4246-8b1e-434f2f787f7b))
(pin "5" (uuid d66e67f7-c757-4204-a0b8-2fd904150173))
(pin "6" (uuid 90146c19-1be3-40dc-ab0e-a10af12a19b5))
(pin "7" (uuid 4f28bce8-cbce-4bf4-86e5-c68d6f15e559))
(pin "4" (uuid 81a0a986-adf1-4b06-8f68-9208105ebae6))
(pin "8" (uuid 7aeda96c-46b8-4006-b414-502a4fefdd07))
)
(symbol (lib_id "Comparator:LM2903") (at 99.06 60.96 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid e09508cd-85e8-48bb-9bcb-9bab32279ab6)
(property "Reference" "U1" (id 0) (at 99.06 50.8 0))
(property "Value" "LM2903" (id 1) (at 99.06 53.34 0))
(property "Footprint" "" (id 2) (at 99.06 60.96 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 99.06 60.96 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid b2837d6b-6cc1-45c4-aa75-fd2bb220208e))
(pin "2" (uuid 0bb36be2-ca53-49e2-aeb3-4c5728e3d819))
(pin "3" (uuid a0fa8234-8777-4a66-8b79-9ecbb37d6605))
(pin "5" (uuid 33aa4306-27d6-4090-96fe-2e0a2a713e0d))
(pin "6" (uuid a631a287-dbe8-4491-9924-f1eeb226bfe2))
(pin "7" (uuid 89bc2a9a-0459-4374-90b7-e699bb20f383))
(pin "4" (uuid 956ad4a4-cb8d-4eef-aba4-03ec6d18e654))
(pin "8" (uuid 1e3e2138-6822-4c2d-8218-89e25ffe3f08))
)
(symbol (lib_id "Comparator:LM2903") (at 129.54 59.69 0) (unit 2)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid e0a3a04a-2f9e-4cce-bac0-1a7c08ef4522)
(property "Reference" "U1" (id 0) (at 129.54 49.53 0))
(property "Value" "LM2903" (id 1) (at 129.54 52.07 0))
(property "Footprint" "" (id 2) (at 129.54 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 129.54 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5b02613f-efef-4dd0-85cc-be1c896d096d))
(pin "2" (uuid 7d6d569a-7369-4b37-b54d-19f8e663e1c4))
(pin "3" (uuid ab5eedbe-bf43-43a6-87ca-b41cff2974ef))
(pin "5" (uuid 9e9af72c-36cd-4137-88d9-d05214970ed2))
(pin "6" (uuid b42b3d16-0988-4f7b-ad3f-dfc376005ee3))
(pin "7" (uuid 7c15e983-d86d-4112-8b09-d22a0e2aa9db))
(pin "4" (uuid bd03a794-c35b-42b3-a331-b23630dee108))
(pin "8" (uuid 79a4d627-c9cc-4d76-8b31-68992e42badf))
)
(symbol (lib_id "Comparator:LM2903") (at 129.54 119.38 0) (unit 2)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid e6c8127f-e282-4128-8744-05f7893bc3ec)
(property "Reference" "U99" (id 0) (at 129.54 109.22 0))
(property "Value" "LM2903" (id 1) (at 129.54 111.76 0))
(property "Footprint" "" (id 2) (at 129.54 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 129.54 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5b02613f-efef-4dd0-85cc-be1c896d096e))
(pin "2" (uuid 7d6d569a-7369-4b37-b54d-19f8e663e1c5))
(pin "3" (uuid ab5eedbe-bf43-43a6-87ca-b41cff2974f0))
(pin "5" (uuid f1cb5557-7e5b-4159-9575-fba45fd2768c))
(pin "6" (uuid 24b5c9f7-542e-4a5e-b548-b99bbce6bbc7))
(pin "7" (uuid 2baf912f-7f66-472f-93b9-411440649bc1))
(pin "4" (uuid bd03a794-c35b-42b3-a331-b23630dee109))
(pin "8" (uuid 79a4d627-c9cc-4d76-8b31-68992e42bae0))
)
(sheet_instances
(path "/" (page "1"))
)
(symbol_instances
(path "/e09508cd-85e8-48bb-9bcb-9bab32279ab6"
(reference "U1") (unit 1) (value "LM2903") (footprint "")
)
(path "/e0a3a04a-2f9e-4cce-bac0-1a7c08ef4522"
(reference "U1") (unit 2) (value "LM2903") (footprint "")
)
(path "/4beb5b03-60d3-49da-ad35-51f275a031d5"
(reference "U1") (unit 3) (value "LM2903") (footprint "")
)
(path "/d43a1d25-d37a-467a-8b09-10cf2e2ace09"
(reference "U2") (unit 1) (value "SomeOtherValue") (footprint "")
)
(path "/3f20a749-efe3-4804-8fef-435caaa8dacb"
(reference "U2") (unit 3) (value "SomeOtherValue") (footprint "")
)
(path "/cf058f25-2bad-4c49-a0c4-f059825c427f"
(reference "U99") (unit 1) (value "LM2903") (footprint "")
)
(path "/e6c8127f-e282-4128-8744-05f7893bc3ec"
(reference "U99") (unit 2) (value "LM2903") (footprint "")
)
(path "/db066797-b21c-4c1c-9591-8c7c549f8087"
(reference "U99") (unit 3) (value "LM2903") (footprint "")
)
)
)

View File

@ -0,0 +1,326 @@
{
"board": {
"design_settings": {
"defaults": {
"board_outline_line_width": 0.1,
"copper_line_width": 0.2,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"other_line_width": 0.15,
"silk_line_width": 0.15,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.15
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"rules": {
"min_copper_edge_clearance": 0.0,
"solder_mask_clearance": 0.0,
"solder_mask_min_width": 0.0
},
"track_widths": [],
"via_dimensions": []
},
"layer_presets": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_label_syntax": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"extra_units": "error",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"lib_symbol_issues": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"similar_labels": "warning",
"unannotated": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "test_multiunit_reannotate.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12.0,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.25,
"via_diameter": 0.8,
"via_drill": 0.4,
"wire_width": 6.0
}
],
"meta": {
"version": 2
},
"net_colors": null
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"specctra_dsn": "",
"step": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"drawing": {
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"ngspice": {
"fix_include_paths": true,
"fix_passive_vals": false,
"meta": {
"version": 0
},
"model_mode": 0,
"workbook_filename": ""
},
"page_layout_descr_file": "",
"plot_directory": "",
"spice_adjust_passive_values": false,
"spice_external_command": "spice \"%I\"",
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"e63e39d7-6ac0-4ffd-8aa3-1841a4541b55",
""
]
],
"text_variables": {}
}

View File

@ -0,0 +1,277 @@
(kicad_sch (version 20211123) (generator eeschema)
(uuid e63e39d7-6ac0-4ffd-8aa3-1841a4541b55)
(paper "A4")
(lib_symbols
(symbol "Comparator:LM2903" (pin_names (offset 0.127)) (in_bom yes) (on_board yes)
(property "Reference" "U" (id 0) (at 3.81 3.81 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "LM2903" (id 1) (at 6.35 -3.81 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_locked" "" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "ki_keywords" "cmp open collector" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Low-Power, Low-Offset Voltage, Dual Comparators, DIP-8/SOIC-8/SOP-8/TSSOP-8/VSSOP-8" (id 6) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "SOIC*3.9x4.9mm*P1.27mm* DIP*W7.62mm* SOP*5.28x5.23mm*P1.27mm* VSSOP*3.0x3.0mm*P0.65mm* TSSOP*4.4x3mm*P0.65mm*" (id 7) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "LM2903_1_1"
(polyline
(pts
(xy -5.08 5.08)
(xy 5.08 0)
(xy -5.08 -5.08)
(xy -5.08 5.08)
)
(stroke (width 0.254) (type default) (color 0 0 0 0))
(fill (type background))
)
(polyline
(pts
(xy 3.302 -0.508)
(xy 2.794 -0.508)
(xy 3.302 0)
(xy 2.794 0.508)
(xy 2.286 0)
(xy 2.794 -0.508)
(xy 2.286 -0.508)
)
(stroke (width 0.127) (type default) (color 0 0 0 0))
(fill (type none))
)
(pin open_collector line (at 7.62 0 180) (length 2.54)
(name "~" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin input line (at -7.62 -2.54 0) (length 2.54)
(name "-" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin input line (at -7.62 2.54 0) (length 2.54)
(name "+" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
)
(symbol "LM2903_2_1"
(polyline
(pts
(xy -5.08 5.08)
(xy 5.08 0)
(xy -5.08 -5.08)
(xy -5.08 5.08)
)
(stroke (width 0.254) (type default) (color 0 0 0 0))
(fill (type background))
)
(polyline
(pts
(xy 3.302 -0.508)
(xy 2.794 -0.508)
(xy 3.302 0)
(xy 2.794 0.508)
(xy 2.286 0)
(xy 2.794 -0.508)
(xy 2.286 -0.508)
)
(stroke (width 0.127) (type default) (color 0 0 0 0))
(fill (type none))
)
(pin input line (at -7.62 2.54 0) (length 2.54)
(name "+" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin input line (at -7.62 -2.54 0) (length 2.54)
(name "_" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin open_collector line (at 7.62 0 180) (length 2.54)
(name "~" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
)
(symbol "LM2903_3_1"
(pin power_in line (at -2.54 -7.62 90) (length 3.81)
(name "V-" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at -2.54 7.62 270) (length 3.81)
(name "V+" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
)
)
)
(polyline (pts (xy 116.84 104.14) (xy 116.84 74.93))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 113c6f24-eefb-4df4-9071-3d8843379fca)
)
(polyline (pts (xy 144.78 104.14) (xy 116.84 104.14))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 135a07d0-7692-4455-8538-0bd4306020d8)
)
(polyline (pts (xy 116.84 74.93) (xy 118.11 74.93))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 25fc7484-491e-43e0-bd7c-d028fb2ba319)
)
(polyline (pts (xy 118.11 74.93) (xy 144.78 74.93))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 95634212-020d-4124-92dd-151742a05529)
)
(polyline (pts (xy 144.78 74.93) (xy 144.78 104.14))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid f1017e9e-ae45-4388-b7cc-82ad790788ae)
)
(text "TO BE REANNOTATED" (at 121.92 101.6 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid 717b25a7-c9c2-4f6f-b744-a96113325c99)
)
(symbol (lib_id "Comparator:LM2903") (at 97.79 88.9 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 02fad080-98cd-46ab-9ee4-13a74595ac68)
(property "Reference" "U2" (id 0) (at 97.79 78.74 0))
(property "Value" "LM2903" (id 1) (at 97.79 81.28 0))
(property "Footprint" "" (id 2) (at 97.79 88.9 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 97.79 88.9 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 3e2733b2-429a-48e0-a5f6-9bc75cea3fb3))
(pin "2" (uuid a72be1e0-9af1-4c8b-a80a-e23a2ce6ded3))
(pin "3" (uuid 7e75e4cc-e0cb-4b98-b80b-d3c04ae9a412))
(pin "5" (uuid 33aa4306-27d6-4090-96fe-2e0a2a713e0d))
(pin "6" (uuid a631a287-dbe8-4491-9924-f1eeb226bfe2))
(pin "7" (uuid 89bc2a9a-0459-4374-90b7-e699bb20f383))
(pin "4" (uuid 956ad4a4-cb8d-4eef-aba4-03ec6d18e654))
(pin "8" (uuid 1e3e2138-6822-4c2d-8218-89e25ffe3f08))
)
(symbol (lib_id "Comparator:LM2903") (at 157.48 59.69 0) (unit 3)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 4beb5b03-60d3-49da-ad35-51f275a031d5)
(property "Reference" "U1" (id 0) (at 156.21 58.4199 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "LM2903" (id 1) (at 156.21 60.9599 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (id 2) (at 157.48 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 157.48 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5f091d3c-9b63-4a96-8626-8a903efff084))
(pin "2" (uuid 138f1880-267a-4cf0-89d9-93f27ab943b2))
(pin "3" (uuid 8db72d04-aa4e-4246-8b1e-434f2f787f7a))
(pin "5" (uuid d66e67f7-c757-4204-a0b8-2fd904150172))
(pin "6" (uuid 90146c19-1be3-40dc-ab0e-a10af12a19b4))
(pin "7" (uuid 4f28bce8-cbce-4bf4-86e5-c68d6f15e558))
(pin "4" (uuid 55fea3d7-3338-41ba-9742-415078f59a75))
(pin "8" (uuid 939d2085-ca84-435b-8eaa-0232903653b7))
)
(symbol (lib_id "Comparator:LM2903") (at 128.27 88.9 0) (unit 2)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 549455c3-ab6e-454e-94b0-5ca9e521ae0b)
(property "Reference" "U?" (id 0) (at 128.27 78.74 0))
(property "Value" "LM2903" (id 1) (at 128.27 81.28 0))
(property "Footprint" "" (id 2) (at 128.27 88.9 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 128.27 88.9 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5b02613f-efef-4dd0-85cc-be1c896d096d))
(pin "2" (uuid 7d6d569a-7369-4b37-b54d-19f8e663e1c4))
(pin "3" (uuid ab5eedbe-bf43-43a6-87ca-b41cff2974ef))
(pin "5" (uuid 207c68d8-2bd6-401c-bbd5-e50fcc95bf20))
(pin "6" (uuid 4713b701-0d77-40e8-8184-3a11f9df2324))
(pin "7" (uuid 14ae6814-97a1-417e-bec2-8de437fc055e))
(pin "4" (uuid bd03a794-c35b-42b3-a331-b23630dee108))
(pin "8" (uuid 79a4d627-c9cc-4d76-8b31-68992e42badf))
)
(symbol (lib_id "Comparator:LM2903") (at 99.06 60.96 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid e09508cd-85e8-48bb-9bcb-9bab32279ab6)
(property "Reference" "U1" (id 0) (at 99.06 50.8 0))
(property "Value" "LM2903" (id 1) (at 99.06 53.34 0))
(property "Footprint" "" (id 2) (at 99.06 60.96 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 99.06 60.96 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid b2837d6b-6cc1-45c4-aa75-fd2bb220208e))
(pin "2" (uuid 0bb36be2-ca53-49e2-aeb3-4c5728e3d819))
(pin "3" (uuid a0fa8234-8777-4a66-8b79-9ecbb37d6605))
(pin "5" (uuid 33aa4306-27d6-4090-96fe-2e0a2a713e0d))
(pin "6" (uuid a631a287-dbe8-4491-9924-f1eeb226bfe2))
(pin "7" (uuid 89bc2a9a-0459-4374-90b7-e699bb20f383))
(pin "4" (uuid 956ad4a4-cb8d-4eef-aba4-03ec6d18e654))
(pin "8" (uuid 1e3e2138-6822-4c2d-8218-89e25ffe3f08))
)
(symbol (lib_id "Comparator:LM2903") (at 129.54 59.69 0) (unit 2)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid e0a3a04a-2f9e-4cce-bac0-1a7c08ef4522)
(property "Reference" "U1" (id 0) (at 129.54 49.53 0))
(property "Value" "LM2903" (id 1) (at 129.54 52.07 0))
(property "Footprint" "" (id 2) (at 129.54 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 129.54 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5b02613f-efef-4dd0-85cc-be1c896d096d))
(pin "2" (uuid 7d6d569a-7369-4b37-b54d-19f8e663e1c4))
(pin "3" (uuid ab5eedbe-bf43-43a6-87ca-b41cff2974ef))
(pin "5" (uuid 9e9af72c-36cd-4137-88d9-d05214970ed2))
(pin "6" (uuid b42b3d16-0988-4f7b-ad3f-dfc376005ee3))
(pin "7" (uuid 7c15e983-d86d-4112-8b09-d22a0e2aa9db))
(pin "4" (uuid bd03a794-c35b-42b3-a331-b23630dee108))
(pin "8" (uuid 79a4d627-c9cc-4d76-8b31-68992e42badf))
)
(sheet_instances
(path "/" (page "1"))
)
(symbol_instances
(path "/e09508cd-85e8-48bb-9bcb-9bab32279ab6"
(reference "U1") (unit 1) (value "LM2903") (footprint "")
)
(path "/e0a3a04a-2f9e-4cce-bac0-1a7c08ef4522"
(reference "U1") (unit 2) (value "LM2903") (footprint "")
)
(path "/4beb5b03-60d3-49da-ad35-51f275a031d5"
(reference "U1") (unit 3) (value "LM2903") (footprint "")
)
(path "/02fad080-98cd-46ab-9ee4-13a74595ac68"
(reference "U2") (unit 1) (value "LM2903") (footprint "")
)
(path "/549455c3-ab6e-454e-94b0-5ca9e521ae0b"
(reference "U?") (unit 2) (value "LM2903") (footprint "")
)
)
)

View File

@ -0,0 +1,326 @@
{
"board": {
"design_settings": {
"defaults": {
"board_outline_line_width": 0.1,
"copper_line_width": 0.2,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"other_line_width": 0.15,
"silk_line_width": 0.15,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.15
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"rules": {
"min_copper_edge_clearance": 0.0,
"solder_mask_clearance": 0.0,
"solder_mask_min_width": 0.0
},
"track_widths": [],
"via_dimensions": []
},
"layer_presets": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_label_syntax": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"extra_units": "error",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"lib_symbol_issues": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"similar_labels": "warning",
"unannotated": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "test_multiunit_reannotate_5.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12.0,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.25,
"via_diameter": 0.8,
"via_drill": 0.4,
"wire_width": 6.0
}
],
"meta": {
"version": 2
},
"net_colors": null
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"specctra_dsn": "",
"step": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 10,
"drawing": {
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"ngspice": {
"fix_include_paths": true,
"fix_passive_vals": false,
"meta": {
"version": 0
},
"model_mode": 0,
"workbook_filename": ""
},
"page_layout_descr_file": "",
"plot_directory": "",
"spice_adjust_passive_values": false,
"spice_external_command": "spice \"%I\"",
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"e63e39d7-6ac0-4ffd-8aa3-1841a4541b55",
""
]
],
"text_variables": {}
}

View File

@ -0,0 +1,381 @@
(kicad_sch (version 20211123) (generator eeschema)
(uuid e63e39d7-6ac0-4ffd-8aa3-1841a4541b55)
(paper "A4")
(lib_symbols
(symbol "Comparator:LM2903" (pin_names (offset 0.127)) (in_bom yes) (on_board yes)
(property "Reference" "U" (id 0) (at 3.81 3.81 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "LM2903" (id 1) (at 6.35 -3.81 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_locked" "" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "ki_keywords" "cmp open collector" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Low-Power, Low-Offset Voltage, Dual Comparators, DIP-8/SOIC-8/SOP-8/TSSOP-8/VSSOP-8" (id 6) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_fp_filters" "SOIC*3.9x4.9mm*P1.27mm* DIP*W7.62mm* SOP*5.28x5.23mm*P1.27mm* VSSOP*3.0x3.0mm*P0.65mm* TSSOP*4.4x3mm*P0.65mm*" (id 7) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "LM2903_1_1"
(polyline
(pts
(xy -5.08 5.08)
(xy 5.08 0)
(xy -5.08 -5.08)
(xy -5.08 5.08)
)
(stroke (width 0.254) (type default) (color 0 0 0 0))
(fill (type background))
)
(polyline
(pts
(xy 3.302 -0.508)
(xy 2.794 -0.508)
(xy 3.302 0)
(xy 2.794 0.508)
(xy 2.286 0)
(xy 2.794 -0.508)
(xy 2.286 -0.508)
)
(stroke (width 0.127) (type default) (color 0 0 0 0))
(fill (type none))
)
(pin open_collector line (at 7.62 0 180) (length 2.54)
(name "~" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin input line (at -7.62 -2.54 0) (length 2.54)
(name "-" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
(pin input line (at -7.62 2.54 0) (length 2.54)
(name "+" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
)
)
(symbol "LM2903_2_1"
(polyline
(pts
(xy -5.08 5.08)
(xy 5.08 0)
(xy -5.08 -5.08)
(xy -5.08 5.08)
)
(stroke (width 0.254) (type default) (color 0 0 0 0))
(fill (type background))
)
(polyline
(pts
(xy 3.302 -0.508)
(xy 2.794 -0.508)
(xy 3.302 0)
(xy 2.794 0.508)
(xy 2.286 0)
(xy 2.794 -0.508)
(xy 2.286 -0.508)
)
(stroke (width 0.127) (type default) (color 0 0 0 0))
(fill (type none))
)
(pin input line (at -7.62 2.54 0) (length 2.54)
(name "+" (effects (font (size 1.27 1.27))))
(number "5" (effects (font (size 1.27 1.27))))
)
(pin input line (at -7.62 -2.54 0) (length 2.54)
(name "_" (effects (font (size 1.27 1.27))))
(number "6" (effects (font (size 1.27 1.27))))
)
(pin open_collector line (at 7.62 0 180) (length 2.54)
(name "~" (effects (font (size 1.27 1.27))))
(number "7" (effects (font (size 1.27 1.27))))
)
)
(symbol "LM2903_3_1"
(pin power_in line (at -2.54 -7.62 90) (length 3.81)
(name "V-" (effects (font (size 1.27 1.27))))
(number "4" (effects (font (size 1.27 1.27))))
)
(pin power_in line (at -2.54 7.62 270) (length 3.81)
(name "V+" (effects (font (size 1.27 1.27))))
(number "8" (effects (font (size 1.27 1.27))))
)
)
)
)
(polyline (pts (xy 110.49 105.41) (xy 144.78 105.41))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 6341adf7-15a3-420c-8496-dc68a5a0f167)
)
(polyline (pts (xy 144.78 105.41) (xy 144.78 134.62))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 67e5abec-f0a1-4faa-829c-13ad7561ae24)
)
(polyline (pts (xy 144.78 134.62) (xy 110.49 134.62))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid 9eb2304e-04d2-47fc-8ee5-fccd2e9f90f2)
)
(polyline (pts (xy 110.49 105.41) (xy 110.49 134.62))
(stroke (width 0) (type default) (color 0 0 0 0))
(uuid ce581da9-ac1a-4c11-bedb-fb991b651d4d)
)
(text "TO BE REANNOTATED" (at 115.57 133.35 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid 2420fd82-7ec8-4e8a-99d9-d1065447a473)
)
(text "Same Libref, same Value" (at 48.26 91.44 0)
(effects (font (size 1.27 1.27)) (justify left bottom))
(uuid 4ef07d45-f940-4cb6-bb96-2ddec13fd099)
)
(symbol (lib_id "Comparator:LM2903") (at 157.48 91.44 0) (unit 3)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 3f20a749-efe3-4804-8fef-435caaa8dacb)
(property "Reference" "U2" (id 0) (at 156.21 90.1699 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "" (id 1) (at 156.21 92.7099 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (id 2) (at 157.48 91.44 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 157.48 91.44 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5f091d3c-9b63-4a96-8626-8a903efff083))
(pin "2" (uuid 138f1880-267a-4cf0-89d9-93f27ab943b1))
(pin "3" (uuid 8db72d04-aa4e-4246-8b1e-434f2f787f79))
(pin "5" (uuid d66e67f7-c757-4204-a0b8-2fd904150171))
(pin "6" (uuid 90146c19-1be3-40dc-ab0e-a10af12a19b3))
(pin "7" (uuid 4f28bce8-cbce-4bf4-86e5-c68d6f15e557))
(pin "4" (uuid 25b671c2-8f85-423d-b529-05799bc4badd))
(pin "8" (uuid 435b8f75-555b-4212-8fe2-c343b2a3f9b9))
)
(symbol (lib_id "Comparator:LM2903") (at 157.48 59.69 0) (unit 3)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid 4beb5b03-60d3-49da-ad35-51f275a031d5)
(property "Reference" "U1" (id 0) (at 156.21 58.4199 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "LM2903" (id 1) (at 156.21 60.9599 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (id 2) (at 157.48 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 157.48 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5f091d3c-9b63-4a96-8626-8a903efff084))
(pin "2" (uuid 138f1880-267a-4cf0-89d9-93f27ab943b2))
(pin "3" (uuid 8db72d04-aa4e-4246-8b1e-434f2f787f7a))
(pin "5" (uuid d66e67f7-c757-4204-a0b8-2fd904150172))
(pin "6" (uuid 90146c19-1be3-40dc-ab0e-a10af12a19b4))
(pin "7" (uuid 4f28bce8-cbce-4bf4-86e5-c68d6f15e558))
(pin "4" (uuid 55fea3d7-3338-41ba-9742-415078f59a75))
(pin "8" (uuid 939d2085-ca84-435b-8eaa-0232903653b7))
)
(symbol (lib_id "Comparator:LM2903") (at 129.54 92.71 0) (unit 2)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid cd562bae-2426-44e6-8196-59eee5439809)
(property "Reference" "U2" (id 0) (at 129.54 82.55 0))
(property "Value" "LM2903" (id 1) (at 129.54 85.09 0))
(property "Footprint" "" (id 2) (at 129.54 92.71 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 129.54 92.71 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5b02613f-efef-4dd0-85cc-be1c896d096e))
(pin "2" (uuid 7d6d569a-7369-4b37-b54d-19f8e663e1c5))
(pin "3" (uuid ab5eedbe-bf43-43a6-87ca-b41cff2974f0))
(pin "5" (uuid af94a592-0290-41d6-acfb-25e9e5f847d6))
(pin "6" (uuid 8ee44ea3-b3e4-42f2-b0ee-dcf81bb527c1))
(pin "7" (uuid 709129a3-cf8f-42ae-a88c-02cd627de08a))
(pin "4" (uuid bd03a794-c35b-42b3-a331-b23630dee109))
(pin "8" (uuid 79a4d627-c9cc-4d76-8b31-68992e42bae0))
)
(symbol (lib_id "Comparator:LM2903") (at 99.06 120.65 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid cf058f25-2bad-4c49-a0c4-f059825c427f)
(property "Reference" "U2" (id 0) (at 99.06 110.49 0))
(property "Value" "LM2903" (id 1) (at 99.06 113.03 0))
(property "Footprint" "" (id 2) (at 99.06 120.65 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 99.06 120.65 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 4684bd5c-d6ff-4a61-939e-8734e6c74c3a))
(pin "2" (uuid 78f48a94-b821-4b65-8ec6-dd89469e1860))
(pin "3" (uuid f249c2ca-9875-4c92-aeb9-3c4a8a5a3f2a))
(pin "5" (uuid 33aa4306-27d6-4090-96fe-2e0a2a713e0b))
(pin "6" (uuid a631a287-dbe8-4491-9924-f1eeb226bfe0))
(pin "7" (uuid 89bc2a9a-0459-4374-90b7-e699bb20f381))
(pin "4" (uuid 956ad4a4-cb8d-4eef-aba4-03ec6d18e652))
(pin "8" (uuid 1e3e2138-6822-4c2d-8218-89e25ffe3f06))
)
(symbol (lib_id "Comparator:LM2903") (at 99.06 92.71 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid d43a1d25-d37a-467a-8b09-10cf2e2ace09)
(property "Reference" "U2" (id 0) (at 99.06 82.55 0))
(property "Value" "" (id 1) (at 99.06 85.09 0))
(property "Footprint" "" (id 2) (at 99.06 92.71 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 99.06 92.71 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 2900965f-8b8d-458a-b86a-6e9955743074))
(pin "2" (uuid f37a2c24-4f47-4e4d-9f7f-0bcaef509ec5))
(pin "3" (uuid 5a7f5ba6-06c4-4b39-9065-c4c0d044c803))
(pin "5" (uuid 33aa4306-27d6-4090-96fe-2e0a2a713e0c))
(pin "6" (uuid a631a287-dbe8-4491-9924-f1eeb226bfe1))
(pin "7" (uuid 89bc2a9a-0459-4374-90b7-e699bb20f382))
(pin "4" (uuid 956ad4a4-cb8d-4eef-aba4-03ec6d18e653))
(pin "8" (uuid 1e3e2138-6822-4c2d-8218-89e25ffe3f07))
)
(symbol (lib_id "Comparator:LM2903") (at 157.48 119.38 0) (unit 3)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid db066797-b21c-4c1c-9591-8c7c549f8087)
(property "Reference" "U2" (id 0) (at 156.21 118.1099 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Value" "LM2903" (id 1) (at 156.21 120.6499 0)
(effects (font (size 1.27 1.27)) (justify left))
)
(property "Footprint" "" (id 2) (at 157.48 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 157.48 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5f091d3c-9b63-4a96-8626-8a903efff085))
(pin "2" (uuid 138f1880-267a-4cf0-89d9-93f27ab943b3))
(pin "3" (uuid 8db72d04-aa4e-4246-8b1e-434f2f787f7b))
(pin "5" (uuid d66e67f7-c757-4204-a0b8-2fd904150173))
(pin "6" (uuid 90146c19-1be3-40dc-ab0e-a10af12a19b5))
(pin "7" (uuid 4f28bce8-cbce-4bf4-86e5-c68d6f15e559))
(pin "4" (uuid 81a0a986-adf1-4b06-8f68-9208105ebae6))
(pin "8" (uuid 7aeda96c-46b8-4006-b414-502a4fefdd07))
)
(symbol (lib_id "Comparator:LM2903") (at 99.06 60.96 0) (unit 1)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid e09508cd-85e8-48bb-9bcb-9bab32279ab6)
(property "Reference" "U1" (id 0) (at 99.06 50.8 0))
(property "Value" "LM2903" (id 1) (at 99.06 53.34 0))
(property "Footprint" "" (id 2) (at 99.06 60.96 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 99.06 60.96 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid b2837d6b-6cc1-45c4-aa75-fd2bb220208e))
(pin "2" (uuid 0bb36be2-ca53-49e2-aeb3-4c5728e3d819))
(pin "3" (uuid a0fa8234-8777-4a66-8b79-9ecbb37d6605))
(pin "5" (uuid 33aa4306-27d6-4090-96fe-2e0a2a713e0d))
(pin "6" (uuid a631a287-dbe8-4491-9924-f1eeb226bfe2))
(pin "7" (uuid 89bc2a9a-0459-4374-90b7-e699bb20f383))
(pin "4" (uuid 956ad4a4-cb8d-4eef-aba4-03ec6d18e654))
(pin "8" (uuid 1e3e2138-6822-4c2d-8218-89e25ffe3f08))
)
(symbol (lib_id "Comparator:LM2903") (at 129.54 59.69 0) (unit 2)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid e0a3a04a-2f9e-4cce-bac0-1a7c08ef4522)
(property "Reference" "U1" (id 0) (at 129.54 49.53 0))
(property "Value" "LM2903" (id 1) (at 129.54 52.07 0))
(property "Footprint" "" (id 2) (at 129.54 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 129.54 59.69 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5b02613f-efef-4dd0-85cc-be1c896d096d))
(pin "2" (uuid 7d6d569a-7369-4b37-b54d-19f8e663e1c4))
(pin "3" (uuid ab5eedbe-bf43-43a6-87ca-b41cff2974ef))
(pin "5" (uuid 9e9af72c-36cd-4137-88d9-d05214970ed2))
(pin "6" (uuid b42b3d16-0988-4f7b-ad3f-dfc376005ee3))
(pin "7" (uuid 7c15e983-d86d-4112-8b09-d22a0e2aa9db))
(pin "4" (uuid bd03a794-c35b-42b3-a331-b23630dee108))
(pin "8" (uuid 79a4d627-c9cc-4d76-8b31-68992e42badf))
)
(symbol (lib_id "Comparator:LM2903") (at 129.54 119.38 0) (unit 2)
(in_bom yes) (on_board yes) (fields_autoplaced)
(uuid e6c8127f-e282-4128-8744-05f7893bc3ec)
(property "Reference" "U2" (id 0) (at 129.54 109.22 0))
(property "Value" "" (id 1) (at 129.54 111.76 0))
(property "Footprint" "" (id 2) (at 129.54 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm393.pdf" (id 3) (at 129.54 119.38 0)
(effects (font (size 1.27 1.27)) hide)
)
(pin "1" (uuid 5b02613f-efef-4dd0-85cc-be1c896d096e))
(pin "2" (uuid 7d6d569a-7369-4b37-b54d-19f8e663e1c5))
(pin "3" (uuid ab5eedbe-bf43-43a6-87ca-b41cff2974f0))
(pin "5" (uuid f1cb5557-7e5b-4159-9575-fba45fd2768c))
(pin "6" (uuid 24b5c9f7-542e-4a5e-b548-b99bbce6bbc7))
(pin "7" (uuid 2baf912f-7f66-472f-93b9-411440649bc1))
(pin "4" (uuid bd03a794-c35b-42b3-a331-b23630dee109))
(pin "8" (uuid 79a4d627-c9cc-4d76-8b31-68992e42bae0))
)
(sheet_instances
(path "/" (page "1"))
)
(symbol_instances
(path "/e09508cd-85e8-48bb-9bcb-9bab32279ab6"
(reference "U1") (unit 1) (value "LM2903") (footprint "")
)
(path "/e0a3a04a-2f9e-4cce-bac0-1a7c08ef4522"
(reference "U1") (unit 2) (value "LM2903") (footprint "")
)
(path "/4beb5b03-60d3-49da-ad35-51f275a031d5"
(reference "U1") (unit 3) (value "LM2903") (footprint "")
)
(path "/cf058f25-2bad-4c49-a0c4-f059825c427f"
(reference "U2") (unit 1) (value "LM2903") (footprint "")
)
(path "/d43a1d25-d37a-467a-8b09-10cf2e2ace09"
(reference "U2") (unit 1) (value "LM2903") (footprint "")
)
(path "/cd562bae-2426-44e6-8196-59eee5439809"
(reference "U2") (unit 2) (value "LM2903") (footprint "")
)
(path "/e6c8127f-e282-4128-8744-05f7893bc3ec"
(reference "U2") (unit 2) (value "LM2903") (footprint "")
)
(path "/3f20a749-efe3-4804-8fef-435caaa8dacb"
(reference "U2") (unit 3) (value "LM2903") (footprint "")
)
(path "/db066797-b21c-4c1c-9591-8c7c549f8087"
(reference "U2") (unit 3) (value "LM2903") (footprint "")
)
)
)

View File

@ -3,6 +3,7 @@
#
# Copyright (C) 2017 CERN
# @author Alejandro García Montoro <alejandro.garciamontoro@gmail.com>
# Copyright (C) 2022 KiCad Developers, see AUTHORS.txt for contributors.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@ -60,6 +61,7 @@ set( QA_EESCHEMA_SRCS
test_pin_numbers.cpp
test_sch_pin.cpp
test_sch_rtree.cpp
test_sch_reference_list.cpp
test_sch_sheet.cpp
test_sch_sheet_path.cpp
test_sch_sheet_list.cpp

View File

@ -1,7 +1,7 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2019 KiCad Developers, see AUTHORS.TXT for contributors.
* Copyright (C) 2019-2022 KiCad Developers, see AUTHORS.TXT for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@ -60,7 +60,7 @@ public:
}
protected:
void loadSchematic( const wxString& aRelativePath );
virtual void loadSchematic( const wxString& aRelativePath );
virtual wxFileName getSchematicFile( const wxString& aBaseName );

View File

@ -0,0 +1,299 @@
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2022 Roberto Fernandez Bautista <roberto.fer.bau@gmail.com>
* Copyright (C) 2022 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <qa_utils/wx_utils/unit_test_utils.h>
#include "eeschema_test_utils.h"
#include <sch_reference_list.h>
#include <sch_sheet_path.h> // SCH_MULTI_UNIT_REFERENCE_MAP
struct REANNOTATED_REFERENCE
{
wxString m_KIID; ///< KIID of the symbol to reannotate
wxString m_OriginalRef; ///< Original Reference Designator (prior to reannotating)
wxString m_ExpectedRef; ///< Expected Reference Designator (after reannotating)
bool m_IncludeInReannotationList; ///< True if reference is "selected" for reannotation
};
class TEST_SCH_REFERENCE_LIST_FIXTURE : public KI_TEST::SCHEMATIC_TEST_FIXTURE
{
protected:
void loadTestCase( wxString aSchematicRelativePath, std::vector<REANNOTATED_REFERENCE> aRefs );
SCH_SYMBOL* getSymbolByKIID( wxString aKIID, SCH_SHEET_PATH* aSymbolPath );
SCH_REFERENCE_LIST getAdditionalRefs();
void checkAnnotation( std::vector<REANNOTATED_REFERENCE> aRefs );
SCH_REFERENCE_LIST m_refsToReannotate;
SCH_MULTI_UNIT_REFERENCE_MAP m_lockedRefs;
};
void TEST_SCH_REFERENCE_LIST_FIXTURE::loadTestCase( wxString aSchematicRelativePath,
std::vector<REANNOTATED_REFERENCE> aRefs )
{
m_refsToReannotate.Clear();
m_lockedRefs.clear();
loadSchematic( aSchematicRelativePath );
// Create list of references to reannotate
for( REANNOTATED_REFERENCE ref : aRefs )
{
SCH_SHEET_PATH symbolPath;
SCH_SYMBOL* symbol = getSymbolByKIID( ref.m_KIID, &symbolPath );
//Make sure test case is built properly
BOOST_REQUIRE_NE( symbol, nullptr );
BOOST_REQUIRE_EQUAL( symbol->GetRef( &symbolPath, true ), ref.m_OriginalRef );
if( ref.m_IncludeInReannotationList )
{
symbolPath.AppendSymbol( m_refsToReannotate, symbol );
symbolPath.AppendMultiUnitSymbol( m_lockedRefs, symbol );
}
}
}
SCH_SYMBOL* TEST_SCH_REFERENCE_LIST_FIXTURE::getSymbolByKIID( wxString aKIID,
SCH_SHEET_PATH* aSymbolPath )
{
SCH_SHEET_LIST sheets = m_schematic.GetSheets();
KIID symKIID( aKIID );
SCH_ITEM* foundItem = sheets.GetItem( symKIID, aSymbolPath );
SCH_SYMBOL* symbol = dynamic_cast<SCH_SYMBOL*>( foundItem );
return symbol;
};
SCH_REFERENCE_LIST TEST_SCH_REFERENCE_LIST_FIXTURE::getAdditionalRefs()
{
// Build List of additional references to pass into Annotate()
SCH_REFERENCE_LIST allRefs, additionalRefs;
m_schematic.GetSheets().GetSymbols( allRefs );
for( size_t i = 0; i < allRefs.GetCount(); ++i )
{
if( !m_refsToReannotate.Contains( allRefs[i] ) )
additionalRefs.AddItem( allRefs[i] );
}
return additionalRefs;
}
void TEST_SCH_REFERENCE_LIST_FIXTURE::checkAnnotation( std::vector<REANNOTATED_REFERENCE> aRefs )
{
for( REANNOTATED_REFERENCE ref : aRefs )
{
SCH_SHEET_PATH symbolPath;
SCH_SYMBOL* symbol = getSymbolByKIID( ref.m_KIID, &symbolPath );
BOOST_CHECK_EQUAL( symbol->GetRef( &symbolPath, true ), ref.m_ExpectedRef );
}
}
BOOST_FIXTURE_TEST_SUITE( SchReferenceList, TEST_SCH_REFERENCE_LIST_FIXTURE )
struct REANNOTATION_CASE
{
std::string m_caseName;
wxString m_SchematicRelativePath;
int m_StartNumber;
std::vector<REANNOTATED_REFERENCE> m_ExpectedReannotations;
};
// Case 1: same value, same libref
// Case 2: same value, different libref
// Case 3: different value, same libref
// Case 4: Not annotated unit to reannotate
// Case 5: Duplicate references
static const std::vector<REANNOTATION_CASE> reannotationCases = {
{ "CASE 1. Rename only selected. All units selected",
"test_multiunit_reannotate",
1,
{
{ "cf058f25-2bad-4c49-a0c4-f059825c427f", "U99A", "U3A", true },
{ "e6c8127f-e282-4128-8744-05f7893bc3ec", "U99B", "U3B", true },
{ "db066797-b21c-4c1c-9591-8c7c549f8087", "U99C", "U3C", true },
} },
{ "CASE 1. Rename only selected. Only unit B selected (A and C should NOT be reannotated)",
"test_multiunit_reannotate",
1,
{
{ "cf058f25-2bad-4c49-a0c4-f059825c427f", "U99A", "U99A", false },
{ "e6c8127f-e282-4128-8744-05f7893bc3ec", "U99B", "U2B", true },
{ "db066797-b21c-4c1c-9591-8c7c549f8087", "U99C", "U99C", false },
} },
{ "CASE 1. Rename only selected. Only units B and C selected (A should NOT be reannotated)",
"test_multiunit_reannotate",
1,
{
{ "cf058f25-2bad-4c49-a0c4-f059825c427f", "U99A", "U99A", false },
{ "e6c8127f-e282-4128-8744-05f7893bc3ec", "U99B", "U3B", true },
{ "db066797-b21c-4c1c-9591-8c7c549f8087", "U99C", "U3C", true },
} },
{ "CASE 2. Rename only selected. All units selected",
"test_multiunit_reannotate_2",
1,
{
{ "cf058f25-2bad-4c49-a0c4-f059825c427f", "U99A", "U3A", true },
{ "e6c8127f-e282-4128-8744-05f7893bc3ec", "U99B", "U3B", true },
{ "db066797-b21c-4c1c-9591-8c7c549f8087", "U99C", "U3C", true },
} },
{ "CASE 2. Rename only selected. Only unit B selected (A and C should NOT be reannotated)",
"test_multiunit_reannotate_2",
1,
{
{ "cf058f25-2bad-4c49-a0c4-f059825c427f", "U99A", "U99A", false },
{ "e6c8127f-e282-4128-8744-05f7893bc3ec", "U99B", "U3B", true },
{ "db066797-b21c-4c1c-9591-8c7c549f8087", "U99C", "U99C", false },
} },
{ "CASE 2. Rename only selected. Only units B and C selected (A should NOT be reannotated)",
"test_multiunit_reannotate_2",
1,
{
{ "cf058f25-2bad-4c49-a0c4-f059825c427f", "U99A", "U99A", false },
{ "e6c8127f-e282-4128-8744-05f7893bc3ec", "U99B", "U3B", true },
{ "db066797-b21c-4c1c-9591-8c7c549f8087", "U99C", "U3C", true },
} },
{ "CASE 3. Rename only selected. All units selected",
"test_multiunit_reannotate_3",
1,
{
{ "cf058f25-2bad-4c49-a0c4-f059825c427f", "U99A", "U3A", true },
{ "e6c8127f-e282-4128-8744-05f7893bc3ec", "U99B", "U3B", true },
{ "db066797-b21c-4c1c-9591-8c7c549f8087", "U99C", "U3C", true },
} },
{ "CASE 3. Rename only selected. Only unit B selected (A and C should NOT be reannotated)",
"test_multiunit_reannotate_3",
1,
{
{ "cf058f25-2bad-4c49-a0c4-f059825c427f", "U99A", "U99A", false },
{ "e6c8127f-e282-4128-8744-05f7893bc3ec", "U99B", "U3B", true },
{ "db066797-b21c-4c1c-9591-8c7c549f8087", "U99C", "U99C", false },
} },
{ "CASE 3. Rename only selected. Only units B and C selected (A should NOT be reannotated)",
"test_multiunit_reannotate_3",
1,
{
{ "cf058f25-2bad-4c49-a0c4-f059825c427f", "U99A", "U99A", false },
{ "e6c8127f-e282-4128-8744-05f7893bc3ec", "U99B", "U3B", true },
{ "db066797-b21c-4c1c-9591-8c7c549f8087", "U99C", "U3C", true },
} },
{ "CASE 4 - Not previously annotated (does not get added to multi-unit locked group)",
"test_multiunit_reannotate_4",
1,
{
{ "549455c3-ab6e-454e-94b0-5ca9e521ae0b", "U?B", "U2B", true },
} },
{ "CASE 5 - Duplicate annotation. 1 selected",
"test_multiunit_reannotate_5",
10,
{
{ "d43a1d25-d37a-467a-8b09-10cf2e2ace09", "U2A", "U2A", false },
{ "cd562bae-2426-44e6-8196-59eee5439809", "U2B", "U2B", false },
{ "3f20a749-efe3-4804-8fef-435caaa8dacb", "U2C", "U2C", false },
{ "cf058f25-2bad-4c49-a0c4-f059825c427f", "U2A", "U2A", false },
{ "e6c8127f-e282-4128-8744-05f7893bc3ec", "U2B", "U11B", true },
{ "db066797-b21c-4c1c-9591-8c7c549f8087", "U2C", "U2C", false },
} },
{ "CASE 5 - Duplicate annotation. 2 selected",
"test_multiunit_reannotate_5",
10,
{
{ "d43a1d25-d37a-467a-8b09-10cf2e2ace09", "U2A", "U2A", false },
{ "cd562bae-2426-44e6-8196-59eee5439809", "U2B", "U11B", true },
{ "3f20a749-efe3-4804-8fef-435caaa8dacb", "U2C", "U2C", false },
{ "cf058f25-2bad-4c49-a0c4-f059825c427f", "U2A", "U2A", false },
{ "e6c8127f-e282-4128-8744-05f7893bc3ec", "U2B", "U12B", true },
{ "db066797-b21c-4c1c-9591-8c7c549f8087", "U2C", "U2C", false },
} },
};
// @todo simplify or refactor this test case.
// Currently it simulates part of SCH_EDIT_FRAME::AnnotateSymbols
BOOST_AUTO_TEST_CASE( Reannotate )
{
for( const REANNOTATION_CASE& c : reannotationCases )
{
BOOST_TEST_INFO_SCOPE( c.m_caseName );
loadTestCase( c.m_SchematicRelativePath, c.m_ExpectedReannotations );
m_refsToReannotate.RemoveAnnotation();
m_refsToReannotate.SplitReferences();
m_refsToReannotate.Annotate( false, 0, c.m_StartNumber, m_lockedRefs, getAdditionalRefs() );
m_refsToReannotate.UpdateAnnotation();
checkAnnotation( c.m_ExpectedReannotations );
}
}
struct DUPLICATE_REANNOTATION_CASE
{
std::string m_caseName;
wxString m_SchematicRelativePath;
std::vector<REANNOTATED_REFERENCE> m_ExpectedReannotations;
};
static const std::vector<DUPLICATE_REANNOTATION_CASE> reannotateDuplicatesCases = {
{ "Reannotate Duplicates. Simple case",
"test_multiunit_reannotate_5",
{
{ "d43a1d25-d37a-467a-8b09-10cf2e2ace09", "U2A", "U2A", false },
{ "cd562bae-2426-44e6-8196-59eee5439809", "U2B", "U2B", false },
{ "3f20a749-efe3-4804-8fef-435caaa8dacb", "U2C", "U2C", false },
{ "cf058f25-2bad-4c49-a0c4-f059825c427f", "U2A", "U3A", true },
{ "e6c8127f-e282-4128-8744-05f7893bc3ec", "U2B", "U3B", true },
{ "db066797-b21c-4c1c-9591-8c7c549f8087", "U2C", "U3C", true },
} },
};
BOOST_AUTO_TEST_CASE( ReannotateDuplicates )
{
for( const DUPLICATE_REANNOTATION_CASE& c : reannotateDuplicatesCases )
{
BOOST_TEST_INFO_SCOPE( c.m_caseName );
loadTestCase( c.m_SchematicRelativePath, c.m_ExpectedReannotations );
m_refsToReannotate.ReannotateDuplicates( getAdditionalRefs() );
m_refsToReannotate.UpdateAnnotation();
checkAnnotation( c.m_ExpectedReannotations );
}
}
BOOST_AUTO_TEST_SUITE_END()