Как читать информацию с основного устройства bluetooth

Я работаю над базовым Bluetooth-приложением iOS, я могу подключиться к устройству BLE с помощью iPad3. Я могу добраться до блока didDiscoverServices, но не могу перейти отсюда.

Мои вопросы:

  • Как читать характеристики с устройства Bluetooth?
  • Как я могу прочитать другую информацию о устройстве Bluetooth?

Помогите мне в этом или предложите любое предложение.

Спасибо Wilhelmsen за ответ.

Я получил следующее из упомянутого блока:

[0] - Service : <CBConcreteService: 0x1769a0> UUID: Generic Attribute Profile
[1] - Service : <CBConcreteService: 0x174470> UUID: Generic Access Profile
[2] - Service : <CBConcreteService: 0x1744e0> UUID: Unknown (<00005301 00000041 4c505749 53450000>)

Characteristic

[0] - Characteristic : <CBConcreteCharacteristic: 0x15d410> UUID: Service Changed

[0] - Characteristic : <CBConcreteCharacteristic: 0x1805b0> UUID: Device Name
[1] - Characteristic : <CBConcreteCharacteristic: 0x1806a0> UUID: Appearence

[0] - Characteristic : <CBConcreteCharacteristic: 0x183810> UUID: Unknown (<00004301 00000041 4c505749 53450000>)
[1] - Characteristic : <CBConcreteCharacteristic: 0x1838a0> UUID: Unknown (<00004302 00000041 4c505749 53450000>)

Теперь, как получить точные значения из этой характеристики в файле didUpdateValueForCharacteristic?

Ответ 1

Хорошо прочитайте рамку. если вы зашли так далеко, у вас не должно возникнуть проблемы с обнаружением "DiscoverCharacteristics" и обратным вызовом периферийного делегата "didDiscoverCharacteristic". Вам нужно знать UUID о сервисах и характеристиках, которые вы хотите открыть, и применять их к этим методам.

Затем вы можете прочитать "readValueForCharacteristic" и обратный вызов делегата "didUpdateValueForCharacteristic".

Это отправляется с моего телефона, поэтому я, возможно, немного отредактирую, когда попаду на компьютер. Надеюсь, что это поможет.

Новый вопрос:

[connectedPeripheral readValueForCharacteristic:wantedCharacteristic] 

и на периферийном делегате

- (void) peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error{

NSLog(@"Characteristic value : %@ with ID %@", characteristic.value, characteristic.UUID);
[delegate characteristicValueRead:characteristic.value];
}

работает для меня

Ответ 2

Вы можете получить значение характеристики

 NSString *value = [[NSString alloc] initWithData:characteristic.value encoding:NSUTF8StringEncoding];

NSLog(@"Value %@",value);

Ответ 3

Просто используйте https://github.com/LGBluetooth/LGBluetooth

    [LGUtils readDataFromCharactUUID:@"f045"
                          seriveUUID:@"5ec0"
                          peripheral:peripheral
                          completion:^(NSData *data, NSError *error) {
                              NSLog(@"Data : %s Error : %@", (char *)[data bytes], error);
                          }];