接続してAndroidからデータを読み書きするCC2540チップを搭載したデバイスを持っています。
デバイスが検出され、接続できますが、読み取りコマンドを送信しようとすると、次の場所にステータス= 10が表示されます。
public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status)
私は「BLEセンサータグ」のソースコードを使用し、UUIDを自分のものに変更しました-同じ結果が得られます
Google Playの「BLEデバイスモニター」アプリを使用しました-同じ結果が得られます(スクリーンショットが添付されています)
私の質問は次のとおりです。
「ステータス= 10」の意味は何ですか?
それはどこから来たのですか?チップ?アンドロイド?
どのようにデバッグできますか?
私はiPhoneデバイスを持っていて、それはうまくいきます...
回答:
回答№1は1「ステータス= 10」の意味は何ですか?
BLEデバイスモニターのソースにアクセスできないため、実際には何でもかまいません。一般的なGATTプロファイルステータスコードを見つけることができます こちら(BluetoothGatt)
TIの「BleSensorTag」ソースの例を実行すると、同じエラーコードが表示されますか?
それはどこから来たのですか?チップ?アンドロイド? どうすればデバッグできますか?
それがAndroidです BluetoothGattCallback() 関数は、アクセスするチップから解釈します BluetoothAdapter.
「BleSensorTag」ソースコードに焦点を当てることをお勧めします。 ステータスコードについては、
private BluetoothGattCallback mGattCallbacks = new BluetoothGattCallback()
"BluetoothLeService.java"の#82行について。それはあなたがステータスコードとそれらに上書きされたコールバックを取得する場所です Bluetoothデバイス オブジェクト "s connectGatt() 方法。
mBluetoothGatt = device.connectGatt(this, false, mGattCallbacks)
また、BLEパケットがTIを使用して正しい形式であることを確認します スニファー 可能なら。そうでない場合は、何が出力されるかをデバッグすることもできます。 BluetoothAdapter.LeScanCallback
再び「BleSensorTag」で見つけます public void onLeScan(final BluetoothDevice device, final int rssi, byte[] scanRecord)
MainActivity.javaのメソッド。そして変化する。
public void onLeScan(final BluetoothDevice device, final int rssi, byte[] scanRecord) {
runOnUiThread(new Runnable() {
public void run() {
// Filter devices
に:
public void onLeScan(final BluetoothDevice device, final int rssi, byte[] scanRecord) {
final byte[] scanRecordStream = scanRecord;
runOnUiThread(new Runnable() {
public void run() {
// Filter devices
Log.i(TAG, "scanRecord:" + Conversion.BytetohexString(scanRecordStream, scanRecordStream.length));
残りは同じで、logcatにバイトストリームが表示されます。
[編集] こちらが LE汎用パケット構造 Core Bluetooth Spec V4.0に準拠
以下は、BLEパケットバイトの例です。構造、それを例として追加しました。コンソールにログを記録し、参照として使用するものがある場合に、パケットの長さを比較したい場合があります。
BLEアドバタイズパケットは、一般的な形式であることが期待できます。
02 01 06 1A FF 4C 00 02 15: iBeacon prefix (fixed)
B9 40 7F 30 F5 F8 46 6E AF F9 25 55 6B 57 FE 6D: proximity UUID (here: Estimote’s fixed UUID)
00 49: major
00 0A: minor
C5: 2’s complement of measured TX power
ハッピーデバッグ。