KiCad PCB EDA Suite
Loading...
Searching...
No Matches
panel_setup_tuning_patterns.cpp
Go to the documentation of this file.
1/*
2* This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software: you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation, either version 3 of the License, or (at your
9 * option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
23#include <bitmaps.h>
24#include <eda_draw_frame.h>
25#include <board.h>
27
29 PNS::MEANDER_SETTINGS& aTrackSettings,
30 PNS::MEANDER_SETTINGS& aDiffPairSettings,
31 PNS::MEANDER_SETTINGS& aSkewSettings ) :
45 m_trackSettings( aTrackSettings ),
46 m_dpSettings( aDiffPairSettings ),
47 m_skewSettings( aSkewSettings )
48{
52
53 m_track_r.SetUnits( EDA_UNITS::PERCENT );
54 m_dp_r.SetUnits( EDA_UNITS::PERCENT );
55 m_skew_r.SetUnits( EDA_UNITS::PERCENT );
56}
57
58
60{
61 m_track_minA.SetValue( m_trackSettings.m_minAmplitude );
62 m_track_maxA.SetValue( m_trackSettings.m_maxAmplitude );
63 m_track_spacing.SetValue( m_trackSettings.m_spacing );
64 m_track_cornerCtrl->SetSelection( m_trackSettings.m_cornerStyle == PNS::MEANDER_STYLE_ROUND ? 1 : 0 );
65 m_track_r.SetValue( m_trackSettings.m_cornerRadiusPercentage );
66 m_track_singleSided->SetValue( m_trackSettings.m_singleSided );
67
68 m_dp_minA.SetValue( m_dpSettings.m_minAmplitude );
69 m_dp_maxA.SetValue( m_dpSettings.m_maxAmplitude );
70 m_dp_spacing.SetValue( m_dpSettings.m_spacing );
71 m_dp_cornerCtrl->SetSelection( m_dpSettings.m_cornerStyle == PNS::MEANDER_STYLE_ROUND ? 1 : 0 );
72 m_dp_r.SetValue( m_dpSettings.m_cornerRadiusPercentage );
73 m_dp_singleSided->SetValue( m_dpSettings.m_singleSided );
74
75 m_skew_minA.SetValue( m_skewSettings.m_minAmplitude );
76 m_skew_maxA.SetValue( m_skewSettings.m_maxAmplitude );
77 m_skew_spacing.SetValue( m_skewSettings.m_spacing );
78 m_skew_cornerCtrl->SetSelection( m_skewSettings.m_cornerStyle == PNS::MEANDER_STYLE_ROUND ? 1 : 0 );
79 m_skew_r.SetValue( m_skewSettings.m_cornerRadiusPercentage );
80 m_skew_singleSided->SetValue( m_skewSettings.m_singleSided );
81
82 return true;
83}
84
85
87{
88 m_trackSettings.m_minAmplitude = m_track_minA.GetIntValue();
89 m_trackSettings.m_maxAmplitude = m_track_maxA.GetIntValue();
90 m_trackSettings.m_spacing = m_track_spacing.GetIntValue();
91 m_trackSettings.m_cornerStyle = m_track_cornerCtrl->GetSelection() ? PNS::MEANDER_STYLE_ROUND
93 m_trackSettings.m_cornerRadiusPercentage = m_track_r.GetIntValue();
94 m_trackSettings.m_singleSided = m_track_singleSided->GetValue();
95
96 m_dpSettings.m_minAmplitude = m_dp_minA.GetIntValue();
97 m_dpSettings.m_maxAmplitude = m_dp_maxA.GetIntValue();
98 m_dpSettings.m_spacing = m_dp_spacing.GetIntValue();
99 m_dpSettings.m_cornerStyle = m_dp_cornerCtrl->GetSelection() ? PNS::MEANDER_STYLE_ROUND
101 m_dpSettings.m_cornerRadiusPercentage = m_dp_r.GetIntValue();
102 m_dpSettings.m_singleSided = m_dp_singleSided->GetValue();
103
104 m_skewSettings.m_minAmplitude = m_skew_minA.GetIntValue();
105 m_skewSettings.m_maxAmplitude = m_skew_maxA.GetIntValue();
106 m_skewSettings.m_spacing = m_skew_spacing.GetIntValue();
107 m_skewSettings.m_cornerStyle = m_skew_cornerCtrl->GetSelection() ? PNS::MEANDER_STYLE_ROUND
109 m_skewSettings.m_cornerRadiusPercentage = m_skew_r.GetIntValue();
110 m_skewSettings.m_singleSided = m_skew_singleSided->GetValue();
111
112 return true;
113}
114
115
117{
118 PNS::MEANDER_SETTINGS savedTrackSettings = m_trackSettings;
119 PNS::MEANDER_SETTINGS savedDPSettings = m_dpSettings;
120 PNS::MEANDER_SETTINGS savedSkewSettings = m_skewSettings;
121
126
127 m_trackSettings = std::move( savedTrackSettings );
128 m_dpSettings = std::move( savedDPSettings );
129 m_skewSettings = std::move( savedSkewSettings );
130}
wxBitmapBundle KiBitmapBundle(BITMAPS aBitmap, int aMinHeight)
Definition bitmap.cpp:110
@ tune_single_track_length_legend
@ tune_diff_pair_length_legend
@ tune_diff_pair_skew_legend
PNS::MEANDER_SETTINGS m_DiffPairMeanderSettings
PNS::MEANDER_SETTINGS m_SingleTrackMeanderSettings
PNS::MEANDER_SETTINGS m_SkewMeanderSettings
Information pertinent to a Pcbnew printed circuit board.
Definition board.h:322
BOARD_DESIGN_SETTINGS & GetDesignSettings() const
Definition board.cpp:1041
The base class for create windows for drawing purpose.
PANEL_SETUP_TUNING_PATTERNS_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
PANEL_SETUP_TUNING_PATTERNS(wxWindow *aParent, EDA_DRAW_FRAME *aFrame, PNS::MEANDER_SETTINGS &aTrackSettings, PNS::MEANDER_SETTINGS &aDiffPairSettings, PNS::MEANDER_SETTINGS &aSkewSettings)
Dimensions for the meandering algorithm.
Definition pns_meander.h:68
@ MEANDER_STYLE_ROUND
Definition pns_meander.h:52
@ MEANDER_STYLE_CHAMFER
Definition pns_meander.h:53