2016-10-23 10 views
0

Accu-Chek Aviva Connect에서 데이터를 수집 할 iOS 응용 프로그램을 만들려고합니다."Accu-Chek Aviva Connect"BG 측정기에서 데이터를 수집하는 iOS 앱입니다. (블루투스 저에너지)

- (void)peripheral:(CBPeripheral *)aPeripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error { 

    if ([service.UUID isEqual:[CBUUID UUIDWithString:@"1808"]]) { 
     for (CBCharacteristic *aChar in service.characteristics) { 

      // Read Glucose Measurement... 

      // Read Glucose Measurement Context... 

      // Read Glucose Feature... 

      // Read Date Time... 

      // Read Record Access Control Point 
      if ([aChar.UUID isEqual:[CBUUID UUIDWithString:@"2A52"]]) { 
       [aPeripheral readValueForCharacteristic:aChar]; 
       [aPeripheral setNotifyValue:YES forCharacteristic:aChar]; 

       uint8_t bytes[] = {0x04, 0x01, 0x00}; 
       NSData *data = [NSData dataWithBytes:(void*)&bytes length:sizeof(bytes)]; 

       [aPeripheral writeValue:data forCharacteristic:aChar type:CBCharacteristicWriteWithResponse]; 
      } 

     } 
    } 
} 

을 그리고 아이폰에 내가 보안 코드를 입력 할 수있는 필드와 UIAlert를 참조하십시오

내가 특성 기록 액세스 제어 지점에 쓰기 요청을 보낼 BG 미터 페어링합니다. 그리고 iPhone을 Accu-Chek Aviva Connect과 페어링 할 수 있습니다. 하지만 다음에 쓰기 요청을 에 보내면 (기기를 연결 해제 한 후) "오류 : 인증이 충분하지 않습니다."과 iPhone의 UIAlert가 없습니다.

나는 모든 일을 잘못한다고 생각합니다.

블루투스 기기의 로그에서 기록을 읽고 싶습니다. AFAIU 읽기 레코드 액세스 제어 지점 ([aPeripheral writeValue:data forCharacteristic:aChar type:CBCharacteristicWriteWithResponse];)에 바이트를 쓰고 대답은 peripheral:didWriteValueForCharacteristic:error:입니다. 그러나 "오류 : 인증이 충분하지 않습니다"이 내 방식에 서기 때문에 나는 그것을 할 수 없습니다!

+0

"인증이 충분하지 않습니다"라는 오류 코드를 게시해야합니다. iOS 또는 기기 자체에서 발생하는지 궁금합니다. 또한 Aviva Connect API는 어디에 설명되어 있습니까? 쉽게 Google 기능을 사용할 수 없습니다 ... –

+0

Accu-Chek에 대한 공식 문서가 없습니다. 하지만 공식 Bluetooth Glucose Service를 사용합니다 : https://www.bluetooth.com/specifications/gatt/viewer?attributeXmlFile=org.bluetooth.service.glucose.xml – MarK

답변

0

아큐 - 첵 비바 연결 작업을하는 방법은 SettingsWirelessPairingPair Device로 이동하여 그것을 처음 페어링입니다. 그러면 숫자 코드와 메시지가있는 화면이 나타납니다. "장치에 코드 입력".

iPhone에서 Accu-Chek 장치를 발견하고 Read Record Access Control Point 특성에 값을 쓰십시오.

- (void)peripheral:(CBPeripheral *)aPeripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error { 

    if ([service.UUID isEqual:[CBUUID UUIDWithString:@"1808"]]) { 
     for (CBCharacteristic *aChar in service.characteristics) { 

      // Read Record Access Control Point 
      if ([aChar.UUID isEqual:[CBUUID UUIDWithString:@"2A52"]]) { 
       [aPeripheral readValueForCharacteristic:aChar]; 
       [aPeripheral setNotifyValue:YES forCharacteristic:aChar]; 

       self.readAccessControlPointCharacteristic = aChar; 

       NSMutableData *mutableData = [NSMutableData data]; 
       uint8_t opCode = 0x04; // Report number of stored records 
       uint8_t operator = 0x01; // All records 

       [mutableData appendData:[NSData dataWithBytes:(void*)&opCode length:sizeof(opCode)]]; 
       [mutableData appendData:[NSData dataWithBytes:(void*)&operator length:sizeof(operator)]]; 

       [aPeripheral writeValue:mutableData forCharacteristic:self.readAccessControlPointCharacteristic type:CBCharacteristicWriteWithResponse]; 
      } 

     } 
    } 

이것은 당신이 아큐 - 첵 화면에 표시되는 코드를 입력하라는 메시지가 아이폰에 UIAlertView에 이르게 예를 들어 레코드 번호를 요청합니다. 당신이 그것을 할 때 귀하의 아이폰은 Accu-Chek Aviva Connect와 함께과 성공적으로 연결됩니다.

지금. 블루투스 장치에서 모든 레코드를 읽으려면 My DataData TransferWireless → Accu-Chek 장치에 많은 페어링이있는 경우 iPhone 이름을 선택해야합니다. 참고 : iPhone에서 BT 장치를 검색하고 발견 된 장치에 자동으로 연결해야합니다.

블루투스 연결이 설정되고 "오류 : 인증이 충분하지 않음"없이 iPhone에서 Bluetooth 장치로 요청을 보낼 수 있습니다.!

1

BG 측정기에 쓰기 요청을하려면 인증을 받아야합니다. 인증이 충분하지 않으면 인증을받지 않고 요청을 발행하려고합니다. 연결하고 의학적으로 적절한 특성을 쓸 수는 없습니다.

실제로 (PIN 입력이 필요한) 인증 요청을 확인하십시오. 그렇다면 PIN이 수락 또는 거부되었는지 확인하십시오.