/// <summary>
        /// Parses advertisement data and stores them to a file.
        /// Function is called from the background task.
        /// </summary>
        /// <param name="triggerDetails">Trigger details</param>
        /// <returns></returns>
        public async Task ProcessTriggerDetails(BluetoothLEAdvertisementWatcherTriggerDetails triggerDetails)
        {
            if (triggerDetails != null)
            {
                foreach (var bleAdvertisementReceivedEventArgs in triggerDetails.Advertisements)
                {
                    if(bleAdvertisementReceivedEventArgs.Advertisement != null)
                    {
                        if (bleAdvertisementReceivedEventArgs.Advertisement.DataSections != null)
                        {
                            foreach (var item in bleAdvertisementReceivedEventArgs.Advertisement.DataSections)
                            {
                                bool exit = false;
                                if (bleAdvertisementReceivedEventArgs.RawSignalStrengthInDBm == triggerDetails.SignalStrengthFilter.OutOfRangeThresholdInDBm)
                                    exit = true;

                                SaveBeaconToBeaconEntriesList(item.Data.ToArray(),exit);
                            }
                        }
                    }
                }
            }

            if (_beaconEntries != null && _beaconEntries.Count > 0)
            {
                await WriteEntriesToFileAsync();
            }
        }
Exemple #2
0
        /// <summary>
        /// Parses advertisement data and stores them to a file.
        /// Function is called from the background task.
        /// </summary>
        /// <param name="triggerDetails">Trigger details</param>
        /// <returns></returns>
        public async Task ProcessTriggerDetails(BluetoothLEAdvertisementWatcherTriggerDetails triggerDetails)
        {
            if (triggerDetails != null)
            {
                foreach (var bleAdvertisementReceivedEventArgs in triggerDetails.Advertisements)
                {
                    if (bleAdvertisementReceivedEventArgs.Advertisement != null)
                    {
                        if (bleAdvertisementReceivedEventArgs.Advertisement.DataSections != null)
                        {
                            foreach (var item in bleAdvertisementReceivedEventArgs.Advertisement.DataSections)
                            {
                                bool exit = false;
                                if (bleAdvertisementReceivedEventArgs.RawSignalStrengthInDBm == triggerDetails.SignalStrengthFilter.OutOfRangeThresholdInDBm)
                                {
                                    exit = true;
                                }

                                SaveBeaconToBeaconEntriesList(item.Data.ToArray(), exit);
                            }
                        }
                    }
                }
            }

            if (_beaconEntries != null && _beaconEntries.Count > 0)
            {
                await WriteEntriesToFileAsync();
            }
        }
 /// <summary>
 /// Constructs Beacon instances from the trigger data and adds recognized beacons to the _beacons list.
 /// </summary>
 private List<Beacon> TriggerDetailsToBeacons(BluetoothLEAdvertisementWatcherTriggerDetails triggerDetails)
 {
     List<Beacon> beacons = new List<Beacon>(); 
     if (triggerDetails != null)
     {
         foreach (var bleAdvertisementReceivedEventArgs in triggerDetails.Advertisements)
         {
             Beacon beacon = BeaconFactory.BeaconFromBluetoothLeAdvertisementReceivedEventArgs(bleAdvertisementReceivedEventArgs);
             beacons.Add(beacon);
         }
     }
     return beacons;
 }
        /// <summary>
        /// Constructs Beacon instances from the trigger data and adds recognized beacons to the _beacons list.
        /// </summary>
        private List <Beacon> TriggerDetailsToBeacons(BluetoothLEAdvertisementWatcherTriggerDetails triggerDetails)
        {
            List <Beacon> beacons = new List <Beacon>();

            if (triggerDetails != null)
            {
                foreach (var bleAdvertisementReceivedEventArgs in triggerDetails.Advertisements)
                {
                    Beacon beacon = BeaconFactory.BeaconFromBluetoothLeAdvertisementReceivedEventArgs(bleAdvertisementReceivedEventArgs);
                    beacons.Add(beacon);
                }
            }
            return(beacons);
        }
 /// <summary>
 /// Constructs Beacon instances from the trigger data and adds recognized beacons to the _beacons list
 /// </summary>
 /// <param name="triggerDetails"></param>
 private void TriggerDetailsToBeacons(BluetoothLEAdvertisementWatcherTriggerDetails triggerDetails)
 {
     if (triggerDetails != null)
     {
         foreach (var bleAdvertisementReceivedEventArgs in triggerDetails.Advertisements)
         {
             Beacon beacon = BeaconFactory.BeaconFromBluetoothLEAdvertisementReceivedEventArgs(bleAdvertisementReceivedEventArgs);
             _beacons.Add(beacon);
         }
     }
 }