问题 如何从核心蓝牙设备读取信息


我正在开发iOS核心蓝牙应用程序,我可以使用iPad3连接BLE设备。我能够到达街区 didDiscoverServices,但无法从这里继续。

我的问题是;

  1. 如何从蓝牙设备读取特性?
  2. 如何阅读蓝牙设备的其他信息?

帮助我或提供任何建议。

谢谢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块中获取此特征的确切值?


11826
2017-07-18 11:57


起源

我编辑了我的答案,但你应该在旧问题解决后创建一个新问题,而且我不太了解你在更新的问题上想要提出的问题 - chwi


答案:


通过框架好好阅读。如果你到目前为止,你应该没有任何问题找到'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];
}

适合我


12
2017-07-21 23:02



感谢您的回复。 :) - Lalit Paliwal
我已经编辑了这个帖子,请让我知道这个.... - Lalit Paliwal
我正在变得有特色。值= <6fb51600 30cd660e 8c170800>。我怎样才能从中获得准确的价值? - Lalit Paliwal
这是你打印它的方式。尝试 NSLog(@"value = %@", characteristic.value); 因为我认为你会得到一个十六进制格式的字符串作为输出。你也可以试试%x - chwi
谢谢Wilhelmsen的回复。会尝试并让你知道。 :) - Lalit Paliwal


你可以获得一个特征的价值

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

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

2
2017-08-09 05:01





只是用 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);
                          }];

0
2018-02-15 09:11



你能帮忙用LGBluetooth !!!我正在尝试在charact上写数据。但没有运气它总是说“写错了数据:未知错误” - M.Alatrash
尝试在完成块中设置断点,并打印错误对象 - l0gg3r
谢谢,我是以错误的方式发送数据:) - M.Alatrash
网页不可用。 - Bill Cheswick
@BillCheswick试试 github.com/LGBluetooth/LGBluetooth - l0gg3r