public static YGpsProxy FindGps(string name) { // cases to handle: // name ="" no matching unknwn // name ="" unknown exists // name != "" no matching unknown // name !="" unknown exists YGps func = null; YGpsProxy res = (YGpsProxy)YFunctionProxy.FindSimilarUnknownFunction("YGpsProxy"); if (name == "") { if (res != null) { return(res); } res = (YGpsProxy)YFunctionProxy.FindSimilarKnownFunction("YGpsProxy"); if (res != null) { return(res); } func = YGps.FirstGps(); if (func != null) { name = func.get_hardwareId(); if (func.get_userData() != null) { return((YGpsProxy)func.get_userData()); } } } else { func = YGps.FindGps(name); if (func.get_userData() != null) { return((YGpsProxy)func.get_userData()); } } if (res == null) { res = new YGpsProxy(func, name); } if (func != null) { res.linkToHardware(name); if (func.isOnline()) { res.arrival(); } } return(res); }
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; } }