3

Adafruit Bluefruit LE (Bluetooth 4 モジュール) を使用して arduino との通信を試みています。すべてがセットアップされ、ペアリングされていますが、GattCharacteristic の ValueChanged イベントに問題があり、30 の間のどこかで発火が停止します。そして40回。

以下は、このためのセットアップ コードです。

public class Bluetooth
{
    async public void Initialize()
    {
        var devices = await DeviceInformation.FindAllAsync(GattDeviceService.GetDeviceSelectorFromUuid(new Guid("6E400001-B5A3-F393-E0A9-E50E24DCCA9E")), null);

        GattDeviceService firstService = await GattDeviceService.FromIdAsync(devices[0].Id);

        GattCharacteristic rxCharacteristic = firstService.GetCharacteristics(new Guid("6E400003-B5A3-F393-E0A9-E50E24DCCA9E")).First();

        await rxCharacteristic.WriteClientCharacteristicConfigurationDescriptorAsync(GattClientCharacteristicConfigurationDescriptorValue.Notify);

        rxCharacteristic.ValueChanged += rxCharacteristicValueChanged;
    }

    private void rxCharacteristicValueChanged(GattCharacteristic characteristic, GattValueChangedEventArgs e)
    {
        Console.WriteLine(e.CharacteristicValue.ToArray()[6]);
    }
}

クリアする必要があるある種のバッファなどはありますか? 送信されるデータを半分にすると、呼び出しが2倍にならないため、バッファに関連しているようには見えませんが、間違っている可能性があります。Arduino は、まだデータを送信していると報告しています (シリアル リンクを介して、いずれにせよ、Bluetooth ライブラリがまだデータを送信しようとしていることがわかります。データが実際に送信されていることを確認する方法がわかりません)。

チェックすべき事項についての提案であっても、どんな助けもいただければ幸いです。

4

2 に答える 2

8

あなたのコードを考えると、GCに関連しているように聞こえます。

フィールドfirstServiceレベルのインスタンスにするか、何か他のものにします。

于 2015-02-06T04:46:06.397 に答える