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;
208 const std::array<std::string, 8> transline_names = {
"MicroStrip",
"CoPlanar",
"GrCoPlanar",
209 "RectWaveGuide",
"Coax",
"Coupled_MicroStrip",
"StripLine",
"TwistedPair" };
211 for(
const auto&
name : transline_names )
216 std::string
path =
"trans_line." +
name +
".";
286 ret &= fromLegacy<int>( aCfg,
"BrdClass_selection",
"board_class_units" );
287 ret &= fromLegacy<int>( aCfg,
"CC_selection",
"color_code_tolerance" );
288 ret &= fromLegacy<int>( aCfg,
"Page_selection",
"last_page" );
290 ret &= fromLegacy<int>( aCfg,
"Att_selection",
"attenuators.type" );
293 nlohmann::json::json_pointer ptr =
296 const std::array<std::string, 4> att_names = {
"att_pi",
"att_tee",
297 "att_bridge",
"att_splitter" };
300 for(
const auto& att : att_names )
302 aCfg->SetPath(
"Attenuators/" + att );
303 ptr.push_back( att );
305 if( aCfg->Read(
"Attenuation", &val ) )
306 ( *m_internals )[ptr][
"attenuation"] = val;
308 if( aCfg->Read(
"Zin", &val ) )
309 ( *m_internals )[ptr][
"zin"] = val;
311 if( aCfg->Read(
"Zout", &val ) )
312 ( *m_internals )[ptr][
"zout"] = val;
315 aCfg->SetPath(
"../.." );
319 ret &= fromLegacy<int>( aCfg,
"ElectSpacing_selection",
"electrical.spacing_units" );
320 ret &=
fromLegacyString( aCfg,
"ElectSpacing_voltage",
"electrical.spacing_voltage" );
327 ret &=
fromLegacyString( aCfg,
"RegulName",
"regulators.selected_regulator" );
328 ret &= fromLegacy<int>( aCfg,
"RegulType",
"regulators.type" );
329 ret &= fromLegacy<int>( aCfg,
"RegulLastParam",
"regulators.last_param" );
334 ret &= fromLegacy<int>( aCfg,
"TW_Track_Len_Unit",
"track_width.track_len_units" );
335 ret &=
fromLegacyString( aCfg,
"TW_Resistivity",
"track_width.resistivity" );
336 ret &=
fromLegacyString( aCfg,
"TW_ExtTrack_Width",
"track_width.ext_track_width" );
337 ret &= fromLegacy<int>( aCfg,
"TW_ExtTrack_Width_Unit",
"track_width.ext_track_width_units" );
338 ret &=
fromLegacyString( aCfg,
"TW_ExtTrack_Thickness",
"track_width.ext_track_thickness" );
339 ret &= fromLegacy<int>( aCfg,
"TW_ExtTrack_Thickness_Unit",
340 "track_width.ext_track_thickness_units" );
341 ret &=
fromLegacyString( aCfg,
"TW_IntTrack_Width",
"track_width.int_track_width" );
342 ret &= fromLegacy<int>( aCfg,
"TW_IntTrack_Width_Unit",
"track_width.int_track_width_units" );
343 ret &=
fromLegacyString( aCfg,
"TW_IntTrack_Thickness",
"track_width.int_track_thickness" );
344 ret &= fromLegacy<int>( aCfg,
"TW_IntTrack_Thickness_Unit",
345 "track_width.int_track_thickness_units" );
347 ret &= fromLegacy<int>( aCfg,
"Transline_selection",
"trans_line.selection" );
350 nlohmann::json::json_pointer ptr =
357 const std::array<std::string, 8> transline_names = {
"MicroStrip",
"CoPlanar",
"GrCoPlanar",
358 "RectWaveGuide",
"Coax",
"Coupled_MicroStrip",
"StripLine",
"TwistedPair" };
360 for(
const auto&
name : transline_names )
363 aCfg->SetPath(
name );
364 ptr.push_back(
name );
366 while( aCfg->GetNextEntry( key, index ) )
370 dest.Replace(
"translineprm", wxEmptyString );
372 if( dest.EndsWith(
"unit" ) )
374 dest.Replace(
"unit", wxEmptyString );
375 aCfg->Read( key, &units );
376 ptr.push_back(
"units" );
378 ( *m_internals )[ptr].push_back( { { dest.ToStdString(), units } } );
384 aCfg->Read( key, &value );
385 ptr.push_back(
"values" );
387 ( *m_internals )[ptr].push_back( { { dest.ToStdString(), value } } );
394 aCfg->SetPath(
".." );
399 ret &= fromLegacy<int>( aCfg,
"VS_Hole_Dia_Unit",
"via_size.hole_diameter_units" );
400 ret &=
fromLegacyString( aCfg,
"VS_Plating_Thickness",
"via_size.thickness" );
401 ret &= fromLegacy<int>( aCfg,
"VS_Plating_Thickness_Unit",
"via_size.thickness_units" );
403 ret &= fromLegacy<int>( aCfg,
"VS_Via_Length_Unit",
"via_size.length_units" );
405 ret &= fromLegacy<int>( aCfg,
"VS_Pad_Dia_Unit",
"via_size.pad_diameter_units" );
406 ret &=
fromLegacyString( aCfg,
"VS_Clearance_Dia",
"via_size.clearance_diameter" );
407 ret &= fromLegacy<int>( aCfg,
"VS_Clearance_Dia_Unit",
408 "via_size.clearance_diameter_units" );
410 "via_size.characteristic_impedance" );
411 ret &= fromLegacy<int>( aCfg,
"VS_Characteristic_Impedance_Unit",
412 "via_size.characteristic_impedance_units" );
414 ret &=
fromLegacyString( aCfg,
"VS_Resistivity",
"via_size.plating_resistivity" );
415 ret &=
fromLegacyString( aCfg,
"VS_Permittivity",
"via_size.permittivity" );
416 ret &=
fromLegacyString( aCfg,
"VS_Temperature_Differential",
"via_size.temp_rise" );
417 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
double iec60664_RMSvoltage
int iec60664_materialGroup
int iec60664_insulationType
double iec60664_transientOV
double iec60664_ratedVoltage
int iec60664_pollutionDegree
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