bugfix> bluetooth-lowenergy > 投稿

私は、BLEデータを送信するIOT周辺機器用のAndroid/iOSアプリで作業しています。両方のアプリは、実際には物理的な周辺機器(Texas InstrumentのBLEライブラリを使用している)で非常にうまく機能しています。

実際の周辺機器が動作しているので、私はエミュレータを書いてブレノ そのため、開発チームはより効率的になりますが、特性の静的な文字列値を送信する問題に直面しています。

私はこのような特性を設定しています:

var bleCharacteristic = function() {
  bleCharacteristic.super_.call(this, {
    uuid: '0321',
    properties: ['read'],
    value: new Buffer('12345'),
  }); 
};

Blenoは、文字列データを送信するにはnode.jsバッファーを使用する必要があると言いますが、AndroidとIOSの両方で、受信したデータは 12345 ではありません 、しかしむしろこのようなもの:

{
  value: '3031333031383133303630303864666234643030323030333065303332656530313330313831333036303,
}

なぜこれが起こっているのだろうか?値が期待どおりに戻るように、エミュレータで設定するのを忘れている広告データが他にありますか?

ペイロード値の読み取り方法の例を次に示します。これはAndroidアプリからのものです。

@Override
public void onCharacteristicRead(final BluetoothGatt gatt, final BluetoothGattCharacteristic characteristic, int status) {
    ...
    String payload = bytesToHex(characteristic.getValue());
    ...
}

注:投稿できる他の関連コードがあるかどうかを教えてください。

回答 1 件
  • 特徴的な設定は問題ありません私はAndroidについて何も知りませんが、iOSでは、これを呼び出すことで値を取得できるはずです。

    peripheral.readValue(for: yourCharacteristic)
    
    

    LightBlueなどのBLEユーティリティアプリを使用して、特性を調べることもできます。

あなたの答え