Преобразование данных с устройства Bluetooth в читаемую строку

#swift #core-bluetooth

#swift #ядро-bluetooth

Вопрос:

Я получаю серию данных с устройства Bluetooth, данные поступают в байтах, и, поскольку я новичок, я не знаю, как сделать это читаемой строкой

 public func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
  let value: Data = characteristic.value!


  if let str = String(data: value, encoding: .utf8) {
     print(str)
  }
  

}

здесь, в консоли, у меня есть

 p characteristic.value
(Data?) $R0 = 182 bytes
  

с String(data: value, encoding: .utf8) я получаю что-то вроде этого:

 pGrIrIpGsIqGoFoEoEoEoEoEpEpEoCoCpCqEqEqEqEqEqEpCpGpGpFpGoFoEnEnEnEnEpFpFpFpFpFpFpFqFpFpFnDm
  

Кто-нибудь может мне помочь, как сделать его читабельным?

Комментарии:

1. Какие данные вы получаете; что они представляют? Какой код вы используете для его получения?

2. Вы имеете какое-либо представление о том, что это такое? строка (даже если в формате JSON), изображение, видео… Вместе с кодом, запрошенным у undescore_d, было бы полезно узнать, с какого типа устройства вы его получаете (автомобильный Bluetooth, камера, air pods, ноутбук ….)

3. Это устройство для мониторинга сердечного ритма, я должен получить необработанные данные, но я не знаю, какова точная структура

4. Я полагаю, что это поток «необработанных» чисел, а не строка символов, представляющих числа. Я предполагаю, что на обновление приходится 2 байта, и поскольку для измерения частоты сердечных сокращений субъекта, по-видимому, не требуется 2 байта (не более 255 ударов в минуту) … вероятно, один из этих байтов представляет какое-то другое измерение (измеряет ли оно что-нибудь еще?) или какой-то код состояния. Но на самом деле, не зная, о какой конкретной модели устройства идет речь, на этот вопрос все равно нельзя ответить без догадок. Даже если модель была известна, у нее могло не быть документов, доступных для ее использования без официального драйвера. Если это произойдет, поищите их.

5. Какой характерный UUID вы используете?