using MonitoringTechnology.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.Devices.Bluetooth.Advertisement;
using Windows.Devices.Enumeration;
namespace MonitoringTechnology.Ble
{
public static class BleExtensions
{
///
/// 通过 DeviceInformation 获取 MAC 地址
///
///
///
public static string Mac(this DeviceInformation info)
{
return info.Properties["System.Devices.Aep.DeviceAddress"]?.ToString()?.ToUpper();
}
public static string Mac(this BluetoothLEAdvertisementReceivedEventArgs args)
{
ulong address = args.BluetoothAddress;
int len = 6;
byte[] macArr = new byte[len];
for (int i = 0; i < len; i++)
{
macArr[i] = (byte)((address >> ((len - 1 - i) * 8)) & 0xff);
}
//macArr = $"{args.BluetoothAddress:X12}".ToData();
return string.Join(":", macArr.Select(b => $"{b:X2}"));
}
public static string LocalName(this BluetoothLEAdvertisementReceivedEventArgs args)
{
return args.Advertisement.LocalName;
}
public static byte[] MfrData(this BluetoothLEAdvertisementReceivedEventArgs args)
{
foreach (BluetoothLEAdvertisementDataSection section in args.Advertisement.DataSections)
{
if (section.DataType == 0xff)
{
return section.Data.ToBytes();
}
}
return null;
}
//
}
}