Beispiel #1
0
        private void BUT_compare_Click(object sender, EventArgs e)
        {
            var param2 = new Hashtable();

            using (var ofd = new OpenFileDialog
            {
                AddExtension = true,
                DefaultExt = ".param",
                RestoreDirectory = true,
                Filter = "Param List|*.param;*.parm"
            })
            {
                var dr = ofd.ShowDialog();
                if (dr == DialogResult.OK)
                {
                    param2 = ParamFile.loadParamFile(ofd.FileName);

                    var paramCompareForm = new ParamCompare(null, MainV2.comPort.MAV.param, param2);

                    paramCompareForm.dtlvcallback += paramCompareForm_dtlvcallback;

                    ThemeManager.ApplyThemeTo(paramCompareForm);
                    paramCompareForm.ShowDialog();
                }
            }
        }
Beispiel #2
0
        private void BUT_paramfileload_Click(object sender, EventArgs e)
        {
            var filepath = Settings.GetUserDataDirectory() + CMB_paramfiles.Text;

            try
            {
                var data = GitHubContent.GetFileContent("ardupilot", "ardupilot",
                                                        ((GitHubContent.FileInfo)CMB_paramfiles.SelectedValue).path);

                File.WriteAllBytes(filepath, data);

                var param2 = ParamFile.loadParamFile(filepath);

                var paramCompareForm = new ParamCompare(null, MainV2.comPort.MAV.param, param2);

                paramCompareForm.dtlvcallback += paramCompareForm_dtlvcallback;

                ThemeManager.ApplyThemeTo(paramCompareForm);
                if (paramCompareForm.ShowDialog() == DialogResult.OK)
                {
                    CustomMessageBox.Show("Loaded parameters, please make sure you write them!", "Loaded");
                }

                // no activate the user needs to click write.
                //this.Activate();
            }
            catch (Exception ex)
            {
                CustomMessageBox.Show("Failed to load file.\n" + ex);
            }
        }
        private void BUT_paramfileload_Click(object sender, EventArgs e)
        {
            string filepath = Application.StartupPath + Path.DirectorySeparatorChar + CMB_paramfiles.Text;

            if (CMB_paramfiles.SelectedValue == null)
            {
                CustomMessageBox.Show("Please select an option first");
                return;
            }

            byte[] data = GitHubContent.GetFileContent("diydrones", "ardupilot", ((GitHubContent.FileInfo)CMB_paramfiles.SelectedValue).path);

            File.WriteAllBytes(filepath, data);

            Hashtable param2 = Utilities.ParamFile.loadParamFile(filepath);

            Form paramCompareForm = new ParamCompare(null, MainV2.comPort.MAV.param, param2);

            ThemeManager.ApplyThemeTo(paramCompareForm);
            if (paramCompareForm.ShowDialog() == DialogResult.OK)
            {
                CustomMessageBox.Show("Loaded parameters!", "Loaded");
            }

            if (OnChange != null)
            {
                OnChange(null, null);
                return;
            }

            this.Activate();
        }
        private void BUT_compare_Click(object sender, EventArgs e)
        {
            Hashtable param2 = new Hashtable();

            OpenFileDialog ofd = new OpenFileDialog();

            ofd.AddExtension     = true;
            ofd.DefaultExt       = ".param";
            ofd.RestoreDirectory = true;
            ofd.Filter           = "Param List|*.param;*.parm";
            DialogResult dr = ofd.ShowDialog();

            if (dr == DialogResult.OK)
            {
                StreamReader sr = new StreamReader(ofd.OpenFile());
                while (!sr.EndOfStream)
                {
                    string line = sr.ReadLine();

                    if (line.Contains("NOTE:"))
                    {
                        MessageBox.Show(line, "Saved Note");
                    }

                    int index = line.IndexOf(',');

                    if (index == -1)
                    {
                        continue;
                    }

                    string name  = line.Substring(0, index);
                    float  value = float.Parse(line.Substring(index + 1), new System.Globalization.CultureInfo("en-US"));

                    MAVLink.modifyParamForDisplay(true, name, ref value);

                    if (name == "SYSID_SW_MREV")
                    {
                        continue;
                    }
                    if (name == "WP_TOTAL")
                    {
                        continue;
                    }
                    if (name == "CMD_TOTAL")
                    {
                        continue;
                    }

                    param2[name] = value;
                }
                sr.Close();

                ParamCompare temp = new ParamCompare(this, param, param2);
                MainV2.fixtheme(temp);
                temp.ShowDialog();
            }
        }
        private void BUT_paramfileload_Click(object sender, EventArgs e)
        {
            string filepath = Application.StartupPath + Path.DirectorySeparatorChar + CMB_paramfiles.Text;

            byte[] data = GitHubContent.GetFileContent("diydrones", "ardupilot", ((GitHubContent.FileInfo)CMB_paramfiles.SelectedValue).path);

            File.WriteAllBytes(filepath, data);

            Hashtable param2 = Utilities.ParamFile.loadParamFile(filepath);

            Form paramCompareForm = new ParamCompare(Params, MainV2.comPort.MAV.param, param2);

            ThemeManager.ApplyThemeTo(paramCompareForm);
            paramCompareForm.ShowDialog();

            CustomMessageBox.Show("Loaded parameters, please make sure you write them!", "Loaded");

            this.Activate();
        }
        public bool UpdateParamsOnVehicle()
        {
            // Get the values in _diff and write paremeters back to vehicle
            _params_to_update.Clear();
            foreach (KeyValuePair <string, ParamPair> entry in _diff)
            {
                _params_to_update.Add(entry.Key, entry.Value.inVault);
                Form paramCompareForm = new ParamCompare(null, MainV2.comPort.MAV.param, _params_to_update);
                paramCompareForm.Text = "Update parameters from VAULT";
                ThemeManager.ApplyThemeTo(paramCompareForm);
                var button = paramCompareForm.Controls.Find("BUT_save", true).FirstOrDefault() as MissionPlanner.Controls.MyButton;
                button.Text = "Write to FC";
                var dgv = paramCompareForm.Controls.Find("Params", true).FirstOrDefault() as System.Windows.Forms.DataGridView;
                dgv.Columns[1].HeaderText = "On Vehicle";
                dgv.Columns[2].HeaderText = "From Vault";
                paramCompareForm.ShowDialog();
            }

            return(true);
        }
