Commit graph

78 commits

Author SHA1 Message Date
Dirk Hohndel
7aacaf60da Move ConnectionListModel into its own source file
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-10-07 10:06:47 -07:00
Dirk Hohndel
db38a7023d BLE: helper function to get QBtDeviceInfo from UUID
Right now this will only work if you scan for your BLE dive computer every
time. Ideally we should simply initiate a scan and look for that address if
it's not found in the hash.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-09-17 09:57:57 -07:00
Dirk Hohndel
5695ef956b BLE: if there's no address, use the UUID instead
This is not just for IOS, the same applies on a Mac. But I see
no issue with enabling that for all OSs.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-09-17 09:54:04 -07:00
Dirk Hohndel
08c2f5492a BLE on iOS: use uuid instead of BT address
iOS doesn't give us an address of BT devices.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-07-19 06:21:23 -07:00
Dirk Hohndel
a38d440d5e BLE discovery: give the agent some time
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-07-19 06:21:23 -07:00
Dirk Hohndel
526da269cc iOS BLE support: no localBtDevice, go straight to discovery
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-07-19 06:21:23 -07:00
Dirk Hohndel
8f0621f733 QML UI: correctly match BT names with products
And remove the remaining references to the "Paired Bluetooth
Devices".

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-07-18 00:49:31 -07:00
Dirk Hohndel
cec3c256e7 Add detection of the Shearwater Predator via BT
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-07-18 00:49:31 -07:00
Dirk Hohndel
a4f045abaa Add the connections that we find to the model
So far this only deals with BT addresses. We also need to add other
connections that we detect.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-07-16 21:53:44 -07:00
Dirk Hohndel
c21845aa01 Add ConnectionListModel
We'll use that to do a better job of showing the connection used when
talking to a dive computer.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-07-16 21:53:44 -07:00
Jan Mulder
9397dbb432 Correct BT detect for OSTC Sport
Apparently, OSTC Sport has a BT name like OSTCs<space><serial>.

Small code addition to detect this properly. As long as we
do not have an improved way of detection. Notice that most of
the HWs use the same BT hardware, so simple detection on offered
services will not work.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-07-15 14:43:13 +09:00
Dirk Hohndel
bec5f3c44f BT support: track if Bluetooth is available
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-07-12 04:13:25 -07:00
Dirk Hohndel
345e063eb5 Rewrite the matching code for BT devices
This should be much more robust in getting us the correct Bluetooth address
and the correct vendor / product for our selection.

When we pick a paired device, we extract the address right from its name.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-07-03 21:58:26 -07:00
Dirk Hohndel
bc864c3bce Don't add all discovered BT devices
This really doesn't help us as we can't associate a vendor/product with
devices we don't recognize, so we can't download from them, anyway.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-07-03 21:58:26 -07:00
Jan Mulder
d7b8ad7a44 BT discovery Android: Allow BT/LE devices connect both ways
For DCs that support both BT and LE, allow the user to connect to both
interface layers. Maybe not usefull in the end (as BT is faster
than LE), but as long as BT on Android is WIP is it very useful
to be able to connect to the interface layer we like.

Just add it to the Paired Devices list twice. The normal way, and
the LE: prepend way.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-07-04 05:49:52 +09:00
Dirk Hohndel
7199ad33e2 BT discovery: detect Scubapro G2
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-07-02 18:32:16 -07:00
Dirk Hohndel
61fff71391 Android: mark BLE only paired devices
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-30 13:13:38 -07:00
Dirk Hohndel
c145cbd754 QML UI: save BT address as string
And do the same LE: prefix marking as in the desktop version.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-30 13:12:53 -07:00
Dirk Hohndel
6837120bb1 BLE handling: create helper function to add the LE: prefix
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-30 13:12:07 -07:00
Dirk Hohndel
f5e1df0423 Add the EON Steel as support DC on Android
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-24 22:32:56 -07:00
Dirk Hohndel
63a4a755a3 Warn when not compiling against the matching libdc version
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-22 17:53:53 -07:00
Jan Mulder
8cd711f8e2 BT Discovery: add Shearwater Petrel and Perdix
Add Shearwater Petrel and Perdix to automatic detection

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-06-12 19:12:40 -07:00
Jan Mulder
23df593817 Mobile: wrap up fixes for BT download on Android
Major functional change in this commit is the addition of found static BT devices
to the internal administration (on Android), in a way that is equivalent to
mobile-on-desktop. So, in both cases, the list of devices in the app are
as in the list of devices on the host OS (Linux or Android). To minimize code
duplication, the btDeviceDiscovered slot is split in two parts, the part to
act as slot for the Qt BT discovery agent (Linux, so mobile-on-desktop), and
the part only needed for Android.

Remaining to be fixed: the correct handling of the QML UI selection of
vendor/product. The first default dive computer is correctly detected,
all paired devices from the virtual vendow can be selected, but clicking
through vendors results in non logical selections. It is obvious why
this is, but a fix is not straigforward at this point.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-12 11:05:08 -07:00
Jan Mulder
5142d7409f Mobile: add BT name to vendor/product capability
This adds a central function to convert a BT name to a vendor/product pair
known to Subsurface. This allows interfacing from a paired BT dive
computer, without actively selecting its type, but by selecting it
from the list of paired BT devices. So, after this, downloading from
multiple (paired) DCs is also possible.

And not the niced piece of code ...

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-12 10:59:05 -07:00
Jan Mulder
a43cafa515 Mobile: do not BT Discover on Android (Q_OS_ANDROID vs Q_OS_LINUX)
This seems a very trivial commit, but it is not. It appears that on an Android
build, with defined(Q_OS_ANDROID) the Q_OS_LINUX variable is also defined.

This results in a very tricky discovery process: 1) the JNI stuff pulls the paired
devices from the local BT controller, and 2) The QT discovry agent gets active
BT devices. 1) is a static list, that is, not dependent on actual
visual/discoverable BT devices; it is just cached data from the phone. 2) On
Android, this results in a list of actively visible (paired and not paired)
devices. On desktop, however (with QT/bluez BT stack) the QT discovery agent
just gets the list of paired devices, so more or less equivalent to the situation
described under 1) for Android.

Ok, a long story, but just do not do a discovery on Android at all. Basically,
we need the BT address, device name, and possibly a specific SPP service UUID. This are
fixed and known for HW and Shearwater at this point, so there is no need for a
(lengthy) discovery process, and making sure the the dive computer is discoverable
at the moment the app wants to construct its data to show in the UI. So, the
static list of paired devices is all we need.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-12 10:58:57 -07:00
Dirk Hohndel
ca59dbd40d BT discovery: distinguish names with addresses
It's possible that the user has more than one dive computer with the
same name paired with their computer / device. So let's just add the
address to the name to make it possible to tell those apart.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-12 10:05:55 -07:00
Jan Mulder
790c0dcfc8 QML UI: add internal admin for virtual vendor
Added a list of paired BT devices for the "Paired BT Devices" vendor. The
devices under this vendor represent all BT devces that can be found
from the local BT interface. Some special processing is required, as
the BT provided data is (obviously) missing the specific data needed
to open a BT device using libdc code. This processing is not in
this commit, but will follow. This commit is preparation for that.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-12 09:55:27 -07:00
Dirk Hohndel
b14a522f4f QML UI: move BT handling into core code
This shouldn't be part of the UI (qmlmanager), but part of our
overall handling of dive computers and BT devices.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-11 13:55:41 -07:00