Создать 128бит UUID с строку
Я попытался создать 128Bit с iOS CoreBluetooth framework.
код, который я написал здесь:
//16Bit Value-String
static NSString * const ADVERTISING_SERVICE_16=@"FFC0";
//Var for 128Bit String
static NSString * ADVERTISING_SERVICE;
//A Base UUID
static NSString * const BASE_UUID=@"0405060708090A0B0C0D0E0F";
+ (NSString*) get128BitUUID:(NSString*)uuid{
return [[NSString alloc] initWithFormat:@"0000%@%@",uuid,BASE_UUID];
}
ADVERTISING_SERVICE = [UUIDFuncs get128BitUUID:ADVERTISING_SERVICE_16];
и теперь, когда я пытаюсь получить UUID с этого:
if([service.UUID isEqual:[CBUUID UUIDWithString:ADVERTISING_SERVICE] ]){
[peripheral discoverCharacteristics:nil forService:service];
}
Я получаю это сообщение об ошибке:
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'
Я не понимаю, почему; строка длиной 16 байт UUID, это 128 бит, так почему я получаю эту ошибку?
1 ответов
в командной строке введите uuidgen
чтобы создать новый случайный uuid:
0C50D390-DC8E-436B-8AD0-A36D1B304B18
вы увидите, что это форма 8-4-4-4-12, как указано на странице Википедии, связанной @PenguinCoder тоже.
создание CBUUID
со строкой в этом формате будет работать:
CBUUID *uuid = [CBUUID UUIDWithString:@"0C50D390-DC8E-436B-8AD0-A36D1B304B18"];