Beispiel #7
0
        private void BUT_compare_Click(object sender, EventArgs e)
        {
            Hashtable param2 = new Hashtable();

            OpenFileDialog ofd = new OpenFileDialog();

            ofd.AddExtension     = true;
            ofd.DefaultExt       = ".param";
            ofd.RestoreDirectory = true;
            ofd.Filter           = "Param List|*.param;*.parm";
            DialogResult dr = ofd.ShowDialog();

            if (dr == DialogResult.OK)
            {
                param2 = loadParamFile(ofd.FileName);

                ParamCompare temp = new ParamCompare(Params, param, param2);
                ThemeManager.ApplyThemeTo(temp);
                temp.ShowDialog();
            }
        }
        private void but_iris_Click(object sender, EventArgs e)
        {
            try
            {
                string filepath = Application.StartupPath + Path.DirectorySeparatorChar + "Iris.param";

                if (Common.getFilefromNet("https://github.com/diydrones/ardupilot/raw/master/Tools/Frame_params/Iris.param", filepath))
                {
                    Hashtable param2 = Utilities.ParamFile.loadParamFile(filepath);

                    Form paramCompareForm = new ParamCompare(Params, MainV2.comPort.MAV.param, param2);

                    ThemeManager.ApplyThemeTo(paramCompareForm);
                    paramCompareForm.ShowDialog();

                    CustomMessageBox.Show("Loaded parameters, please make sure you write them!", "Loaded");
                }
                else
                {
                    CustomMessageBox.Show("Error getting Iris param file");
                }
            }
            catch (Exception ex) { CustomMessageBox.Show("Error getting Iris param file" + ex.ToString()); }
        }
