Tuesday, May 3, 2016

Windows UWA (IoT) Bluetooth RfcommService

Leave a Comment

I'm trying to establish a communication between two windows 10 devices:

  1. Raspberry PI 2 B + Bluetooth dongle
  2. Surface pro

Server at raspberry pi:

private readonly Guid _rfcommChatServiceUuid = Guid.Parse("34B1CF4D-1069-4AD6-89B6-E161D79BE4D8");  private async void CreateServer()     {         _provider = await RfcommServiceProvider.CreateAsync(RfcommServiceId.FromUuid(_rfcommChatServiceUuid));         _listener = new StreamSocketListener();          _listener.ConnectionReceived += OnConnectionReceived;         await _listener.BindServiceNameAsync(_provider.ServiceId.AsString(),SocketProtectionLevel.BluetoothEncryptionAllowNullAuthentication);          InitializeServiceSdpAttributes(_provider);         _provider.StartAdvertising(_listener);     }      const uint SERVICE_VERSION_ATTRIBUTE_ID = 0x0300;     const byte SERVICE_VERSION_ATTRIBUTE_TYPE = 0x0A;   // UINT32     const uint SERVICE_VERSION = 200;     void InitializeServiceSdpAttributes(RfcommServiceProvider provider)     {         var writer = new DataWriter();         writer.WriteByte(SERVICE_VERSION_ATTRIBUTE_TYPE);         writer.WriteUInt32(SERVICE_VERSION);         var data = writer.DetachBuffer();         provider.SdpRawAttributes.Add(SERVICE_VERSION_ATTRIBUTE_ID, data);     }   async void OnConnectionReceived( StreamSocketListener listener, StreamSocketListenerConnectionReceivedEventArgs args)     {          _provider.StopAdvertising();         _listener.Dispose();         _listener = null;         _socket = args.Socket; 

The client at surface:

   var services = await DeviceInformation.FindAllAsync(               RfcommDeviceService.GetDeviceSelector(RfcommServiceId.FromUuid(_rfcommChatServiceUuid))); 

The services collection is empty.

What is wrong with that?

Thanks

1 Answers

Answers 1

I think it is worth trying to hard code the address in client side. There is a sample C code of RFCOMM connections for both server and client.

The Bluetooth RFCOMM chat sample for Windows(universal) is here.

If You Enjoyed This, Take 5 Seconds To Share It

0 comments:

Post a Comment