gpt4 book ai didi

ios - 无法将数据写入硬件外围设备

转载 作者:行者123 更新时间:2023-12-01 19:05:58 25 4
gpt4 key购买 nike

我正在使用CoreBlueTooth API将数据写入我们从某硬件制造公司收到的外围设备中。根据规范,他们给了我们很多特性UUID,可以将数据写入其中。一旦我们想完成,就需要在其中一个特征中写入0。现在的问题是,当我尝试发送String / Integer并将其转换为NSData时,它不起作用。我想我需要以那些可写的特征发送字节流。有人可以帮我吗,在发送前我如何将NSString和NSNumber数据转换为字节流。以下是我尝试使用的转换代码:

- (void)writeCharactersticData:(NSDictionary *)iData toPeripheral:(CBPeripheral *)iPeripheral {
NSArray *charactersticsIDs = [NSArray arrayWithArray:iData.allKeys];
self.writeCharactersticsCount = charactersticsIDs.count;

for (CBUUID *uuid in charactersticsIDs) {
if (self.peripheralCharacterstics[uuid]) {



NSData *payload;

if ([iData[uuid] isKindOfClass:[NSNumber class]]) {
NSInteger data = ((NSNumber *)iData[uuid]).integerValue;
// int integerSize = sizeof(data);
//
// uint8_t bytes[integerSize];
//
//
// NSLog(@"Integer data = %d", data);
//
// int8_t tx = (int8_t)data;
// bytes[0] = tx;
// payload = [NSData dataWithBytes:bytes length:sizeof(data)];

payload = [NSData dataWithBytes:&data length:sizeof(data)];
} else if ([iData[uuid] isKindOfClass:[NSString class]]) {

int stringSize = sizeof(iData[uuid]);
uint8_t bytes[stringSize];
NSScanner *scanner = [NSScanner scannerWithString:iData[uuid]];

for (int i=0; i<stringSize; i++) {
unsigned int value;
[scanner scanHexInt:&value];
bytes[i] = (uint8_t)value;
}

payload = [NSData dataWithBytes:bytes length:stringSize];
// payload = [iData[uuid] dataUsingEncoding:NSUTF8StringEncoding];
}

[self.discoveredPeripheral writeValue:payload forCharacteristic:self.peripheralCharacterstics[uuid] type:CBCharacteristicWriteWithResponse];
}
}
}

最佳答案

这不是您在此处遇到的基于蓝牙的核心问题。

对于调试,您可以使用

NSLog(@"%@", payload);

对于将字符串转换为NSData的方法,您的方法似乎非常复杂。我会建议一些简单的东西
NSData* payload = [iData[uuid] dataUsingEncoding:NSUTF8StringEncoding];
if (payload.length > 20)
{
// handle error. most LE peripherals don't support longer values.
}

另一个错误可能是您在写入值时将ASCII 0 '0'与二进制零 '\0'混合在一起。

关于ios - 无法将数据写入硬件外围设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19597056/

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