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!!!!!!"); } }
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"); }
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()); }
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)); }
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()); }