예제 #1
0
        private void OnSaveResults(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.Title            = "Save settings in a tc file";
            saveFileDialog.InitialDirectory = Directory.GetCurrentDirectory();
            saveFileDialog.RestoreDirectory = true;
            saveFileDialog.Filter           = "Tc output file|*.tcout";
            saveFileDialog.ShowDialog();

            // If the file name is not an empty string open it for saving.
            if (saveFileDialog.FileName != "")
            {
                trans_calc_input_text  strin  = buildInput();
                trans_calc_result_text result = new trans_calc_result_text();
                result.length_m_1            = res_length_m_1.Text;
                result.length_ft_1           = res_length_ft_1.Text;
                result.buildup_mm_1          = res_thickness_mm_1.Text;
                result.R_1                   = res_resistance_1.Text;
                result.N_1                   = res_turns_1.Text;
                result.N_per_layer_1         = res_turns_per_layer_1.Text;
                result.totalLayers_1         = res_totalLayers_1.Text;
                result.lastLayerTurns_1      = res_lastLayerTurns_1.Text;
                result.mpath_l_m             = res_mpath_m.Text;
                result.awg_max_current_amp_1 = res_max_current_1.Text;
                result.L_1                   = res_L1.Text;
                result.B_max                 = res_Bmax.Text;
                result.H                     = res_H.Text;
                result.I_ex                  = res_Iex.Text;
                result.permeability          = res_permeability.Text;
                result.weight_1              = res_weight_g1.Text;
                result.length_m_2            = res_length_m_2.Text;
                result.length_ft_2           = res_length_ft_2.Text;
                result.buildup_mm_2          = res_thickness_mm_2.Text;
                result.R_2                   = res_resistance_2.Text;
                result.N_2                   = res_turns_2.Text;
                result.N_per_layer_2         = res_turns_per_layer_2.Text;
                result.totalLayers_2         = res_totalLayers_2.Text;
                result.lastLayerTurns_2      = res_lastLayerTurns_2.Text;
                result.awg_max_current_amp_2 = res_max_current_2.Text;
                result.L_2                   = res_L2.Text;
                result.Vout_idle             = res_Vout_idle.Text;
                result.Vout_load             = res_Vout_imax.Text;
                result.Iout_max              = res_Iout.Text;
                result.total_thickness_mm    = res_total_thickness_mm.Text;
                result.weight_2              = res_weight_g2.Text;
                result.turns_ratio           = res_turns_ratio.Text;
                result.wire_csa_ratio        = res_csa_ratio.Text;
                result.wire_total_weight     = res_wire_total_mass.Text;
                result.wire_weight_ratio     = res_wire_weight_ratio.Text;
                result.Ip_full_load          = res_Ip_full_load.Text;
                result.power_VA              = res_powerVA.Text;
                result.total_eq_R            = res_total_eq_R.Text;
                result.regulation            = res_regulation.Text;
                result.AWG1                  = res_AWG1.Text;
                result.AWG2                  = res_AWG2.Text;
                result.warnings              = tc_warnings;
                tc.SaveResults(strin, result, saveFileDialog.FileName);
            }
        }
예제 #2
0
        private trans_calc_input_text buildInput()
        {
            trans_calc_input_text strin = new trans_calc_input_text();

            if (radiobutton_mains_US.Checked)
            {
                strin.Vin = "120";
            }
            else
            {
                strin.Vin = "220";
            }

            strin.Bmax         = edit_Bmax.Text;
            strin.permeability = edit_permeability.Text;
            strin.I_ex         = edit_Iex.Text;
            if (transCalc_H > 0.00000001)
            {
                strin.H = transCalc_H.ToString();
            }
            else
            {
                strin.H = "";
            }
            strin.core_W              = edit_coreSize_W.Text;
            strin.core_H              = edit_coreSize_H.Text;
            strin.core_L              = edit_coreSize_L.Text;
            strin.Ae_W                = edit_Ae_W.Text;
            strin.Ae_H                = edit_Ae_H.Text;
            strin.mpath_W             = edit_mpath_W.Text;
            strin.mpath_H             = edit_mpath_H.Text;
            strin.window_size         = edit_windowSize.Text;
            strin.coupling_coeff      = edit_couplingCoeff.Text;
            strin.stackingFactor      = edit_stackingFactor.Text;
            strin.insulationThickness = edit_insulationThickness.Text;
            strin.Vout                = edit_Vout.Text;
            strin.Iout_max            = edit_Iout_max.Text;
            strin.awg1                = edit_awg1.Text;
            strin.wfactor1            = edit_Wfactor1.Text;
            strin.N1           = edit_N1.Text;
            strin.N_per_layer1 = edit_N_PerLayer1.Text;
            strin.ampacity1    = edit_ampacity1.Text;
            strin.ampacity2    = edit_ampacity2.Text;
            strin.pf           = edit_power_factor_1.Text;

            strin.awg2                 = edit_awg2.Text;
            strin.wfactor2             = edit_Wfactor2.Text;
            strin.N2                   = edit_N2.Text;
            strin.N_per_layer2         = edit_N_PerLayer2.Text;
            strin.maxTemp              = edit_max_temp.Text;
            strin.max_eq_R             = edit_max_eq_R.Text;
            strin.isVoutAtFullLoad     = checkBox_fullLoad.Checked;
            strin.isMinimizeRegulation = radioButton_minimizeRegulation.Checked;
            return(strin);
        }
