gpt4 book ai didi

python - 树莓派接收蓝牙数据

转载 作者:太空宇宙 更新时间:2023-11-04 10:25:33 25 4
gpt4 key购买 nike

因此,目前我一直在研究 iOS 应用程序和树莓派之间的接口(interface),其中 pi 通过蓝牙从应用程序接收信息。现在我的应用程序正在运行、连接到 pi 并发送数据。

我遇到的唯一问题是我不知道如何从 pi 读取数据。我正在使用 python 尝试读取数据,只是不知道从哪里开始。蓝牙在什么端口上运行(RPi3)?我将如何连接到该端口以接收输入?

很抱歉提出这样一个模糊的问题,但我似乎找不到任何类似的帮助。

非常感谢!

最佳答案

首先,你必须知道你使用了什么样的特征属性

类型 1:CBCharacteristicPropertyNotify

这样,你必须为特性的服务设置Notify。

例如:

- (void)peripheral:(CBPeripheral *)peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(nullable NSError *)error{

if (error) {
NSlog(@"error:%@",error.localizedDescription);
return ;
}

for (CBCharacteristic *characteristic in service.characteristics) {
if (characteristic.properties & CBCharacteristicPropertyNotify) {
[peripheral setNotifyValue:YES forCharacteristic:characteristic];
}
}

}

类型 2:CBCharacteristicPropertyRead 或其他

这样发送数据成功后必须读取特征值。

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

if (error) {
NSlog(@"error:%@",error.localizedDescription);
return ;
}

if (!(characteristic.properties & CBCharacteristicPropertyNotify)) {
[peripheral readValueForCharacteristic:characteristic];
}
}

之后就可以接收数据了:

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

if (error) {
NSlog(@"error:%@",error.localizedDescription);
return ;
}

NSlog(@"characteristic value = %@",characteristic.value);

uint8_t *data = (uint8_t *)[characteristic.value bytes];
NSMutableString *temStr = [[NSMutableString alloc] init];
for (int i = 0; i < characteristic.value.length; i++) {
[temStr appendFormat:@"%02x ",data[i]];
}
NSlog(@"receive value:%@",temStr);
}

您可能会在此演示中找到一些帮助:https://github.com/arrfu/SmartBluetooth-ios-objective-c

关于python - 树莓派接收蓝牙数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41776915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com