protected virtual void HandleRanging(object sender, BeaconManager.RangingEventArgs e) { // IEnumerable<Beacon> beacons = from item in e.Beacons // let uuid = item.ProximityUUID // where uuid.Equals(EstimoteBeacons.EstimoteProximityUuid, StringComparison.OrdinalIgnoreCase) || // uuid.Equals(EstimoteBeacons.EstimoteIosProximityUuid, StringComparison.OrdinalIgnoreCase) // select item; BeaconsFound(this, new BeaconsFoundEventArgs(e.Beacons)); }
protected virtual void HandleRanging(object sender, BeaconManager.RangingEventArgs e) { var filteredBeacons = (from item in e.Beacons let uuid = item.ProximityUUID where uuid.Equals(EstimoteBeacons.EstimoteProximityUuid, StringComparison.OrdinalIgnoreCase) || uuid.Equals(EstimoteBeacons.EstimoteIosProximityUuid, StringComparison.OrdinalIgnoreCase) select item).ToList(); BeaconsFound(this, new BeaconsFoundEventArgs(filteredBeacons)); }
private async void OnRanging(object sender, BeaconManager.RangingEventArgs e) { Log.Debug("demo", "IN Ranging " + e.Beacons.Count); if (e.Beacons.Count > 0) { Log.Debug("demo", "List > 0"); foreach (Beacon beacon in e.Beacons) { _proximity = ComputeProximity(beacon); if (_proximity != Proximity.Unknown) { _distance = ComputeAccuracy(beacon); //If distance is valid and (less than current distance or current beacon is null) update current beacon if (_distance > -1 && ((_distance < _currentBeaconDistance) || _currentBeacon == null)) { _currentBeaconDistance = _distance; _currentBeacon = beacon; switch (beacon.Major) { case 1564: _lastActiveTimeRegion1 = DateTime.Now.Ticks; break; case 15212: _lastActiveTimeRegion2 = DateTime.Now.Ticks; break; case 26535: _lastActiveTimeRegion3 = DateTime.Now.Ticks; break; } } //If distance is valid and beacon major is same as current beacon's major, update current beacon distance if (_distance > -1 && (beacon.Major == _currentBeacon.Major)) { _currentBeaconDistance = _distance; Log.Debug(Constants.TAG, "updating current beacon"); if (!isUnlockInProgress) { await UnLockMessagesAsync(_currentBeacon.Major).ConfigureAwait(false); } } } } } }
protected virtual void HandleRanging(object sender, BeaconManager.RangingEventArgs e) { // major, minor, xpos, ypos BeaconOnMap[] mapBeacons = new BeaconOnMap[8]; getMapBeacons(ref mapBeacons); // distanceInMeters * ratio = distanceInPixels const int ratio = 43; Log.Debug(TAG, "Found {0} beacons.", e.Beacons.Count); foreach (Beacon b in e.Beacons) { Log.Debug(TAG, "major: {0}, minor: {1}, distance: {2}", b.Major, b.Minor, Utils.ComputeAccuracy(b)); } BeaconsFound(this, new BeaconsFoundEventArgs(e.Beacons)); if (e.Beacons.Count < 3) { return; } BeaconOnMap[] b3 = new BeaconOnMap[3]; int[] dist = new int[3]; getClosest3BeaconsOnMap(ref b3, ref dist, e.Beacons, mapBeacons, ratio); Position pos = intersectThreeCircles(b3[0].getPosition(), dist[0], b3[1].getPosition(), dist[1], b3[2].getPosition(), dist[2]); //Log.Debug(TAG, "{0}", canvas.ActualHeight); if (pos.getX() != 0 && pos.getY() != 0) { Map.drawPointOnMap(pos.getX(), pos.getY()); } Log.Debug(TAG, pos.ToString()); // IEnumerable<Beacon> beacons = from item in e.Beacons // let uuid = item.ProximityUUID // where uuid.Equals(EstimoteBeacons.EstimoteProximityUuid, StringComparison.OrdinalIgnoreCase) || // uuid.Equals(EstimoteBeacons.EstimoteIosProximityUuid, StringComparison.OrdinalIgnoreCase) // select item; }
void BeaconManagerRanging(object sender, BeaconManager.RangingEventArgs e) { if (e.Beacons == null) { SetBeaconText(false); return; } bool close = false; foreach (var beacon in e.Beacons) { var proximity = Utils.ComputeProximity(beacon); if (proximity != Utils.Proximity.Unknown) { close = true; } if (proximity != Utils.Proximity.Immediate) { continue; } var accuracy = Utils.ComputeAccuracy(beacon); if (accuracy > .06) { continue; } ViewModel.CheckBeacon(beacon.Major, beacon.Minor); if (e.Region.Major.ToString() != secretRegion.Major.ToString()) { SetBeaconText(close); } } }