Commit graph

14971 commits

Author SHA1 Message Date
Andrei Vereha ee0ac46c5a Finish implementing the LTK exchange
On the fake pod:
```
INFO[0067] LTK 21f4a9d825ce5e57bad5b4958c6ff95e
```
Logcat:
```
2021-02-28 18:21:04.763 19530-22490/info.nightscout.androidaps I/PUMPCOMM: [AsyncTask #4]: [OmnipodDashBleManagerImpl.connect():86]: Got LTK: 21f4a9d825ce5e57bad5b4958c6ff95e
``
2021-02-28 18:37:36 +01:00
Andrei Vereha ddb1c18349 ble ltk: implement encryption and message parsing 2021-02-28 18:33:07 +01:00
Andrei Vereha ddfbd2e7bd dash ble tlk: start generating keys 2021-02-28 18:33:07 +01:00
Andrei Vereha 39408ac535 BLE LTK: define all the steps 2021-02-28 18:33:07 +01:00
Andrei Vereha 1aa6d02893 ble: implement message reading&joining
Now are able to read the first message:
```
INFO[0005] Received SPS1  6b943ec06b594f8a0383f384a3c916da75e1c7846c3e1b73f72f86ee2dc48774b2b4e5ad62d798b76cfd06be1cd4c937
DEBU[0005] Donna LTK: b874cb3cbe487040442138452faeb02d284ac55f489f19593265ff52f7310f1f
DEBU[0005] First key 58cb3b742dc48774000000001cd4c937 :: 16
DEBU[0005] CMACY: 16
DEBU[0005] Intermediar key 4c13eebc4cf09795a07c50bf13786c18 :: 16
DEBU[0005] Pod public 2fe57da347cd62431528daac5fbb290730fff684afc4cfc2ed90995f58cb3b74 :: 32
DEBU[0005] Pod nonce 00000000000000000000000000000000 :: 16
DEBU[0005] Generated SPS1: 535053313d00302fe57da347cd62431528daac5fbb290730fff684afc4cfc2ed90995f58cb3b7400000000000000000000000000000000
TRAC[0005] CMD notification return: 4/00
TRAC[0005] received CMD:  01
TRAC[0005] Sending message: 54570003000006e00000109100001092535053313d00302fe57da347cd62431528daac5fbb290730fff684afc4cfc2ed90995f58cb3b7400000000000000000000000000000000
TRAC[0005] DATA notification return: 23/000354570003000006e000001091000010925350
TRAC[0005] DATA notification return: 23/0153313d00302fe57da347cd62431528daac5fbb
TRAC[0005] DATA notification return: 23/02290730fff684afc4cfc2ed90995f58cb3b7400
TRAC[0005] DATA notification return: 23/030f7d02931d0000000000000000000000000000
TRAC[0005] DATA notification return: 23/0401000000000000000000000000000000000000
TRAC[0005] received CMD:  04
```
2021-02-28 18:33:05 +01:00
Andrei Vereha 81ad52ebce implement SPS1 command
I had to add a new dependency: `tink-android:1.5.0` for X25519
2021-02-28 18:32:21 +01:00
Andrei Vereha 11633995f6
Merge pull request #11 from 0pen-dash/bart/observable-connect
Make OmnipodDashBleManager.connect() return an Observable of PodEvents
2021-02-28 18:30:06 +01:00
bartsopers 67be27ac60
Merge pull request #14 from 0pen-dash/adrian/history-persistance
db create a bit more readable
2021-02-28 18:28:08 +01:00
Bart Sopers c93705e88f Add retry for connecting to Pod 2021-02-28 18:22:56 +01:00
Bart Sopers 256cfe077d Replace single booleans for alerts with EnumSet of AlertType and introduce sealed class AlertTrigger 2021-02-28 18:20:17 +01:00
Philoul 8798be0c34 Update uel.log entries, Increase database version 3=>4, update migration3to4 2021-02-28 15:54:37 +01:00
Bart Sopers 513ac9b0f4 Replace subscribe with subscribeBy 2021-02-28 15:45:50 +01:00
Bart Sopers 5c8ba98682 Remove TODO 2021-02-28 15:30:12 +01:00
Bart Sopers aa14843d33 Address review findings 2021-02-28 15:18:10 +01:00
AdrianLxM 76756fabaa a bit more readable 2021-02-28 14:18:17 +01:00
bartsopers 42279e1339
Merge pull request #12 from 0pen-dash/adrian/history-persistance
history records / database
2021-02-28 13:37:53 +01:00
Milos Kozak 642748b012
Merge pull request #381 from nightscout/dev2
Lints
2021-02-28 12:10:37 +01:00
Milos Kozak cb2d623923 Merge remote-tracking branch 'ns/dev' into dev 2021-02-28 11:18:37 +01:00
Milos Kozak 89ae801fa0 fix gradle 2021-02-28 11:09:31 +01:00
Milos Kozak 34b77112f7 Merge branch 'dev' of https://github.com/MilosKozak/AndroidAPS into dev 2021-02-28 10:56:04 +01:00
AdrianLxM 6dce871ed4 fix database 2021-02-28 03:55:01 +01:00
AdrianLxM 2d0d38f70f database integration test working 2021-02-28 03:30:13 +01:00
Bart Sopers 634b9c20e7 Add interceptors for PodEvents and errors 2021-02-28 00:42:32 +01:00
Bart Sopers 8d629977ec Improvement 2021-02-27 23:52:06 +01:00
AdrianLxM 86d965a7f1 initial history database 2021-02-27 23:50:51 +01:00
Bart Sopers 7e5667705d Minor improvement 2021-02-27 23:46:57 +01:00
Bart Sopers d08a979da3 Make OmnipodDashManager.connect() return an Observable of PodEvents 2021-02-27 23:21:09 +01:00
Andrei Vereha f8ca7592ae
Merge pull request #4 from 0pen-dash/ble-message
Ble message
2021-02-27 19:04:29 +01:00
Andrei Vereha 5ca622a923 Merge branch 'dash-bart-random' into ble-message 2021-02-27 18:45:01 +01:00
Andrei Vereha 899a3d4213 Merge branch 'dash-bart-random' into ble-message 2021-02-27 18:35:14 +01:00
Philoul 95e32c3406 Exemple with CalibrationDialog and CarbsDialog.kt
Good Direction ?
2021-02-27 15:45:47 +01:00
bartsopers ae8e944c3f
Merge pull request #9 from 0pen-dash/adrian/rx-retry
Retry for Observables
2021-02-27 01:39:32 +01:00
AdrianLxM 47bc12d6af rename scheduler rule 2021-02-27 01:28:22 +01:00
AdrianLxM 937cdaf6be rename scheduler rule 2021-02-27 01:26:58 +01:00
AdrianLxM e0e1be01a3 Retry for Observables 2021-02-27 01:23:28 +01:00
Bart Sopers dcf7672a24 More cleanup after conversion 2021-02-27 00:39:55 +01:00
Bart Sopers ba65a47380 Merge branch 'dash-bart-random' into adrian/something 2021-02-26 22:12:39 +01:00
Bart Sopers 0a013b6d2b Serializable instead of Any for data in PodEvent 2021-02-26 22:10:25 +01:00
AdrianLxM ae30387a25 cleanups 2021-02-26 21:45:17 +01:00
Andrei Vereha fb7a84bdf7 ble: add meaninful constants in the PayloadSplitter and getPodId 2021-02-26 21:30:29 +01:00
Andrei Vereha 358748654e ble: reformat(Ctrl+Alt+L) 2021-02-26 18:30:59 +01:00
Bart Sopers dbff1c6e50 Add Profile to BasalProgram mapper function, add some preliminary code in OmnipodDashManagerImpl 2021-02-26 17:38:45 +01:00
Andrei Vereha 9170cc6f76 move the test code to "connect"
this is wrong, for now I just need an easy way to test the initial handshake
2021-02-26 17:06:03 +01:00
Andrei Vereha 4664d21ddf format, cleanups 2021-02-26 17:01:53 +01:00
Andrei Vereha badf8fe24d ble: sending the first SP1/SP2 pairing command
from the fake pod logs
```
INFO[0007] Received SP1 SP2 payload 5350313d0004000010912c5350323d000bffc32dbd08030e0100008a
TRAC[0007] Read field: SP1= :: 00001091 :: 4
TRAC[0007] Read field: ,SP2= :: ffc32dbd08030e0100008a :: 11
INFO[0007] Received SP1 SP2: 00001091 :: ffc32dbd08030e0100008a
```
2021-02-26 17:01:53 +01:00
Andrei Vereha 318c0c642c WIP: sp1sp2 2021-02-26 17:01:53 +01:00
Andrei Vereha 4e6ad3f113 add comments with the LTK steps 2021-02-26 17:01:53 +01:00
Andrei Vereha 1661d978d0 mark not implemented yet functions 2021-02-26 17:01:53 +01:00
Andrei Vereha ea4db2c17b ble: start implementing message reading 2021-02-26 17:01:53 +01:00
Andrei Vereha af1d505e36 ble:
- address review comments: renames and removed unused vars
 - implement serialization for BlePackets
 - improve logging, add .toHex() where we have []byte

```
INFO[0009] Received SP1 SP2 payload 5350313d0004024200032c5350323d000bffc32dbd20030e01000016
TRAC[0009] Read field: SP1= :: 02420003 :: 4
TRAC[0009] Read field: ,SP2= :: ffc32dbd20030e01000016 :: 11
INFO[0009] Received SP1 SP2: 02420003 :: ffc32dbd20030e01000016
```
2021-02-26 17:01:53 +01:00