Beispiel #9
0
        private void BUT_compare_Click(object sender, EventArgs e)
        {
            var param2 = new Dictionary <string, double>();

            using (var ofd = new OpenFileDialog
            {
                AddExtension = true,
                DefaultExt = ".param",
                RestoreDirectory = true,
                Filter = ParamFile.FileMask
            })
            {
                var dr = ofd.ShowDialog();
                if (dr == DialogResult.OK)
                {
                    param2 = ParamFile.loadParamFile(ofd.FileName);

                    Form paramCompareForm = new ParamCompare(Params, MainV2.comPort.MAV.param, param2);

                    ThemeManager.ApplyThemeTo(paramCompareForm);
                    paramCompareForm.ShowDialog();
                }
            }
        }
Beispiel #10
0
        private void BUT_compare_Click(object sender, EventArgs e)
        {
            Hashtable param2 = new Hashtable();

            var ofd = new OpenFileDialog
            {
                AddExtension     = true,
                DefaultExt       = ".param",
                RestoreDirectory = true,
                Filter           = "Param List|*.param;*.parm"
            };

            var dr = ofd.ShowDialog();

            if (dr == DialogResult.OK)
            {
                param2 = loadParamFile(ofd.FileName);

                Form paramCompareForm = new ParamCompare(Params, MainV2.comPort.param, param2);

                ThemeManager.ApplyThemeTo(paramCompareForm);
                paramCompareForm.ShowDialog();
            }
        }
Beispiel #11
0
        private void BUT_compare_Click(object sender, EventArgs e)
        {
            Hashtable param2 = new Hashtable();

            OpenFileDialog ofd = new OpenFileDialog();
            ofd.AddExtension = true;
            ofd.DefaultExt = ".param";
            ofd.RestoreDirectory = true;
            ofd.Filter = "Param List|*.param;*.parm";
            DialogResult dr = ofd.ShowDialog();
            if (dr == DialogResult.OK)
            {
                param2 = loadParamFile(ofd.FileName);

                ParamCompare temp = new ParamCompare(Params, param, param2);
                ThemeManager.ApplyThemeTo(temp);
                temp.ShowDialog();
            }
        }
Beispiel #12
0
        private void BUT_compare_Click(object sender, EventArgs e)
        {
            Hashtable param2 = new Hashtable();

            OpenFileDialog ofd = new OpenFileDialog();
            ofd.AddExtension = true;
            ofd.DefaultExt = ".param";
            ofd.RestoreDirectory = true;
            ofd.Filter = "Param List|*.param;*.parm";
            DialogResult dr = ofd.ShowDialog();
            if (dr == DialogResult.OK)
            {
                StreamReader sr = new StreamReader(ofd.OpenFile());
                while (!sr.EndOfStream)
                {
                    string line = sr.ReadLine();

                    if (line.Contains("NOTE:"))
                        MessageBox.Show(line, "Saved Note");

                    int index = line.IndexOf(',');

                    if (index == -1)
                        continue;

                    string name = line.Substring(0, index);
                    float value = float.Parse(line.Substring(index + 1), new System.Globalization.CultureInfo("en-US"));

                    MAVLink.modifyParamForDisplay(true, name, ref value);

                    if (name == "SYSID_SW_MREV")
                        continue;
                    if (name == "WP_TOTAL")
                        continue;
                    if (name == "CMD_TOTAL")
                        continue;

                    param2[name] = value;
                }
                sr.Close();

                ParamCompare temp = new ParamCompare(this, param, param2);
                MainV2.fixtheme(temp);
                temp.ShowDialog();
            }
        }
        private void BUT_paramfileload_Click(object sender, EventArgs e)
        {
            string filepath = Application.StartupPath + Path.DirectorySeparatorChar + CMB_paramfiles.Text;

            try
            {

                byte[] data = GitHubContent.GetFileContent("diydrones", "ardupilot", ((GitHubContent.FileInfo)CMB_paramfiles.SelectedValue).path);

                File.WriteAllBytes(filepath, data);

                Hashtable param2 = Utilities.ParamFile.loadParamFile(filepath);

                ParamCompare paramCompareForm = new ParamCompare(null, MainV2.comPort.MAV.param, param2);

                paramCompareForm.dtlvcallback += paramCompareForm_dtlvcallback;

                ThemeManager.ApplyThemeTo(paramCompareForm);
                if (paramCompareForm.ShowDialog() == DialogResult.OK)
                {
                    CustomMessageBox.Show("Loaded parameters, please make sure you write them!", "Loaded");
                }

                // no activate the user needs to click write.
                //this.Activate();
            }
            catch (Exception ex) 
            { 
                CustomMessageBox.Show("Failed to load file.\n" + ex);
            }
        }
        private void BUT_compare_Click(object sender, EventArgs e)
        {
            Hashtable param2 = new Hashtable();

            var ofd = new OpenFileDialog
                          {
                              AddExtension = true,
                              DefaultExt = ".param",
                              RestoreDirectory = true,
                              Filter = "Param List|*.param;*.parm"
                          };

            var dr = ofd.ShowDialog();
            if (dr == DialogResult.OK)
            {
                param2 = Utilities.ParamFile.loadParamFile(ofd.FileName);

                ParamCompare paramCompareForm = new ParamCompare(null, MainV2.comPort.MAV.param, param2);

                paramCompareForm.dtlvcallback += paramCompareForm_dtlvcallback;
                
                ThemeManager.ApplyThemeTo(paramCompareForm);
                paramCompareForm.ShowDialog();
            }
        }
