internal static void PlatformStart(SensorSpeed sensorSpeed)
        {
            var manager = Platform.MotionManager;

            switch (sensorSpeed)
            {
            case SensorSpeed.Fastest:
                manager.GyroUpdateInterval = FastestInterval;
                break;

            case SensorSpeed.Game:
                manager.GyroUpdateInterval = GameInterval;
                break;

            case SensorSpeed.Normal:
                manager.GyroUpdateInterval = NormalInterval;
                break;

            case SensorSpeed.UI:
                manager.GyroUpdateInterval = UIInterval;
                break;
            }

            manager.StartGyroUpdates(Platform.GetCurrentQueue(), DataUpdated);
        }
        internal static void PlatformStart(SensorSpeed sensorSpeed)
        {
            var manager = Platform.MotionManager;

            manager.MagnetometerUpdateInterval = sensorSpeed.ToPlatform();
            manager.StartMagnetometerUpdates(Platform.GetCurrentQueue(), DataUpdated);
        }
        static void PlatformStart(SensorSpeed sensorSpeed)
        {
            altitudeManager = new CMAltimeter();
            altitudeManager.StartRelativeAltitudeUpdates(Platform.GetCurrentQueue(), LocationManagerUpdatedHeading);

            void LocationManagerUpdatedHeading(CMAltitudeData e, NSError error) =>
            OnChanged(new BarometerData(UnitConverters.KilopascalsToHectopascals(e.Pressure.DoubleValue)));
        }
        static void PlatformStart(SensorSpeed sensorSpeed)
        {
            altitudeManager = new CMAltimeter();
            altitudeManager.StartRelativeAltitudeUpdates(Platform.GetCurrentQueue(), LocationManagerUpdatedHeading);

            // Heading updates Convert to HectoPascal from KiloPascal
            void LocationManagerUpdatedHeading(CMAltitudeData e, NSError error) =>
            OnChanged(new BarometerData(e.Pressure.DoubleValue / 10d));
        }
        internal static void PlatformStart(SensorSpeed sensorSpeed)
        {
            var manager = Platform.MotionManager;

            manager.DeviceMotionUpdateInterval = sensorSpeed.ToPlatform();

            // use a fixed reference frame where X points north and Z points vertically into the sky
            manager.StartDeviceMotionUpdates(CMAttitudeReferenceFrame.XTrueNorthZVertical, Platform.GetCurrentQueue(), DataUpdated);
        }