Я открыл следующие входные и выходные потоки блютус с помощью внешних устройств Framework от Apple:проблемы с выходным потоком ... исходные данные и нечетный вывод. что я сделал не так?
session = [[EASession alloc] initWithAccessory:acc forProtocol:protocol];
if (session){
[[session inputStream] setDelegate:self];
[[session inputStream] scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[[session inputStream] open];
[[session outputStream] setDelegate:self];
[[session outputStream] scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[[session outputStream] open];
}
Я пишу это так:
uint8_t aByte[] = {0x02, 0x06, 0x04};
[[session outputStream] write:aByte maxLength:4];
NSLog(@"%d", aByte[2]);
Я чтение из него, как это :
case NSStreamEventHasBytesAvailable:
NSLog(@"NSStreamEventHasBytesAvailable");
uint8_t readBuf[128];
memset(readBuf, 0, sizeof(readBuf));
NSInteger numberRead = [[session inputStream] read:readBuf maxLength:3];
if(numberRead < 0){
NSError *error = [[session inputStream] streamError];
NSLog(@"%@", [error localizedDescription]);
}
else if (numberRead > 0) {
NSLog(@"numberRead: %d", numberRead);
NSLog(@"readBuf: %s", readBuf);
}
else{
break;
}
break;
я должен получить назад от устройства «АА4», потому что он посылает меня два алфавитных символов следуют 3 байта, который был s к нему в последнем событии потока. На ЖК-экране устройства сообщается, что он получил 2 а 4 и 6. И сообщается, что он отправил A и A и 4. Но «NSLog (@« readBuf:% s », readBuf); " всегда печатает:
AA + a upside question mark//(can't seem to copy and paste that symbol from xcode)
У кого-нибудь есть идеи о том, что я сделал неправильно?
Спасибо!