Spice fields enum values renamed from SPICE_* to SF_*

This commit is contained in:
Maciej Suminski 2016-08-11 14:41:51 +02:00
parent 3ebc2494a7
commit 27a7a9b1a5
5 changed files with 50 additions and 57 deletions

View File

@ -76,9 +76,9 @@ bool DIALOG_SPICE_MODEL::TransferDataFromWindow()
{ {
switch( m_pasType->GetSelection() ) switch( m_pasType->GetSelection() )
{ {
case 0: m_fieldsTmp[SPICE_PRIMITIVE] = (char) SP_RESISTOR; break; case 0: m_fieldsTmp[SF_PRIMITIVE] = (char) SP_RESISTOR; break;
case 1: m_fieldsTmp[SPICE_PRIMITIVE] = (char) SP_CAPACITOR; break; case 1: m_fieldsTmp[SF_PRIMITIVE] = (char) SP_CAPACITOR; break;
case 2: m_fieldsTmp[SPICE_PRIMITIVE] = (char) SP_INDUCTOR; break; case 2: m_fieldsTmp[SF_PRIMITIVE] = (char) SP_INDUCTOR; break;
default: default:
wxASSERT_MSG( false, "Unhandled passive type" ); wxASSERT_MSG( false, "Unhandled passive type" );
@ -86,7 +86,7 @@ bool DIALOG_SPICE_MODEL::TransferDataFromWindow()
break; break;
} }
m_fieldsTmp[SPICE_MODEL] = m_pasValue->GetValue(); m_fieldsTmp[SF_MODEL] = m_pasValue->GetValue();
} }
@ -95,9 +95,9 @@ bool DIALOG_SPICE_MODEL::TransferDataFromWindow()
{ {
switch( m_semiType->GetSelection() ) switch( m_semiType->GetSelection() )
{ {
case 0: m_fieldsTmp[SPICE_PRIMITIVE] = (char) SP_DIODE; break; case 0: m_fieldsTmp[SF_PRIMITIVE] = (char) SP_DIODE; break;
case 1: m_fieldsTmp[SPICE_PRIMITIVE] = (char) SP_BJT; break; case 1: m_fieldsTmp[SF_PRIMITIVE] = (char) SP_BJT; break;
case 2: m_fieldsTmp[SPICE_PRIMITIVE] = (char) SP_MOSFET; break; case 2: m_fieldsTmp[SF_PRIMITIVE] = (char) SP_MOSFET; break;
default: default:
wxASSERT_MSG( false, "Unhandled semiconductor type" ); wxASSERT_MSG( false, "Unhandled semiconductor type" );
@ -105,21 +105,21 @@ bool DIALOG_SPICE_MODEL::TransferDataFromWindow()
break; break;
} }
m_fieldsTmp[SPICE_MODEL] = m_semiModel->GetValue(); m_fieldsTmp[SF_MODEL] = m_semiModel->GetValue();
if( !empty( m_semiLib ) ) if( !empty( m_semiLib ) )
m_fieldsTmp[SPICE_LIB_FILE] = m_semiLib->GetValue(); m_fieldsTmp[SF_LIB_FILE] = m_semiLib->GetValue();
} }
// Integrated circuit // Integrated circuit
else if( page == m_ic ) else if( page == m_ic )
{ {
m_fieldsTmp[SPICE_PRIMITIVE] = (char) SP_SUBCKT; m_fieldsTmp[SF_PRIMITIVE] = (char) SP_SUBCKT;
m_fieldsTmp[SPICE_MODEL] = m_icModel->GetValue(); m_fieldsTmp[SF_MODEL] = m_icModel->GetValue();
if( !empty( m_icLib ) ) if( !empty( m_icLib ) )
m_fieldsTmp[SPICE_LIB_FILE] = m_icLib->GetValue(); m_fieldsTmp[SF_LIB_FILE] = m_icLib->GetValue();
} }
@ -131,8 +131,8 @@ bool DIALOG_SPICE_MODEL::TransferDataFromWindow()
if( !generatePowerSource( model ) ) if( !generatePowerSource( model ) )
return false; return false;
m_fieldsTmp[SPICE_PRIMITIVE] = (char)( m_pwrType->GetSelection() ? SP_ISOURCE : SP_VSOURCE ); m_fieldsTmp[SF_PRIMITIVE] = (char)( m_pwrType->GetSelection() ? SP_ISOURCE : SP_VSOURCE );
m_fieldsTmp[SPICE_MODEL] = model; m_fieldsTmp[SF_MODEL] = model;
} }
@ -142,11 +142,11 @@ bool DIALOG_SPICE_MODEL::TransferDataFromWindow()
return false; return false;
} }
m_fieldsTmp[SPICE_ENABLED] = !m_disabled->GetValue() ? "Y" : "N"; // note bool inversion m_fieldsTmp[SF_ENABLED] = !m_disabled->GetValue() ? "Y" : "N"; // note bool inversion
m_fieldsTmp[SPICE_NODE_SEQUENCE] = m_nodeSeqCheck->IsChecked() ? m_nodeSeqVal->GetValue() : ""; m_fieldsTmp[SF_NODE_SEQUENCE] = m_nodeSeqCheck->IsChecked() ? m_nodeSeqVal->GetValue() : "";
// Apply the settings // Apply the settings
for( int i = 0; i < SPICE_FIELD_END; ++i ) for( int i = 0; i < SF_END; ++i )
{ {
if( m_fieldsTmp.count( (SPICE_FIELD) i ) > 0 && !m_fieldsTmp.at( i ).IsEmpty() ) if( m_fieldsTmp.count( (SPICE_FIELD) i ) > 0 && !m_fieldsTmp.at( i ).IsEmpty() )
{ {
@ -192,7 +192,7 @@ bool DIALOG_SPICE_MODEL::TransferDataToWindow()
} }
// Analyze the component fields to fill out the dialog // Analyze the component fields to fill out the dialog
char primitive = toupper( m_fieldsTmp[SPICE_PRIMITIVE][0] ); char primitive = toupper( m_fieldsTmp[SF_PRIMITIVE][0] );
switch( primitive ) switch( primitive )
{ {
@ -204,7 +204,7 @@ bool DIALOG_SPICE_MODEL::TransferDataToWindow()
: primitive == SP_CAPACITOR ? 1 : primitive == SP_CAPACITOR ? 1
: primitive == SP_INDUCTOR ? 2 : primitive == SP_INDUCTOR ? 2
: -1 ); : -1 );
m_pasValue->SetValue( m_fieldsTmp[SPICE_MODEL] ); m_pasValue->SetValue( m_fieldsTmp[SF_MODEL] );
break; break;
case SP_DIODE: case SP_DIODE:
@ -215,33 +215,33 @@ bool DIALOG_SPICE_MODEL::TransferDataToWindow()
: primitive == SP_BJT ? 1 : primitive == SP_BJT ? 1
: primitive == SP_MOSFET ? 2 : primitive == SP_MOSFET ? 2
: -1 ); : -1 );
m_semiModel->SetValue( m_fieldsTmp[SPICE_MODEL] ); m_semiModel->SetValue( m_fieldsTmp[SF_MODEL] );
m_semiLib->SetValue( m_fieldsTmp[SPICE_LIB_FILE] ); m_semiLib->SetValue( m_fieldsTmp[SF_LIB_FILE] );
if( !empty( m_semiLib ) ) if( !empty( m_semiLib ) )
{ {
const wxString& libFile = m_semiLib->GetValue(); const wxString& libFile = m_semiLib->GetValue();
m_fieldsTmp[SPICE_LIB_FILE] = libFile; m_fieldsTmp[SF_LIB_FILE] = libFile;
updateFromFile( m_semiModel, libFile, "model" ); updateFromFile( m_semiModel, libFile, "model" );
} }
break; break;
case SP_SUBCKT: case SP_SUBCKT:
m_notebook->SetSelection( m_notebook->FindPage( m_ic ) ); m_notebook->SetSelection( m_notebook->FindPage( m_ic ) );
m_icModel->SetValue( m_fieldsTmp[SPICE_MODEL] ); m_icModel->SetValue( m_fieldsTmp[SF_MODEL] );
m_icLib->SetValue( m_fieldsTmp[SPICE_LIB_FILE] ); m_icLib->SetValue( m_fieldsTmp[SF_LIB_FILE] );
if( !empty( m_icLib ) ) if( !empty( m_icLib ) )
{ {
const wxString& libFile = m_icLib->GetValue(); const wxString& libFile = m_icLib->GetValue();
m_fieldsTmp[SPICE_LIB_FILE] = libFile; m_fieldsTmp[SF_LIB_FILE] = libFile;
updateFromFile( m_icModel, libFile, "subckt" ); updateFromFile( m_icModel, libFile, "subckt" );
} }
break; break;
case SP_VSOURCE: case SP_VSOURCE:
case SP_ISOURCE: case SP_ISOURCE:
if( !parsePowerSource( m_fieldsTmp[SPICE_MODEL] ) ) if( !parsePowerSource( m_fieldsTmp[SF_MODEL] ) )
return false; return false;
m_notebook->SetSelection( m_notebook->FindPage( m_power ) ); m_notebook->SetSelection( m_notebook->FindPage( m_power ) );
@ -253,14 +253,14 @@ bool DIALOG_SPICE_MODEL::TransferDataToWindow()
break; break;
} }
m_disabled->SetValue( !NETLIST_EXPORTER_PSPICE::StringToBool( m_fieldsTmp[SPICE_ENABLED] ) ); m_disabled->SetValue( !NETLIST_EXPORTER_PSPICE::StringToBool( m_fieldsTmp[SF_ENABLED] ) );
// Check if node sequence is different than the default one // Check if node sequence is different than the default one
if( m_fieldsTmp[SPICE_NODE_SEQUENCE] if( m_fieldsTmp[SF_NODE_SEQUENCE]
!= NETLIST_EXPORTER_PSPICE::GetSpiceFieldDefVal( SPICE_NODE_SEQUENCE, &m_component, 0 ) ) != NETLIST_EXPORTER_PSPICE::GetSpiceFieldDefVal( SF_NODE_SEQUENCE, &m_component, 0 ) )
{ {
m_nodeSeqCheck->SetValue( true ); m_nodeSeqCheck->SetValue( true );
m_nodeSeqVal->SetValue( m_fieldsTmp[SPICE_NODE_SEQUENCE] ); m_nodeSeqVal->SetValue( m_fieldsTmp[SF_NODE_SEQUENCE] );
} }
return DIALOG_SPICE_MODEL_BASE::TransferDataToWindow(); return DIALOG_SPICE_MODEL_BASE::TransferDataToWindow();

