Ejemplo n.º 1
0
        private async void PackageReceived(IBluetoothAdvertisementPackage args)
        {
            try
            {
                await RunWithDispatcher(() => { _data.Received++; });

                if (_isBusy)
                {
                    await RunWithDispatcher(() => { _data.Dropped++; });

                    Debug.WriteLine($"A Package was Dropped {_data.Dropped} from {_data.Received} ({_data.Dropped * 100.0 / (1.0 * _data.Received) }%)");
                    return;
                }

                var beacon = BeaconBuilder.CreateBeaconDeviceFromBleAdvertisement(args);

                if (beacon.NumberOfPackages() == 0)
                {
                    return;
                }

                if (beacon.RssiOutOfRange())
                {
                    return;
                }

                InsertOrReplaceBeaconInCollection(beacon);
            }
            catch (Exception e)
            {
                Debug.WriteLine("Unknown ERROR!!!!!!");
            }
        }
Ejemplo n.º 2
0
        public void TestCreateBeacon()
        {
            var dateTimeOffset = new DateTimeOffset();

            var beacon = BeaconBuilder.CreateBeacon(new BluetoothAdvertisementPackage
            {
                BluetoothAddress       = BluetoothAddress,
                RawSignalStrengthInDBm = Rssi,
                Timestamp = dateTimeOffset
            });

            Assert.AreEqual(dateTimeOffset, beacon.Timestamp, "Copying Timestamp from Advertisement");
            Assert.AreEqual(BluetoothAddress, beacon.BluetoothAddress, "Copying Bluetooth Address from Advertisement");
            Assert.AreEqual(Rssi, beacon.Rssi, "Copying RSSI from Advertisement");
        }
Ejemplo n.º 3
0
        public void TestCreateBeaconDeviceFromBleAdvertisementWithClassicalPackageInvalidData()
        {
            var dateTimeOffset       = new DateTimeOffset();
            var advertisementPackage = CreateAdvertisementPackage(dateTimeOffset);


            var beacon =
                BeaconBuilder.CreateBeaconDeviceFromBleAdvertisement(advertisementPackage);

            AddManufacturerDataInvalidData(advertisementPackage);
            BeaconBuilder.AddPackagesFromManufacturerSection(advertisementPackage, beacon);



            Assert.AreEqual(0, beacon.NumberOfPackages());
        }
Ejemplo n.º 4
0
        public void TestCreateBeaconDeviceFromBleAdvertisementWithClassicalPackage()
        {
            var dateTimeOffset       = new DateTimeOffset();
            var advertisementPackage = CreateAdvertisementPackage(dateTimeOffset);

            var beacon =
                BeaconBuilder.CreateBeaconDeviceFromBleAdvertisement(advertisementPackage);

            AddManufacturerDataValidData(advertisementPackage);
            BeaconBuilder.AddPackagesFromManufacturerSection(advertisementPackage, beacon);
            var firstPackage = beacon.Packages.GetPackages().FirstOrDefault();


            Assert.AreEqual(1, beacon.NumberOfPackages());
            Assert.IsInstanceOfType(firstPackage, typeof(ClassicBeaconPackage));
        }
Ejemplo n.º 5
0
        public void TestCreateBeaconDeviceFromBleAdvertisement()
        {
            var dateTimeOffset       = new DateTimeOffset();
            var advertisementPackage = CreateAdvertisementPackage(dateTimeOffset);

            var beacon =
                BeaconBuilder.CreateBeaconDeviceFromBleAdvertisement(advertisementPackage);

            Assert.AreEqual(0UL, beacon.TimeSinceLastPacketReceivedInSec);
            Assert.AreEqual(1UL, beacon.ReceivedTimes);
            Assert.AreEqual(BluetoothAddress, beacon.BluetoothAddress);
            Assert.AreEqual(Rssi, beacon.Rssi);
            Assert.AreEqual(dateTimeOffset, beacon.Timestamp);
            Assert.AreEqual(0, beacon.NumberOfPackages());
            Assert.AreEqual(false, beacon.RssiOutOfRange());
        }