GSoC Project: Native Bluetooth support for Linux and/or Windows
Jef Driesen
jef at libdivecomputer.org
Mon Mar 9 07:36:22 PDT 2015
On 2015-03-09 14:12, Lubomir I. Ivanov wrote:
> i'm not very familiar with this GSoC idea and bluetooth in general.
>
> "Subsurface and the underlying libdivecomputer today use the rfcomm
> emulation to communicate with Bluetooth enabled dive computers. We
> should use native Bluetooth instead"
>
> https://msdn.microsoft.com/en-us/library/windows/desktop/aa362932(v=vs.85).aspx
> you probably know that BTLE support is Win8 or newer, BT2.1 is since
> Vista SP2, while we need to support Windows XP (SP1 first introduced
> BT) in Subsurface which has to be done with things like the WinSock /
> RFCOMM API, i'd say.
>
> hmm, so i wonder what is "native Bluetooth support", does that imply
> writing a device driver for Windows that is installed by Subsurface.
> for instance i don't think that BNEP and L2CAP are accessible from user
> space...
On the libdivecomputer side, "native bluetooth support" means using the
operating system' native bluetooth api instead of relying on the serial
emulation. My main motivation behind that (besides the improved
user-experience of no longer having to setup the virtual serial ports)
is that the serial emulation isn't always working very well. I have
received several reports (including from personal experience) where
downloading always fails for unknown reasons. Those problems disappear
completely when switching to native bluetooth communication. I suspect
this might be a driver problem, but I don't know for sure.
Linux and Windows provide a socket based api, which is exactly what I
used in my prototype. Right now we only need SPP/RFCOMM (Serial Port
Profile). That's what the bluetooth enabled dive computers (Shearwater
Petrel, Heinrichs Weikamp OSTC Sport) use today. It's also the protocol
used underneath the serial emulation.
I don't have any experience with Bluetooth Low Energy (BLE). But as far
as I'm concerned that's not a priority. Let's go step by step and take
care of "normal" bluetooth first :-)
Jef
More information about the subsurface
mailing list