38 m_BoardClassUnits( 0 ), m_ColorCodeTolerance( 0 ), m_Electrical(), m_LastPage( 0 ),
39 m_Regulators(), m_cableSize(), m_wavelength(), m_TrackWidth(), m_TransLine(), m_ViaSize()
52 const std::array<std::string, 4> att_names = {
"att_pi",
"att_tee",
53 "att_bridge",
"att_splitter" };
55 for(
const auto& att_name : att_names )
57 std::string
path =
"attenuators." + att_name;
172 const std::array<std::string, 8> transline_names = {
"MicroStrip",
"CoPlanar",
"GrCoPlanar",
173 "RectWaveGuide",
"Coax",
"Coupled_MicroStrip",
"StripLine",
"TwistedPair" };
175 for(
const auto&
name : transline_names )
180 std::string
path =
"trans_line." +
name +
".";
250 ret &= fromLegacy<int>( aCfg,
"BrdClass_selection",
"board_class_units" );
251 ret &= fromLegacy<int>( aCfg,
"CC_selection",
"color_code_tolerance" );
252 ret &= fromLegacy<int>( aCfg,
"Page_selection",
"last_page" );
254 ret &= fromLegacy<int>( aCfg,
"Att_selection",
"attenuators.type" );
257 nlohmann::json::json_pointer ptr =
260 const std::array<std::string, 4> att_names = {
"att_pi",
"att_tee",
261 "att_bridge",
"att_splitter" };
264 for(
const auto& att : att_names )
266 aCfg->SetPath(
"Attenuators/" + att );
267 ptr.push_back( att );
269 if( aCfg->Read(
"Attenuation", &val ) )
270 ( *m_internals )[ptr][
"attenuation"] = val;
272 if( aCfg->Read(
"Zin", &val ) )
273 ( *m_internals )[ptr][
"zin"] = val;
275 if( aCfg->Read(
"Zout", &val ) )
276 ( *m_internals )[ptr][
"zout"] = val;
279 aCfg->SetPath(
"../.." );
283 ret &= fromLegacy<int>( aCfg,
"ElectSpacing_selection",
"electrical.spacing_units" );
284 ret &=
fromLegacyString( aCfg,
"ElectSpacing_voltage",
"electrical.spacing_voltage" );
291 ret &=
fromLegacyString( aCfg,
"RegulName",
"regulators.selected_regulator" );
292 ret &= fromLegacy<int>( aCfg,
"RegulType",
"regulators.type" );
293 ret &= fromLegacy<int>( aCfg,
"RegulLastParam",
"regulators.last_param" );
298 ret &= fromLegacy<int>( aCfg,
"TW_Track_Len_Unit",
"track_width.track_len_units" );
299 ret &=
fromLegacyString( aCfg,
"TW_Resistivity",
"track_width.resistivity" );
300 ret &=
fromLegacyString( aCfg,
"TW_ExtTrack_Width",
"track_width.ext_track_width" );
301 ret &= fromLegacy<int>( aCfg,
"TW_ExtTrack_Width_Unit",
"track_width.ext_track_width_units" );
302 ret &=
fromLegacyString( aCfg,
"TW_ExtTrack_Thickness",
"track_width.ext_track_thickness" );
303 ret &= fromLegacy<int>( aCfg,
"TW_ExtTrack_Thickness_Unit",
304 "track_width.ext_track_thickness_units" );
305 ret &=
fromLegacyString( aCfg,
"TW_IntTrack_Width",
"track_width.int_track_width" );
306 ret &= fromLegacy<int>( aCfg,
"TW_IntTrack_Width_Unit",
"track_width.int_track_width_units" );
307 ret &=
fromLegacyString( aCfg,
"TW_IntTrack_Thickness",
"track_width.int_track_thickness" );
308 ret &= fromLegacy<int>( aCfg,
"TW_IntTrack_Thickness_Unit",
309 "track_width.int_track_thickness_units" );
311 ret &= fromLegacy<int>( aCfg,
"Transline_selection",
"trans_line.selection" );
314 nlohmann::json::json_pointer ptr =
321 const std::array<std::string, 8> transline_names = {
"MicroStrip",
"CoPlanar",
"GrCoPlanar",
322 "RectWaveGuide",
"Coax",
"Coupled_MicroStrip",
"StripLine",
"TwistedPair" };
324 for(
const auto&
name : transline_names )
327 aCfg->SetPath(
name );
328 ptr.push_back(
name );
330 while( aCfg->GetNextEntry( key, index ) )
334 dest.Replace(
"translineprm", wxEmptyString );
336 if( dest.EndsWith(
"unit" ) )
338 dest.Replace(
"unit", wxEmptyString );
339 aCfg->Read( key, &units );
340 ptr.push_back(
"units" );
342 ( *m_internals )[ptr].push_back( { { dest.ToStdString(), units } } );
348 aCfg->Read( key, &value );
349 ptr.push_back(
"values" );
351 ( *m_internals )[ptr].push_back( { { dest.ToStdString(), value } } );
358 aCfg->SetPath(
".." );
363 ret &= fromLegacy<int>( aCfg,
"VS_Hole_Dia_Unit",
"via_size.hole_diameter_units" );
364 ret &=
fromLegacyString( aCfg,
"VS_Plating_Thickness",
"via_size.thickness" );
365 ret &= fromLegacy<int>( aCfg,
"VS_Plating_Thickness_Unit",
"via_size.thickness_units" );
367 ret &= fromLegacy<int>( aCfg,
"VS_Via_Length_Unit",
"via_size.length_units" );
369 ret &= fromLegacy<int>( aCfg,
"VS_Pad_Dia_Unit",
"via_size.pad_diameter_units" );
370 ret &=
fromLegacyString( aCfg,
"VS_Clearance_Dia",
"via_size.clearance_diameter" );
371 ret &= fromLegacy<int>( aCfg,
"VS_Clearance_Dia_Unit",
372 "via_size.clearance_diameter_units" );
374 "via_size.characteristic_impedance" );
375 ret &= fromLegacy<int>( aCfg,
"VS_Characteristic_Impedance_Unit",
376 "via_size.characteristic_impedance_units" );
378 ret &=
fromLegacyString( aCfg,
"VS_Resistivity",
"via_size.plating_resistivity" );
379 ret &=
fromLegacyString( aCfg,
"VS_Permittivity",
"via_size.permittivity" );
380 ret &=
fromLegacyString( aCfg,
"VS_Temperature_Differential",
"via_size.temp_rise" );
381 ret &=
fromLegacyString( aCfg,
"VS_Pulse_Rise_Time",
"via_size.pulse_rise_time" );
APP_SETTINGS_BASE is a settings class that should be derived for each standalone KiCad application.
virtual bool MigrateFromLegacy(wxConfigBase *aCfg) override
Migrates from wxConfig to JSON-based configuration.
static nlohmann::json::json_pointer PointerFromString(std::string aPath)
Builds a JSON pointer based on a given string.
bool fromLegacyString(wxConfigBase *aConfig, const std::string &aKey, const std::string &aDest)
Translates a legacy wxConfig string value to a given JSON pointer value.
std::vector< PARAM_BASE * > m_params
The list of parameters (owned by this object)
Represents a map of <std::string, Value>.
std::map< std::string, double > TL_PARAM_MAP
Map of TRANSLINE_PRM id to value.
PCB_CALCULATOR_SETTINGS()
CORROSION_TABLE m_CorrosionTable
TRANSMISSION_LINE m_TransLine
ATTENUATORS m_Attenuators
virtual bool MigrateFromLegacy(wxConfigBase *aLegacyConfig) override
Migrates from wxConfig to JSON-based configuration.
std::map< std::string, int > TL_PARAM_UNITS_MAP
Map of TRANSLINE_PRM id to units selection.
const int pcbCalculatorSchemaVersion
! Update the schema version whenever a migration is required
std::unordered_map< std::string, ATTENUATOR > attenuators
wxString conductorTemperature
wxString conductorMaterialResitivity
wxString conductorThermalCoef
wxString threshold_voltage
wxString selected_regulator
int int_track_width_units
wxString int_track_thickness
int int_track_thickness_units
int ext_track_thickness_units
int ext_track_width_units
wxString ext_track_thickness
std::map< std::string, TL_PARAM_MAP > param_values
Transline parameters, per transline type.
std::map< std::string, TL_PARAM_UNITS_MAP > param_units
Transline parameter units selections, per transline type.
int characteristic_impedance_units
wxString characteristic_impedance
wxString plating_resistivity
wxString clearance_diameter
int clearance_diameter_units