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); }