예제 #1
0
        private void refreshUI()
        {
            GPSOk = false;
            if (currentGps != null)
            {
                if (currentGps.isOnline())
                {
                    if (currentGps.get_isFixed() == YGps.ISFIXED_TRUE)
                    {
                        GPSOk = true;
                        double lat = currentLat.get_currentValue() / 1000;
                        double lon = currentLon.get_currentValue() / 1000;
                        currentPos.Position   = new PointLatLng(lat, lon);
                        Lat_value.Text        = currentGps.get_latitude();
                        Lon_value.Text        = currentGps.get_longitude();
                        Speed_value.Text      = Math.Round(currentGps.get_groundSpeed()).ToString();
                        Orient_value.Text     = Math.Round(currentGps.get_direction()).ToString() + '°';
                        GPS_Status.Text       = currentGps.get_satCount().ToString() + " sat";
                        overlayOne.IsVisibile = true;
                        if (centeringNeeded)
                        {
                            myMap.Position = currentPos.Position;
                        }
                        centeringNeeded = false;
                    }
                    else
                    {
                        GPS_Status.Text = "fixing";
                    }
                }
                else
                {
                    GPS_Status.Text = "Yocto-GPS disconnected";
                }
            }
            else
            {
                GPS_Status.Text = "No Yocto-GPS connected";
            }

            if (!GPSOk)
            {
                Lat_value.Text        = "N/A";
                Lon_value.Text        = "N/A";
                Speed_value.Text      = "N/A";
                Orient_value.Text     = "N/A";
                overlayOne.IsVisibile = false;
                centeringNeeded       = true;
            }
        }
        /**
         * <summary>
         *   Returns the current move bearing in degrees, zero
         *   is the true (geographic) north.
         * <para>
         * </para>
         * <para>
         * </para>
         * </summary>
         * <returns>
         *   a floating point number corresponding to the current move bearing in degrees, zero
         *   is the true (geographic) north
         * </returns>
         * <para>
         *   On failure, throws an exception or returns <c>YGps.DIRECTION_INVALID</c>.
         * </para>
         */
        public double get_direction()
        {
            double res;

            if (_func == null)
            {
                throw new YoctoApiProxyException("No Gps connected");
            }
            res = _func.get_direction();
            if (res == YAPI.INVALID_DOUBLE)
            {
                res = Double.NaN;
            }
            return(res);
        }