Andrei Vereha
96b1b177a6
call readyToRead on BleIOs
2021-03-28 23:14:41 +02:00
Andrei Vereha
2f87620050
compile
2021-03-28 23:12:17 +02:00
Andrei Vereha
38a1d9c6bc
add BusyException
2021-03-28 23:09:44 +02:00
Andrei Vereha
8d2d38163a
simplify exceptions
2021-03-28 21:43:32 +02:00
Andrei Vereha
4b49392200
improve error handling
2021-03-28 20:48:11 +02:00
Andrei Vereha
ae08e43109
add retries when sending commands
2021-03-21 15:12:33 +01:00
Andrei Vereha
7be0afda27
dash ble: implement retries when receiving messages
2021-03-21 14:56:32 +01:00
Andrei Vereha
de6ca939ed
dash ble: move parsing logic out of PayloadJoiner to BlePacket
2021-03-16 22:45:02 +01:00
Andrei Vereha
8868f29ab2
dash ble: use higher timeout when reading a message
...
This timeout(4s) is the same that the PDM uses to send messaged with
`eqos` when they are not acknowledged
2021-03-14 22:06:52 +01:00
Andrei Vereha
442a0b274f
dash ble: add comment about why I think the NACK logic is not ok
2021-03-14 21:21:47 +01:00
Andrei Vereha
109f66a48d
dash ble: start implementing retries
...
Handle NACKs for now.
2021-03-14 21:21:47 +01:00
AdrianLxM
7db5c28632
delint
2021-03-14 19:52:08 +01:00
AdrianLxM
bf3fe19a4e
only open for tests/debug
2021-03-14 19:42:02 +01:00
AdrianLxM
3d93e4d84d
mock provider instead of constructor parameter
2021-03-14 18:24:15 +01:00
Andrei Vereha
b33c55273c
dash ble: fix detekt issues
2021-03-14 16:14:00 +01:00
Andrei Vereha
b71f065974
dash ble tests: ktlintFormat
2021-03-14 16:00:59 +01:00
Andrei Vereha
752f393f3b
dash ble: add test for MessagePacket
2021-03-14 15:57:16 +01:00
Andrei Vereha
eff6247f77
dash ble: remove unused class
2021-03-14 15:57:16 +01:00
Andrei Vereha
50d1dad786
dash LTK: add test
...
Now that we know this part is working, I'm adding a test with data from
logs
Moved the key exchange logic to its own class so it is easier to
test
2021-03-14 15:44:28 +01:00
Andrei Vereha
0396b9ca99
dash ble: use .let(Id::fromLong)
...
https://github.com/0pen-dash/AndroidAPS/pull/21#pullrequestreview-610227073
2021-03-11 23:06:00 +01:00
Andrei Vereha
27e9b25e86
dash: update TODO comment
2021-03-11 21:40:51 +01:00
Andrei Vereha
1a678a9507
dash/ble: stop reading a message on send
...
We were receiving a message in that case just because we used the `eqos`
parameter incorrectly.
2021-03-11 21:36:43 +01:00
Andrei Vereha
2aed2005ef
dash ble: renames and fixes after testing
2021-03-11 21:27:18 +01:00
Andrei Vereha
8154e16c94
dash ble: add a separate method for activating a new pod
...
So we can call it explicitly instead of activating a new pod on
connect()
2021-03-09 23:19:22 +01:00
Andrei Vereha
c337b52aa0
dash/ble: support both 1 and 2 byte command
...
It seems that the PDM is sending 1 byte commands and the POD answers
with 2 byte commands.
Add logging for decrypted responses.
I think `eqos` means that we are expecting an ACK for the last message.
Read (and log for now) a pending message if the POD is trying to sending it back while we want
to send a command.
2021-03-08 22:52:04 +01:00
Andrei Vereha
db51b762ca
dash ble: disconnect on errors
2021-03-08 22:52:04 +01:00
Andrei Vereha
923d8d33ef
dash eap: bugfix
...
Shift the MSB of the lenght by 1 byte, not one bit.
2021-03-08 22:52:04 +01:00
Andrei Vereha
7dd8fc1bf6
dash/ble: ktlintFormat
2021-03-08 22:52:04 +01:00
Andrei Vereha
e7a9e24093
dash: start using podState for BLE
...
implement disconnect()
various fixes after testing with a real pod(cmd is 2 bytes, message
joining, etc)
2021-03-08 22:52:04 +01:00
Andrei Vereha
4046828567
format: ktlint
2021-03-08 22:52:04 +01:00
Andrei Vereha
c71433ad1a
format: remove trailing commao
2021-03-08 22:52:04 +01:00
Andrei Vereha
5211d4ddc6
dash ble: implement sessions and sending commands
...
Tested with the fake pod:
```
DEBU[0185] got command. CRC: 82b2. Type: 7 :: GET_VERSION
DEBU[0185] got command. CRC: 0003. Type: 3 :: SET_UNIQUE_ID
DEBU[0186] got command. CRC: 019a. Type: 19 :: PROGRAM_ALERTS
DEBU[0186] got command. CRC: 0385. Type: 19 :: PROGRAM_ALERTS
DEBU[0187] got command. CRC: 81f3. Type: 1a :: PROGRAM_INSULIN
DEBU[0187] got command. CRC: 8178. Type: e :: GET_STATUS
```
2021-03-08 22:52:04 +01:00
Andrei Vereha
5647007190
dash/ble: remove retries for connect for now
...
It's easier to debug for now if we stop on the first issue/error
2021-03-08 22:52:04 +01:00
Andrei Vereha
9c586c4942
dash encryption: add encryption and decryption for messsages
2021-03-08 22:52:04 +01:00
Andrei Vereha
c2627176cf
dash BleIO: s/let/also
2021-03-03 17:07:18 +01:00
Andrei Vereha
7976df596e
dash eap-aka: use named parameters
2021-03-03 17:02:59 +01:00
Andrei Vereha
c3d7cf9483
dash LTK exchange: s/var/val
2021-03-03 17:02:12 +01:00
Andrei Vereha
7c0e2af053
dash: rename EAP AKA to SessionEstablisher
2021-03-03 14:24:23 +01:00
Andrei Vereha
b2797fa57f
dash: undo ktLint
2021-03-03 14:22:09 +01:00
Andrei Vereha
da84c35b31
format: CTRL+Alt+L
2021-03-03 14:18:20 +01:00
Andrei Vereha
154e74fc22
dash ble: fix detekt issues
2021-03-03 14:10:33 +01:00
Andrei Vereha
c9beb21404
format: klintFormat
2021-03-02 22:22:03 +01:00
Andrei Vereha
ada3560f49
format: remove trailing commas
2021-03-02 22:20:30 +01:00
Andrei Vereha
e90bda0234
dash eap-aka: complete the session key exchange
...
Fake pod logs
```
INFO[0021] got CK: daff384a4098571975d136a480a71b36
INFO[0021] got Nonce: 33a0c6dd0a0a0a0a
```
The application logs:
```
[OmnipodDashBleManagerImpl$connect$1.subscribe():139]: CK: daff384a4098571975d136a480a71b36
[OmnipodDashBleManagerImpl$connect$1.subscribe():140]: noncePrefix: 33a0c6dd0a0a0a0a
```
2021-03-02 22:17:11 +01:00
Andrei Vereha
9c42e5749f
ble/milenage: fix and add tests
2021-03-02 18:39:03 +01:00
Andrei Vereha
099ec0a328
ble scan: improve log message
2021-03-02 18:37:45 +01:00
Andrei Vereha
b6692a5ac6
WIP: add Milenage
...
AUTN is not correct yet
2021-03-02 10:44:36 +01:00
Andrei Vereha
e82826bf5a
dash/ble: start implement EAP-AKA
2021-03-01 15:22:52 +01:00
Andrei Vereha
0523f7c17c
format: remove trailing commas
2021-03-01 15:20:02 +01:00
AdrianLxM
89ff502518
a bit more formatting
2021-03-01 14:35:50 +01:00