前提・実現したいこと
windowsIOTをインストールしたラズパイ3と、
bluetooth classicで通信できるようにしたESP32をbluetoothにて通信したいです。
発生している問題・エラーメッセージ
マイクロソフトにて配布されているBluetoothRfcommChatのサンプルアプリを使用しましたが
bluetoothDevice = await BluetoothDevice.FromIdAsync(deviceInfoDisp.Id);
にてBluetoothのデバイスは発見できるのですが
接続されていないためか、
var rfcommServices = await bluetoothDevice.GetRfcommServicesForIdAsync(
RfcommServiceId.FromUuid(Constants.RfcommChatServiceUuid), BluetoothCacheMode.Uncached);
にて接続にチャレンジしていますが
rfcommServices.Services.Count
の数が0で返ってくるためesp32にデータを送信できません
該当のソースコード
サンプルアプリのままになります
// If not, try to get the Bluetooth device
try
{
bluetoothDevice = await BluetoothDevice.FromIdAsync(deviceInfoDisp.Id);
}
catch (Exception ex)
{
rootPage.NotifyUser(ex.Message, NotifyType.ErrorMessage);
ResetMainUI();
return;
}
// If we were unable to get a valid Bluetooth device object,
// it's most likely because the user has specified that all unpaired devices
// should not be interacted with.
if (bluetoothDevice == null)
{
rootPage.NotifyUser("Bluetooth Device returned null. Access Status = " + accessStatus.ToString(), NotifyType.ErrorMessage);
}
// This should return a list of uncached Bluetooth services (so if the server was not active when paired, it will still be detected by this call var rfcommServices = await bluetoothDevice.GetRfcommServicesForIdAsync( RfcommServiceId.FromUuid(Constants.RfcommChatServiceUuid), BluetoothCacheMode.Uncached); if (rfcommServices.Services.Count > 0) { chatService = rfcommServices.Services[0]; } else { rootPage.NotifyUser( "Could not discover the chat service on the remote device", NotifyType.StatusMessage); ResetMainUI(); return; }
試したこと
ESPだけではなくほかのbluetoothで通信しましたが同じ結果でした
補足情報(FW/ツールのバージョンなど)
デスクトップアプリの場合はBluetoothがOCMポートに割り当てられるので
シリアル通信でデータの受け渡しをするのですがその手段があればそちらの方が簡単かもと
思っていますがシリアルポートを作成して接続するサイトが見つからないので苦戦しています。
あなたの回答
tips
プレビュー