MissionPlanner.MagCalib.SaveOffsets2 C# (CSharp) Method

SaveOffsets2() public static method

public static SaveOffsets2 ( double ofs ) : void
ofs double
return void
        public static void SaveOffsets2(double[] ofs)
        {
            if (MainV2.comPort.MAV.param.ContainsKey("COMPASS_OFS2_X") && MainV2.comPort.BaseStream.IsOpen)
            {
                try
                {
                    // disable learning
                    MainV2.comPort.setParam("COMPASS_LEARN", 0);

                    if (
                        !MainV2.comPort.SetSensorOffsets(MAVLinkInterface.sensoroffsetsenum.second_magnetometer,
                            (float) ofs[0], (float) ofs[1], (float) ofs[2]))
                    {
                        // set values
                        MainV2.comPort.setParam("COMPASS_OFS2_X", (float) ofs[0]);
                        MainV2.comPort.setParam("COMPASS_OFS2_Y", (float) ofs[1]);
                        MainV2.comPort.setParam("COMPASS_OFS2_Z", (float) ofs[2]);
                    }
                    else
                    {
                        // Need to reload these params into the param list if SetSensorOffsets() was used
                        MainV2.comPort.GetParam("COMPASS_OFS2_X");
                        MainV2.comPort.GetParam("COMPASS_OFS2_Y");
                        MainV2.comPort.GetParam("COMPASS_OFS2_Z");
                    }
                    if (ofs.Length > 3)
                    {
                        // ellipsoid
                    }
                }
                catch
                {
                    CustomMessageBox.Show("Setting new offsets for compass #2 failed");
                    return;
                }

                CustomMessageBox.Show(
                    "New offsets for compass #2 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 offsets for compass #2 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();

            if (dointro)
            {
                CustomMessageBox.Show("Please click ok and move the autopilot around all axises in a circular motion");
            }

            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);
            }
        }
All Usage Examples Of MissionPlanner.MagCalib::SaveOffsets2