Commit graph

58 commits

Author SHA1 Message Date
geeksville
ce14fde33b Fix #36 - allow users to select 'none' for the preferred radio
If none is selected, we do not leave our service running.  And we do
not start it on boot.
2020-06-07 18:55:08 -07:00
geeksville
30137efc68 WIP - cleaned up BLE vs serial interface approximately works 2020-06-07 17:11:30 -07:00
geeksville
cecc369598 split out common code for USB and BLE links 2020-06-04 12:34:34 -07:00
geeksville
d526d11d20 Fix #32
+            // Note: To workaround https://issuetracker.google.com/issues/36995652
+            // Always call BluetoothDevice#connectGatt() with autoConnect=false
+            // (the race condition does not affect that case). If that connection times out
+            // you will get a callback with status=133. Then call BluetoothGatt#connect()
+            // to initiate a background connection.
2020-06-04 09:35:25 -07:00
geeksville
ef61c9acff add note about https://github.com/meshtastic/Meshtastic-Android/issues/32 2020-06-04 08:02:36 -07:00
geeksville
ed4236d8e3 only use the new api now, old device loads have been out a while 2020-05-30 16:23:42 -07:00
geeksville
67d95039bf begin support for message status 2020-05-30 14:38:16 -07:00
geeksville
238ae9a06c fix autobug, if we don't have a gatt currently, treat as a BLEException 2020-05-24 11:15:13 -07:00
geeksville
74449be999 don't spam with autobugs if we just fail because the device is off 2020-05-24 10:46:27 -07:00
geeksville
a191dac0f4 stay with old api for now, because too much change hurts reliaiblity ;-) 2020-05-24 10:12:12 -07:00
geeksville
4efd25d009 Possible fix #26. It seems some phones don't quite have the services
list populated at the time they say service discovery has completed.
Make the nasty 500ms delay a 1000ms delay instead
2020-05-24 09:51:25 -07:00
geeksville
bba9def20e it has been a couple of weeks since new API rolled out, now just
always use it
2020-05-24 08:47:36 -07:00
geeksville
3c338aec61 firmware update progress bar kinda works 2020-05-14 11:47:24 -07:00
geeksville
6576f5eab5 backend updated to reneable firmware update 2020-05-13 14:47:55 -07:00
geeksville
877006f26b temp code for testing failures 2020-05-10 21:39:23 -07:00
geeksville
5822dddc6c Fix #23: autobug, if we get mystery BLE error 133 while reading messages
drop the BLE link and reconnect and try again.
2020-04-26 13:03:35 -07:00
geeksville
e302848607 0.5.5 only try to set max MTU once, if it fails consider phone buggy 2020-04-24 15:49:34 -07:00
geeksville
3e89510f52 Some phones have buggy race conditions wrt finding services or characteristics
This workaround is: If we fail in that way during initial device connection
we disconnect() and try again 500 ms later.
2020-04-24 15:22:54 -07:00
geeksville
a3db3eca06 We now detect and use the newapi if the device doesn't offer the old one 2020-04-23 12:08:34 -07:00
geeksville
a5eaa057a1 new ble api approximately works for reading 2020-04-23 11:24:57 -07:00
geeksville
6f5c7b2452 move logging to the IO thread 2020-04-22 08:20:57 -07:00
geeksville
8ec8b038b6 Increase MTU _before_ discovering services, because it will speed up the link 2020-04-22 08:10:23 -07:00
geeksville
b194659e8a Fix autobug: some BLE implementations might not be completed
with service enumeration by the time they call the discover services
callback.  Therefore be careful to not touch "service" until after
the 500ms delay everyone on stackoverflow says these buggy drivers need.
2020-04-22 07:25:07 -07:00
geeksville
671bafa05f don't leak macaddrs into logs - could be possibly personally identifying 2020-04-21 08:21:42 -07:00
geeksville
c00ca9b3db move notify later, to see if the autobug is _all_ BLE transactions or just notfiies 2020-04-21 07:57:07 -07:00
geeksville
2a52b707ee fix autobug: some phones call gatt connected but with an error status code 2020-04-20 10:37:46 -07:00
geeksville
34aa4cde05 if bluetooth was disabled when we started, reattempt device connect later 2020-04-20 09:56:38 -07:00
geeksville
8c2d046255 properly show 'disconnected' while changing between radios 2020-04-20 08:27:08 -07:00
geeksville
cde3f2dec2 WIP - doesn't yet build, but changing to set the device addresses the correct way 2020-04-19 20:06:11 -07:00
geeksville
1e47895904 fix a couple of old/rare autobugs 2020-04-19 18:12:11 -07:00
geeksville
5036cb906b #14: not ready - but I need to do other stuff - so disabling for now 2020-04-18 18:45:50 -07:00
geeksville
b4bf682df0 #14: WIP we now show the new GUI properly 2020-04-18 16:30:30 -07:00
geeksville
54d632eb84 some android stacks are buggy and need 500ms before returning BLE descriptors 2020-04-13 16:28:32 -07:00
geeksville
d1afb6fac6 don't leak personal data into logs 2020-04-12 10:56:45 -07:00
geeksville
2ba398cc51 fix this autobug:
https://console.firebase.google.com/u/0/project/meshutil/crashlytics/app/android:com.geeksville.mesh/issues/9ca00f8a87bb62f10c78009f450b13b8
2020-04-10 17:49:43 -07:00
geeksville
69e6b285c6 we now allow changing BLE connection to different meshtastic devices on the fly 2020-04-09 13:28:44 -07:00
geeksville
606dc0fd07 turn off gestures - they are confusing with the map view 2020-04-07 12:32:42 -07:00
geeksville
f2d43332f7 Making app aware of device sleep states, Fix #4 2020-04-04 17:00:38 -07:00
geeksville
1e34e77fe9 only force refresh of the BLE service table the first time we talk 2020-04-04 14:37:13 -07:00
geeksville
ab31542fd8 bootstrap the mesh service if someone sets our radio macaddr late 2020-03-30 17:36:09 -07:00
geeksville
81a1283148 Android can cache BLE service descriptors. But our device descriptors
can change still (because 'progress').  So force android to reread those
descriptors while we are in alpha.
2020-03-30 16:44:48 -07:00
geeksville
444485658f track # of users with radios 2020-03-12 11:54:22 -07:00
geeksville
a506904ed9 set isConnected earlier, so quick calls from clients still work 2020-03-04 13:59:22 -08:00
Kevin Hester
9a2c22d0f6 we now generate real qr codes from the current channel 2020-03-02 07:46:03 -08:00
Kevin Hester
8c185a7718 add received packets binary file logging (to improve simulation) 2020-03-02 06:31:15 -08:00
Kevin Hester
b13e52d2eb two items from todo list:
* startforegroundservice only if we have a valid radio
* when we select a new radio, restart the service
2020-03-02 06:25:17 -08:00
Kevin Hester
6a90881dd6 fix crashlytics auto report. oops error() is now a kotlin stdlib call
and therefore I was accidentally calling it instead of my Logging.error()
method.  And that made some error logs incorrectly fatal.
2020-02-29 13:21:05 -08:00
geeksville
2c8c7ac8d6 if phone ble stack is hosed restart it 2020-02-25 09:28:47 -08:00
geeksville
dac3610f7d cleaner way to find ble services 2020-02-25 08:23:26 -08:00
geeksville
674b417c87 BLE software update works again 2020-02-24 18:10:25 -08:00