Beispiel #15
0
        private void btn_docalc_Click(object sender, EventArgs e)
        {
            //Convert for sanity check
            prop_size             = t_prop.Text.ConvertToDouble();
            batt_cells            = t_cellcount.Text.ConvertToDouble();
            batt_cell_max_voltage = t_cellmax.Text.ConvertToDouble();
            batt_cell_min_voltage = t_cellmin.Text.ConvertToDouble();

            if (prop_size <= 0)
            {
                CustomMessageBox.Show("Prop size must be larger than zero.", "ERROR!");
                return;
            }

            if (batt_cells < 1)
            {
                CustomMessageBox.Show("Battery cell count must be at least 1.", "ERROR!");
                return;
            }


            calc_values();

            if (cb_tmotor.Checked)
            {
                mot_thst_expo = 0.2;
            }


            var atc_prefix = "ATC";
            var mot_prefix = "MOT";

            if (MainV2.comPort.MAV.cs.firmware == Firmwares.ArduPlane)
            {
                atc_prefix = "Q_A";
                mot_prefix = "Q_M";
            }

            var new_params = new Dictionary <string, double>();

            //Fill up the list of params to change
            new_params.Add("ACRO_YAW_P", acro_yaw_p);
            new_params.Add(atc_prefix + "_ACCEL_P_MAX", atc_accel_p_max);
            new_params.Add(atc_prefix + "_ACCEL_R_MAX", atc_accel_r_max);
            new_params.Add(atc_prefix + "_ACCEL_Y_MAX", atc_accel_y_max);

            //Filters has different name in 4.x and in 3.x
            if (MainV2.comPort.MAV.cs.version.Major == 4)
            {
                new_params.Add(atc_prefix + "_RAT_PIT_FLTD", atc_rat_pit_fltd);
                new_params.Add(atc_prefix + "_RAT_PIT_FLTE", atc_rat_pit_flte);
                new_params.Add(atc_prefix + "_RAT_PIT_FLTT", atc_rat_pit_fltt);
                new_params.Add(atc_prefix + "_RAT_RLL_FLTD", atc_rat_rll_fltd);
                new_params.Add(atc_prefix + "_RAT_RLL_FLTE", atc_rat_rll_flte);
                new_params.Add(atc_prefix + "_RAT_RLL_FLTT", atc_rat_rll_fltt);
                new_params.Add(atc_prefix + "_RAT_YAW_FLTD", atc_rat_yaw_fltd);
                new_params.Add(atc_prefix + "_RAT_YAW_FLTE", atc_rat_yaw_flte);
                new_params.Add(atc_prefix + "_RAT_YAW_FLTT", atc_rat_yaw_fltt);
            }
            else
            {
                new_params.Add(atc_prefix + "_RAT_PIT_FILT", atc_rat_pit_fltd);
                new_params.Add(atc_prefix + "_RAT_RLL_FILT", atc_rat_rll_fltd);
                new_params.Add(atc_prefix + "_RAT_YAW_FILT", atc_rat_yaw_flte);
            }

            new_params.Add(atc_prefix + "_THR_MIX_MAN", atc_thr_mix_man);
            new_params.Add("INS_ACCEL_FILTER", ins_accel_filter);
            new_params.Add("INS_GYRO_FILTER", ins_gyro_filter);
            new_params.Add(mot_prefix + "_THST_EXPO", mot_thst_expo);
            new_params.Add(mot_prefix + "_THST_HOVER", mot_thst_hover);
            new_params.Add("BATT_ARM_VOLT", batt_arm_volt);
            new_params.Add("BATT_CRT_VOLT", batt_crt_volt);
            new_params.Add("BATT_LOW_VOLT", batt_low_volt);
            new_params.Add(mot_prefix + "_BAT_VOLT_MAX", mot_bat_volt_max);
            new_params.Add(mot_prefix + "_BAT_VOLT_MIN", mot_bat_volt_min);

            if (cb_tmotor.Checked)
            {
                new_params.Add(mot_prefix + "_PWM_MIN", 1100);
                new_params.Add(mot_prefix + "_PWM_MAX", 1940);
            }

            if (cb_suggested.Checked && MainV2.comPort.MAV.cs.version.Major == 4 && (MainV2.comPort.MAV.cs.firmware != Firmwares.ArduPlane))
            {
                new_params.Add("BATT_FS_CRT_ACT", 1);
                new_params.Add("BATT_FS_LOW_ACT", 2);
                new_params.Add("FENCE_ACTION", 3);
                new_params.Add("FENCE_ALT_MAX", 120);
                new_params.Add("FENCE_ENABLE", 1);
                new_params.Add("FENCE_RADIUS", 150);
                new_params.Add("FENCE_TYPE", 7);
            }

            Form paramCompareForm = new ParamCompare(null, MainV2.comPort.MAV.param, new_params);

            ThemeManager.ApplyThemeTo(paramCompareForm);

            MissionPlanner.Controls.MyButton button = paramCompareForm.Controls.Find("BUT_save", true).FirstOrDefault() as MissionPlanner.Controls.MyButton;
            button.Text = "Write to FC";
            paramCompareForm.StartPosition = FormStartPosition.CenterParent;
            paramCompareForm.ShowDialog();

            if (paramCompareForm.DialogResult == DialogResult.OK)
            {
                CustomMessageBox.Show("Initial Parameters succesfully updated.\r\nCheck parameters before flight!\r\n\r\nAfter test flight :\r\n\tSet ATC_THR_MIX_MAN to 0.5\r\n\tSet PSC_ACCZ_P to MOT_THST_HOVER\r\n\tSet PSC_ACCZ_I to 2*MOT_THST_HOVER\r\n\r\nHappy flying!", "Initial parameter calculator");
            }
        }
        // Main
        void do_parameters(object sender, EventArgs e)
        {
            var new_params = new Dictionary <string, double>();


            double prop      = 9;
            double cellcount = 4;
            double cellmax   = 4.2;
            double cellmin   = 3.3;


            //Add intro and some warnings
            CustomMessageBox.Show("This plugin will calculate some initial parameters based on battery and prop size for a new copter setup.\r\n\r\n" +
                                  "Please make sure that before running this plugin and updating calculated parameters:\r\n" +
                                  "ALL INITIAL SETUPS ARE DONE (Calibrations, frame settings, motor tests)\r\n" +
                                  "BATTERY VOLTAGE MONITORING IS SET AND WORKING\r\n\r\n" +
                                  "Note: INS_GYRO_FILTER with a value other than 20 is optional and probably only for small frames/props " +
                                  "At first you can keep it at 20\r\n", "Initial Parameter Calculator");

            //Check environment

            if (!Host.cs.connected)
            {
                CustomMessageBox.Show("Please connect first!", "Initial paremeter calculator", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            if (Host.cs.firmware != ArduPilot.Firmwares.ArduCopter2)
            {
                CustomMessageBox.Show("Initial parameter calculation works with Arducopter only!", "Initial paremeter calculator", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }


            // Get input parameters
            if (MissionPlanner.Controls.InputBox.Show("Initial parameter calculator", "Enter airscrew size in inch", ref prop) != DialogResult.OK)
            {
                return;
            }
            if (MissionPlanner.Controls.InputBox.Show("Initial parameter calculator", "Enter battery cellcount", ref cellcount) != DialogResult.OK)
            {
                return;
            }
            if (MissionPlanner.Controls.InputBox.Show("Initial parameter calculator", "Enter battery cell fully charged voltage\r\nLiPo - 4.2, LipoHV - 4.35, LiIon - 4.1 or 4.2", ref cellmax) != DialogResult.OK)
            {
                return;
            }
            if (MissionPlanner.Controls.InputBox.Show("Initial parameter calculator", "Enter battery cell fully discharged voltage\r\nLiPo/LipoHV - 3.3, LiIon - 2.8", ref cellmin) != DialogResult.OK)
            {
                return;
            }



            //Ok we have all input and we are connected to an ArduCopter

            //Convert for sanity check
            prop_size             = prop.ConvertToDouble();
            batt_cells            = cellcount.ConvertToDouble();
            batt_cell_max_voltage = cellmax.ConvertToDouble();
            batt_cell_min_voltage = cellmin.ConvertToDouble();


            if (prop_size <= 0 || batt_cells < 1)
            {
                CustomMessageBox.Show("Invalid input data!", "Initial paremeter calculator", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }



            //Do calculation
            calc_values();

            //Fill up the list of params to change
            new_params.Add("ACRO_YAW_P", acro_yaw_p);
            new_params.Add("ATC_ACCEL_P_MAX", atc_accel_p_max);
            new_params.Add("ATC_ACCEL_R_MAX", atc_accel_r_max);
            new_params.Add("ATC_ACCEL_Y_MAX", atc_accel_y_max);

            //Filters has different name in 4.x and in 3.x
            if (Host.cs.version.Major == 4)
            {
                new_params.Add("ATC_RAT_PIT_FLTD", atc_rat_pit_fltd);
                new_params.Add("ATC_RAT_PIT_FLTE", atc_rat_pit_flte);
                new_params.Add("ATC_RAT_PIT_FLTT", atc_rat_pit_fltt);
                new_params.Add("ATC_RAT_RLL_FLTD", atc_rat_rll_fltd);
                new_params.Add("ATC_RAT_RLL_FLTE", atc_rat_rll_flte);
                new_params.Add("ATC_RAT_RLL_FLTT", atc_rat_rll_fltt);
                new_params.Add("ATC_RAT_YAW_FLTD", atc_rat_yaw_fltd);
                new_params.Add("ATC_RAT_YAW_FLTE", atc_rat_yaw_flte);
                new_params.Add("ATC_RAT_YAW_FLTT", atc_rat_yaw_fltt);
            }
            else
            {
                new_params.Add("ATC_RAT_PIT_FILT", atc_rat_pit_fltd);
                new_params.Add("ATC_RAT_RLL_FILT", atc_rat_rll_fltd);
                new_params.Add("ATC_RAT_YAW_FILT", atc_rat_yaw_flte);
            }

            new_params.Add("ATC_THR_MIX_MAN", atc_thr_mix_man);
            new_params.Add("INS_ACCEL_FILTER", ins_accel_filter);
            new_params.Add("INS_GYRO_FILTER", ins_gyro_filter);
            new_params.Add("MOT_THST_EXPO", mot_thst_expo);
            new_params.Add("MOT_THST_HOVER", mot_thst_hover);
            new_params.Add("BATT_ARM_VOLT", batt_arm_volt);
            new_params.Add("BATT_CRT_VOLT", batt_crt_volt);
            new_params.Add("BATT_LOW_VOLT", batt_low_volt);
            new_params.Add("MOT_BAT_VOLT_MAX", mot_bat_volt_max);
            new_params.Add("MOT_BAT_VOLT_MIN", mot_bat_volt_min);

            Form paramCompareForm = new ParamCompare(null, MainV2.comPort.MAV.param, new_params);

            ThemeManager.ApplyThemeTo(paramCompareForm);
            button      = paramCompareForm.Controls.Find("BUT_save", true).FirstOrDefault() as MissionPlanner.Controls.MyButton;
            button.Text = "Write to FC";

            paramCompareForm.ShowDialog();
            CustomMessageBox.Show("Initial Parameters succesfully updated.\r\nCheck parameters before flight!\r\n\r\nAfter test flight :\r\n\tSet ATC_THR_MIX_MAN to 0.5\r\n\tSet PSC_ACCZ_P to MOT_THST_HOVER\r\n\tSet PSC_ACCZ_I to 2*MOT_THST_HOVER\r\n\r\nHappy flying!", "Initial parameter calculator");
        }
        private void BUT_paramfileload_Click(object sender, EventArgs e)
        {
            string filepath = Application.StartupPath + Path.DirectorySeparatorChar + CMB_paramfiles.Text;

            byte[] data = GitHubContent.GetFileContent("diydrones", "ardupilot", ((GitHubContent.FileInfo)CMB_paramfiles.SelectedValue).path);

            File.WriteAllBytes(filepath, data);

            Hashtable param2 = Utilities.ParamFile.loadParamFile(filepath);

            Form paramCompareForm = new ParamCompare(Params, MainV2.comPort.MAV.param, param2);

            ThemeManager.ApplyThemeTo(paramCompareForm);
            paramCompareForm.ShowDialog();

            CustomMessageBox.Show("Loaded parameters, please make sure you write them!", "Loaded");

            this.Activate();
        }
Beispiel #18
0
        private void BUT_compare_Click(object sender, EventArgs e)
        {
            var param2 = new Hashtable();

            using (var ofd = new OpenFileDialog
            {
                AddExtension = true,
                DefaultExt = ".param",
                RestoreDirectory = true,
                Filter = "Param List|*.param;*.parm"
            })
            {
                var dr = ofd.ShowDialog();
                if (dr == DialogResult.OK)
                {
                    param2 = ParamFile.loadParamFile(ofd.FileName);

                    Form paramCompareForm = new ParamCompare(Params, MainV2.comPort.MAV.param, param2);

                    ThemeManager.ApplyThemeTo(paramCompareForm);
                    paramCompareForm.ShowDialog();
                }
            }
        }
        private void but_iris_Click(object sender, EventArgs e)
        {
            try
            {
                string filepath = Application.StartupPath + Path.DirectorySeparatorChar + "Iris.param";

                if (Common.getFilefromNet("https://github.com/diydrones/ardupilot/raw/master/Tools/Frame_params/Iris.param", filepath))
                {
                    Hashtable param2 = Utilities.ParamFile.loadParamFile(filepath);

                    Form paramCompareForm = new ParamCompare(Params, MainV2.comPort.MAV.param, param2);

                    ThemeManager.ApplyThemeTo(paramCompareForm);
                    paramCompareForm.ShowDialog();

                    CustomMessageBox.Show("Loaded parameters, please make sure you write them!", "Loaded");

                }
                else
                {
                    CustomMessageBox.Show("Error getting Iris param file");
                }
            }
            catch (Exception ex) { CustomMessageBox.Show("Error getting Iris param file" + ex.ToString()); }
        }
        private void BUT_paramfileload_Click(object sender, EventArgs e)
        {
            var filepath = Settings.GetUserDataDirectory() + CMB_paramfiles.Text;

            try
            {
                var data = GitHubContent.GetFileContent("ardupilot", "ardupilot",
                    ((GitHubContent.FileInfo) CMB_paramfiles.SelectedValue).path);

                File.WriteAllBytes(filepath, data);

                var param2 = ParamFile.loadParamFile(filepath);

                var paramCompareForm = new ParamCompare(null, MainV2.comPort.MAV.param, param2);

                paramCompareForm.dtlvcallback += paramCompareForm_dtlvcallback;

                ThemeManager.ApplyThemeTo(paramCompareForm);
                if (paramCompareForm.ShowDialog() == DialogResult.OK)
                {
                    CustomMessageBox.Show("Loaded parameters, please make sure you write them!", "Loaded");
                }

                // no activate the user needs to click write.
                //this.Activate();
            }
            catch (Exception ex)
            {
                CustomMessageBox.Show("Failed to load file.\n" + ex);
            }
        }