void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
        {
            var data = (int)e.Reading.HeadingMagneticNorth;

            // Console.WriteLine($"Reading: {data} degrees");
            if (data < 45 || data > 315)
            {
                compassLabel.Text = "Compass: N";
            }

            if (data > 45 && data < 125)
            {
                compassLabel.Text = "Compass: E";
            }

            if (data > 125 && data < 225)
            {
                compassLabel.Text = "Compass: S";
            }

            if (data > 225 && data < 315)
            {
                compassLabel.Text = "Compass: W";
            }
        }
Esempio n. 2
0
        //値を取得したときに実行される
        private void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
        {
            var data = e.Reading;

            //ラベルに表示
            LabelCompass.Text = data.HeadingMagneticNorth.ToString();
        }
Esempio n. 3
0
        void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
        {
            if (QiblaView.IsVisible)
            {
                int Value = Convert.ToInt32(e.Reading.HeadingMagneticNorth);

                circularGauge.RotateTo(360 - e.Reading.HeadingMagneticNorth);
                PointToQibla();

                if (Value > bearing_degree - 2 && Value < bearing_degree + 2)
                {
                    pointer1.KnobColor = Color.Gold;
                    scale.RimColor     = Color.Gold;
                    if (!isVibrate)
                    {
                        try
                        {
                            isVibrate = true;
                            var duration = TimeSpan.FromSeconds(0.5);
                            Vibration.Vibrate(duration);
                        }
                        catch
                        {
                        }
                    }
                }
                else
                {
                    isVibrate                     = false;
                    pointer1.KnobColor            = Color.White;
                    circularGauge.BackgroundColor = Color.Transparent;
                    scale.RimColor                = Color.LightGray;
                }
            }
        }
Esempio n. 4
0
        private void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
        {
            double value         = e.Reading.HeadingMagneticNorth;
            string valueFormated = String.Format("{0} {2} {1}", value.ToString("0"), CalculateDirection(value), "\u00b0");

            GetCompassValue?.Invoke(this, valueFormated);
        }
        private void OnReadingChanged(object sender, CompassChangedEventArgs e)
        {
            CurrentHeading = e.Reading.HeadingMagneticNorth;
            Rotation       = CurrentHeading * -1;

            var closest90 = Math.Round(CurrentHeading / 90d, MidpointRounding.AwayFromZero) * 90;

            switch (closest90)
            {
            case 0:
            case 360:
                CurrentAspect = "North";
                break;

            case 90:
                CurrentAspect = "East";
                break;

            case 180:
                CurrentAspect = "South";
                break;

            case 270:
                CurrentAspect = "West";
                break;
            }
        }
Esempio n. 6
0
        void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
        {
            var data = e.Reading;

            Console.WriteLine($"Reading: {data.HeadingMagneticNorth} degrees");
            // Process Heading Magnetic North
        }
Esempio n. 7
0
 void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
 {
     circularGauge.RotateTo(360 - e.Reading.HeadingMagneticNorth);
     compassImage.RotateTo(360 - e.Reading.HeadingMagneticNorth);
     //ImageArrow.RotateTo(360 - e.Reading.HeadingMagneticNorth);
     PointToQibla(e);
 }
Esempio n. 8
0
        private void HandleCompassReading(object sender, CompassChangedEventArgs args)
        {
            _averageYaw *= (COMPASS_MEASURMENT_WEIGHT - 1) / COMPASS_MEASURMENT_WEIGHT;

            var heading = args.Reading.HeadingMagneticNorth;

            if (_viewModel != null && _viewModel.IsNothingCaptured)
            {
                _firstPhotoYaw = heading;
            }
            if (_viewModel != null && _viewModel.IsExactlyOnePictureTaken)
            {
                _averageYaw += heading / COMPASS_MEASURMENT_WEIGHT;
            }

            var roundedYawDifference = Math.Round((_firstPhotoYaw - _averageYaw) * COMPASS_SENSITIVITY);

            if (roundedYawDifference > 0)
            {
                _yawIndicator.Source = _yawRight;
            }
            else if (roundedYawDifference < 0)
            {
                _yawIndicator.Source = _yawLeft;
            }
            else
            {
                _yawIndicator.Source = _yawStar;
            }
        }
Esempio n. 9
0
        public void CompassReadingChanged(object sender, CompassChangedEventArgs e)
        {
            var _data = e.Reading;

            MessagingCenter.Send(this, "imageSend", -_data.HeadingMagneticNorth);                      //sends new rotation of compass to EntryPage class
            MessagingCenter.Send(this, "arrowSend", -_data.HeadingMagneticNorth - AppVariables.Alpha); //sends new rotation of arrow
        }
