Naming conventions and commenting. No functional changes.
This commit is contained in:
parent
48740dd3f8
commit
b6d0b65261
|
@ -356,16 +356,16 @@ if( KICAD_SPICE )
|
|||
tools/simulator_control.cpp
|
||||
sim/ngspice_circuit_model.cpp
|
||||
sim/ngspice.cpp
|
||||
sim/sim_notebook.cpp
|
||||
sim/simulator_frame.cpp
|
||||
sim/simulator_frame_base.cpp
|
||||
sim/sim_panel_base.cpp
|
||||
sim/sim_plot_colors.cpp
|
||||
sim/sim_plot_frame.cpp
|
||||
sim/sim_plot_frame_base.cpp
|
||||
sim/sim_plot_panel.cpp
|
||||
sim/sim_property.cpp
|
||||
sim/spice_simulator.cpp
|
||||
sim/spice_value.cpp
|
||||
sim/toolbars_sim_plot_frame.cpp
|
||||
sim/toolbars_simulator_frame.cpp
|
||||
widgets/sim_notebook.cpp
|
||||
widgets/tuner_slider.cpp
|
||||
widgets/tuner_slider_base.cpp
|
||||
)
|
||||
|
|
|
@ -26,11 +26,11 @@
|
|||
#include <widgets/grid_text_helpers.h>
|
||||
#include <grid_tricks.h>
|
||||
#include <dialogs/html_message_box.h>
|
||||
#include <../sim/sim_plot_frame.h>
|
||||
#include <../sim/simulator_frame.h>
|
||||
#include <dialog_user_defined_signals.h>
|
||||
|
||||
|
||||
DIALOG_USER_DEFINED_SIGNALS::DIALOG_USER_DEFINED_SIGNALS( SIM_PLOT_FRAME* aParent,
|
||||
DIALOG_USER_DEFINED_SIGNALS::DIALOG_USER_DEFINED_SIGNALS( SIMULATOR_FRAME* aParent,
|
||||
std::map<int, wxString>* aSignals ) :
|
||||
DIALOG_USER_DEFINED_SIGNALS_BASE( aParent ),
|
||||
m_frame( aParent ),
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#include <dialog_user_defined_signals_base.h>
|
||||
|
||||
|
||||
class SIM_PLOT_FRAME;
|
||||
class SIMULATOR_FRAME;
|
||||
class SCINTILLA_TRICKS;
|
||||
class HTML_MESSAGE_BOX;
|
||||
|
||||
|
@ -35,7 +35,7 @@ class HTML_MESSAGE_BOX;
|
|||
class DIALOG_USER_DEFINED_SIGNALS : public DIALOG_USER_DEFINED_SIGNALS_BASE
|
||||
{
|
||||
public:
|
||||
DIALOG_USER_DEFINED_SIGNALS( SIM_PLOT_FRAME* parent, std::map<int, wxString>* aSignals );
|
||||
DIALOG_USER_DEFINED_SIGNALS( SIMULATOR_FRAME* parent, std::map<int, wxString>* aSignals );
|
||||
~DIALOG_USER_DEFINED_SIGNALS();
|
||||
|
||||
private:
|
||||
|
@ -50,7 +50,7 @@ private:
|
|||
bool TransferDataFromWindow() override;
|
||||
|
||||
private:
|
||||
SIM_PLOT_FRAME* m_frame;
|
||||
SIMULATOR_FRAME* m_frame;
|
||||
std::map<int, wxString>* m_signals;
|
||||
|
||||
HTML_MESSAGE_BOX* m_helpWindow;
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
#include <dialogs/panel_gal_display_options.h>
|
||||
#include <panel_eeschema_display_options.h>
|
||||
#include <panel_sym_display_options.h>
|
||||
#include <sim/sim_plot_frame.h>
|
||||
#include <sim/simulator_frame.h>
|
||||
|
||||
#include <wx/crt.h>
|
||||
|
||||
|
@ -172,7 +172,7 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
|||
#ifdef KICAD_SPICE
|
||||
case FRAME_SIMULATOR:
|
||||
{
|
||||
SIM_PLOT_FRAME* frame = new SIM_PLOT_FRAME( aKiway, aParent );
|
||||
SIMULATOR_FRAME* frame = new SIMULATOR_FRAME( aKiway, aParent );
|
||||
return frame;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
#include <sch_sheet_path.h>
|
||||
#include <schematic.h>
|
||||
#include <settings/settings_manager.h>
|
||||
#include <sim/sim_plot_frame.h>
|
||||
#include <sim/simulator_frame.h>
|
||||
#include <tool/actions.h>
|
||||
#include <tool/tool_manager.h>
|
||||
#include <tools/sch_editor_control.h>
|
||||
|
@ -1315,7 +1315,7 @@ bool SCH_EDIT_FRAME::AskToSaveChanges()
|
|||
// Save any currently open and modified project files.
|
||||
for( SCH_SCREEN* screen = screenList.GetFirst(); screen; screen = screenList.GetNext() )
|
||||
{
|
||||
SIM_PLOT_FRAME* simFrame = (SIM_PLOT_FRAME*) Kiway().Player( FRAME_SIMULATOR, false );
|
||||
SIMULATOR_FRAME* simFrame = (SIMULATOR_FRAME*) Kiway().Player( FRAME_SIMULATOR, false );
|
||||
|
||||
// Simulator must be closed before loading another schematic, otherwise it may crash.
|
||||
// If there are any changes in the simulator the user will be prompted to save them.
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
#include <schematic.h>
|
||||
#include <settings/settings_manager.h>
|
||||
#include <advanced_config.h>
|
||||
#include <sim/sim_plot_frame.h>
|
||||
#include <sim/simulator_frame.h>
|
||||
#include <sim/spice_settings.h>
|
||||
#include <tool/action_manager.h>
|
||||
#include <tool/action_toolbar.h>
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include "confirm.h"
|
||||
#include "sim_panel_base.h"
|
||||
|
||||
#include "sim_plot_frame.h"
|
||||
#include "simulator_frame.h"
|
||||
#include "ngspice_circuit_model.h"
|
||||
|
||||
|
||||
|
@ -82,9 +82,8 @@ SIM_NOPLOT_PANEL::SIM_NOPLOT_PANEL( const wxString& aCommand, int aOptions, wxWi
|
|||
m_sizer->Add( 0, 1, 1, wxEXPAND, 5 );
|
||||
|
||||
m_textInfo = new wxStaticText( dynamic_cast<wxWindow*>( this ), wxID_ANY, "", wxDefaultPosition,
|
||||
wxDefaultSize, wxALL | wxEXPAND | wxALIGN_CENTER_HORIZONTAL );
|
||||
m_textInfo->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT,
|
||||
wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) );
|
||||
wxDefaultSize, wxALL | wxEXPAND | wxALIGN_CENTER_HORIZONTAL );
|
||||
m_textInfo->SetFont( KIUI::GetControlFont( this ).Bold() );
|
||||
m_textInfo->SetForegroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_GRAYTEXT ) );
|
||||
m_textInfo->SetLabel( _( "Simulation provided no plots. Please refer to console window "
|
||||
"for results." ) );
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
#include "sim_plot_colors.h"
|
||||
#include "sim_plot_panel.h"
|
||||
#include "sim_plot_frame.h"
|
||||
#include "simulator_frame.h"
|
||||
#include "core/kicad_algo.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
|
|
@ -36,10 +36,29 @@
|
|||
#include "sim_panel_base.h"
|
||||
#include "sim_plot_colors.h"
|
||||
|
||||
class SIM_PLOT_FRAME;
|
||||
class SIMULATOR_FRAME;
|
||||
class SIM_PLOT_PANEL;
|
||||
class TRACE;
|
||||
|
||||
/**
|
||||
*
|
||||
* The SIMULATOR_FRAME holds the main user-interface for running simulations.
|
||||
*
|
||||
* It contains a workbook with multiple tabs, each tab holding a SIM_PLOT_PANEL, a specific
|
||||
* simulation command (.TRAN, .AC, etc.), and simulation settings (save all currents, etc.).
|
||||
*
|
||||
* Each plot can have multiple TRACEs. While internally each TRACE can have multiple cursors,
|
||||
* the GUI supports only two cursors (and a differential cursor) for each plot.
|
||||
*
|
||||
* TRACEs are identified by a signal (V(OUT), I(R2), etc.) and a type (SPT_VOLTAGE, SPT_AC_PHASE,
|
||||
* etc.).
|
||||
*
|
||||
* The simulator outputs simple signals in a vector of the same name. Complex signals (such as
|
||||
* V(OUT) / V(IN)) are stored in vectors of the format "user%d".
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
///< Cursor attached to a trace to follow its values:
|
||||
class CURSOR : public mpInfoLayer
|
||||
{
|
||||
|
@ -106,8 +125,8 @@ class TRACE : public mpFXYVector
|
|||
{
|
||||
public:
|
||||
TRACE( const wxString& aName, SIM_TRACE_TYPE aType ) :
|
||||
mpFXYVector( aName ),
|
||||
m_type( aType )
|
||||
mpFXYVector( aName ),
|
||||
m_type( aType )
|
||||
{
|
||||
SetContinuity( true );
|
||||
SetDrawOutsideMargins( false );
|
||||
|
@ -272,10 +291,7 @@ public:
|
|||
void OnLanguageChanged() override;
|
||||
|
||||
///< Getter for math plot window
|
||||
mpWindow* GetPlotWin() const
|
||||
{
|
||||
return m_plotWin;
|
||||
}
|
||||
mpWindow* GetPlotWin() const { return m_plotWin; }
|
||||
|
||||
TRACE* AddTrace( const wxString& aVectorName, int aType );
|
||||
|
||||
|
|
|
@ -31,6 +31,13 @@
|
|||
#include <ki_exception.h>
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* wxPropertyGrid property specializations for simulator.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
SIM_PROPERTY::SIM_PROPERTY( SIM_MODEL& aModel, int aParamIndex ) :
|
||||
m_model( aModel ),
|
||||
m_paramIndex( aParamIndex ),
|
||||
|
|
|
@ -34,6 +34,13 @@
|
|||
#include "libeval/numeric_evaluator.h"
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* wxPropertyGrid property specializations for simulator.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class SIM_VALIDATOR : public wxValidator
|
||||
{
|
||||
private:
|
||||
|
|
|
@ -42,7 +42,7 @@ enum SIM_TYPE
|
|||
ST_TRANSIENT
|
||||
};
|
||||
|
||||
///< Possible plot types
|
||||
///< Possible trace types
|
||||
enum SIM_TRACE_TYPE
|
||||
{
|
||||
// Y axis
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
#include <string_utils.h>
|
||||
#include <pgm_base.h>
|
||||
#include "ngspice.h"
|
||||
#include "sim_plot_frame.h"
|
||||
#include "simulator_frame.h"
|
||||
#include "sim_plot_panel.h"
|
||||
#include "spice_simulator.h"
|
||||
#include "spice_reporter.h"
|
||||
|
@ -75,7 +75,7 @@ SIM_TRACE_TYPE operator|( SIM_TRACE_TYPE aFirst, SIM_TRACE_TYPE aSecond )
|
|||
class SIM_THREAD_REPORTER : public SPICE_REPORTER
|
||||
{
|
||||
public:
|
||||
SIM_THREAD_REPORTER( SIM_PLOT_FRAME* aParent ) :
|
||||
SIM_THREAD_REPORTER( SIMULATOR_FRAME* aParent ) :
|
||||
m_parent( aParent )
|
||||
{
|
||||
}
|
||||
|
@ -108,7 +108,7 @@ public:
|
|||
}
|
||||
|
||||
private:
|
||||
SIM_PLOT_FRAME* m_parent;
|
||||
SIMULATOR_FRAME* m_parent;
|
||||
};
|
||||
|
||||
|
||||
|
@ -158,7 +158,7 @@ enum
|
|||
class SIGNALS_GRID_TRICKS : public GRID_TRICKS
|
||||
{
|
||||
public:
|
||||
SIGNALS_GRID_TRICKS( SIM_PLOT_FRAME* aParent, WX_GRID* aGrid ) :
|
||||
SIGNALS_GRID_TRICKS( SIMULATOR_FRAME* aParent, WX_GRID* aGrid ) :
|
||||
GRID_TRICKS( aGrid ),
|
||||
m_parent( aParent ),
|
||||
m_menuRow( 0 ),
|
||||
|
@ -170,7 +170,7 @@ protected:
|
|||
void doPopupSelection( wxCommandEvent& event ) override;
|
||||
|
||||
protected:
|
||||
SIM_PLOT_FRAME* m_parent;
|
||||
SIMULATOR_FRAME* m_parent;
|
||||
int m_menuRow;
|
||||
int m_menuCol;
|
||||
};
|
||||
|
@ -283,7 +283,7 @@ void SIGNALS_GRID_TRICKS::doPopupSelection( wxCommandEvent& event )
|
|||
class CURSORS_GRID_TRICKS : public GRID_TRICKS
|
||||
{
|
||||
public:
|
||||
CURSORS_GRID_TRICKS( SIM_PLOT_FRAME* aParent, WX_GRID* aGrid ) :
|
||||
CURSORS_GRID_TRICKS( SIMULATOR_FRAME* aParent, WX_GRID* aGrid ) :
|
||||
GRID_TRICKS( aGrid ),
|
||||
m_parent( aParent ),
|
||||
m_menuRow( 0 ),
|
||||
|
@ -295,7 +295,7 @@ protected:
|
|||
void doPopupSelection( wxCommandEvent& event ) override;
|
||||
|
||||
protected:
|
||||
SIM_PLOT_FRAME* m_parent;
|
||||
SIMULATOR_FRAME* m_parent;
|
||||
int m_menuRow;
|
||||
int m_menuCol;
|
||||
};
|
||||
|
@ -340,7 +340,7 @@ void CURSORS_GRID_TRICKS::doPopupSelection( wxCommandEvent& event )
|
|||
class MEASUREMENTS_GRID_TRICKS : public GRID_TRICKS
|
||||
{
|
||||
public:
|
||||
MEASUREMENTS_GRID_TRICKS( SIM_PLOT_FRAME* aParent, WX_GRID* aGrid ) :
|
||||
MEASUREMENTS_GRID_TRICKS( SIMULATOR_FRAME* aParent, WX_GRID* aGrid ) :
|
||||
GRID_TRICKS( aGrid ),
|
||||
m_parent( aParent ),
|
||||
m_menuRow( 0 ),
|
||||
|
@ -352,7 +352,7 @@ protected:
|
|||
void doPopupSelection( wxCommandEvent& event ) override;
|
||||
|
||||
protected:
|
||||
SIM_PLOT_FRAME* m_parent;
|
||||
SIMULATOR_FRAME* m_parent;
|
||||
int m_menuRow;
|
||||
int m_menuCol;
|
||||
};
|
||||
|
@ -441,7 +441,7 @@ void MEASUREMENTS_GRID_TRICKS::doPopupSelection( wxCommandEvent& event )
|
|||
class SUPPRESS_GRID_CELL_EVENTS
|
||||
{
|
||||
public:
|
||||
SUPPRESS_GRID_CELL_EVENTS( SIM_PLOT_FRAME* aFrame ) :
|
||||
SUPPRESS_GRID_CELL_EVENTS( SIMULATOR_FRAME* aFrame ) :
|
||||
m_frame( aFrame )
|
||||
{
|
||||
m_frame->m_SuppressGridEvents++;
|
||||
|
@ -453,12 +453,12 @@ public:
|
|||
}
|
||||
|
||||
private:
|
||||
SIM_PLOT_FRAME* m_frame;
|
||||
SIMULATOR_FRAME* m_frame;
|
||||
};
|
||||
|
||||
|
||||
SIM_PLOT_FRAME::SIM_PLOT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||
SIM_PLOT_FRAME_BASE( aParent ),
|
||||
SIMULATOR_FRAME::SIMULATOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
||||
SIMULATOR_FRAME_BASE( aParent ),
|
||||
m_SuppressGridEvents( 0 ),
|
||||
m_lastSimPlot( nullptr ),
|
||||
m_darkMode( true ),
|
||||
|
@ -534,16 +534,16 @@ SIM_PLOT_FRAME::SIM_PLOT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
|||
ReCreateHToolbar();
|
||||
ReCreateMenuBar();
|
||||
|
||||
Bind( wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIM_PLOT_FRAME::onExit ), this,
|
||||
Bind( wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SIMULATOR_FRAME::onExit ), this,
|
||||
wxID_EXIT );
|
||||
|
||||
Bind( EVT_SIM_UPDATE, &SIM_PLOT_FRAME::onSimUpdate, this );
|
||||
Bind( EVT_SIM_REPORT, &SIM_PLOT_FRAME::onSimReport, this );
|
||||
Bind( EVT_SIM_STARTED, &SIM_PLOT_FRAME::onSimStarted, this );
|
||||
Bind( EVT_SIM_FINISHED, &SIM_PLOT_FRAME::onSimFinished, this );
|
||||
Bind( EVT_SIM_CURSOR_UPDATE, &SIM_PLOT_FRAME::onCursorUpdate, this );
|
||||
Bind( EVT_SIM_UPDATE, &SIMULATOR_FRAME::onSimUpdate, this );
|
||||
Bind( EVT_SIM_REPORT, &SIMULATOR_FRAME::onSimReport, this );
|
||||
Bind( EVT_SIM_STARTED, &SIMULATOR_FRAME::onSimStarted, this );
|
||||
Bind( EVT_SIM_FINISHED, &SIMULATOR_FRAME::onSimFinished, this );
|
||||
Bind( EVT_SIM_CURSOR_UPDATE, &SIMULATOR_FRAME::onCursorUpdate, this );
|
||||
|
||||
Bind( EVT_WORKBOOK_MODIFIED, &SIM_PLOT_FRAME::onNotebookModified, this );
|
||||
Bind( EVT_WORKBOOK_MODIFIED, &SIMULATOR_FRAME::onNotebookModified, this );
|
||||
|
||||
#ifndef wxHAS_NATIVE_TABART
|
||||
// Default non-native tab art has ugly gradients we don't want
|
||||
|
@ -569,7 +569,7 @@ SIM_PLOT_FRAME::SIM_PLOT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
|||
}
|
||||
|
||||
|
||||
SIM_PLOT_FRAME::~SIM_PLOT_FRAME()
|
||||
SIMULATOR_FRAME::~SIMULATOR_FRAME()
|
||||
{
|
||||
// Delete the GRID_TRICKS.
|
||||
m_signalsGrid->PopEventHandler( true );
|
||||
|
@ -584,7 +584,7 @@ SIM_PLOT_FRAME::~SIM_PLOT_FRAME()
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::setupTools()
|
||||
void SIMULATOR_FRAME::setupTools()
|
||||
{
|
||||
// Create the manager
|
||||
m_toolManager = new TOOL_MANAGER;
|
||||
|
@ -603,7 +603,7 @@ void SIM_PLOT_FRAME::setupTools()
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::ShowChangedLanguage()
|
||||
void SIMULATOR_FRAME::ShowChangedLanguage()
|
||||
{
|
||||
EDA_BASE_FRAME::ShowChangedLanguage();
|
||||
|
||||
|
@ -640,7 +640,7 @@ void SIM_PLOT_FRAME::ShowChangedLanguage()
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg )
|
||||
void SIMULATOR_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg )
|
||||
{
|
||||
EESCHEMA_SETTINGS* cfg = dynamic_cast<EESCHEMA_SETTINGS*>( aCfg );
|
||||
wxASSERT( cfg );
|
||||
|
@ -667,7 +667,7 @@ void SIM_PLOT_FRAME::LoadSettings( APP_SETTINGS_BASE* aCfg )
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg )
|
||||
void SIMULATOR_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg )
|
||||
{
|
||||
EESCHEMA_SETTINGS* cfg = dynamic_cast<EESCHEMA_SETTINGS*>( aCfg );
|
||||
wxASSERT( cfg );
|
||||
|
@ -694,7 +694,7 @@ void SIM_PLOT_FRAME::SaveSettings( APP_SETTINGS_BASE* aCfg )
|
|||
}
|
||||
|
||||
|
||||
WINDOW_SETTINGS* SIM_PLOT_FRAME::GetWindowSettings( APP_SETTINGS_BASE* aCfg )
|
||||
WINDOW_SETTINGS* SIMULATOR_FRAME::GetWindowSettings( APP_SETTINGS_BASE* aCfg )
|
||||
{
|
||||
EESCHEMA_SETTINGS* cfg = dynamic_cast<EESCHEMA_SETTINGS*>( aCfg );
|
||||
wxASSERT( cfg );
|
||||
|
@ -703,7 +703,7 @@ WINDOW_SETTINGS* SIM_PLOT_FRAME::GetWindowSettings( APP_SETTINGS_BASE* aCfg )
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::initWorkbook()
|
||||
void SIMULATOR_FRAME::initWorkbook()
|
||||
{
|
||||
if( !m_simulator->Settings()->GetWorkbookFilename().IsEmpty() )
|
||||
{
|
||||
|
@ -724,7 +724,7 @@ void SIM_PLOT_FRAME::initWorkbook()
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::updateTitle()
|
||||
void SIMULATOR_FRAME::updateTitle()
|
||||
{
|
||||
bool unsaved = true;
|
||||
bool readOnly = false;
|
||||
|
@ -758,7 +758,7 @@ void SIM_PLOT_FRAME::updateTitle()
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::setSubWindowsSashSize()
|
||||
void SIMULATOR_FRAME::setSubWindowsSashSize()
|
||||
{
|
||||
if( m_splitterLeftRightSashPosition > 0 )
|
||||
m_splitterLeftRight->SetSashPosition( m_splitterLeftRightSashPosition );
|
||||
|
@ -777,7 +777,7 @@ void SIM_PLOT_FRAME::setSubWindowsSashSize()
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::rebuildSignalsGrid( wxString aFilter )
|
||||
void SIMULATOR_FRAME::rebuildSignalsGrid( wxString aFilter )
|
||||
{
|
||||
SUPPRESS_GRID_CELL_EVENTS raii( this );
|
||||
|
||||
|
@ -867,7 +867,7 @@ void SIM_PLOT_FRAME::rebuildSignalsGrid( wxString aFilter )
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::rebuildSignalsList()
|
||||
void SIMULATOR_FRAME::rebuildSignalsList()
|
||||
{
|
||||
m_signals.clear();
|
||||
|
||||
|
@ -968,7 +968,7 @@ void SIM_PLOT_FRAME::rebuildSignalsList()
|
|||
}
|
||||
|
||||
|
||||
bool SIM_PLOT_FRAME::LoadSimulator()
|
||||
bool SIMULATOR_FRAME::LoadSimulator()
|
||||
{
|
||||
wxString errors;
|
||||
WX_STRING_REPORTER reporter( &errors );
|
||||
|
@ -986,7 +986,7 @@ bool SIM_PLOT_FRAME::LoadSimulator()
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::StartSimulation()
|
||||
void SIMULATOR_FRAME::StartSimulation()
|
||||
{
|
||||
if( m_circuitModel->CommandToSimType( GetCurrentSimCommand() ) == ST_UNKNOWN )
|
||||
{
|
||||
|
@ -1049,7 +1049,7 @@ void SIM_PLOT_FRAME::StartSimulation()
|
|||
}
|
||||
|
||||
|
||||
SIM_PANEL_BASE* SIM_PLOT_FRAME::NewPlotPanel( const wxString& aSimCommand, int aOptions )
|
||||
SIM_PANEL_BASE* SIMULATOR_FRAME::NewPlotPanel( const wxString& aSimCommand, int aOptions )
|
||||
{
|
||||
SIM_PANEL_BASE* plotPanel = nullptr;
|
||||
SIM_TYPE simType = NGSPICE_CIRCUIT_MODEL::CommandToSimType( aSimCommand );
|
||||
|
@ -1078,13 +1078,13 @@ SIM_PANEL_BASE* SIM_PLOT_FRAME::NewPlotPanel( const wxString& aSimCommand, int a
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::OnFilterText( wxCommandEvent& aEvent )
|
||||
void SIMULATOR_FRAME::OnFilterText( wxCommandEvent& aEvent )
|
||||
{
|
||||
rebuildSignalsGrid( m_filter->GetValue() );
|
||||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::OnFilterMouseMoved( wxMouseEvent& aEvent )
|
||||
void SIMULATOR_FRAME::OnFilterMouseMoved( wxMouseEvent& aEvent )
|
||||
{
|
||||
wxPoint pos = aEvent.GetPosition();
|
||||
wxRect ctrlRect = m_filter->GetScreenRect();
|
||||
|
@ -1109,7 +1109,7 @@ wxString vectorNameFromSignalId( int aUserDefinedSignalId )
|
|||
* For user-defined signals we display the user-oriented signal name such as "V(out)-V(in)",
|
||||
* but the simulator vector we actually have to plot will be "user0" or some-such.
|
||||
*/
|
||||
wxString SIM_PLOT_FRAME::vectorNameFromSignalName( const wxString& aSignalName, int* aTraceType )
|
||||
wxString SIMULATOR_FRAME::vectorNameFromSignalName( const wxString& aSignalName, int* aTraceType )
|
||||
{
|
||||
std::map<wxString, int> suffixes;
|
||||
suffixes[ _( " (gain)" ) ] = SPT_AC_MAG;
|
||||
|
@ -1153,7 +1153,7 @@ wxString SIM_PLOT_FRAME::vectorNameFromSignalName( const wxString& aSignalName,
|
|||
};
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::onSignalsGridCellChanged( wxGridEvent& aEvent )
|
||||
void SIMULATOR_FRAME::onSignalsGridCellChanged( wxGridEvent& aEvent )
|
||||
{
|
||||
if( m_SuppressGridEvents > 0 )
|
||||
return;
|
||||
|
@ -1211,7 +1211,7 @@ void SIM_PLOT_FRAME::onSignalsGridCellChanged( wxGridEvent& aEvent )
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::onCursorsGridCellChanged( wxGridEvent& aEvent )
|
||||
void SIMULATOR_FRAME::onCursorsGridCellChanged( wxGridEvent& aEvent )
|
||||
{
|
||||
if( m_SuppressGridEvents > 0 )
|
||||
return;
|
||||
|
@ -1259,7 +1259,7 @@ void SIM_PLOT_FRAME::onCursorsGridCellChanged( wxGridEvent& aEvent )
|
|||
}
|
||||
|
||||
|
||||
SPICE_VALUE_FORMAT SIM_PLOT_FRAME::GetMeasureFormat( int aRow ) const
|
||||
SPICE_VALUE_FORMAT SIMULATOR_FRAME::GetMeasureFormat( int aRow ) const
|
||||
{
|
||||
SPICE_VALUE_FORMAT result;
|
||||
result.FromString( m_measurementsGrid->GetCellValue( aRow, COL_MEASUREMENT_FORMAT ) );
|
||||
|
@ -1267,14 +1267,14 @@ SPICE_VALUE_FORMAT SIM_PLOT_FRAME::GetMeasureFormat( int aRow ) const
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::SetMeasureFormat( int aRow, const SPICE_VALUE_FORMAT& aFormat )
|
||||
void SIMULATOR_FRAME::SetMeasureFormat( int aRow, const SPICE_VALUE_FORMAT& aFormat )
|
||||
{
|
||||
m_measurementsGrid->SetCellValue( aRow, COL_MEASUREMENT_FORMAT, aFormat.ToString() );
|
||||
OnModify();
|
||||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::DeleteMeasurement( int aRow )
|
||||
void SIMULATOR_FRAME::DeleteMeasurement( int aRow )
|
||||
{
|
||||
if( aRow < ( m_measurementsGrid->GetNumberRows() - 1 ) )
|
||||
{
|
||||
|
@ -1284,7 +1284,7 @@ void SIM_PLOT_FRAME::DeleteMeasurement( int aRow )
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::onMeasurementsGridCellChanged( wxGridEvent& aEvent )
|
||||
void SIMULATOR_FRAME::onMeasurementsGridCellChanged( wxGridEvent& aEvent )
|
||||
{
|
||||
SIM_PLOT_PANEL* plotPanel = GetCurrentPlot();
|
||||
|
||||
|
@ -1344,7 +1344,7 @@ void SIM_PLOT_FRAME::onMeasurementsGridCellChanged( wxGridEvent& aEvent )
|
|||
* we want to show:
|
||||
* 15W
|
||||
*/
|
||||
void SIM_PLOT_FRAME::UpdateMeasurement( int aRow )
|
||||
void SIMULATOR_FRAME::UpdateMeasurement( int aRow )
|
||||
{
|
||||
static wxRegEx measureParamsRegEx( wxT( "^"
|
||||
" *"
|
||||
|
@ -1437,19 +1437,19 @@ void SIM_PLOT_FRAME::UpdateMeasurement( int aRow )
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::AddVoltagePlot( const wxString& aNetName )
|
||||
void SIMULATOR_FRAME::AddVoltageTrace( const wxString& aNetName )
|
||||
{
|
||||
doAddPlot( aNetName, SPT_VOLTAGE );
|
||||
doAddTrace( aNetName, SPT_VOLTAGE );
|
||||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::AddCurrentPlot( const wxString& aDeviceName )
|
||||
void SIMULATOR_FRAME::AddCurrentTrace( const wxString& aDeviceName )
|
||||
{
|
||||
doAddPlot( aDeviceName, SPT_CURRENT );
|
||||
doAddTrace( aDeviceName, SPT_CURRENT );
|
||||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::AddTuner( const SCH_SHEET_PATH& aSheetPath, SCH_SYMBOL* aSymbol )
|
||||
void SIMULATOR_FRAME::AddTuner( const SCH_SHEET_PATH& aSheetPath, SCH_SYMBOL* aSymbol )
|
||||
{
|
||||
SIM_PANEL_BASE* plotPanel = getCurrentPlotWindow();
|
||||
|
||||
|
@ -1486,7 +1486,7 @@ void SIM_PLOT_FRAME::AddTuner( const SCH_SHEET_PATH& aSheetPath, SCH_SYMBOL* aSy
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::UpdateTunerValue( const SCH_SHEET_PATH& aSheetPath, const KIID& aSymbol,
|
||||
void SIMULATOR_FRAME::UpdateTunerValue( const SCH_SHEET_PATH& aSheetPath, const KIID& aSymbol,
|
||||
const wxString& aRef, const wxString& aValue )
|
||||
{
|
||||
SCH_ITEM* item = aSheetPath.GetItem( aSymbol );
|
||||
|
@ -1519,21 +1519,19 @@ void SIM_PLOT_FRAME::UpdateTunerValue( const SCH_SHEET_PATH& aSheetPath, const K
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::RemoveTuner( TUNER_SLIDER* aTuner, bool aErase )
|
||||
void SIMULATOR_FRAME::RemoveTuner( TUNER_SLIDER* aTuner )
|
||||
{
|
||||
if( aErase )
|
||||
m_tuners.remove( aTuner );
|
||||
|
||||
m_tuners.remove( aTuner );
|
||||
aTuner->Destroy();
|
||||
m_panelTuners->Layout();
|
||||
OnModify();
|
||||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::AddMeasurement( const wxString& aCmd )
|
||||
void SIMULATOR_FRAME::AddMeasurement( const wxString& aCmd )
|
||||
{
|
||||
// -1 because the last one is for user inpu
|
||||
for ( int i = 0; i < m_measurementsGrid->GetNumberRows(); i++ )
|
||||
// -1 because the last one is for user input
|
||||
for( int i = 0; i < m_measurementsGrid->GetNumberRows(); i++ )
|
||||
{
|
||||
if ( m_measurementsGrid->GetCellValue( i, COL_MEASUREMENT ) == aCmd )
|
||||
return; // Don't create duplicates
|
||||
|
@ -1573,7 +1571,7 @@ void SIM_PLOT_FRAME::AddMeasurement( const wxString& aCmd )
|
|||
}
|
||||
|
||||
|
||||
SIM_PLOT_PANEL* SIM_PLOT_FRAME::GetCurrentPlot() const
|
||||
SIM_PLOT_PANEL* SIMULATOR_FRAME::GetCurrentPlot() const
|
||||
{
|
||||
SIM_PANEL_BASE* curPage = getCurrentPlotWindow();
|
||||
|
||||
|
@ -1582,13 +1580,13 @@ SIM_PLOT_PANEL* SIM_PLOT_FRAME::GetCurrentPlot() const
|
|||
}
|
||||
|
||||
|
||||
const NGSPICE_CIRCUIT_MODEL* SIM_PLOT_FRAME::GetExporter() const
|
||||
const NGSPICE_CIRCUIT_MODEL* SIMULATOR_FRAME::GetExporter() const
|
||||
{
|
||||
return m_circuitModel.get();
|
||||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::doAddPlot( const wxString& aName, SIM_TRACE_TYPE aType )
|
||||
void SIMULATOR_FRAME::doAddTrace( const wxString& aName, SIM_TRACE_TYPE aType )
|
||||
{
|
||||
SIM_PLOT_PANEL* plotPanel = GetCurrentPlot();
|
||||
|
||||
|
@ -1629,7 +1627,7 @@ void SIM_PLOT_FRAME::doAddPlot( const wxString& aName, SIM_TRACE_TYPE aType )
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::SetUserDefinedSignals( const std::map<int, wxString>& aNewSignals )
|
||||
void SIMULATOR_FRAME::SetUserDefinedSignals( const std::map<int, wxString>& aNewSignals )
|
||||
{
|
||||
for( size_t ii = 0; ii < m_plotNotebook->GetPageCount(); ++ii )
|
||||
{
|
||||
|
@ -1687,7 +1685,7 @@ void SIM_PLOT_FRAME::SetUserDefinedSignals( const std::map<int, wxString>& aNewS
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::updateTrace( const wxString& aVectorName, int aTraceType,
|
||||
void SIMULATOR_FRAME::updateTrace( const wxString& aVectorName, int aTraceType,
|
||||
SIM_PLOT_PANEL* aPlotPanel )
|
||||
{
|
||||
SIM_TYPE simType = NGSPICE_CIRCUIT_MODEL::CommandToSimType( aPlotPanel->GetSimCommand() );
|
||||
|
@ -1790,7 +1788,7 @@ void SIM_PLOT_FRAME::updateTrace( const wxString& aVectorName, int aTraceType,
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::updateSignalsGrid()
|
||||
void SIMULATOR_FRAME::updateSignalsGrid()
|
||||
{
|
||||
SIM_PLOT_PANEL* plot = GetCurrentPlot();
|
||||
|
||||
|
@ -1858,7 +1856,7 @@ void SIM_PLOT_FRAME::updateSignalsGrid()
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::applyUserDefinedSignals()
|
||||
void SIMULATOR_FRAME::applyUserDefinedSignals()
|
||||
{
|
||||
auto quoteNetNames =
|
||||
[&]( wxString aExpression ) -> wxString
|
||||
|
@ -1879,7 +1877,7 @@ void SIM_PLOT_FRAME::applyUserDefinedSignals()
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::applyTuners()
|
||||
void SIMULATOR_FRAME::applyTuners()
|
||||
{
|
||||
wxString errors;
|
||||
WX_STRING_REPORTER reporter( &errors );
|
||||
|
@ -1916,7 +1914,7 @@ void SIM_PLOT_FRAME::applyTuners()
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::parseTraceParams( SIM_PLOT_PANEL* aPlotPanel, TRACE* aTrace,
|
||||
void SIMULATOR_FRAME::parseTraceParams( SIM_PLOT_PANEL* aPlotPanel, TRACE* aTrace,
|
||||
const wxString& aSignalName, const wxString& aParams )
|
||||
{
|
||||
auto addCursor =
|
||||
|
@ -1995,7 +1993,7 @@ void SIM_PLOT_FRAME::parseTraceParams( SIM_PLOT_PANEL* aPlotPanel, TRACE* aTrace
|
|||
}
|
||||
|
||||
|
||||
bool SIM_PLOT_FRAME::LoadWorkbook( const wxString& aPath )
|
||||
bool SIMULATOR_FRAME::LoadWorkbook( const wxString& aPath )
|
||||
{
|
||||
m_plotNotebook->DeleteAllPages();
|
||||
|
||||
|
@ -2191,7 +2189,7 @@ bool SIM_PLOT_FRAME::LoadWorkbook( const wxString& aPath )
|
|||
}
|
||||
|
||||
|
||||
bool SIM_PLOT_FRAME::SaveWorkbook( const wxString& aPath )
|
||||
bool SIMULATOR_FRAME::SaveWorkbook( const wxString& aPath )
|
||||
{
|
||||
wxFileName filename = aPath;
|
||||
filename.SetExt( WorkbookFileExtension );
|
||||
|
@ -2350,7 +2348,7 @@ bool SIM_PLOT_FRAME::SaveWorkbook( const wxString& aPath )
|
|||
}
|
||||
|
||||
|
||||
SIM_TRACE_TYPE SIM_PLOT_FRAME::getXAxisType( SIM_TYPE aType ) const
|
||||
SIM_TRACE_TYPE SIMULATOR_FRAME::getXAxisType( SIM_TYPE aType ) const
|
||||
{
|
||||
switch( aType )
|
||||
{
|
||||
|
@ -2363,7 +2361,7 @@ SIM_TRACE_TYPE SIM_PLOT_FRAME::getXAxisType( SIM_TYPE aType ) const
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::ToggleDarkModePlots()
|
||||
void SIMULATOR_FRAME::ToggleDarkModePlots()
|
||||
{
|
||||
m_darkMode = !m_darkMode;
|
||||
|
||||
|
@ -2385,12 +2383,12 @@ void SIM_PLOT_FRAME::ToggleDarkModePlots()
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::onPlotClose( wxAuiNotebookEvent& event )
|
||||
void SIMULATOR_FRAME::onPlotClose( wxAuiNotebookEvent& event )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::onPlotClosed( wxAuiNotebookEvent& event )
|
||||
void SIMULATOR_FRAME::onPlotClosed( wxAuiNotebookEvent& event )
|
||||
{
|
||||
CallAfter( [this]()
|
||||
{
|
||||
|
@ -2410,7 +2408,7 @@ void SIM_PLOT_FRAME::onPlotClosed( wxAuiNotebookEvent& event )
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::onPlotChanged( wxAuiNotebookEvent& event )
|
||||
void SIMULATOR_FRAME::onPlotChanged( wxAuiNotebookEvent& event )
|
||||
{
|
||||
rebuildSignalsList();
|
||||
rebuildSignalsGrid( m_filter->GetValue() );
|
||||
|
@ -2418,19 +2416,19 @@ void SIM_PLOT_FRAME::onPlotChanged( wxAuiNotebookEvent& event )
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::onPlotDragged( wxAuiNotebookEvent& event )
|
||||
void SIMULATOR_FRAME::onPlotDragged( wxAuiNotebookEvent& event )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::onNotebookModified( wxCommandEvent& event )
|
||||
void SIMULATOR_FRAME::onNotebookModified( wxCommandEvent& event )
|
||||
{
|
||||
OnModify();
|
||||
updateTitle();
|
||||
}
|
||||
|
||||
|
||||
bool SIM_PLOT_FRAME::EditSimCommand()
|
||||
bool SIMULATOR_FRAME::EditSimCommand()
|
||||
{
|
||||
SIM_PANEL_BASE* plotPanelWindow = getCurrentPlotWindow();
|
||||
DIALOG_SIM_COMMAND dlg( this, m_circuitModel, m_simulator->Settings() );
|
||||
|
@ -2501,7 +2499,7 @@ bool SIM_PLOT_FRAME::EditSimCommand()
|
|||
}
|
||||
|
||||
|
||||
bool SIM_PLOT_FRAME::canCloseWindow( wxCloseEvent& aEvent )
|
||||
bool SIMULATOR_FRAME::canCloseWindow( wxCloseEvent& aEvent )
|
||||
{
|
||||
if( m_workbookModified )
|
||||
{
|
||||
|
@ -2526,7 +2524,7 @@ bool SIM_PLOT_FRAME::canCloseWindow( wxCloseEvent& aEvent )
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::doCloseWindow()
|
||||
void SIMULATOR_FRAME::doCloseWindow()
|
||||
{
|
||||
if( m_simulator->IsRunning() )
|
||||
m_simulator->Stop();
|
||||
|
@ -2545,7 +2543,7 @@ void SIM_PLOT_FRAME::doCloseWindow()
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::updateCursors()
|
||||
void SIMULATOR_FRAME::updateCursors()
|
||||
{
|
||||
SUPPRESS_GRID_CELL_EVENTS raii( this );
|
||||
|
||||
|
@ -2680,14 +2678,14 @@ void SIM_PLOT_FRAME::updateCursors()
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::onCursorUpdate( wxCommandEvent& aEvent )
|
||||
void SIMULATOR_FRAME::onCursorUpdate( wxCommandEvent& aEvent )
|
||||
{
|
||||
updateCursors();
|
||||
OnModify();
|
||||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::setupUIConditions()
|
||||
void SIMULATOR_FRAME::setupUIConditions()
|
||||
{
|
||||
EDA_BASE_FRAME::setupUIConditions();
|
||||
|
||||
|
@ -2766,13 +2764,13 @@ void SIM_PLOT_FRAME::setupUIConditions()
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::onSimStarted( wxCommandEvent& aEvent )
|
||||
void SIMULATOR_FRAME::onSimStarted( wxCommandEvent& aEvent )
|
||||
{
|
||||
SetCursor( wxCURSOR_ARROWWAIT );
|
||||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::onSimFinished( wxCommandEvent& aEvent )
|
||||
void SIMULATOR_FRAME::onSimFinished( wxCommandEvent& aEvent )
|
||||
{
|
||||
SetCursor( wxCURSOR_ARROW );
|
||||
|
||||
|
@ -2918,7 +2916,7 @@ void SIM_PLOT_FRAME::onSimFinished( wxCommandEvent& aEvent )
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::onSimUpdate( wxCommandEvent& aEvent )
|
||||
void SIMULATOR_FRAME::onSimUpdate( wxCommandEvent& aEvent )
|
||||
{
|
||||
static bool updateInProgress = false;
|
||||
|
||||
|
@ -2960,20 +2958,20 @@ void SIM_PLOT_FRAME::onSimUpdate( wxCommandEvent& aEvent )
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::onSimReport( wxCommandEvent& aEvent )
|
||||
void SIMULATOR_FRAME::onSimReport( wxCommandEvent& aEvent )
|
||||
{
|
||||
m_simConsole->AppendText( aEvent.GetString() + "\n" );
|
||||
m_simConsole->SetInsertionPointEnd();
|
||||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::onExit( wxCommandEvent& event )
|
||||
void SIMULATOR_FRAME::onExit( wxCommandEvent& event )
|
||||
{
|
||||
Kiway().OnKiCadExit();
|
||||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::OnModify()
|
||||
void SIMULATOR_FRAME::OnModify()
|
||||
{
|
||||
KIWAY_PLAYER::OnModify();
|
||||
m_workbookModified = true;
|
|
@ -25,11 +25,11 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifndef __SIM_PLOT_FRAME__
|
||||
#define __SIM_PLOT_FRAME__
|
||||
#ifndef SIMULATOR_FRAME_H
|
||||
#define SIMULATOR_FRAME_H
|
||||
|
||||
|
||||
#include <sim/sim_plot_frame_base.h>
|
||||
#include <sim/simulator_frame_base.h>
|
||||
#include <sim/sim_types.h>
|
||||
|
||||
#include <kiway_player.h>
|
||||
|
@ -50,17 +50,36 @@ class NGSPICE_CIRCUIT_MODEL;
|
|||
|
||||
#include <sim/sim_plot_panel.h>
|
||||
#include <sim/sim_panel_base.h>
|
||||
#include <sim/sim_notebook.h>
|
||||
#include "widgets/sim_notebook.h"
|
||||
|
||||
class SIM_THREAD_REPORTER;
|
||||
class TUNER_SLIDER;
|
||||
|
||||
|
||||
class SIM_PLOT_FRAME : public SIM_PLOT_FRAME_BASE
|
||||
/**
|
||||
*
|
||||
* The SIMULATOR_FRAME holds the main user-interface for running simulations.
|
||||
*
|
||||
* It contains a workbook with multiple tabs, each tab holding a SIM_PLOT_PANEL, a specific
|
||||
* simulation command (.TRAN, .AC, etc.), and simulation settings (save all currents, etc.).
|
||||
*
|
||||
* Each plot can have multiple TRACEs. While internally each TRACE can have multiple cursors,
|
||||
* the GUI supports only two cursors (and a differential cursor) for each plot.
|
||||
*
|
||||
* TRACEs are identified by a signal (V(OUT), I(R2), etc.) and a type (SPT_VOLTAGE, SPT_AC_PHASE,
|
||||
* etc.).
|
||||
*
|
||||
* The simulator outputs simple signals in a vector of the same name. Complex signals (such as
|
||||
* V(OUT) / V(IN)) are stored in vectors of the format "user%d".
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
class SIMULATOR_FRAME : public SIMULATOR_FRAME_BASE
|
||||
{
|
||||
public:
|
||||
SIM_PLOT_FRAME( KIWAY* aKiway, wxWindow* aParent );
|
||||
~SIM_PLOT_FRAME();
|
||||
SIMULATOR_FRAME( KIWAY* aKiway, wxWindow* aParent );
|
||||
~SIMULATOR_FRAME();
|
||||
|
||||
/**
|
||||
* Check and load the current netlist into the simulator.
|
||||
|
@ -71,7 +90,7 @@ public:
|
|||
void StartSimulation();
|
||||
|
||||
/**
|
||||
* Create a new plot panel for a given simulation type and adds it to the main notebook.
|
||||
* Create a new plot tab for a given simulation type.
|
||||
*
|
||||
* @param aSimCommand is requested simulation command.
|
||||
* @param aSimOptions netlisting options
|
||||
|
@ -91,19 +110,19 @@ public:
|
|||
void SetUserDefinedSignals( const std::map<int, wxString>& aSignals );
|
||||
|
||||
/**
|
||||
* Add a voltage plot for a given net name.
|
||||
* Add a voltage trace for a given net to the current plot.
|
||||
*
|
||||
* @param aNetName is the net name for which a voltage plot should be created.
|
||||
*/
|
||||
void AddVoltagePlot( const wxString& aNetName );
|
||||
void AddVoltageTrace( const wxString& aNetName );
|
||||
|
||||
/**
|
||||
* Add a current plot for a particular device.
|
||||
* Add a current trace for a given device to the current plot.
|
||||
*
|
||||
* @param aDeviceName is the device name (e.g. R1, C1).
|
||||
* @param aParam is the current type (e.g. I, Ic, Id).
|
||||
*/
|
||||
void AddCurrentPlot( const wxString& aDeviceName );
|
||||
void AddCurrentTrace( const wxString& aDeviceName );
|
||||
|
||||
/**
|
||||
* Get/Set the number of significant digits and the range for formatting a cursor value.
|
||||
|
@ -129,12 +148,8 @@ public:
|
|||
|
||||
/**
|
||||
* Remove an existing tuner.
|
||||
*
|
||||
* @param aTuner is the tuner to be removed.
|
||||
* @param aErase decides whether the tuner should be also removed from the tuners list.
|
||||
* Otherwise it is removed only from the SIM_PLOT_FRAME pane.
|
||||
*/
|
||||
void RemoveTuner( TUNER_SLIDER* aTuner, bool aErase = true );
|
||||
void RemoveTuner( TUNER_SLIDER* aTuner );
|
||||
|
||||
/**
|
||||
* Safely update a field of the associated symbol without dereferencing
|
||||
|
@ -169,7 +184,7 @@ public:
|
|||
void UpdateMeasurement( int aRow );
|
||||
|
||||
/**
|
||||
* Return the currently opened plot panel (or NULL if there is none).
|
||||
* Return the current tab (or NULL if there is none).
|
||||
*/
|
||||
SIM_PLOT_PANEL* GetCurrentPlot() const;
|
||||
|
||||
|
@ -179,7 +194,7 @@ public:
|
|||
const NGSPICE_CIRCUIT_MODEL* GetExporter() const;
|
||||
|
||||
/**
|
||||
* Toggle dark-mode of the plot.
|
||||
* Toggle dark-mode of the plot tabs.
|
||||
*/
|
||||
void ToggleDarkModePlots();
|
||||
|
||||
|
@ -188,18 +203,12 @@ public:
|
|||
void ReCreateHToolbar();
|
||||
|
||||
/**
|
||||
* Load plot settings from a file.
|
||||
*
|
||||
* @param aPath is the file name.
|
||||
* @return True if successful.
|
||||
* Load plot, signal, cursor, measurement, etc. settings from a file.
|
||||
*/
|
||||
bool LoadWorkbook( const wxString& aPath );
|
||||
|
||||
/**
|
||||
* Save plot settings to a file.
|
||||
*
|
||||
* @param aPath is the file name.
|
||||
* @return True if successful.
|
||||
* Save plot, signal, cursor, measurement, etc. settings to a file.
|
||||
*/
|
||||
bool SaveWorkbook( const wxString& aPath );
|
||||
|
||||
|
@ -231,7 +240,7 @@ public:
|
|||
return m_circuitModel->GetSimOptions();
|
||||
}
|
||||
|
||||
// Simulator doesn't host a tool framework
|
||||
// Simulator doesn't host a canvas
|
||||
wxWindow* GetToolCanvas() const override { return nullptr; }
|
||||
|
||||
void OnModify() override;
|
||||
|
@ -254,13 +263,12 @@ private:
|
|||
void updateTitle();
|
||||
|
||||
/**
|
||||
* Add a new plot to the current panel.
|
||||
* Add a new trace to the current plot.
|
||||
*
|
||||
* @param aName is the device/net name.
|
||||
* @param aType describes the type of plot.
|
||||
* @param aParam is the parameter for the device/net (e.g. I, Id, V).
|
||||
* @param aType describes the type of trace.
|
||||
*/
|
||||
void doAddPlot( const wxString& aName, SIM_TRACE_TYPE aType );
|
||||
void doAddTrace( const wxString& aName, SIM_TRACE_TYPE aType );
|
||||
|
||||
/**
|
||||
* Get the simulator output vector name for a given signal name and type.
|
||||
|
@ -400,4 +408,4 @@ wxDECLARE_EVENT( EVT_SIM_REPORT, wxCommandEvent );
|
|||
wxDECLARE_EVENT( EVT_SIM_STARTED, wxCommandEvent );
|
||||
wxDECLARE_EVENT( EVT_SIM_FINISHED, wxCommandEvent );
|
||||
|
||||
#endif // __sim_plot_frame__
|
||||
#endif // SIMULATOR_FRAME_H
|
|
@ -8,11 +8,11 @@
|
|||
#include "tool/action_toolbar.h"
|
||||
#include "widgets/wx_grid.h"
|
||||
|
||||
#include "sim_plot_frame_base.h"
|
||||
#include "simulator_frame_base.h"
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
SIM_PLOT_FRAME_BASE::SIM_PLOT_FRAME_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : KIWAY_PLAYER( parent, id, title, pos, size, style, name )
|
||||
SIMULATOR_FRAME_BASE::SIMULATOR_FRAME_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : KIWAY_PLAYER( parent, id, title, pos, size, style, name )
|
||||
{
|
||||
this->SetSizeHints( wxSize( -1,-1 ), wxDefaultSize );
|
||||
|
||||
|
@ -25,7 +25,7 @@ SIM_PLOT_FRAME_BASE::SIM_PLOT_FRAME_BASE( wxWindow* parent, wxWindowID id, const
|
|||
|
||||
m_splitterLeftRight = new wxSplitterWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3DSASH|wxSP_LIVE_UPDATE|wxBORDER_NONE );
|
||||
m_splitterLeftRight->SetSashGravity( 0.7 );
|
||||
m_splitterLeftRight->Connect( wxEVT_IDLE, wxIdleEventHandler( SIM_PLOT_FRAME_BASE::m_splitterLeftRightOnIdle ), NULL, this );
|
||||
m_splitterLeftRight->Connect( wxEVT_IDLE, wxIdleEventHandler( SIMULATOR_FRAME_BASE::m_splitterLeftRightOnIdle ), NULL, this );
|
||||
m_splitterLeftRight->SetMinimumPaneSize( 50 );
|
||||
|
||||
m_panelLeft = new wxPanel( m_splitterLeftRight, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
||||
|
@ -35,7 +35,7 @@ SIM_PLOT_FRAME_BASE::SIM_PLOT_FRAME_BASE( wxWindow* parent, wxWindowID id, const
|
|||
|
||||
m_splitterPlotAndConsole = new wxSplitterWindow( m_panelLeft, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3DSASH|wxSP_LIVE_UPDATE );
|
||||
m_splitterPlotAndConsole->SetSashGravity( 0.8 );
|
||||
m_splitterPlotAndConsole->Connect( wxEVT_IDLE, wxIdleEventHandler( SIM_PLOT_FRAME_BASE::m_splitterPlotAndConsoleOnIdle ), NULL, this );
|
||||
m_splitterPlotAndConsole->Connect( wxEVT_IDLE, wxIdleEventHandler( SIMULATOR_FRAME_BASE::m_splitterPlotAndConsoleOnIdle ), NULL, this );
|
||||
m_splitterPlotAndConsole->SetMinimumPaneSize( 50 );
|
||||
|
||||
m_plotPanel = new wxPanel( m_splitterPlotAndConsole, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
||||
|
@ -44,7 +44,7 @@ SIM_PLOT_FRAME_BASE::SIM_PLOT_FRAME_BASE( wxWindow* parent, wxWindowID id, const
|
|||
m_sizerPlot = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
m_plotNotebook = new SIM_NOTEBOOK( m_plotPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_NB_CLOSE_ON_ALL_TABS|wxAUI_NB_MIDDLE_CLICK_CLOSE|wxAUI_NB_TAB_MOVE|wxAUI_NB_TOP );
|
||||
m_plotNotebook->SetMinSize( wxSize( 200,-1 ) );
|
||||
m_plotNotebook->SetMinSize( wxSize( 200,200 ) );
|
||||
|
||||
|
||||
m_sizerPlot->Add( m_plotNotebook, 1, wxEXPAND, 5 );
|
||||
|
@ -82,7 +82,7 @@ SIM_PLOT_FRAME_BASE::SIM_PLOT_FRAME_BASE( wxWindow* parent, wxWindowID id, const
|
|||
|
||||
m_splitterSignals = new wxSplitterWindow( m_sidePanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3DSASH|wxSP_LIVE_UPDATE );
|
||||
m_splitterSignals->SetSashGravity( 0.5 );
|
||||
m_splitterSignals->Connect( wxEVT_IDLE, wxIdleEventHandler( SIM_PLOT_FRAME_BASE::m_splitterSignalsOnIdle ), NULL, this );
|
||||
m_splitterSignals->Connect( wxEVT_IDLE, wxIdleEventHandler( SIMULATOR_FRAME_BASE::m_splitterSignalsOnIdle ), NULL, this );
|
||||
m_splitterSignals->SetMinimumPaneSize( 20 );
|
||||
|
||||
m_panelSignals = new wxPanel( m_splitterSignals, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
||||
|
@ -146,7 +146,7 @@ SIM_PLOT_FRAME_BASE::SIM_PLOT_FRAME_BASE( wxWindow* parent, wxWindowID id, const
|
|||
|
||||
m_splitterCursors = new wxSplitterWindow( m_panelCMT, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3DSASH|wxSP_LIVE_UPDATE|wxBORDER_NONE );
|
||||
m_splitterCursors->SetSashGravity( 0.2 );
|
||||
m_splitterCursors->Connect( wxEVT_IDLE, wxIdleEventHandler( SIM_PLOT_FRAME_BASE::m_splitterCursorsOnIdle ), NULL, this );
|
||||
m_splitterCursors->Connect( wxEVT_IDLE, wxIdleEventHandler( SIMULATOR_FRAME_BASE::m_splitterCursorsOnIdle ), NULL, this );
|
||||
m_splitterCursors->SetMinimumPaneSize( 20 );
|
||||
|
||||
m_panelCursors = new wxPanel( m_splitterCursors, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
||||
|
@ -201,7 +201,7 @@ SIM_PLOT_FRAME_BASE::SIM_PLOT_FRAME_BASE( wxWindow* parent, wxWindowID id, const
|
|||
|
||||
m_splitterMeasurements = new wxSplitterWindow( m_panelMT, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3DSASH|wxSP_LIVE_UPDATE|wxBORDER_NONE );
|
||||
m_splitterMeasurements->SetSashGravity( 0.2 );
|
||||
m_splitterMeasurements->Connect( wxEVT_IDLE, wxIdleEventHandler( SIM_PLOT_FRAME_BASE::m_splitterMeasurementsOnIdle ), NULL, this );
|
||||
m_splitterMeasurements->Connect( wxEVT_IDLE, wxIdleEventHandler( SIMULATOR_FRAME_BASE::m_splitterMeasurementsOnIdle ), NULL, this );
|
||||
m_splitterMeasurements->SetMinimumPaneSize( 20 );
|
||||
|
||||
m_panelMeasurements = new wxPanel( m_splitterMeasurements, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
|
||||
|
@ -282,32 +282,33 @@ SIM_PLOT_FRAME_BASE::SIM_PLOT_FRAME_BASE( wxWindow* parent, wxWindowID id, const
|
|||
|
||||
this->SetSizer( m_sizerMain );
|
||||
this->Layout();
|
||||
m_sizerMain->Fit( this );
|
||||
|
||||
this->Centre( wxBOTH );
|
||||
|
||||
// Connect Events
|
||||
m_plotNotebook->Connect( wxEVT_COMMAND_AUINOTEBOOK_END_DRAG, wxAuiNotebookEventHandler( SIM_PLOT_FRAME_BASE::onPlotDragged ), NULL, this );
|
||||
m_plotNotebook->Connect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, wxAuiNotebookEventHandler( SIM_PLOT_FRAME_BASE::onPlotChanged ), NULL, this );
|
||||
m_plotNotebook->Connect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, wxAuiNotebookEventHandler( SIM_PLOT_FRAME_BASE::onPlotClose ), NULL, this );
|
||||
m_plotNotebook->Connect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, wxAuiNotebookEventHandler( SIM_PLOT_FRAME_BASE::onPlotClosed ), NULL, this );
|
||||
m_filter->Connect( wxEVT_MOTION, wxMouseEventHandler( SIM_PLOT_FRAME_BASE::OnFilterMouseMoved ), NULL, this );
|
||||
m_filter->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( SIM_PLOT_FRAME_BASE::OnFilterText ), NULL, this );
|
||||
m_signalsGrid->Connect( wxEVT_GRID_CELL_CHANGED, wxGridEventHandler( SIM_PLOT_FRAME_BASE::onSignalsGridCellChanged ), NULL, this );
|
||||
m_cursorsGrid->Connect( wxEVT_GRID_CELL_CHANGED, wxGridEventHandler( SIM_PLOT_FRAME_BASE::onCursorsGridCellChanged ), NULL, this );
|
||||
m_measurementsGrid->Connect( wxEVT_GRID_CELL_CHANGED, wxGridEventHandler( SIM_PLOT_FRAME_BASE::onMeasurementsGridCellChanged ), NULL, this );
|
||||
m_plotNotebook->Connect( wxEVT_COMMAND_AUINOTEBOOK_END_DRAG, wxAuiNotebookEventHandler( SIMULATOR_FRAME_BASE::onPlotDragged ), NULL, this );
|
||||
m_plotNotebook->Connect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, wxAuiNotebookEventHandler( SIMULATOR_FRAME_BASE::onPlotChanged ), NULL, this );
|
||||
m_plotNotebook->Connect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, wxAuiNotebookEventHandler( SIMULATOR_FRAME_BASE::onPlotClose ), NULL, this );
|
||||
m_plotNotebook->Connect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, wxAuiNotebookEventHandler( SIMULATOR_FRAME_BASE::onPlotClosed ), NULL, this );
|
||||
m_filter->Connect( wxEVT_MOTION, wxMouseEventHandler( SIMULATOR_FRAME_BASE::OnFilterMouseMoved ), NULL, this );
|
||||
m_filter->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( SIMULATOR_FRAME_BASE::OnFilterText ), NULL, this );
|
||||
m_signalsGrid->Connect( wxEVT_GRID_CELL_CHANGED, wxGridEventHandler( SIMULATOR_FRAME_BASE::onSignalsGridCellChanged ), NULL, this );
|
||||
m_cursorsGrid->Connect( wxEVT_GRID_CELL_CHANGED, wxGridEventHandler( SIMULATOR_FRAME_BASE::onCursorsGridCellChanged ), NULL, this );
|
||||
m_measurementsGrid->Connect( wxEVT_GRID_CELL_CHANGED, wxGridEventHandler( SIMULATOR_FRAME_BASE::onMeasurementsGridCellChanged ), NULL, this );
|
||||
}
|
||||
|
||||
SIM_PLOT_FRAME_BASE::~SIM_PLOT_FRAME_BASE()
|
||||
SIMULATOR_FRAME_BASE::~SIMULATOR_FRAME_BASE()
|
||||
{
|
||||
// Disconnect Events
|
||||
m_plotNotebook->Disconnect( wxEVT_COMMAND_AUINOTEBOOK_END_DRAG, wxAuiNotebookEventHandler( SIM_PLOT_FRAME_BASE::onPlotDragged ), NULL, this );
|
||||
m_plotNotebook->Disconnect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, wxAuiNotebookEventHandler( SIM_PLOT_FRAME_BASE::onPlotChanged ), NULL, this );
|
||||
m_plotNotebook->Disconnect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, wxAuiNotebookEventHandler( SIM_PLOT_FRAME_BASE::onPlotClose ), NULL, this );
|
||||
m_plotNotebook->Disconnect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, wxAuiNotebookEventHandler( SIM_PLOT_FRAME_BASE::onPlotClosed ), NULL, this );
|
||||
m_filter->Disconnect( wxEVT_MOTION, wxMouseEventHandler( SIM_PLOT_FRAME_BASE::OnFilterMouseMoved ), NULL, this );
|
||||
m_filter->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( SIM_PLOT_FRAME_BASE::OnFilterText ), NULL, this );
|
||||
m_signalsGrid->Disconnect( wxEVT_GRID_CELL_CHANGED, wxGridEventHandler( SIM_PLOT_FRAME_BASE::onSignalsGridCellChanged ), NULL, this );
|
||||
m_cursorsGrid->Disconnect( wxEVT_GRID_CELL_CHANGED, wxGridEventHandler( SIM_PLOT_FRAME_BASE::onCursorsGridCellChanged ), NULL, this );
|
||||
m_measurementsGrid->Disconnect( wxEVT_GRID_CELL_CHANGED, wxGridEventHandler( SIM_PLOT_FRAME_BASE::onMeasurementsGridCellChanged ), NULL, this );
|
||||
m_plotNotebook->Disconnect( wxEVT_COMMAND_AUINOTEBOOK_END_DRAG, wxAuiNotebookEventHandler( SIMULATOR_FRAME_BASE::onPlotDragged ), NULL, this );
|
||||
m_plotNotebook->Disconnect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, wxAuiNotebookEventHandler( SIMULATOR_FRAME_BASE::onPlotChanged ), NULL, this );
|
||||
m_plotNotebook->Disconnect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, wxAuiNotebookEventHandler( SIMULATOR_FRAME_BASE::onPlotClose ), NULL, this );
|
||||
m_plotNotebook->Disconnect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED, wxAuiNotebookEventHandler( SIMULATOR_FRAME_BASE::onPlotClosed ), NULL, this );
|
||||
m_filter->Disconnect( wxEVT_MOTION, wxMouseEventHandler( SIMULATOR_FRAME_BASE::OnFilterMouseMoved ), NULL, this );
|
||||
m_filter->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( SIMULATOR_FRAME_BASE::OnFilterText ), NULL, this );
|
||||
m_signalsGrid->Disconnect( wxEVT_GRID_CELL_CHANGED, wxGridEventHandler( SIMULATOR_FRAME_BASE::onSignalsGridCellChanged ), NULL, this );
|
||||
m_cursorsGrid->Disconnect( wxEVT_GRID_CELL_CHANGED, wxGridEventHandler( SIMULATOR_FRAME_BASE::onCursorsGridCellChanged ), NULL, this );
|
||||
m_measurementsGrid->Disconnect( wxEVT_GRID_CELL_CHANGED, wxGridEventHandler( SIMULATOR_FRAME_BASE::onMeasurementsGridCellChanged ), NULL, this );
|
||||
|
||||
}
|
|
@ -11,13 +11,13 @@
|
|||
<property name="embedded_files_path">.</property>
|
||||
<property name="encoding">UTF-8</property>
|
||||
<property name="event_generation">connect</property>
|
||||
<property name="file">sim_plot_frame_base</property>
|
||||
<property name="file">simulator_frame_base</property>
|
||||
<property name="first_id">1000</property>
|
||||
<property name="help_provider">none</property>
|
||||
<property name="image_path_wrapper_function_name"></property>
|
||||
<property name="indent_with_spaces"></property>
|
||||
<property name="internationalize">1</property>
|
||||
<property name="name">SpiceWindow</property>
|
||||
<property name="name">SIMULATOR_FRAME_BASE</property>
|
||||
<property name="namespace"></property>
|
||||
<property name="path">.</property>
|
||||
<property name="precompiled_header"></property>
|
||||
|
@ -45,9 +45,9 @@
|
|||
<property name="id">wxID_ANY</property>
|
||||
<property name="maximum_size"></property>
|
||||
<property name="minimum_size">-1,-1</property>
|
||||
<property name="name">SIM_PLOT_FRAME_BASE</property>
|
||||
<property name="name">SIMULATOR_FRAME_BASE</property>
|
||||
<property name="pos"></property>
|
||||
<property name="size">564,531</property>
|
||||
<property name="size">-1,-1</property>
|
||||
<property name="style">wxDEFAULT_FRAME_STYLE</property>
|
||||
<property name="subclass">KIWAY_PLAYER; kiway_player.h</property>
|
||||
<property name="title">Spice Simulator</property>
|
||||
|
@ -400,7 +400,7 @@
|
|||
<property name="maximum_size"></property>
|
||||
<property name="min_size"></property>
|
||||
<property name="minimize_button">0</property>
|
||||
<property name="minimum_size">200,-1</property>
|
||||
<property name="minimum_size">200,200</property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_plotNotebook</property>
|
||||
<property name="pane_border">1</property>
|
|
@ -35,9 +35,9 @@ class WX_GRID;
|
|||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
/// Class SIM_PLOT_FRAME_BASE
|
||||
/// Class SIMULATOR_FRAME_BASE
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
class SIM_PLOT_FRAME_BASE : public KIWAY_PLAYER
|
||||
class SIMULATOR_FRAME_BASE : public KIWAY_PLAYER
|
||||
{
|
||||
private:
|
||||
|
||||
|
@ -85,38 +85,38 @@ class SIM_PLOT_FRAME_BASE : public KIWAY_PLAYER
|
|||
|
||||
public:
|
||||
|
||||
SIM_PLOT_FRAME_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Spice Simulator"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 564,531 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL, const wxString& name = wxT("SIM_PLOT_FRAME") );
|
||||
SIMULATOR_FRAME_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Spice Simulator"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL, const wxString& name = wxT("SIM_PLOT_FRAME") );
|
||||
|
||||
~SIM_PLOT_FRAME_BASE();
|
||||
~SIMULATOR_FRAME_BASE();
|
||||
|
||||
void m_splitterLeftRightOnIdle( wxIdleEvent& )
|
||||
{
|
||||
m_splitterLeftRight->SetSashPosition( 700 );
|
||||
m_splitterLeftRight->Disconnect( wxEVT_IDLE, wxIdleEventHandler( SIM_PLOT_FRAME_BASE::m_splitterLeftRightOnIdle ), NULL, this );
|
||||
m_splitterLeftRight->Disconnect( wxEVT_IDLE, wxIdleEventHandler( SIMULATOR_FRAME_BASE::m_splitterLeftRightOnIdle ), NULL, this );
|
||||
}
|
||||
|
||||
void m_splitterPlotAndConsoleOnIdle( wxIdleEvent& )
|
||||
{
|
||||
m_splitterPlotAndConsole->SetSashPosition( 500 );
|
||||
m_splitterPlotAndConsole->Disconnect( wxEVT_IDLE, wxIdleEventHandler( SIM_PLOT_FRAME_BASE::m_splitterPlotAndConsoleOnIdle ), NULL, this );
|
||||
m_splitterPlotAndConsole->Disconnect( wxEVT_IDLE, wxIdleEventHandler( SIMULATOR_FRAME_BASE::m_splitterPlotAndConsoleOnIdle ), NULL, this );
|
||||
}
|
||||
|
||||
void m_splitterSignalsOnIdle( wxIdleEvent& )
|
||||
{
|
||||
m_splitterSignals->SetSashPosition( 0 );
|
||||
m_splitterSignals->Disconnect( wxEVT_IDLE, wxIdleEventHandler( SIM_PLOT_FRAME_BASE::m_splitterSignalsOnIdle ), NULL, this );
|
||||
m_splitterSignals->Disconnect( wxEVT_IDLE, wxIdleEventHandler( SIMULATOR_FRAME_BASE::m_splitterSignalsOnIdle ), NULL, this );
|
||||
}
|
||||
|
||||
void m_splitterCursorsOnIdle( wxIdleEvent& )
|
||||
{
|
||||
m_splitterCursors->SetSashPosition( 0 );
|
||||
m_splitterCursors->Disconnect( wxEVT_IDLE, wxIdleEventHandler( SIM_PLOT_FRAME_BASE::m_splitterCursorsOnIdle ), NULL, this );
|
||||
m_splitterCursors->Disconnect( wxEVT_IDLE, wxIdleEventHandler( SIMULATOR_FRAME_BASE::m_splitterCursorsOnIdle ), NULL, this );
|
||||
}
|
||||
|
||||
void m_splitterMeasurementsOnIdle( wxIdleEvent& )
|
||||
{
|
||||
m_splitterMeasurements->SetSashPosition( 0 );
|
||||
m_splitterMeasurements->Disconnect( wxEVT_IDLE, wxIdleEventHandler( SIM_PLOT_FRAME_BASE::m_splitterMeasurementsOnIdle ), NULL, this );
|
||||
m_splitterMeasurements->Disconnect( wxEVT_IDLE, wxIdleEventHandler( SIMULATOR_FRAME_BASE::m_splitterMeasurementsOnIdle ), NULL, this );
|
||||
}
|
||||
|
||||
};
|
|
@ -18,7 +18,7 @@
|
|||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <sim/sim_plot_frame.h>
|
||||
#include <sim/simulator_frame.h>
|
||||
#include <tool/action_menu.h>
|
||||
#include <tool/action_toolbar.h>
|
||||
#include <tool/common_control.h>
|
||||
|
@ -28,7 +28,7 @@
|
|||
#include "menus_helpers.h"
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::ReCreateHToolbar()
|
||||
void SIMULATOR_FRAME::ReCreateHToolbar()
|
||||
{
|
||||
if( m_toolBar )
|
||||
{
|
||||
|
@ -72,7 +72,7 @@ void SIM_PLOT_FRAME::ReCreateHToolbar()
|
|||
}
|
||||
|
||||
|
||||
void SIM_PLOT_FRAME::doReCreateMenuBar()
|
||||
void SIMULATOR_FRAME::doReCreateMenuBar()
|
||||
{
|
||||
COMMON_CONTROL* tool = m_toolManager->GetTool<COMMON_CONTROL>();
|
||||
EDA_BASE_FRAME* base_frame = dynamic_cast<EDA_BASE_FRAME*>( this );
|
|
@ -32,7 +32,7 @@
|
|||
#include <tools/ee_inspection_tool.h>
|
||||
#include <tools/ee_selection_tool.h>
|
||||
#include <tools/ee_selection.h>
|
||||
#include <sim/sim_plot_frame.h>
|
||||
#include <sim/simulator_frame.h>
|
||||
#include <sch_edit_frame.h>
|
||||
#include <symbol_edit_frame.h>
|
||||
#include <symbol_viewer_frame.h>
|
||||
|
@ -238,7 +238,7 @@ int EE_INSPECTION_TOOL::CheckSymbol( const TOOL_EVENT& aEvent )
|
|||
int EE_INSPECTION_TOOL::RunSimulation( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
#ifdef KICAD_SPICE
|
||||
SIM_PLOT_FRAME* simFrame = (SIM_PLOT_FRAME*) m_frame->Kiway().Player( FRAME_SIMULATOR, true );
|
||||
SIMULATOR_FRAME* simFrame = (SIMULATOR_FRAME*) m_frame->Kiway().Player( FRAME_SIMULATOR, true );
|
||||
|
||||
if( !simFrame )
|
||||
return -1;
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
#include <sch_view.h>
|
||||
#include <schematic.h>
|
||||
#include <advanced_config.h>
|
||||
#include <sim/sim_plot_frame.h>
|
||||
#include <sim/simulator_frame.h>
|
||||
#include <sim/spice_generator.h>
|
||||
#include <sim/sim_lib_mgr.h>
|
||||
#include "symbol_library_manager.h"
|
||||
|
@ -510,8 +510,8 @@ int SCH_EDITOR_CONTROL::ExportSymbolsToLibrary( const TOOL_EVENT& aEvent )
|
|||
|
||||
int SCH_EDITOR_CONTROL::SimProbe( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
PICKER_TOOL* picker = m_toolMgr->GetTool<PICKER_TOOL>();
|
||||
SIM_PLOT_FRAME* simFrame = (SIM_PLOT_FRAME*) m_frame->Kiway().Player( FRAME_SIMULATOR, false );
|
||||
PICKER_TOOL* picker = m_toolMgr->GetTool<PICKER_TOOL>();
|
||||
SIMULATOR_FRAME* simFrame = (SIMULATOR_FRAME*) m_frame->Kiway().Player( FRAME_SIMULATOR, false );
|
||||
|
||||
if( !simFrame ) // Defensive coding; shouldn't happen.
|
||||
return 0;
|
||||
|
@ -552,25 +552,26 @@ int SCH_EDITOR_CONTROL::SimProbe( const TOOL_EVENT& aEvent )
|
|||
THROW_IO_ERROR( msg );
|
||||
|
||||
SPICE_ITEM spiceItem;
|
||||
spiceItem.refName = std::string( symbol->GetRef( &sheet ).ToUTF8() );
|
||||
spiceItem.refName = symbol->GetRef( &sheet ).ToStdString();
|
||||
std::vector<std::string> currentNames =
|
||||
model.SpiceGenerator().CurrentNames( spiceItem );
|
||||
|
||||
if( currentNames.size() == 0 )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else if( currentNames.size() == 1 )
|
||||
{
|
||||
simFrame->AddCurrentPlot( currentNames.at( 0 ) );
|
||||
simFrame->AddCurrentTrace( currentNames.at( 0 ) );
|
||||
return true;
|
||||
}
|
||||
|
||||
int modelPinIndex =
|
||||
model.FindModelPinIndex( std::string( pin->GetNumber().ToUTF8() ) );
|
||||
int modelPinIndex = model.FindModelPinIndex( pin->GetNumber().ToStdString() );
|
||||
|
||||
if( modelPinIndex != SIM_MODEL::PIN::NOT_CONNECTED )
|
||||
{
|
||||
wxString name = currentNames.at( modelPinIndex );
|
||||
simFrame->AddCurrentPlot( name );
|
||||
simFrame->AddCurrentTrace( name );
|
||||
}
|
||||
}
|
||||
catch( const IO_ERROR& e )
|
||||
|
@ -583,10 +584,10 @@ int SCH_EDITOR_CONTROL::SimProbe( const TOOL_EVENT& aEvent )
|
|||
{
|
||||
if( SCH_CONNECTION* conn = static_cast<SCH_ITEM*>( item )->Connection() )
|
||||
{
|
||||
std::string spiceNet = std::string( UnescapeString( conn->Name() ).ToUTF8() );
|
||||
std::string spiceNet = UnescapeString( conn->Name() ).ToStdString();
|
||||
NETLIST_EXPORTER_SPICE::ConvertToSpiceMarkup( spiceNet );
|
||||
|
||||
simFrame->AddVoltagePlot( wxString::Format( "V(%s)", spiceNet ) );
|
||||
simFrame->AddVoltageTrace( wxString::Format( "V(%s)", spiceNet ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -702,7 +703,7 @@ int SCH_EDITOR_CONTROL::SimTune( const TOOL_EVENT& aEvent )
|
|||
if( wxWindow* blocking_win = simFrame->Kiway().GetBlockingDialog() )
|
||||
blocking_win->Close( true );
|
||||
|
||||
static_cast<SIM_PLOT_FRAME*>( simFrame )->AddTuner( sheetPath, symbol );
|
||||
static_cast<SIMULATOR_FRAME*>( simFrame )->AddTuner( sheetPath, symbol );
|
||||
}
|
||||
|
||||
// We do not really want to keep a symbol selected in schematic,
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
#include <wildcards_and_files_ext.h>
|
||||
#include <project/project_file.h>
|
||||
#include <sch_edit_frame.h>
|
||||
#include <sim/sim_plot_frame.h>
|
||||
#include <sim/simulator_frame.h>
|
||||
#include <tool/tool_manager.h>
|
||||
#include <tools/ee_actions.h>
|
||||
#include <tools/simulator_control.h>
|
||||
|
@ -48,13 +48,13 @@ bool SIMULATOR_CONTROL::Init()
|
|||
|
||||
void SIMULATOR_CONTROL::Reset( RESET_REASON aReason )
|
||||
{
|
||||
m_plotFrame = getEditFrame<SIM_PLOT_FRAME>();
|
||||
m_simulatorFrame = getEditFrame<SIMULATOR_FRAME>();
|
||||
|
||||
if( m_plotFrame )
|
||||
if( m_simulatorFrame )
|
||||
{
|
||||
m_schematicFrame = m_plotFrame->GetSchematicFrame();
|
||||
m_circuitModel = m_plotFrame->GetCircuitModel();
|
||||
m_simulator = m_plotFrame->GetSimulator();
|
||||
m_schematicFrame = m_simulatorFrame->GetSchematicFrame();
|
||||
m_circuitModel = m_simulatorFrame->GetCircuitModel();
|
||||
m_simulator = m_simulatorFrame->GetSimulator();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -64,7 +64,10 @@ int SIMULATOR_CONTROL::NewPlot( const TOOL_EVENT& aEvent )
|
|||
SIM_TYPE type = m_circuitModel->GetSimType();
|
||||
|
||||
if( SIM_PANEL_BASE::IsPlottable( type ) )
|
||||
m_plotFrame->NewPlotPanel( m_circuitModel->GetSimCommand(), m_circuitModel->GetSimOptions() );
|
||||
{
|
||||
m_simulatorFrame->NewPlotPanel( m_circuitModel->GetSimCommand(),
|
||||
m_circuitModel->GetSimOptions() );
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -72,13 +75,13 @@ int SIMULATOR_CONTROL::NewPlot( const TOOL_EVENT& aEvent )
|
|||
|
||||
int SIMULATOR_CONTROL::OpenWorkbook( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
wxFileDialog openDlg( m_plotFrame, _( "Open simulation workbook" ), getDefaultPath(), "",
|
||||
wxFileDialog openDlg( m_simulatorFrame, _( "Open simulation workbook" ), getDefaultPath(), "",
|
||||
WorkbookFileWildcard(), wxFD_OPEN | wxFD_FILE_MUST_EXIST );
|
||||
|
||||
if( openDlg.ShowModal() == wxID_CANCEL )
|
||||
return -1;
|
||||
|
||||
m_plotFrame->LoadWorkbook( openDlg.GetPath() );
|
||||
m_simulatorFrame->LoadWorkbook( openDlg.GetPath() );
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -89,14 +92,14 @@ wxString SIMULATOR_CONTROL::getDefaultFilename()
|
|||
|
||||
if( filename.GetName().IsEmpty() )
|
||||
{
|
||||
if( m_plotFrame->Prj().GetProjectName().IsEmpty() )
|
||||
if( m_simulatorFrame->Prj().GetProjectName().IsEmpty() )
|
||||
{
|
||||
filename.SetName( _( "noname" ) );
|
||||
filename.SetExt( WorkbookFileExtension );
|
||||
}
|
||||
else
|
||||
{
|
||||
filename.SetName( m_plotFrame->Prj().GetProjectName() );
|
||||
filename.SetName( m_simulatorFrame->Prj().GetProjectName() );
|
||||
filename.SetExt( WorkbookFileExtension );
|
||||
}
|
||||
}
|
||||
|
@ -109,7 +112,8 @@ wxString SIMULATOR_CONTROL::getDefaultPath()
|
|||
{
|
||||
wxFileName path = m_simulator->Settings()->GetWorkbookFilename();
|
||||
|
||||
path.Normalize( FN_NORMALIZE_FLAGS|wxPATH_NORM_ENV_VARS, m_plotFrame->Prj().GetProjectPath() );
|
||||
path.Normalize( FN_NORMALIZE_FLAGS|wxPATH_NORM_ENV_VARS,
|
||||
m_simulatorFrame->Prj().GetProjectPath() );
|
||||
return path.GetPath();
|
||||
}
|
||||
|
||||
|
@ -123,8 +127,8 @@ int SIMULATOR_CONTROL::SaveWorkbook( const TOOL_EVENT& aEvent )
|
|||
|
||||
if( filename.IsEmpty() )
|
||||
{
|
||||
wxFileDialog saveAsDlg( m_plotFrame, _( "Save Simulation Workbook As" ), getDefaultPath(),
|
||||
getDefaultFilename(), WorkbookFileWildcard(),
|
||||
wxFileDialog saveAsDlg( m_simulatorFrame, _( "Save Simulation Workbook As" ),
|
||||
getDefaultPath(), getDefaultFilename(), WorkbookFileWildcard(),
|
||||
wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
|
||||
|
||||
if( saveAsDlg.ShowModal() == wxID_CANCEL )
|
||||
|
@ -133,24 +137,24 @@ int SIMULATOR_CONTROL::SaveWorkbook( const TOOL_EVENT& aEvent )
|
|||
filename = saveAsDlg.GetPath();
|
||||
}
|
||||
|
||||
m_plotFrame->SaveWorkbook( m_plotFrame->Prj().AbsolutePath( filename ) );
|
||||
m_simulatorFrame->SaveWorkbook( m_simulatorFrame->Prj().AbsolutePath( filename ) );
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int SIMULATOR_CONTROL::ExportPlotAsPNG( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
if( !m_plotFrame->GetCurrentPlot() )
|
||||
if( !m_simulatorFrame->GetCurrentPlot() )
|
||||
return -1;
|
||||
|
||||
wxFileDialog saveDlg( m_plotFrame, _( "Save Plot as Image" ), "", "", PngFileWildcard(),
|
||||
wxFileDialog saveDlg( m_simulatorFrame, _( "Save Plot as Image" ), "", "", PngFileWildcard(),
|
||||
wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
|
||||
|
||||
if( saveDlg.ShowModal() == wxID_CANCEL )
|
||||
return -1;
|
||||
|
||||
m_plotFrame->GetCurrentPlot()->GetPlotWin()->SaveScreenshot( saveDlg.GetPath(),
|
||||
wxBITMAP_TYPE_PNG );
|
||||
m_simulatorFrame->GetCurrentPlot()->GetPlotWin()->SaveScreenshot( saveDlg.GetPath(),
|
||||
wxBITMAP_TYPE_PNG );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -158,12 +162,12 @@ int SIMULATOR_CONTROL::ExportPlotAsPNG( const TOOL_EVENT& aEvent )
|
|||
|
||||
int SIMULATOR_CONTROL::ExportPlotAsCSV( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
if( !m_plotFrame->GetCurrentPlot() )
|
||||
if( !m_simulatorFrame->GetCurrentPlot() )
|
||||
return -1;
|
||||
|
||||
const wxChar SEPARATOR = ';';
|
||||
|
||||
wxFileDialog saveDlg( m_plotFrame, _( "Save Plot Data" ), "", "", CsvFileWildcard(),
|
||||
wxFileDialog saveDlg( m_simulatorFrame, _( "Save Plot Data" ), "", "", CsvFileWildcard(),
|
||||
wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
|
||||
|
||||
if( saveDlg.ShowModal() == wxID_CANCEL )
|
||||
|
@ -171,7 +175,7 @@ int SIMULATOR_CONTROL::ExportPlotAsCSV( const TOOL_EVENT& aEvent )
|
|||
|
||||
wxFFile out( saveDlg.GetPath(), "wb" );
|
||||
|
||||
std::map<wxString, TRACE*> traces = m_plotFrame->GetCurrentPlot()->GetTraces();
|
||||
std::map<wxString, TRACE*> traces = m_simulatorFrame->GetCurrentPlot()->GetTraces();
|
||||
|
||||
if( traces.size() == 0 )
|
||||
return -1;
|
||||
|
@ -211,21 +215,21 @@ int SIMULATOR_CONTROL::ExportPlotAsCSV( const TOOL_EVENT& aEvent )
|
|||
|
||||
int SIMULATOR_CONTROL::Close( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
m_plotFrame->Close();
|
||||
m_simulatorFrame->Close();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int SIMULATOR_CONTROL::Zoom( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
if( m_plotFrame->GetCurrentPlot() )
|
||||
if( m_simulatorFrame->GetCurrentPlot() )
|
||||
{
|
||||
if( aEvent.IsAction( &ACTIONS::zoomInCenter ) )
|
||||
m_plotFrame->GetCurrentPlot()->GetPlotWin()->ZoomIn();
|
||||
m_simulatorFrame->GetCurrentPlot()->GetPlotWin()->ZoomIn();
|
||||
else if( aEvent.IsAction( &ACTIONS::zoomOutCenter ) )
|
||||
m_plotFrame->GetCurrentPlot()->GetPlotWin()->ZoomOut();
|
||||
m_simulatorFrame->GetCurrentPlot()->GetPlotWin()->ZoomOut();
|
||||
else if( aEvent.IsAction( &ACTIONS::zoomFitScreen ) )
|
||||
m_plotFrame->GetCurrentPlot()->GetPlotWin()->Fit();
|
||||
m_simulatorFrame->GetCurrentPlot()->GetPlotWin()->Fit();
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -234,12 +238,12 @@ int SIMULATOR_CONTROL::Zoom( const TOOL_EVENT& aEvent )
|
|||
|
||||
int SIMULATOR_CONTROL::ToggleGrid( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
SIM_PLOT_PANEL* plot = m_plotFrame->GetCurrentPlot();
|
||||
SIM_PLOT_PANEL* plot = m_simulatorFrame->GetCurrentPlot();
|
||||
|
||||
if( plot )
|
||||
{
|
||||
plot->ShowGrid( !plot->IsGridShown() );
|
||||
m_plotFrame->OnModify();
|
||||
m_simulatorFrame->OnModify();
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -248,12 +252,12 @@ int SIMULATOR_CONTROL::ToggleGrid( const TOOL_EVENT& aEvent )
|
|||
|
||||
int SIMULATOR_CONTROL::ToggleLegend( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
SIM_PLOT_PANEL* plot = m_plotFrame->GetCurrentPlot();
|
||||
SIM_PLOT_PANEL* plot = m_simulatorFrame->GetCurrentPlot();
|
||||
|
||||
if( plot )
|
||||
{
|
||||
plot->ShowLegend( !plot->IsLegendShown() );
|
||||
m_plotFrame->OnModify();
|
||||
m_simulatorFrame->OnModify();
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -262,12 +266,12 @@ int SIMULATOR_CONTROL::ToggleLegend( const TOOL_EVENT& aEvent )
|
|||
|
||||
int SIMULATOR_CONTROL::ToggleDottedSecondary( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
SIM_PLOT_PANEL* plot = m_plotFrame->GetCurrentPlot();
|
||||
SIM_PLOT_PANEL* plot = m_simulatorFrame->GetCurrentPlot();
|
||||
|
||||
if( plot )
|
||||
{
|
||||
plot->SetDottedSecondary( !plot->GetDottedSecondary() );
|
||||
m_plotFrame->OnModify();
|
||||
m_simulatorFrame->OnModify();
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -276,14 +280,14 @@ int SIMULATOR_CONTROL::ToggleDottedSecondary( const TOOL_EVENT& aEvent )
|
|||
|
||||
int SIMULATOR_CONTROL::ToggleDarkModePlots( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
m_plotFrame->ToggleDarkModePlots();
|
||||
m_simulatorFrame->ToggleDarkModePlots();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int SIMULATOR_CONTROL::EditSimCommand( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
m_plotFrame->EditSimCommand();
|
||||
m_simulatorFrame->EditSimCommand();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -293,7 +297,7 @@ int SIMULATOR_CONTROL::RunSimulation( const TOOL_EVENT& aEvent )
|
|||
if( m_simulator->IsRunning() )
|
||||
m_simulator->Stop();
|
||||
else
|
||||
m_plotFrame->StartSimulation();
|
||||
m_simulatorFrame->StartSimulation();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -389,12 +393,12 @@ public:
|
|||
|
||||
int SIMULATOR_CONTROL::EditUserDefinedSignals( const TOOL_EVENT& aEvent )
|
||||
{
|
||||
std::map<int, wxString> userSignals = m_plotFrame->UserDefinedSignals();
|
||||
std::map<int, wxString> userSignals = m_simulatorFrame->UserDefinedSignals();
|
||||
|
||||
DIALOG_USER_DEFINED_SIGNALS dlg( m_plotFrame, &userSignals );
|
||||
DIALOG_USER_DEFINED_SIGNALS dlg( m_simulatorFrame, &userSignals );
|
||||
|
||||
if( dlg.ShowQuasiModal() == wxID_OK )
|
||||
m_plotFrame->SetUserDefinedSignals( userSignals );
|
||||
m_simulatorFrame->SetUserDefinedSignals( userSignals );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -409,10 +413,10 @@ int SIMULATOR_CONTROL::ShowNetlist( const TOOL_EVENT& aEvent )
|
|||
WX_STRING_REPORTER reporter( &errors );
|
||||
STRING_FORMATTER formatter;
|
||||
|
||||
m_circuitModel->SetSimOptions( m_plotFrame->GetCurrentOptions() );
|
||||
m_circuitModel->SetSimOptions( m_simulatorFrame->GetCurrentOptions() );
|
||||
m_circuitModel->GetNetlist( &formatter, reporter );
|
||||
|
||||
NETLIST_VIEW_DIALOG dlg( m_plotFrame, errors.IsEmpty() ? wxString( formatter.GetString() ) : errors );
|
||||
NETLIST_VIEW_DIALOG dlg( m_simulatorFrame, errors.IsEmpty() ? wxString( formatter.GetString() ) : errors );
|
||||
dlg.ShowModal();
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
#include <tool/tool_interactive.h>
|
||||
|
||||
class SIM_PLOT_FRAME;
|
||||
class SIMULATOR_FRAME;
|
||||
class NGSPICE_CIRCUIT_MODEL;
|
||||
class SPICE_SIMULATOR;
|
||||
|
||||
|
@ -39,8 +39,7 @@ class SIMULATOR_CONTROL : public wxEvtHandler, public TOOL_INTERACTIVE
|
|||
{
|
||||
public:
|
||||
SIMULATOR_CONTROL() :
|
||||
TOOL_INTERACTIVE( "eeschema.SimulatorControl" ),
|
||||
m_plotFrame( nullptr ),
|
||||
TOOL_INTERACTIVE( "eeschema.SimulatorControl" ), m_simulatorFrame( nullptr ),
|
||||
m_schematicFrame( nullptr )
|
||||
{ }
|
||||
|
||||
|
@ -88,7 +87,7 @@ private:
|
|||
void setTransitions() override;
|
||||
|
||||
private:
|
||||
SIM_PLOT_FRAME* m_plotFrame;
|
||||
SIMULATOR_FRAME* m_simulatorFrame;
|
||||
SCH_EDIT_FRAME* m_schematicFrame;
|
||||
std::shared_ptr<NGSPICE_CIRCUIT_MODEL> m_circuitModel;
|
||||
std::shared_ptr<SPICE_SIMULATOR> m_simulator;
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <sim/sim_notebook.h>
|
||||
#include "widgets/sim_notebook.h"
|
||||
|
||||
|
||||
SIM_NOTEBOOK::SIM_NOTEBOOK() :
|
|
@ -25,9 +25,9 @@
|
|||
#ifndef SIM_NOTEBOOK_H
|
||||
#define SIM_NOTEBOOK_H
|
||||
|
||||
#include <dialog_sim_command.h>
|
||||
#include <sim/sim_panel_base.h>
|
||||
#include <sim/sim_plot_panel.h>
|
||||
#include "dialogs/dialog_sim_command.h"
|
||||
#include "sim/sim_panel_base.h"
|
||||
#include "sim/sim_plot_panel.h"
|
||||
|
||||
|
||||
class SIM_NOTEBOOK : public wxAuiNotebook
|
|
@ -25,7 +25,7 @@
|
|||
*/
|
||||
|
||||
|
||||
#include <sim/sim_plot_frame.h>
|
||||
#include <sim/simulator_frame.h>
|
||||
#include <sch_symbol.h>
|
||||
#include <template_fieldnames.h>
|
||||
#include <widgets/bitmap_button.h>
|
||||
|
@ -38,7 +38,7 @@
|
|||
#include "tuner_slider.h"
|
||||
#include "core/kicad_algo.h"
|
||||
|
||||
TUNER_SLIDER::TUNER_SLIDER( SIM_PLOT_FRAME* aFrame, wxWindow* aParent,
|
||||
TUNER_SLIDER::TUNER_SLIDER( SIMULATOR_FRAME* aFrame, wxWindow* aParent,
|
||||
const SCH_SHEET_PATH& aSheetPath, SCH_SYMBOL* aSymbol ) :
|
||||
TUNER_SLIDER_BASE( aParent ),
|
||||
m_symbol( aSymbol->m_Uuid ),
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
|
||||
#include <wx/timer.h>
|
||||
|
||||
class SIM_PLOT_FRAME;
|
||||
class SIMULATOR_FRAME;
|
||||
class SCH_SYMBOL;
|
||||
|
||||
/**
|
||||
|
@ -43,7 +43,7 @@ class SCH_SYMBOL;
|
|||
class TUNER_SLIDER : public TUNER_SLIDER_BASE
|
||||
{
|
||||
public:
|
||||
TUNER_SLIDER( SIM_PLOT_FRAME *aFrame, wxWindow* aParent, const SCH_SHEET_PATH& aSheetPath,
|
||||
TUNER_SLIDER( SIMULATOR_FRAME *aFrame, wxWindow* aParent, const SCH_SHEET_PATH& aSheetPath,
|
||||
SCH_SYMBOL* aSymbol );
|
||||
|
||||
wxString GetSymbolRef() const
|
||||
|
@ -102,15 +102,15 @@ private:
|
|||
void onMinTextEnter( wxCommandEvent& event ) override;
|
||||
|
||||
private:
|
||||
KIID m_symbol;
|
||||
SCH_SHEET_PATH m_sheetPath;
|
||||
wxString m_ref;
|
||||
KIID m_symbol;
|
||||
SCH_SHEET_PATH m_sheetPath;
|
||||
wxString m_ref;
|
||||
|
||||
SPICE_VALUE m_min;
|
||||
SPICE_VALUE m_max;
|
||||
SPICE_VALUE m_value;
|
||||
SPICE_VALUE m_min;
|
||||
SPICE_VALUE m_max;
|
||||
SPICE_VALUE m_value;
|
||||
|
||||
SIM_PLOT_FRAME* m_frame;
|
||||
SIMULATOR_FRAME* m_frame;
|
||||
};
|
||||
|
||||
#endif /* TUNER_SLIDER_H */
|
||||
|
|
Loading…
Reference in New Issue