BLEを使用してAndroidアプリケーションを開発しています。このアプリケーションの要件は、特定のハードウェアの電圧変動をさまざまな入力で更新することです。Android BLE:メッセージの長さの問題
私は文字を8ビット入力としてBLEに書き込みます。各ビット値はそれ自身の表現を含む。各要求に基づいて、ハードウェアは応答し、さまざまな出力の組み合わせを提供します。出力には24バイトの情報が含まれています。各バイト位置は異なる値を表します。例:位置1 & 2は電流を表し、3 &は電圧などを表します。 ここで私の問題は4つの部分の出力です。各メッセージには6バイトが含まれます。単一のメッセージで同じものを取得することは可能ですか?
実装
public void writeCharacteristic(BluetoothGattCharacteristic characteristic) {
if (mBluetoothAdapter == null || mBluetoothGatt == null) { //Check that we have access to a Bluetooth radio
Log.w(TAG, "BluetoothAdapter not initialized");
return;
}
int test = characteristic.getProperties(); //Get the properties of the characteristic
if ((test & BluetoothGattCharacteristic.PROPERTY_WRITE) == 0 && (test & BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE) == 0) { //Check that the property is writable
return;
}
DebugLogs.writeToFile("BLE MODULE Before Write " + characteristic);
if (mBluetoothGatt.writeCharacteristic(characteristic)) { //Request the BluetoothGatt to do the Write
Log.v(TAG, "****************WRITE CHARACTERISTIC SUCCESSFULL**" + characteristic); //The request was accepted, this does not mean the write completed
DebugLogs.writeToFile("BLE MODULE AFTER Write SUCCESS " + characteristic);
} else {
Log.d(TAG, "writeCharacteristic failed"); //Write request was not accepted by the BluetoothGatt
DebugLogs.writeToFile("BLE MODULE AFTER Write FAIL " + characteristic);
}
}
と応答特性データ }
ご回答ありがとうございます。 – Nithinjith
私は、BLE仕様では最大512バイトの特性が許されていると思いますが、20バイトの制限があるか、それともアンドロイド固有の制限があるのかを指定セクションに指摘できますか? –
私はMTUサイズを変更した場合に大きなパケットを得ることができると考えていますが、両方のデバイスがそれをサポートできる場合に限ります。また、私は、MTUを増やすだけで、その場でより多くのパケットに分割することができると思います。 [ここにはいくつかの情報があります](https://community.nxp.com/thread/332030)と[こちらはMTUを変更するためのアンドロイド仕様です](https://developer.android.com/reference/android/ bluetooth/BluetoothGatt.html#requestMtu%28int%29) – Seth