예제 #3
0
        private void OnSaveSettings(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.Title            = "Save settings in a *csv file";
            saveFileDialog.InitialDirectory = Directory.GetCurrentDirectory();
            saveFileDialog.RestoreDirectory = true;
            saveFileDialog.Filter           = "Tc input file|*.tcin";
            saveFileDialog.ShowDialog();

            if (saveFileDialog.FileName != "")
            {
                trans_calc_input_text strin = buildInput();
                tc.SaveSettings(strin, saveFileDialog.FileName);
            }
        }
예제 #4
0
        private void OnLoadSettings(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter = "Tc input file|*.tcin";
            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                if (openFileDialog.FileName != "")
                {
                    try
                    {
                        trans_calc_input_text input = tc.Load(openFileDialog.FileName);
                        if (input.Vin == "120")
                        {
                            radiobutton_mains_US.Select();
                        }
                        else if (input.Vin == "220")
                        {
                            radiobutton_mains_EU.Select();
                        }
                        else
                        {
                            throw new Exception($"Unexpected mains voltage: {input.Vin}");
                        }

                        checkBox_fullLoad.Checked = input.isVoutAtFullLoad;

                        edit_Bmax.Text         = input.Bmax;
                        edit_permeability.Text = input.permeability;
                        edit_Iex.Text          = input.I_ex;
                        transCalc_H            = double.Parse(input.H, NumberStyles.Float);
                        if (transCalc_H > 0.000000001)
                        {
                            edit_H.Text = String.Format("{0:0.##}", transCalc_H);
                        }

                        edit_coreSize_W.Text          = input.core_W;
                        edit_coreSize_H.Text          = input.core_H;
                        edit_coreSize_L.Text          = input.core_L;
                        edit_Ae_W.Text                = input.Ae_W;
                        edit_Ae_H.Text                = input.Ae_H;
                        edit_mpath_W.Text             = input.mpath_W;
                        edit_mpath_H.Text             = input.mpath_H;
                        edit_windowSize.Text          = input.window_size;
                        edit_couplingCoeff.Text       = input.coupling_coeff;
                        edit_stackingFactor.Text      = input.stackingFactor;
                        edit_insulationThickness.Text = input.insulationThickness;
                        edit_Vout.Text                = input.Vout;
                        edit_Iout_max.Text            = input.Iout_max;

                        edit_awg1.Text           = input.awg1;
                        edit_Wfactor1.Text       = input.wfactor1;
                        edit_N1.Text             = input.N1;
                        edit_N_PerLayer1.Text    = input.N_per_layer1;
                        edit_ampacity1.Text      = input.ampacity1;
                        edit_power_factor_1.Text = input.pf;

                        edit_awg2.Text        = input.awg2;
                        edit_Wfactor2.Text    = input.wfactor2;
                        edit_N2.Text          = input.N2;
                        edit_N_PerLayer2.Text = input.N_per_layer2;
                        edit_ampacity2.Text   = input.ampacity2;

                        edit_max_temp.Text = input.maxTemp;
                        edit_max_eq_R.Text = input.max_eq_R;

                        SetUnitRadioButtons();

                        button_saveResults.Enabled = false;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }
        }
예제 #5
0
        private void runTransCalc()
        {
            ClearResults();
            try
            {
                res_warnings.Text = "";
                if (edit_max_temp.Text == "")
                {
                    edit_max_temp.Text = "20";
                }

                if (edit_couplingCoeff.Text == "")
                {
                    edit_couplingCoeff.Text = "1";
                }

                if (edit_stackingFactor.Text == "")
                {
                    edit_stackingFactor.Text = "1";
                }

                trans_calc_input_text strin = buildInput();

                trans_calc_result_text result = tc.Calculate(strin);

                SetResultUnits();

                res_length_m_1.Text        = result.length_m_1;
                res_length_ft_1.Text       = result.length_ft_1;
                res_thickness_mm_1.Text    = result.buildup_mm_1;
                res_resistance_1.Text      = result.R_1;
                res_turns_1.Text           = result.N_1;
                res_turns_per_layer_1.Text = result.N_per_layer_1;
                res_totalLayers_1.Text     = result.totalLayers_1;
                res_lastLayerTurns_1.Text  = result.lastLayerTurns_1;
                res_mpath_m.Text           = result.mpath_l_m;
                res_max_current_1.Text     = result.awg_max_current_amp_1;
                res_L1.Text                 = result.L_1;
                res_Bmax.Text               = result.B_max;
                res_H.Text                  = result.H;
                res_Iex.Text                = result.I_ex;
                res_permeability.Text       = result.permeability;
                res_weight_g1.Text          = result.weight_1;
                res_length_m_2.Text         = result.length_m_2;
                res_length_ft_2.Text        = result.length_ft_2;
                res_thickness_mm_2.Text     = result.buildup_mm_2;
                res_resistance_2.Text       = result.R_2;
                res_turns_2.Text            = result.N_2;
                res_turns_per_layer_2.Text  = result.N_per_layer_2;
                res_totalLayers_2.Text      = result.totalLayers_2;
                res_lastLayerTurns_2.Text   = result.lastLayerTurns_2;
                res_max_current_2.Text      = result.awg_max_current_amp_2;
                res_L2.Text                 = result.L_2;
                res_Vout_idle.Text          = result.Vout_idle;
                res_Vout_imax.Text          = result.Vout_load;
                res_Iout.Text               = result.Iout_max;
                res_total_thickness_mm.Text = result.total_thickness_mm;
                res_weight_g2.Text          = result.weight_2;
                res_turns_ratio.Text        = result.turns_ratio;
                res_csa_ratio.Text          = result.wire_csa_ratio;
                res_wire_total_mass.Text    = result.wire_total_weight;
                res_wire_weight_ratio.Text  = result.wire_weight_ratio;
                res_Ip_full_load.Text       = result.Ip_full_load;
                res_powerVA.Text            = result.power_VA;
                res_total_eq_R.Text         = result.total_eq_R;
                res_regulation.Text         = result.regulation;
                res_AWG1.Text               = result.AWG1;
                res_AWG2.Text               = result.AWG2;

                tc_warnings = new List <string>();
                tc_warnings = result.warnings;
                foreach (string msg in result.warnings)
                {
                    res_warnings.Text += msg + "\n";
                }

                if (res_total_thickness_mm.Text != Constants.EmptyValue)
                {
                    res_total_thickness_mm.ForeColor =
                        result.IsWindowExceeded ? Color.Red : Color.FromArgb(0, 180, 0);
                }

                if (res_total_eq_R.Text != Constants.EmptyValue)
                {
                    res_total_eq_R.ForeColor =
                        result.IsMaxResistanceExceeded ? Color.Red : Color.FromArgb(0, 180, 0);
                }

                if (res_Ip_full_load.Text != Constants.EmptyValue)
                {
                    res_Ip_full_load.ForeColor =
                        result.IsAmpacity1Exceeded ? Color.Red : Color.FromArgb(0, 180, 0);
                    res_max_current_1.ForeColor =
                        result.IsAmpacity1Exceeded ? Color.Red : Color.FromArgb(0, 180, 0);
                }

                if (res_Iout.Text != Constants.EmptyValue)
                {
                    res_Iout.ForeColor =
                        result.IsAmpacity2Exceeded ? Color.Red : Color.FromArgb(0, 180, 0);
                    res_max_current_2.ForeColor =
                        result.IsAmpacity2Exceeded ? Color.Red : Color.FromArgb(0, 180, 0);
                }

                button_saveResults.Enabled = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }