148 lines
4.8 KiB
C++
148 lines
4.8 KiB
C++
/*
|
|
* This program source code file is part of KICAD, a free EDA CAD application.
|
|
*
|
|
* Copyright (C) 1992-2023 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/>.
|
|
*/
|
|
|
|
#ifndef PANEL_TRANSLINE_H
|
|
#define PANEL_TRANSLINE_H
|
|
|
|
#include "panel_transline_base.h"
|
|
#include <transline/transline.h>
|
|
#include "transline_ident.h"
|
|
|
|
class PCB_CALCULATOR_SETTINGS;
|
|
|
|
|
|
class PANEL_TRANSLINE : public PANEL_TRANSLINE_BASE
|
|
{
|
|
public:
|
|
PANEL_TRANSLINE( wxWindow* parent, wxWindowID id = wxID_ANY,
|
|
const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
|
|
long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString );
|
|
~PANEL_TRANSLINE();
|
|
|
|
// Methods from CALCULATOR_PANEL that must be overridden
|
|
void LoadSettings( PCB_CALCULATOR_SETTINGS* aCfg ) override;
|
|
void SaveSettings( PCB_CALCULATOR_SETTINGS* aCfg ) override;
|
|
void ThemeChanged() override;
|
|
|
|
// Accessors:
|
|
wxRadioBox* GetTranslineSelector() { return m_TranslineSelection; }
|
|
TRANSLINE_TYPE_ID GetCurrTransLineType() { return m_currTransLineType; }
|
|
|
|
/**
|
|
* Read/write params values and results.
|
|
*
|
|
* @param aPrmId is the parameter id to write.
|
|
* @param aValue is the value to write.
|
|
*/
|
|
void SetPrmValue( enum PRMS_ID aPrmId, double aValue );
|
|
|
|
/**
|
|
* Put the text into the given result line.
|
|
*
|
|
* @param aLineNumber is the line (0 to 5) where to display the text.
|
|
* @param aText is the text to display.
|
|
*/
|
|
void SetResult( int aLineNumber, const wxString& aText );
|
|
|
|
/**
|
|
* Set the background color of a parameter.
|
|
*
|
|
* @param aPrmId is the parameter id to set.
|
|
* @param aCol is the new color.
|
|
*/
|
|
void SetPrmBgColor( enum PRMS_ID aPrmId, const KIGFX::COLOR4D* aCol );
|
|
|
|
/**
|
|
* Return a param value.
|
|
*
|
|
* @param aPrmId is the parameter id to write.
|
|
* @return the value always in normalized unit (meter, Hz, Ohm, radian).
|
|
*/
|
|
double GetPrmValue( enum PRMS_ID aPrmId ) const;
|
|
|
|
/**
|
|
* @return true if the parameter aPrmId is selected.
|
|
*/
|
|
bool IsPrmSelected( enum PRMS_ID aPrmId ) const;
|
|
|
|
/**
|
|
* Called on new transmission line selection.
|
|
*/
|
|
void OnTranslineSelection( wxCommandEvent& event ) override;
|
|
|
|
/**
|
|
* Called when the user clicks the reset button; sets the parameters to their default values.
|
|
*/
|
|
void OnTransLineResetButtonClick( wxCommandEvent& event ) override;
|
|
|
|
/**
|
|
* Run a new analyze for the current transline with current parameters and displays the
|
|
* electrical parameters.
|
|
*/
|
|
void OnTranslineAnalyse( wxCommandEvent& event ) override;
|
|
|
|
/**
|
|
* Run a new synthesis for the current transline with current parameters and displays the
|
|
* geometrical parameters.
|
|
*/
|
|
void OnTranslineSynthetize( wxCommandEvent& event ) override;
|
|
|
|
/**
|
|
* Shows a list of current relative dielectric constant(Er) and set the selected value in
|
|
* main dialog frame.
|
|
*/
|
|
void OnTranslineEpsilonR_Button( wxCommandEvent& event ) override;
|
|
|
|
/**
|
|
* Show a list of current dielectric loss factor (tangent delta) and set the selected value
|
|
* in main dialog frame.
|
|
*/
|
|
void OnTranslineTanD_Button( wxCommandEvent& event ) override;
|
|
|
|
/**
|
|
* Show a list of current Specific resistance list (rho) and set the selected value in main
|
|
* dialog frame.
|
|
*/
|
|
void OnTranslineRho_Button( wxCommandEvent& event ) override;
|
|
|
|
/**
|
|
* Must be called after selection of a new transline.
|
|
*
|
|
* Update all values, labels and tool tips of parameters needed by the new transline;
|
|
* irrelevant parameters are blanked.
|
|
*
|
|
* @param aType is the #TRANSLINE_TYPE_ID of the new selected transmission line.
|
|
*/
|
|
void TranslineTypeSelection( enum TRANSLINE_TYPE_ID aType );
|
|
|
|
/**
|
|
* Read values entered in dialog frame, and transfer these values in current transline
|
|
* parameters, converted in normalized units.
|
|
*/
|
|
void TransfDlgDataToTranslineParams();
|
|
|
|
private:
|
|
TRANSLINE* m_currTransLine;
|
|
std::vector<TRANSLINE_IDENT*> m_transline_list;
|
|
|
|
enum TRANSLINE_TYPE_ID m_currTransLineType;
|
|
};
|
|
|
|
#endif
|