Как получить данные из CBCharacteristics? - PullRequest
0 голосов
/ 01 апреля 2020

enter image description here

Может кто-нибудь помочь мне извлечь данные из поля значения в

Я хочу просто показать байтовые данные. Считайте метод

            public async Task<NSData> ReadValue(CBPeripheral peripheral, CBCharacteristic characteristic)
    {
        BTProgressHUD.Show("Loading...", 1000, ProgressHUD.MaskType.Gradient);
        var taskCompletion = new TaskCompletionSource<bool>();
        var task = taskCompletion.Task;
        EventHandler<CBCharacteristicEventArgs> handler = (s, e) =>
        {
            if (e.Characteristic.UUID?.Uuid == characteristic.UUID?.Uuid)
            {
               // e.Characteristic.Value = characteristic.Value;
                taskCompletion.SetResult(true);
            }
        };

        try
        {
            peripheral.UpdatedCharacterteristicValue += handler;
            System.Threading.Thread.Sleep(900);

            peripheral.ReadValue(characteristic);

            BTProgressHUD.Dismiss();
            await Task.Delay(200);

            return characteristic.Value;

        }
        finally
        {

//, чтобы получить обновленное значение характеристики.

            peripheral.UpdatedCharacterteristicValue -= handler;
            BTProgressHUD.Dismiss();
        }
    }

1 Ответ

0 голосов
/ 01 апреля 2020

Вы можете преобразовать его в строку

var value = characteristic.Value;
NSString dataValue = NSString.FromData(value, NSStringEncoding.UTF8);
...