接上篇,我们写到了连接蓝牙,之后我们就需要订阅蓝牙的信息了。
订阅蓝牙消息
最后一个参数是一个回调,它会传回三个信息分别是地址、UUID和数据,这个数据是串口通讯中常用的byte[],出于项目需要,我要进行一次数据转换。
/// <summary>
/// 订阅蓝牙消息
/// </summary>
public void SubscribeBluetoothMsg()
{
Show("开始订阅机器人消息!");
BluetoothLEHardwareInterface.SubscribeCharacteristicWithDeviceAddress(bleAddress, _ServiceUUID, _NotifyUUID, delegate { }, OnCharacteristicNotification);
}
数据转换
这部分代码负责将收到的数据转换为16进制字符串信息,并显示在UI上方便观察。
/// <summary>
/// 数据转换
/// </summary>
void OnCharacteristicNotification(string deviceAddress, string characteristicUUID, byte[] data)
{
Show("数据解析");
StringBuilder hex = new StringBuilder(data.Length * 2);
foreach (byte b in data)
{
hex.AppendFormat("{0:x2}", b);
}
string str = hex.T