View File

@ -144,7 +144,7 @@ wxString NETLIST_EXPORTER_PSPICE::GetSpiceField( SPICE_FIELD aField,
SCH_COMPONENT* aComponent, unsigned aCtl ) SCH_COMPONENT* aComponent, unsigned aCtl )
{ {
SCH_FIELD* field = aComponent->FindField( GetSpiceFieldName( aField ) ); SCH_FIELD* field = aComponent->FindField( GetSpiceFieldName( aField ) );
return field ? field->GetText() : GetSpiceFieldDefVal( SPICE_PRIMITIVE, aComponent, aCtl ); return field ? field->GetText() : GetSpiceFieldDefVal( SF_PRIMITIVE, aComponent, aCtl );
} }
@ -153,7 +153,7 @@ wxString NETLIST_EXPORTER_PSPICE::GetSpiceFieldDefVal( SPICE_FIELD aField,
{ {
switch( aField ) switch( aField )
{ {
case SPICE_PRIMITIVE: case SF_PRIMITIVE:
{ {
const wxString& refName = aComponent->GetField( REFERENCE )->GetText(); const wxString& refName = aComponent->GetField( REFERENCE )->GetText();
@ -165,7 +165,7 @@ wxString NETLIST_EXPORTER_PSPICE::GetSpiceFieldDefVal( SPICE_FIELD aField,
break; break;
} }
case SPICE_MODEL: case SF_MODEL:
{ {
wxChar prim = aComponent->GetField( REFERENCE )->GetText().GetChar( 0 ); wxChar prim = aComponent->GetField( REFERENCE )->GetText().GetChar( 0 );
wxString value = aComponent->GetField( VALUE )->GetText(); wxString value = aComponent->GetField( VALUE )->GetText();
@ -199,11 +199,11 @@ wxString NETLIST_EXPORTER_PSPICE::GetSpiceFieldDefVal( SPICE_FIELD aField,
break; break;
} }
case SPICE_ENABLED: case SF_ENABLED:
return wxString( "Y" ); return wxString( "Y" );
break; break;
case SPICE_NODE_SEQUENCE: case SF_NODE_SEQUENCE:
{ {
wxString nodeSeq; wxString nodeSeq;
std::vector<LIB_PIN*> pins; std::vector<LIB_PIN*> pins;
@ -219,7 +219,7 @@ wxString NETLIST_EXPORTER_PSPICE::GetSpiceFieldDefVal( SPICE_FIELD aField,
break; break;
} }
case SPICE_LIB_FILE: case SF_LIB_FILE:
// There is no default Spice library // There is no default Spice library
return wxEmptyString; return wxEmptyString;
break; break;
@ -268,22 +268,15 @@ void NETLIST_EXPORTER_PSPICE::ProcessNetlist( unsigned aCtl )
spiceItem.m_parent = comp; spiceItem.m_parent = comp;
// Obtain Spice fields // Obtain Spice fields
SCH_FIELD* fieldPrim = comp->FindField( GetSpiceFieldName( SPICE_PRIMITIVE ) ); SCH_FIELD* fieldLibFile = comp->FindField( GetSpiceFieldName( SF_LIB_FILE ) );
SCH_FIELD* fieldModel = comp->FindField( GetSpiceFieldName( SPICE_MODEL ) ); SCH_FIELD* fieldSeq = comp->FindField( GetSpiceFieldName( SF_NODE_SEQUENCE ) );
SCH_FIELD* fieldEnabled = comp->FindField( GetSpiceFieldName( SPICE_ENABLED ) );
SCH_FIELD* fieldLibFile = comp->FindField( GetSpiceFieldName( SPICE_LIB_FILE ) );
SCH_FIELD* fieldSeq = comp->FindField( GetSpiceFieldName( SPICE_NODE_SEQUENCE ) );
spiceItem.m_primitive = fieldPrim ? fieldPrim->GetText()[0]
: GetSpiceFieldDefVal( SPICE_PRIMITIVE, comp, aCtl )[0];
spiceItem.m_model = fieldModel ? fieldModel->GetText()
: GetSpiceFieldDefVal( SPICE_MODEL, comp, aCtl );
spiceItem.m_primitive = GetSpiceField( SF_PRIMITIVE, comp, aCtl )[0];
spiceItem.m_model = GetSpiceField( SF_MODEL, comp, aCtl );
spiceItem.m_refName = comp->GetRef( &sheetList[sheet_idx] ); spiceItem.m_refName = comp->GetRef( &sheetList[sheet_idx] );
// Check to see if component should be removed from Spice netlist // Check to see if component should be removed from Spice netlist
spiceItem.m_enabled = fieldEnabled ? StringToBool( fieldEnabled->GetText() ) : true; spiceItem.m_enabled = StringToBool( GetSpiceField( SF_ENABLED, comp, aCtl ) );
if( fieldLibFile && !fieldLibFile->GetText().IsEmpty() ) if( fieldLibFile && !fieldLibFile->GetText().IsEmpty() )
m_libraries.insert( fieldLibFile->GetText() ); m_libraries.insert( fieldLibFile->GetText() );

View File

@ -41,12 +41,12 @@ enum SPICE_NETLIST_OPTIONS {
}; };
enum SPICE_FIELD { enum SPICE_FIELD {
SPICE_PRIMITIVE, SF_PRIMITIVE,
SPICE_MODEL, SF_MODEL,
SPICE_ENABLED, SF_ENABLED,
SPICE_NODE_SEQUENCE, SF_NODE_SEQUENCE,
SPICE_LIB_FILE, SF_LIB_FILE,
SPICE_FIELD_END // sentinel SF_END // sentinel
}; };
enum SPICE_PRIMITIVE { enum SPICE_PRIMITIVE {

View File

@ -189,7 +189,7 @@ void SIM_PLOT_FRAME::AddTuner( SCH_COMPONENT* aComponent )
return; return;
// For now limit the tuner tool to RLC components // For now limit the tuner tool to RLC components
char primitiveType = NETLIST_EXPORTER_PSPICE::GetSpiceField( SPICE_PRIMITIVE, aComponent, 0 )[0]; char primitiveType = NETLIST_EXPORTER_PSPICE::GetSpiceField( SF_PRIMITIVE, aComponent, 0 )[0];
if( primitiveType != SP_RESISTOR && primitiveType != SP_CAPACITOR && primitiveType != SP_INDUCTOR ) if( primitiveType != SP_RESISTOR && primitiveType != SP_CAPACITOR && primitiveType != SP_INDUCTOR )
return; return;
@ -247,7 +247,7 @@ void SIM_PLOT_FRAME::updateNetlistExporter()
} }
bool SIM_PLOT_FRAME::updatePlot( const wxString& aSpiceName, const wxString& aName, SIM_PLOT_PANEL* aPanel ) bool SIM_PLOT_FRAME::updatePlot( const wxString& aName, SIM_PLOT_TYPE aType, SIM_PLOT_PANEL* aPanel )
{ {
if( !m_simulator ) if( !m_simulator )
return false; return false;

View File

@ -39,7 +39,7 @@ TUNER_SLIDER::TUNER_SLIDER( SIM_PLOT_FRAME* aParent, SCH_COMPONENT* aComponent )
m_changed = false; m_changed = false;
// Generate Spice component name // Generate Spice component name
char prim = NETLIST_EXPORTER_PSPICE::GetSpiceField( SPICE_PRIMITIVE, aComponent, 0 )[0]; char prim = NETLIST_EXPORTER_PSPICE::GetSpiceField( SF_PRIMITIVE, aComponent, 0 )[0];
m_spiceName = wxString( prim + compName ).Lower(); m_spiceName = wxString( prim + compName ).Lower();
// Call Set*() methods to update fields and slider // Call Set*() methods to update fields and slider