void RangingBeaconsInRegion(object sender, RangeEventArgs e) { if (e.Beacons.Count > 0) { foreach (var b in e.Beacons) { if ((ProximityType)b.Proximity != ProximityType.Unknown) { var exists = false; for (int i = 0; i < beacons.Count; i++) { if (beacons[i].Minor.Equals(b.Minor.ToString())) { beacons[i].CurrentDistance = Math.Round(b.Accuracy, 2); SetProximity(b, beacons [i]); exists = true; } } if (!exists) { var newBeacon = new BeaconItem { Minor = b.Minor.ToString(), Name = "", CurrentDistance = Math.Round(b.Accuracy, 2) }; SetProximity(b, newBeacon); beacons.Add(newBeacon); } } } } }
void HandleDidRangeBeacons(object sender, CLRegionBeaconsRangedEventArgs e) { if (e.Beacons.Length > 0) { foreach (var b in e.Beacons) { if (b.Proximity != CLProximity.Unknown) { Console.WriteLine("UUID: {0} | Major: {1} | Minor: {2} | Accuracy: {3} | Proximity: {4} | RSSI: {5}", b.ProximityUuid, b.Major, b.Minor, b.Accuracy, b.Proximity, b.Rssi); var exists = false; for (int i = 0; i < beacons.Count; i++) { if (beacons[i].Minor.Equals(b.Minor.ToString())) { beacons[i].CurrentDistance = Math.Round(b.Accuracy, 2); SetProximity(b, beacons[i]); exists = true; } } if (!exists) { var newBeacon = new BeaconItem { Minor = b.Minor.ToString(), Name = "", CurrentDistance = Math.Round(b.Accuracy, 2) }; SetProximity(b, newBeacon); beacons.Add(newBeacon); } } } } }
void SetProximity(IBeacon source, BeaconItem dest) { Proximity p = Proximity.Unknown; switch ((ProximityType)source.Proximity) { case ProximityType.Immediate: p = Proximity.Immediate; break; case ProximityType.Near: p = Proximity.Near; break; case ProximityType.Far: p = Proximity.Far; break; } if (p > dest.Proximity || p < dest.Proximity) { dest.ProximityChangeTimestamp = DateTime.Now; } dest.Proximity = p; }
public void BeaconItem_Click(object sender, MouseEventArgs e) { BeaconItem item = (BeaconItem)sender; panel_main.Controls.Clear(); panel_main.Controls.Add(new BeaconPanel(item.BeaconModuleData)); }
public IActionResult Create(BeaconItem item) { _context.beaconItems.Add(item); _context.SaveChanges(); return(CreatedAtRoute("GetBeacon", new { beaconId = item.BeaconId }, item)); }
public void SetLocationLabel () { closestBeacon = GetClosestBeacon(); if (closestBeacon != null) { locationLabel.Text = "You are closest to " + closestBeacon.Name + " (Approximately " + closestBeacon.CurrentDistance + "m away)"; } }
void SetProximity(CLBeacon source, BeaconItem dest) { CLProximity p = CLProximity.Unknown; switch (source.Proximity) { case CLProximity.Immediate: p = CLProximity.Immediate; var notification = new UILocalNotification { FireDate = NSDate.FromTimeIntervalSinceNow(1), AlertAction = "Device Proximity Alert", AlertBody = "We are close to required bluetooth device!", SoundName = UILocalNotification.DefaultSoundName }; //notify main app about beacon proximity UIApplication.SharedApplication.ScheduleLocalNotification(notification); break; case CLProximity.Near: p = CLProximity.Near; break; case CLProximity.Far: p = CLProximity.Far; break; } dest.Proximity = p; }
public void BeaconFound(BeaconItem item) { if (item.Minor >= 0 && item.Minor <= 3) { beaconLocater.PauseTracking(); arPage = new ARPage(item.Minor.ToString()); Navigation.PushAsync(arPage); } }
public BeaconMonitor() { locationManager = new CLLocationManager(); var beaconRegion = new CLBeaconRegion(new NSUuid(PollViewModel.LOOKUP_UUID), "My Beacon") { NotifyEntryStateOnDisplay = true, NotifyOnEntry = true }; locationManager.RegionEntered += (s, e) => { if (e.Region.Identifier == "My Beacon") { Console.WriteLine("Found My Beacon"); locationManager.StartRangingBeacons(beaconRegion); locationManager.DidRangeBeacons += (lm, e2) => { if (e2.Beacons.Length > 0) { foreach (var b in e2.Beacons) { if (b.Proximity != CLProximity.Unknown) { Console.WriteLine("UUID: {0} | Major: {1} | Minor: {2} | Accuracy: {3} | Proximity: {4} | RSSI: {5}", b.ProximityUuid, b.Major, b.Minor, b.Accuracy, b.Proximity, b.Rssi); var exists = false; foreach (var beacon in Beacons) { if (beacon.Minor.Equals(b.Minor.ToString())) { beacon.CurrentDistance = Math.Round(b.Accuracy, 2); SetProximity(b, beacon); exists = true; } } if (!exists) { var newBeacon = new BeaconItem { Minor = b.Minor.ToString(), Name = "", CurrentDistance = Math.Round(b.Accuracy, 2) }; SetProximity(b, newBeacon); Beacons.Add(newBeacon); } } } } }; } }; locationManager.StartMonitoring(beaconRegion); }
public async Task <IActionResult> OnGetAsync(string id) { if (id == null) { return(NotFound()); } BeaconItem = await _context.beaconItems.FirstOrDefaultAsync(m => m.BeaconId == id); if (BeaconItem == null) { return(NotFound()); } return(Page()); }
private async void TestModule(Object ip_obj) { IPAddress ip = (IPAddress)ip_obj; BeaconModule module = await BeaconModule.GetBeacon(ip); scanEvent.Signal(); if (module != null) { Invoke(new MethodInvoker(() => { BeaconItem item = new BeaconItem(module, BeaconItem_Click); panel_list.Controls.Add(item); })); } }
public async Task <IActionResult> OnPostAsync(string id) { if (id == null) { return(NotFound()); } BeaconItem = await _context.beaconItems.FindAsync(id); if (BeaconItem != null) { _context.beaconItems.Remove(BeaconItem); await _context.SaveChangesAsync(); } return(RedirectToPage("./Index")); }
public IActionResult Update(string beaconId, BeaconItem item) { var beacon = _context.beaconItems.Find(beaconId); if (beacon == null) { return(NotFound()); } beacon.Name = item.Name; beacon.ExtraInfo = item.ExtraInfo; beacon.BeaconId = item.BeaconId; _context.beaconItems.Update(beacon); _context.SaveChanges(); return(NoContent()); }
void SetProximity (CLBeacon source, BeaconItem dest) { Proximity p = Proximity.Unknown; switch (source.Proximity) { case CLProximity.Immediate: p = Proximity.Immediate; break; case CLProximity.Near: p = Proximity.Near; break; case CLProximity.Far: p = Proximity.Far; break; } if (p > dest.Proximity || p < dest.Proximity) { dest.ProximityChangeTimestamp = DateTime.Now; } dest.Proximity = p; }
void HandleDidRangeBeacons (object sender, CLRegionBeaconsRangedEventArgs e) { if (e.Beacons.Length > 0) { foreach (var b in e.Beacons) { if (b.Proximity != CLProximity.Unknown) { Console.WriteLine ("UUID: {0} | Major: {1} | Minor: {2} | Accuracy: {3} | Proximity: {4} | RSSI: {5}", b.ProximityUuid, b.Major, b.Minor, b.Accuracy, b.Proximity, b.Rssi); var exists = false; for (int i = 0; i < beacons.Count; i++) { if (beacons [i].Minor.Equals (b.Minor.ToString ())) { beacons [i].CurrentDistance = Math.Round (b.Accuracy, 2); SetProximity (b, beacons [i]); exists = true; } } if (!exists) { var newBeacon = new BeaconItem { Minor = b.Minor.ToString (), Name = "", CurrentDistance = Math.Round (b.Accuracy, 2) }; SetProximity (b, newBeacon); beacons.Add (newBeacon); } } } } }
void RangingBeaconsInRegion(object sender, RangeEventArgs e) { if (e.Beacons.Count > 0) { foreach (var b in e.Beacons) { if ((ProximityType)b.Proximity != ProximityType.Unknown) { var exists = false; for (int i = 0; i < beacons.Count; i++) { if (beacons [i].Minor.Equals (b.Minor.ToString ())) { beacons [i].CurrentDistance = Math.Round (b.Accuracy, 2); SetProximity (b, beacons [i]); exists = true; } } if (!exists) { var newBeacon = new BeaconItem { Minor = b.Minor.ToString (), Name = "", CurrentDistance = Math.Round (b.Accuracy, 2) }; SetProximity (b, newBeacon); beacons.Add (newBeacon); } } } } else { System.Diagnostics.Debug.WriteLine ("!!!!!!!!!!!!!!!!!!!"); System.Diagnostics.Debug.WriteLine ("NO BEACON IN REGION"); System.Diagnostics.Debug.WriteLine ("!!!!!!!!!!!!!!!!!!!"); } }