Aggiungi il servizio di misurazione della frequenza cardiaca a iPhone come periferica

Sto usando Apple BLTE Transfer per emulare l'iPhone come periferica. Il mio objective è simulare un monitor della frequenza cardiaca che utilizza il profilo di misurazione della frequenza cardiaca. (So ​​come generare i dati ma è necessario definire il servizio sul lato periferico)

Ho già un codice sull'altro lato per raccogliere i dati dai cardiofrequenzimetri BLE.

Ho bisogno di alcune indicazioni su come definire il servizio di frequenza cardiaca e le sue caratteristiche (sul lato periferico). Ho anche visto l'uso di UUID di servizi specifici (180D) e alcune caratteristiche UUID (come 2A37 per la misurazione della frequenza cardiaca, 2A29 per il nome del produttore ecc.) Dove ottengo quei numbers? e where sono definiti?

Se avete bisogno di altre informazioni, si prega di avvisare.

Solutions Collecting From Web of "Aggiungi il servizio di misurazione della frequenza cardiaca a iPhone come periferica"

Il servizio di frequenza cardiaca è dettagliato sul portle per sviluppatori Bluetooth . Supponiamo che tu abbia un CBPeripheralManager denominato peripheralManager inizializzato e che tu abbia già ricevuto peripheralManagerDidUpdateState: callback con lo stato CBPeripheralManagerStatePoweredOn . Ecco come è ansible impostare il servizio stesso dopo questo.

 // Define the heart rate service CBMutableService *heartRateService = [[CBMutableService alloc] initWithType:[CBUUID UUIDWithString:@"180D"] primary:true]; // Define the sensor location characteristic char sensorLocation = 5; CBMutableCharacteristic *heartRateSensorLocationCharacteristic = [[CBMutableCharacteristic alloc] initWithType:[CBUUID UUIDWithString:@"0x2A38"] properties:CBCharacteristicPropertyRead value:[NSData dataWithBytesNoCopy:&sensorLocation length:1] permissions:CBAttributePermissionsReadable]; // Define the heart rate reading characteristic char heartRateData[2]; heartRateData[0] = 0; heartRateData[1] = 60; CBMutableCharacteristic *heartRateSensorHeartRateCharacteristic = [[CBMutableCharacteristic alloc] initWithType:[CBUUID UUIDWithString:@"2A37"] properties: CBCharacteristicPropertyNotify value:[NSData dataWithBytesNoCopy:&heartRateData length:2] permissions:CBAttributePermissionsReadable]; // Add the characteristics to the service heartRateService.characteristics = @[heartRateSensorLocationCharacteristic, heartRateSensorHeartRateCharacteristic]; // Add the service to the peripheral manager [peripheralManager addService:heartRateService]; 

Dopodiché dovresti ricevere il peripheralManager:didAddService:error: callback che indica l'aggiunta avvenuta con successo. Dovresti aggiungere il servizio informazioni sul dispositivo (0x180A) in modo simile Infine, dovresti iniziare a fare pubblicità con:

 NSDictionary *data = @{ CBAdvertisementDataLocalNameKey:@"iDeviceName", CBAdvertisementDataServiceUUIDsKey:@[[CBUUID UUIDWithString:@"180D"]]}; [peripheralManager startAdvertising:data]; 

Nota: il servizio di frequenza cardiaca è stato il primo che ho implementato anch'io. Bella scelta. 😉

Tutto ciò che riguarda le specifiche Gatt può essere trovato sul sito degli sviluppatori Bluetooth . Quello che devi fare è fondamentalmente questo:

1.) Imposta il tuo CBPeripheralManager

2.) Dopo l'accensione, creare CBMutableService e CBMutableCharacteristics che corrispondono al servizio Frequenza cardiaca. Pubblicizzali e sarai a posto.