2014-12-31 2 views
2

배터리 상태가 변경되면 여러 개의 BLE 장치가 각각 '알림'으로 연결되어 있습니다.알리는 BLE 장치 확인

상태 변경이 통보 된 후 데이터를 읽을 때 어떤 BLE가 알리는 지 어떻게 식별 할 수 있습니까?

// Instance method to get the battery state 
- (void) getBattery:(CBCharacteristic *)characteristic 
{ 
    //---------------- 
    NSLog(@"getBattery"); 
    //---------------- 
    { 
     // Get the Battery Data 
     NSLog(@"Battery Level is : %@ (HEX)" , characteristic.value); 
    } 
} 

이 당신의 대답에 대한

감사합니다 ...에 통보 할 때 데이터를 읽는 코드입니다,하지만 난 단지에서 알리기 위해 마지막 서비스 설정에서 데이터를 수신하고있어이 나타납니다. 다음은 알림에 대한 호출 코드입니다.

안녕하세요. 데이터가 변경된시기를 알리는 장치를 식별 할 수 있습니다.

그러나 내 코드는 확인 된 마지막 특성에서 데이터를 통지하고 수집하는 것으로 보입니다. 여기

이 호출 코드는 다음과 주연이 값이 변경되었다는 통지를 보낼 때

- (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error 
{ 

// Retrieve the characteristic value for battery 
if ([characteristic.UUID isEqual:[CBUUID UUIDWithString:SR1_DEVICE_BATTERY_LEVEL_SERVICE_UUID]]) { 
[self getBattery:characteristic]; 
} 
} 

답변

1

상기 CBPeripheralDelegatedidUpdateValueForCharacteristic 방법은 호출된다. 이 방법에는 CBPeripheral에 대한 참조가 포함됩니다. 이 방법에서 얻는 방법을 getBattery 방법으로 나타내지는 않지만 할 때 주변 장치를 통과해야합니다.

CBPeripheral *p=characteristic.service.peripheral; 
-

또한 CBCharacteristic의 서비스 속성의 주변 속성을 참조 할 수 있습니다

관련 문제