2016-10-23 6 views
0

私は、Accu-Chek Aviva Connectからデータを収集するiOSアプリケーションを作成しようとしています。 BGメーターとペアに「Accu-Chek Aviva Connect」BGメーターからデータを収集するiOSアプリ。 (Bluetooth低エネルギー)

私はレコードのアクセス制御ポイントの特性に書き込み要求を送信します。

- (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]; 
      } 

     } 
    } 
} 

そしてiPhone上の私は、セキュリティコードを入力するフィールドでUIAlertを参照してください。そして、私はiPhoneとAccu-Chek Aviva Connectとペアリングすることができます。しかし、次回に書き込みリクエストをに送信すると、(デバイスが切断された後)というメッセージが表示されます。「エラー:認証が不十分です」とiPhoneのUIAlertはありません。

私はすべてが間違っていると感じています。

ブルートゥースデバイスのログからレコードを読み込みたいとします。 AFAIU私はRead Record Access Control Point([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デバイスを検出し、読み取りレコードアクセスコントロールポイント特性に値を書き込みます。例えば、要求レコード数:

- (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]; 
      } 

     } 
    } 

これは、アキュチェック画面に表示されたコードを入力するように要求されますiPhone上のUIAlertViewにつながります。あなたがそれをするとき、あなたのiPhoneはAccu-Chek Aviva Connectとのペアが正常にペアリングされます。

今すぐ。 Bluetoothデバイスからすべてのレコードを読みたい場合は、My DataData TransferWireless→Accu-Chekデバイスのペアリングが多い場合は、自分のiPhone名を選択する必要があります。 注: iPhoneでBTデバイスをスキャンし、検出されたデバイスに自動的に接続する必要があります。

Bluetooth接続が確立され、の「エラー:認証が不十分」なしに、iPhoneからBluetoothデバイスへの任意の要求を送信できます。

1

BGメーターへの書き込み要求を発行するには、認証を受ける必要があります。不十分な認証とは、認証されずに要求を発行しようとしていることを意味します。医学的に関連性のある特性に接続して書き込むことはできません。

実際に認証リクエストを発行するかどうかを確認します(PIN入力も必要です)。はいの場合は、PINが拒否されたかどうかを確認します。

関連する問題