We now have support for the BlueSoleil Bluetooth stack on desktop Windows. There is good support for
including RSSI, and device discovery including ‘live’ discovery. There is no support for
(there seems to be no BlueSoleil API), and there is only partial support for SDP querying (returns both partial records and partial attributes).
is supported, but more work is needed for
is supported for RFCOMM/SPP connections. However connections can’t be made to profiles that BlueSoleil supports directly, for instance an RFCOMM connection to OBEX Push isn’t possible. Nor is it it possible to make a connection
to a specific RFCOMM port number. Connects to service class SerialPort (0x1101) did not work prior to version 3.2 (workitem 30163
, revision 85277). BluetoothClient.Authenticate
are not supported (no API support), and we haven’t looked at support for
BluetoothClient’s data transfer is somewhat lacking in comparison with the other stacks as it doesn’t use Sockets nor has it an data transfer API like Widcomm. Instead it creates a virtual COM port for each connection, and that’s what we have to use. It creates
a number of problems, firstly when there’s no data in the buffer for Read we would expect Read to block but instead we get an IO error, so we have to workaround that. Then on Write there seems a lack of flow control, we now internally split any any big writes
into smaller chunks and in testing that seems to stop data being lost.
Due to the various restrictions above ObexWebRequest
are not supported currently. It should be possible at least to support ObexWebRequest by internally using the BlueSoleil OBEX API directly, something for the future, and volunteers
To check if BlueSoleil support is being loaded, check whether BluetoothRadio.PrimaryRadio or AllRadios returns a radio and whether its SoftwareManufacturer is a enum value of IvtBlueSoleil.
See my full test notes in the repository e.g. at
It contain information on what error codes are produced in various cases in BluetoothClient.Connect for instance.
Please let me have any feedback.
(The Bluesoleil SDKs are at