MissionPlanner.MagCalib.SaveOffsets3 C# (CSharp) Method

SaveOffsets3() public static method

public static SaveOffsets3 ( double ofs ) : void
ofs double
return void
        public static void SaveOffsets3(double[] ofs)
        {
            if (MainV2.comPort.MAV.param.ContainsKey("COMPASS_OFS3_X") && MainV2.comPort.BaseStream.IsOpen)
            {
                try
                {
                    // disable learning
                    MainV2.comPort.setParam("COMPASS_LEARN", 0);
                    {
                        MainV2.comPort.setParam("COMPASS_OFS3_X", (float)ofs[0]);
                        MainV2.comPort.setParam("COMPASS_OFS3_Y", (float)ofs[1]);
                        MainV2.comPort.setParam("COMPASS_OFS3_Z", (float)ofs[2]);
                    }
                    if (ofs.Length > 3)
                    {
                        // ellipsoid
                    }
                }
                catch
                {
                    CustomMessageBox.Show("Setting new offsets for compass #3 failed");
                    return;
                }

                CustomMessageBox.Show(
                    "New offsets for compass #3 are " + ofs[0].ToString("0") + " " + ofs[1].ToString("0") + " " +
                    ofs[2].ToString("0") + "\nThese have been saved for you.", "New Mag Offsets");
            }
            else
            {
                CustomMessageBox.Show(
                    "New compass3 offsets are " + ofs[0].ToString("0") + " " + ofs[1].ToString("0") + " " +
                    ofs[2].ToString("0") + "\n\nPlease write these down for manual entry", "New Mag Offsets");
            }
        }

Usage Example

Exemplo n.º 1
0
        public static void DoGUIMagCalib(bool dointro = true)
        {
            ans = null;
            filtercompass1.Clear();
            datacompass1.Clear();
            datacompass2.Clear();
            filtercompass2.Clear();
            filtercompass3.Clear();
            datacompass3.Clear();
            error  = 99;
            error2 = 99;
            error3 = 99;

            if (dointro)
            {
                CustomMessageBox.Show(Strings.MagCalibMsg);
            }

            ProgressReporterSphere prd = new ProgressReporterSphere();

            prd.btnCancel.Text = "Done";

            Utilities.ThemeManager.ApplyThemeTo(prd);

            prd.DoWork += prd_DoWork;

            prd.RunBackgroundOperationAsync();

            if (ans != null)
            {
                MagCalib.SaveOffsets(ans);
            }

            if (ans2 != null)
            {
                MagCalib.SaveOffsets2(ans2);
            }

            if (ans3 != null)
            {
                MagCalib.SaveOffsets3(ans3);
            }
        }