Próbowałem utworzyć 128 bit z architekturą iOS CoreBluetooth.Tworzenie identyfikatora UUID o długości 128 bitów za pomocą ciągu znaków
Kod, który pisałem tutaj:
//16Bit Value-String
static NSString * const [email protected]"FFC0";
//Var for 128Bit String
static NSString * ADVERTISING_SERVICE;
//A Base UUID
static NSString * const [email protected]"0405060708090A0B0C0D0E0F";
+ (NSString*) get128BitUUID:(NSString*)uuid{
return [[NSString alloc] initWithFormat:@"0000%@%@",uuid,BASE_UUID];
}
ADVERTISING_SERVICE = [UUIDFuncs get128BitUUID:ADVERTISING_SERVICE_16];
A teraz, gdy próbuję uzyskać UUID z tym:
if([service.UUID isEqual:[CBUUID UUIDWithString:ADVERTISING_SERVICE] ]){
[peripheral discoverCharacteristics:nil forService:service];
}
mi się ten komunikat o błędzie:
2012-09-04 14:18:06.127 blukiiFirmwareTest[3154:707] *** Terminating app due to uncaught
exception 'Invalid UUID string', reason: 'String 0000FFC00405060708090A0B0C0D0E0F
does not represent a valid UUID'
Nie rozumiem, dlaczego; ciąg ma długość 16-bajtowego UUID, to 128-bitowy, więc dlaczego otrzymuję ten błąd?
[UUID] (http://en.wikipedia.org/wiki/Universally_unique_identifier#Definition) to standardowy format, a nie tylko prosty ciąg HexText. – PenguinCoder
Ten sam błąd pojawia się, gdy korzystam z podstawowego identyfikatora UUID Bluetooth. – nivek
@nivek Jak rozwiązałeś ten problem, używając Base UUID takiego jak "1813"? Może to naprawdę dawno temu, ale ja też się z tym spotykam. – Calios