Esempio n. 10
0
        void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
        {
            var data = e.Reading;

            Degrees = (int)data.HeadingMagneticNorth;
            UpdateDirection();
            DegreesChanged?.Invoke(this, e);
        }
Esempio n. 11
0
        void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
        {
            var data = e.Reading;

            // Process Heading Magnetic North
            Console.WriteLine($"Reading: {data.HeadingMagneticNorth} degrees");
            label.Text = String.Format("HeadingMagneticNorth:\n{0,0:F1} degrees", data.HeadingMagneticNorth);
        }
Esempio n. 12
0
        private void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
        {
            var data = e.Reading;

            rotAngle.Text = String.Format("각도 : {0} 도", data.HeadingMagneticNorth.ToString("F2"));
            angle         = data.HeadingMagneticNorth * Math.PI / 180.0;
            canvasView.InvalidateSurface();
        }
Esempio n. 13
0
        private void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
        {
            Xamarin.Essentials.CompassData reading = e.Reading;
            DoubleData data = Heading;

            data.TimeStamp = DateTime.UtcNow;
            data.Value     = reading.HeadingMagneticNorth;
            data.SendNotification();
        }
 private void Compass_ReadingChanged(CompassChangedEventArgs e)
 {
     //HeadingDisplay = $"Compass: {e.Reading.HeadingMagneticNorth:F3}";
     lock (_sensingDataLock)
     {
         _sensingData.Timestamp = DateTime.UtcNow.Ticks;
         _sensingData.Compass   = (float)e.Reading.HeadingMagneticNorth;
     }
 }
Esempio n. 15
0
        private void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
        {
            var data = e.Reading;

            headingMagneticNorth = data.HeadingMagneticNorth;
            Device.BeginInvokeOnMainThread(() =>
            {
                TxtHeading.Text = Math.Round(headingMagneticNorth, 0).ToString() + "°";
            });
        }
        public void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
        {
            var data = e.Reading;

            compass.RotationAngle  = 360 - data.HeadingMagneticNorth;
            compass.CurrentHeading = data.HeadingMagneticNorth;


            string[] names = { "North", "East", "South", "West", "North" };
            compass.CurrentAspect = names[GetClosestAspect(data.HeadingMagneticNorth)];
        }
Esempio n. 17
0
        // Detección por parte del giroscopio y actualización del gaugeValue
        private void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
        {
            try
            {
                var data   = e.Reading;
                var grados = data.HeadingMagneticNorth;

                knobGauge.Value = grados; knobGauge.mandatory[1] = grados + 180;
            }
            catch (Exception exception) {  }
        }
Esempio n. 18
0
        internal void RaiseReadingChanged(CompassData data)
        {
            var args = new CompassChangedEventArgs(data);

            if (UseSyncContext)
            {
                MainThread.BeginInvokeOnMainThread(() => ReadingChanged?.Invoke(null, args));
            }
            else
            {
                ReadingChanged?.Invoke(null, args);
            }
        }
Esempio n. 19
0
        void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
        {
            var data       = e.Reading;
            var tmpHeading = (90 + data.HeadingMagneticNorth) % 360;

            _headingStabilizator.AddValue(tmpHeading);
            var newHeading = _headingStabilizator.GetHeading();

            if (Math.Abs(newHeading - Heading) > 0.2)
            {
                Heading = newHeading;
                OnHeadingChanged?.Invoke(Heading);
            }
        }
Esempio n. 20
0
        /// <summary>
        /// Raises the CompassChanged event.
        /// </summary>
        /// <param name="compassChangedEventArgs">The CompassChangedEventArgs that contains the event data.</param>
        protected virtual void OnCompassChanged(CompassChangedEventArgs compassChangedEventArgs)
        {
            // Event handler check.
            var compassChanged = CompassChanged;

            if (compassChanged != null)
            {
                // Trace.
                Trace("Raising CompassChanged " + compassChangedEventArgs.CompassHeading);

                // Raise the event.
                compassChanged(this, compassChangedEventArgs);
            }
        }
