0

Android Nexus 5X アプリを NRF51 チップで動作させようとしていますが、特に特性への書き込みでいくつかの問題に直面しています。助けてもらえることを本当に願っています。

アプリを使用して nrf にリアルタイム クロック (RTC) を設定しようとしています。GATT サービスの特性について私に提供された詳細は次のとおりです。

プロパティ: 読み取り - 必須、書き込み - 必須、WriteWithoutResponse - 除外、SignedWrite - 除外、通知 - 除外、指示 - 除外、書き込み可能な補助 - 除外、ブロードキャスト - 除外。

セキュリティ: ENC_NO_MITM

記述子: なし

nrf に接続した後、「onServiceDiscovered()」の実装は次のようになります。「conCharacteristicRead()」の呼び出しにつながる readCharacteristic を実行できましたが、writeCharacteristic() は失敗しました。ガイダンスをいただければ幸いです。どうもありがとう!

public void onServicesDiscovered(BluetoothGatt gatt, int status) {

   // Get the characteristic 
   BluetoothGattCharacteristic loggingRTCCharacteristic = gatt.getService(loggingServiceUUID).getCharacteristic(loggingRTCControlPointCharacteristicUUID);
    // Read characteristic (which succeeded, as onReadCharacteristic is invoked)
    boolean successFlag = gatt.readCharacteristic(loggingRTCCharacteristic);

    // Check for success. 

    // Set a plausible timestamp.
    int year_lsb = 221; int year_msb = 7;
    int month = 3;
    int dayOfMonth = 4;
    int dayOfWeek = 7;
    int hour = 9;
    int min = 3;
    int sec = 15;

    byte[] timeStamp = {(byte)year_lsb, (byte)year_msb, (byte)month, (byte)dayOfMonth, (byte)dayOfWeek, (byte)hour, (byte)min, (byte)sec};

   logingRTCCharacteristic.setWriteType(BluetoothGattCharacteristic.WRITE_TYPE_DEFAULT);

    // This returns a failure. The onCharacteristicWrite() function is not invoked either.
    successFlag = gatt.writeCharacteristic(loggingRTCCharacteristic); }
4

2 に答える 2