@@ -20,14 +20,15 @@ This library is based on the Windows.Devices.Bluetooth UWP class library but sim
2020The original .Net assembly depended on Windows.Storage.Streams for DataReader & DataWriter; this library has simplified inbuilt versions.
2121So references to IBuffer in .Net UWP examples should now use Buffer instead.
2222
23- We have also added an extension to this assembly allowing extra services to be added with no restriction on type.
23+ We have also added an extension to this assembly allowing extra services to be added to ServiceProvider with no restriction on type.
2424
2525## Firmware versions
2626
2727Bluetooth is currently only supported on ESP32 devices with following firmware.
2828
2929- ESP32_BLE_REV0
3030- ESP32_BLE_REV3
31+ - M5Core2
3132
3233This restriction is due to IRAM memory space in the firmware image.
3334With revision 1 of ESP32 devices, the PSRAM implementation requires a large number of PSRAM fixes which greatly reduces the
@@ -51,9 +52,10 @@ A number of Bluetooth LE samples are available in the [nanoFramework samples rep
5152
5253This implementation supports a cut down version of the Gatt Server and Gatt Client implementation.
5354
54- The device can either run as a Server, Client or Watcher , but not at the same time.
55+ The device can either run as a Server or Client , but not at the same time.
5556For example if you start a Watcher to look for advertisements from Server devices you will not
56- be able to connect to those devices until the Watcher has been stopped.
57+ be able to connect to those devices until the Watcher has been stopped. But you can recieve data from connected
58+ devices while Watcher is scanning.
5759
5860For more information see relevant sections: -
5961
@@ -343,7 +345,7 @@ RSSI filter
343345
344346## Creating a device and connecting to device.
345347
346- To communicate with a device a BluetoothLEDevice class needs to be created using the devices bluetooth address.
348+ To communicate with a device a BluetoothLEDevice class needs to be created using the devices bluetooth address and type .
347349This can be the bluetooth address from the BluetoothLEAdvertisementWatcher event or using a hard coded address.
348350
349351In this case from the Watcher advertisement received event.
@@ -352,11 +354,12 @@ BluetoothLEDevice device = BluetoothLEDevice.FromBluetoothAddress(args.Bluetooth
352354```
353355There are no specific connection methods but a connection will be made automatically when you query the device
354356for its services . The ConnectionStatusChanged event can used to detect a change in connection status and an attempt to
355- reconnect can be done by query the devices services again . Avoid doing this in the event it self as it can block other
357+ reconnect can be done by a query to the devices services again . Avoid doing this in the event , as it can block other
356358events being fired during the connection .
357359
358- To go back to Watching for advertisements all connected devices need to be closed or disposed . This
359- will put the stack in to an idle state so the Watching can be started .
360+ You can go back to Watching for advertisements with the restriction that you can't connect to newly found devcies until the Watching is stopped.
361+ You can still communication with connected devices while the Watcher is running. Best way is to collect all found devices in a table until Watcher is
362+ stopped then connect to all found devices. See [Central 2 sample](https : // github.com/nanoframework/Samples/tree/main/samples/Bluetooth/Central2)
360363
361364The Close () method is not exposed in the desktop version but it has been implemented in this version
362365to give better control over the connection .
0 commit comments