Esempio n. 21
0
        void PointToQibla(CompassChangedEventArgs e)
        {
            double latt_from_radians = current_latitude * Math.PI / 180;
            double long_from_radians = current_longitude * Math.PI / 180;
            double latt_to_radians   = QiblaLatitude * Math.PI / 180;
            double lang_to_radians   = QiblaLongitude * Math.PI / 180;
            double bearing           = Math.Atan2(Math.Sin(lang_to_radians - long_from_radians) * Math.Cos(latt_to_radians), (Math.Cos(latt_from_radians) * Math.Sin(latt_to_radians)) - (Math.Sin(latt_from_radians) * Math.Cos(latt_to_radians) * Math.Cos(lang_to_radians - long_from_radians)));

            bearing = Mod(bearing, 2 * Math.PI);
            double bearing_degree = bearing * 180 / Math.PI;

            pointer1.Value = bearing_degree;
            lblG.Text      = string.Format("Lat: {0} Long: {1} degree:{2}", current_latitude, current_longitude, bearing_degree.ToString());
        }
Esempio n. 22
0
        void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
        {
            var    data         = e.Reading;
            double northReading = data.HeadingMagneticNorth;

            if (isEyeball)
            {
                EyeballImage.RotateTo(-northReading, 250, Easing.SinInOut);
            }
            else
            {
                CompassImage.RotateTo(-northReading, 250, Easing.SinInOut);
            }

            HeadingLabel.Text = $"{(360 - northReading).ToString("0.00")} \u00B0N";
        }
Esempio n. 23
0
        private async void ReadingChanged(object sender, CompassChangedEventArgs e)
        {
            if (e.Reading.HeadingMagneticNorth - commpas > 2 || e.Reading.HeadingMagneticNorth - commpas < -2)
            {
                isMove  = true;
                commpas = e.Reading.HeadingMagneticNorth;
                if (isCompas)
                {
                    Plugin.Geolocator.Abstractions.Position position = await CrossGeolocator.Current.GetLastKnownLocationAsync();

                    if (position != null)
                    {
                        await map.AnimateCamera(CameraUpdateFactory.NewCameraPosition(new CameraPosition(new Position(position.Latitude, position.Longitude), 20, e.Reading.HeadingMagneticNorth, 70)), TimeSpan.FromMilliseconds(10));
                    }
                }
            }
            else
            {
                isMove = false;
            }
        }
        async void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
        {
            // Get the deviation compared to north
            var    data  = e.Reading;
            double north = data.HeadingMagneticNorth;

            // Check if the user's location was succesfully collected
            if (locationFound)
            {
                // Calculate the angle the compass should head towards
                double dy    = endLocation.Latitude - startLocation.Latitude;
                double dx    = Math.Cos(Math.PI / 180 * startLocation.Latitude) * (endLocation.Longitude - startLocation.Longitude);
                double angle = Math.Atan2(dy, dx) * (180 / Math.PI);

                angle = 360 - (angle + 180) - 90;

                if (angle < 0)
                {
                    angle += 360;
                }

                // Calculate distance between user's location and endpoint
                double distance = Location.CalculateDistance(startLocation, endLocation, DistanceUnits.Kilometers) * 1000;

                // Return results
                distanceLabel.Text = String.Format("{0:f1} " + AppResources.meter, distance);

                await compassImage.RotateTo(angle - north);
            }
            else // Error while finding the user's location
            {
                distanceLabel.Text = "?? " + AppResources.meter;

                await compassImage.RotateTo(0);
            }
        }
Esempio n. 25
0
 private void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
 {
     mapView.MyLocationLayer.UpdateMyViewDirection(e.Reading.HeadingMagneticNorth, mapView.Viewport.Rotation, false);
 }
        void Compass_CompassChanged(object sender, CompassChangedEventArgs e)
        {
            Debug.WriteLine("*** Compass Heading = {0}", e.Heading);

            label.Text = $"Heading = {e.Heading}";
        }
        private void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
        {
            var data = e.Reading;

            headernorthvalue = data.HeadingMagneticNorth;
        }
 void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
 {
     HeadingMagneticNorth = e.Reading.HeadingMagneticNorth;
 }
Esempio n. 29
0
        private static void CompassOnReadingChanged(object sender, CompassChangedEventArgs e)
        {
            CompassData data = e.Reading;

            heading = data.HeadingMagneticNorth * -1;
        }
Esempio n. 30
0
 private void CompassSensor_ReadingChanged(object sender, CompassChangedEventArgs e)
 {
     CompassDataReading.Add(CompassWatch.ElapsedTicks, e.Reading);
 }
        void Compass_ReadingChanged(object sender, CompassChangedEventArgs e)
        {
            var data = e.Reading;

            lbl.Text = $"Reading: {data.HeadingMagneticNorth} degrees";
        }