Commit graph

10787 commits

Author SHA1 Message Date
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 95d7f0737c fix gitignore and tests 2021-03-14 21:19:24 +01:00
AdrianLxM 9922239a6d
Merge pull request #25 from 0pen-dash/adrian/refactoring-tests
Adrian/refactoring tests
2021-03-14 20:02:49 +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 2f9c88594b
Merge pull request #24 from 0pen-dash/andrei/tests
Andrei/tests
2021-03-14 16:14:30 +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 a94d6ce652 dash ble test: remove fixed TODO 2021-03-14 15:59:36 +01:00
Andrei Vereha 379c0cd8c7 dash bke tests: fix decrypt test
We were trying to use an encryption NONCE for decryption.
The fix was to replac data with data from logs.
2021-03-14 15:58:12 +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 eda52857e5 dash ble: add tests for StringLengthPrefixEncodingTest
We tested this part with a real pod and confirmed that it's working
2021-03-14 15:57:16 +01:00
Andrei Vereha 5f71e1b27f dash ble: add tests for payload splitting and joining 2021-03-14 15:57:16 +01:00
Andrei Vereha 2892d385ab
Merge pull request #23 from 0pen-dash/andrei/ltk-test
andrei/ltk test
2021-03-14 15:45:36 +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 27daa4554a
Merge pull request #22 from 0pen-dash/andrei/detekt-max-issues
dash detekt: set maxIssues to -1
2021-03-14 15:42:03 +01:00
Andrei Vereha 3c3132ad17
Merge pull request #21 from 0pen-dash/andrei/activateNewPod
dash ble: add a separate method for activating a new pod
2021-03-14 15:41:27 +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 a1f8cf807d dash detekt: set maxIssues to -1
I noticed that with this setting I can detekt from android-studio and
see all the issues reported in the Build Output.

Without it, I can only see: "Build failed with X issues."
2021-03-11 21:43:25 +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 034cbef215
Merge pull request #19 from 0pen-dash/andrei/encryption
andrei/encryption
2021-03-09 21:52:25 +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 64aa05f7f9 dash en/decrypt test: add comment about failing test 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 bef32e70c1
Merge pull request #18 from 0pen-dash/eap-aka
EAP AKA session establishment
2021-03-07 10:22:42 +01:00
Andrei Vereha 4fa16bc6cf
Merge pull request #20 from 0pen-dash/maintenance/when-formatting
don't align when in columns according to kotlin styleguide
2021-03-06 16:56:23 +01:00
AdrianLxM 81b34f8680 don't align when in columns according to kotlin styleguide 2021-03-06 14:16:23 +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