//Vraća najbližeg susjeda: kompoziciju senzora i udaljenosti public userAddress searchNeighbour(string username) { userAddress returning = new userAddress(); sensorform closest = new sensorform(); double dist = 0; double minimalDistance = 1000000; foreach (sensorform senzor in sensors) { if (!(senzor.username == username)) { dist = distance(senzor.longitude, sensors.Find(item => item.username == username).longitude, senzor.latitude, sensors.Find(item => item.username == username).latitude); Debug.WriteLine("Senzor " + senzor.username + ":" + dist); if (dist < minimalDistance) { minimalDistance = dist; closest = senzor; } } } returning.distance = minimalDistance; returning.senzor = closest; Debug.WriteLine("Najbliži: " + returning.senzor.username + ":" + returning.distance); return(returning); }
//Registrira nove senzore public bool register(string username, double latitude, double longitude, string IPaddress, int port) { Debug.WriteLine("Registered"); if (!sensors.Any(item => item.username == username)) { sensorform senzor = new sensorform(); senzor.username = username; senzor.longitude = longitude; senzor.latitude = latitude; senzor.port = port; senzor.IPaddress = IPaddress; sensors.Add(senzor); printsensors(); Debug.WriteLine("All sensors printed."); return(true); } else { return(false); } }