private void DeviceWatcher_Received(BluetoothLEAdvertisementWatcher sender, BluetoothLEAdvertisementReceivedEventArgs args) { var tempMac = args.BluetoothAddress.ToString("X"); var regex = "(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})"; var replace = "$1:$2:$3:$4:$5:$6"; var macAddress = Regex.Replace(tempMac, regex, replace); // TODO: Add log advertising data functionality /*var list = args.Advertisement.DataSections; * foreach (BluetoothLEAdvertisementDataSection data in args.Advertisement.DataSections) * { * var dataReader = Windows.Storage.Streams.DataReader.FromBuffer(data.Data); * byte[] raw = new byte[data.Data.Length]; * dataReader.ReadBytes(raw); * string hex = BitConverter.ToString(raw); * * if (data.Data.Length >= 21 && raw[data.Data.Length - 1] == 0x84) * { * Console.WriteLine("Data:"); * Console.WriteLine("DT: " + data.DataType); * * Console.WriteLine(hex); * } * }*/ if (macAddress.Equals(macFilter)) { if (watch.ElapsedMilliseconds > 1000) // Fire event not more than once per second { DeviceFoundEvent?.Invoke(); watch.Restart(); } //Console.WriteLine("Fond" + args.AdvertisementType.ToString()); /*var list = args.Advertisement.DataSections; * foreach (BluetoothLEAdvertisementDataSection data in list) * { * Console.WriteLine("Data"); * } * Console.WriteLine("MAC: " + macAddress); * foreach (Guid uuid in args.Advertisement.ServiceUuids) * { * Console.WriteLine("UUID: " + uuid); * }*/ } }
protected virtual void RaiseDeviceFoundEvent(Cube cube) { // Raise the event in a thread-safe manner using the ?. operator. DeviceFoundEvent?.Invoke(cube); }
public void RaiseDeviceFoundEvent(IChannel channel) { Services.DispatcherServices.Invoke(() => DeviceFoundEvent?.Invoke(this, channel)); }