Moved docs to wiki.
This commit is contained in:
parent
0cbf65d2d4
commit
811b07449e
3 changed files with 0 additions and 406 deletions
153
README-Combo.md
153
README-Combo.md
|
@ -1,153 +0,0 @@
|
||||||
**This software is part of a DIY solution and is not a product, but
|
|
||||||
requires YOU to read, learn and understand the system and how to use it.
|
|
||||||
It is not something that does all your diabetes management for you, but
|
|
||||||
allows you to improve your diabetes and quality of life significantly
|
|
||||||
if you're willing to put in the time required. Don't rush into it,
|
|
||||||
but allow yourself time to learn. You alone are responsible for what
|
|
||||||
you do with it.**
|
|
||||||
|
|
||||||
Hardware requirements
|
|
||||||
---------------------
|
|
||||||
- A Roche Accu-Chek Combo (any firmware, they all work)
|
|
||||||
- A Smartpix or Realtyme device together with the 360 Configuration
|
|
||||||
Software to configure the pump.
|
|
||||||
Roche sends out Smartpix devices and the configuration software
|
|
||||||
free of charge to their customers upon request.
|
|
||||||
- A compatible phone: An Android phone with a phone running LineageOS 14.1 (formerly CyanogenMod) or Android 8.1 (Oreo).
|
|
||||||
Be aware that while Android 8.1 allows communicating with the Combo, there are still issues with AAPS on 8.1.
|
|
||||||
For advanced users, it is possible to perform the pairing on a rooted phone and transfer it to another rooted
|
|
||||||
phone to use with ruffy/AAPS, which must also be rooted. This allows using phones with Android < 8.1 but
|
|
||||||
has not been widely tested: https://github.com/gregorybel/combo-pairing/blob/master/README.md
|
|
||||||
- To build AndroidAPS with Combo support you need the latest Android Studio 3 version
|
|
||||||
|
|
||||||
Limitations
|
|
||||||
-----------
|
|
||||||
- Extended bolus and multiwave bolus are not supported.
|
|
||||||
- Only one basal profile is supported.
|
|
||||||
- Setting a basal profile other than 1 on the pump, or delivering extended boluses or multiwave
|
|
||||||
boluses from the pump interferes with TBRs and forces the loop into low-suspend only mode for 6 hours
|
|
||||||
as the the loop can't run safely under those conditions.
|
|
||||||
- It's currently not possible to set the time and date on the pump, so daylight saving times
|
|
||||||
changes have to be performed manually (disable automatic phone clock update in the evening and
|
|
||||||
update change back in the morning while also updating the pump's clock to avoid an alarm during the night).
|
|
||||||
- Currently only basal rates in the range of 0.05 to 10 U/h are supported (this also applies when modifying
|
|
||||||
a profile, e.g. when increasing to 200%, the highest basal rate must not exceed 5 U/h since it will be
|
|
||||||
doubled. Similarly, when reducing to 50%, the lowest basal rate must be at least 0.10 U/h).
|
|
||||||
- If the loop requests a running TBR to be cancelled the Combo will set a TBR of 90% or 110%
|
|
||||||
for 15 minutes instead. This is because cancelling a TBR causes an alert on the pump which
|
|
||||||
causes a lot of vibrations.
|
|
||||||
- Occasionally (every couple of days or so) AAPS might fail to automatically cancel
|
|
||||||
a TBR CANCELLED alert the user then needs to deal with (press the refresh button in AAPS
|
|
||||||
to transfer the warning to AAPS or confirm the alert on the pump).
|
|
||||||
|
|
||||||
Setup
|
|
||||||
-----
|
|
||||||
- Configure pump using 360 config software.
|
|
||||||
- Required:
|
|
||||||
- Set/leave the menu configuration as "Standard", this will show only the supported
|
|
||||||
menus/actions on the pump and hide those which are unsupported (extended/multiwave bolus,
|
|
||||||
multiple basal rates), which cause the loop functionality to be restricted when used because
|
|
||||||
it's not possible to run the loop in a safe manner when used.
|
|
||||||
- Verify the _Quick Info Text_ is set to "QUICK INFO" (without the quotes, found under _Insulin Pump Options_).
|
|
||||||
- Set maximum TBR to 500%
|
|
||||||
- Disable end of TBR alert
|
|
||||||
- Set TBR duration step-size to 15 min
|
|
||||||
- Recommended:
|
|
||||||
- Set low cartridge alarm to your liking
|
|
||||||
- Configure a max bolus suited for your therapy to protect against bugs in the software
|
|
||||||
- Similarly, configure maximum TBR duration as a safeguard. Allow at least 3 hours, since
|
|
||||||
the option to disconnect the pump for 3 hours sets a 0% for 3 hours.
|
|
||||||
- Enable key lock on the pump to prevent bolusing from the pump, esp. when the
|
|
||||||
pump was used before and quick bolusing was a habit.
|
|
||||||
- Set display timeout and menu timeout to the mininum of 5.5 and 5 respectively. This allows the AAPS to
|
|
||||||
recover more quickly from error situations and reduces the amount of vibrations that can occur during
|
|
||||||
such errors
|
|
||||||
- Install AndroidAPS as described in the wiki http://wiki.AndroidAPS.org
|
|
||||||
- Make sure to read the wiki to understand how to setup AndroidAPS.
|
|
||||||
- Select the MDI plugin in AndroidAPS, not the Combo plugin at this point to avoid the Combo
|
|
||||||
plugin from interfering with ruffy during the pairing process.
|
|
||||||
- Follow the link http://ruffy.AndroidAPS.org and clone ruffy via git. Use the same branch as you use for
|
|
||||||
AndroidAPS, which is usally `master`.
|
|
||||||
if you you want to help test the in-development version.
|
|
||||||
- Pair the pump using ruffy. If it doesn't work after multiple attempts, switch to the `pairing` branch,
|
|
||||||
pair the pump and then switch back the original branch.
|
|
||||||
If the pump is already paired and can be controlled via ruffy, installing the `master` branch is sufficient.
|
|
||||||
Note that the pairing processing is somewhat fragile (but only has to be done once)
|
|
||||||
and may need a few attempts; quickly acknowledge prompts and when starting over, remove the pump device
|
|
||||||
from the bluetooth settings beforehand. Another option to try is to go to the bluetooth menu after
|
|
||||||
initiating the pairing process (this keeps the phone's bluetooth discoverable as long as the menu is displayed)
|
|
||||||
and switch back to ruffy after confirming the pairing on the pump, when the pump displays the authorization code.
|
|
||||||
When AAPS is using ruffy, the ruffy app can't be used. The easiest way is to just
|
|
||||||
reboot the phone after the pairing process and let AAPS start ruffy in the background.
|
|
||||||
- Before enabling the Combo plugin in AAPS make sure your profile is set up
|
|
||||||
correctly and your basal profile is up to date as AAPS will sync the basal profile
|
|
||||||
to the pump. Then activate the Combo plugin.
|
|
||||||
|
|
||||||
Usage
|
|
||||||
-----
|
|
||||||
- Keep in mind that this is not a product, esp. in the beginning the user needs to monitor and understand the system,
|
|
||||||
its limitations and how it can fail. It is strongly advised NOT to use this system when the person
|
|
||||||
using it is not able to fully understand the system.
|
|
||||||
- Read the OpenAPS documentation https://openaps.org to understand the loop algorithm AndroidAPS
|
|
||||||
is based upon.
|
|
||||||
- Read in the wiki to learn about and understand AndroidAPS http://wiki.AndroidAPS.org
|
|
||||||
- This integration uses the same functionality which the meter provides that comes with the Combo.
|
|
||||||
The meter allows to mirror the pump screen and forwards button presses to the pump. The connection
|
|
||||||
to the pump and this forwarding is what the ruffy app does. A `scripter` components reads the screen
|
|
||||||
and automates inputing boluses, TBRs etc and making sure inputs are processed correctly.
|
|
||||||
AAPS then interacts with the scripter to apply loop commands and to administer boluses.
|
|
||||||
This mode has some restrictions: it's comparatively slow (but well fast enough for what it is used for),
|
|
||||||
and setting a TBR or giving a bolus causes the pump to vibrate.
|
|
||||||
- The integration of the Combo with AndroidAPS is designed with the assumption that all inputs are
|
|
||||||
made via AndroidAPS. Boluses entered on the pump directly will be detected by AAPS, but it can take
|
|
||||||
up to 25 min before AndroidAPS becomes aware of such a bolus. Reading boluses delivered directly on
|
|
||||||
the pump is a safety feature and not meant to be regularly used (the loop requires knowledge of carbs
|
|
||||||
consumed, which can't be entered on the pump, which is another reason why all inputs should be done
|
|
||||||
in AndroidAPS).
|
|
||||||
- The pump's first basal rate profile is read on application start and is updated by AAPS.
|
|
||||||
The basal rate should not be manually changed on the pump, but will be detected and corrected as a safety
|
|
||||||
measure (don't rely on safety measures by default, this is meant to detect an unintended change on the pump).
|
|
||||||
- It's recommended to enable key lock on the pump to prevent bolusing from the pump, esp. when the
|
|
||||||
pump was used before and quick bolusing was a habit.
|
|
||||||
Also, with keylock enabled, accidentally pressing a key will NOT interrupt active communication
|
|
||||||
between AAPS and pmup.
|
|
||||||
- When a BOLUS/TBR CANCELLED alert starts on the pump during bolusing or setting a TBR, this is
|
|
||||||
caused by a disconnect between pump and phone. AAPS will try to reconnect and confirm the alert
|
|
||||||
and then retry the last action (boluses are NOT retried for safety reasons). Therefore,
|
|
||||||
such an alarm shall be ignored (cancelling it is not a big issue, but will lead to the currently
|
|
||||||
active action to have to wait till the pump's display turns off before it can reconnect to the
|
|
||||||
pump). If the pump's alarm continues, the last action might have failed, in which case the user
|
|
||||||
needs to confirm the alarm.
|
|
||||||
- When a low cartridge or low battery alarm is raised during a bolus, they are confirmed and shown
|
|
||||||
as a notification in AAPS. If they occur while no connection is open to the pump, going to the
|
|
||||||
Combo tab and hitting the Refresh button will take over those alerts by confirming them and
|
|
||||||
showing a notification in AAPS.
|
|
||||||
- When AAPS fails to confirm a TBR CANCELLED alert, or one is raised for a different reason,
|
|
||||||
hitting Refresh in the Combo tab establishes a connection, confirms the alert and shows
|
|
||||||
a notification for it in AAPS. This can safely be done, since those alerts are benign - an
|
|
||||||
appropriate TBR will be set again during the next loop iteration.
|
|
||||||
- For all other alerts raised by the pump: connecting to the pump will show the alert message in
|
|
||||||
the Combo tab, e.g. "State: E4: Occlusion" as well as showing a notification on the main screen.
|
|
||||||
An error will raise an urgent notification. AAPS never confirms serious errors on the pump,
|
|
||||||
but let's the pump vibrate and ring to make sure the user is informed of a critical situation
|
|
||||||
that needs action.
|
|
||||||
- After pairing, ruffy should not be used directly (AAPS will start in the background as needed),
|
|
||||||
since using ruffy at AAPS at the same time is not supported.
|
|
||||||
- If AAPS crashes (or is stopped from the debugger) while AAPS and the pump were communicating (using
|
|
||||||
ruffy), it might be necessary to force close ruffy. Restarting AAPS will start ruffy again.
|
|
||||||
Restarting the phone is also an easy way to resolve this or you don't know how to force kill
|
|
||||||
an app.
|
|
||||||
- Don't press any buttons on the pump while AAPS communicates with the pump (Bluetooth logo is
|
|
||||||
shown on the pump).
|
|
||||||
|
|
||||||
Reporting bugs
|
|
||||||
--------------
|
|
||||||
- See https://github.com/MilosKozak/AndroidAPS/blob/master/ISSUE_TEMPLATE.md
|
|
||||||
- Note the precise time the problem occurred and describe the circumstances and steps that caused
|
|
||||||
the problem
|
|
||||||
- Note the Build version (found in the About dialog in the app, when pressing the three dots in the
|
|
||||||
upper-right corner).
|
|
||||||
- Obtain the app's log files, which can be found on the phone in
|
|
||||||
_/storage/emulated/0/Android/data/info.nightscout.androidaps/_
|
|
||||||
- Open an issue at https://github.com/MilosKozak/AndroidAPS/issues/new
|
|
||||||
|
|
142
TODO-Combo.md
142
TODO-Combo.md
|
@ -1,142 +0,0 @@
|
||||||
- [x] Bugs
|
|
||||||
- [-] Pump stops to response to connect attemps every 2-20h or so, only reacting
|
|
||||||
again when physically pressing a button on the pump ...
|
|
||||||
Occassionally the pump starts to accept connections again, sometimes
|
|
||||||
after 40m, sometimes no luck even after 80m
|
|
||||||
Stuff tried without success:
|
|
||||||
- Restarting BT
|
|
||||||
- Restarting ruffy
|
|
||||||
- Restarting AAPS
|
|
||||||
- Restarting phone
|
|
||||||
- Removing rtDisconnect on failed connect attempt (RuffyScripter.ensureConnected)
|
|
||||||
- Ruffy v1 branch with minimal NPE fixes and needed menus
|
|
||||||
Observations:
|
|
||||||
- Last command run beforehand was a short one, connection time < 1m
|
|
||||||
- It's unrelated to battery voltage.
|
|
||||||
- Auto off is disabled
|
|
||||||
- Keylock makes no difference
|
|
||||||
Speculations:
|
|
||||||
Did this already happen before the whole 'basal profile' thing?
|
|
||||||
Takes ages, could that trigger some weird bug that has never
|
|
||||||
surfaced in any other scenario before?
|
|
||||||
- [-] Temp basal history shows TBRs twice, once with a 1 min
|
|
||||||
duration and then with the reminder; caused by clock not
|
|
||||||
being within ~30s of the phone.
|
|
||||||
Cancelling TBR or overriding a running one with a new one
|
|
||||||
(both cases require a TBR end record) require an end TBR record.
|
|
||||||
checkTbrMismatch causes history read and TBR is right in AAPS
|
|
||||||
so far and any TBR set on the pump is cancelled, so it works,
|
|
||||||
but isn't clean. Needs some rethink - with a fresh mind -
|
|
||||||
maybe understanding what DanaR does, how to translate it to
|
|
||||||
the Combo.
|
|
||||||
Explicit end records when adding pump history records;
|
|
||||||
and/or: logic to detect time differences and align data
|
|
||||||
Current solution works, albeit a bit ugly, but is used in rare
|
|
||||||
circumstances where clock might be off anyway, so this would
|
|
||||||
still occur.
|
|
||||||
- [x] Deleting a bolus from the history re-adds it from the pump's
|
|
||||||
history. Deleting it again, flags it as invalid at which point
|
|
||||||
it will not be added to IOB and not be re-added.
|
|
||||||
- [x] Taking over benign warnings on connect doesn't work properly
|
|
||||||
(Notification raised but not confirmed?)
|
|
||||||
- [x] Optimization reading full history doesn't seem to work
|
|
||||||
- [x] Reading full history multiple times duplicates entries shown in Stats/TDD dialog
|
|
||||||
- [x] ruffy: Accessing the quick info menu yields noMenu when cartridge is low
|
|
||||||
- [x] ruffy: Multi-digit error codes in error history aren't supported
|
|
||||||
- [-] No connection can be established anymore; ruffy issue i can't solve
|
|
||||||
- Removing the BT device's bonding (!=pairing) fixes it; nope it doesn't
|
|
||||||
- Ruffy logs in BTConnection:163 handler.fail("no connection possible: " + e.getMessage());
|
|
||||||
- When developing (and thus killing/restarting AAPS often) this is trigger more frequently, leaving
|
|
||||||
some ruffy-releated (BT) cache in disarray? Immune to wiping, only repairing seems to work so far
|
|
||||||
- [x] Timeout connecting to pump -> crash (result.state wasn't filled in case of timeout)
|
|
||||||
- [x] Bolus deleted in treatments (marked invalid?!) is re-added when pump reads history
|
|
||||||
Probably fixed through other bugfixes, irrelevant though as "pump history records" can't
|
|
||||||
be deleted in AAPS
|
|
||||||
- [x] Issue of creating TBR start date from main menu time, which might be off by a minute
|
|
||||||
when we read it as a history record. End date time might be slightly off, unless
|
|
||||||
CancelTempBasal is updated to read from history (probably not worth it).
|
|
||||||
What would happen if while setting the TBR the start time was 12:01 but then
|
|
||||||
we read a history record with a start time of 12:02, both running 30min.
|
|
||||||
Would the former be trimmed to 1m? That'd be acceptable (this edge case occurs
|
|
||||||
if between confirm the TBR and reading the main menu date, the second goes
|
|
||||||
from 59.9999 to 0)
|
|
||||||
Only in issue if TBR was set on pump. In that case the TBR is cancelled and the
|
|
||||||
resulting history record is read
|
|
||||||
- [x] Tasks
|
|
||||||
- [x] Main
|
|
||||||
- [x] On command error: recover by returning to main menu
|
|
||||||
check entry and exit points of commands
|
|
||||||
- [x] Taking over alerts
|
|
||||||
- [x] On connect
|
|
||||||
- [x] During bolusing
|
|
||||||
- Can the low warning be set as high as 280 or so? To be able to trigger it with a quick refill? yup.
|
|
||||||
- [x] Check for errors first thing in runCommand? Whenever analysing a CommandResult?
|
|
||||||
- [x] forward all warnings and errors encountered, but only confirm benign ones
|
|
||||||
- [-] Reporting back failures in UI, maybe warn if lots of errors (unreachable alert might
|
|
||||||
already be enough, since it's based on 'lastSuccessfulConnection', where a connection is
|
|
||||||
considered successful if the command during that connection succeeded.
|
|
||||||
KeepAlive triggered check suffices.
|
|
||||||
- [x] Finish ComboPlugin structure to only have to plug date setting and pump setting in later
|
|
||||||
(actually, just use stub methods)
|
|
||||||
- [-] Updating time on pump
|
|
||||||
- [x] Raise a warning if time clock is off
|
|
||||||
- [-] Ruffy: support reading date/time menus
|
|
||||||
- [x] Setting pump basal profile
|
|
||||||
- [x] Overview notification on updated/failed basal profile
|
|
||||||
- [-] Pairing (and sourcing ruffy)
|
|
||||||
- [x] Run readReservoirAndBolusLevel after SetTbr too so boluses on the pump are caught sooner?
|
|
||||||
Currently the pump gets to know such a record when bolusing or when refresh() is called
|
|
||||||
after 15m of no other command taking place. IOB will then be current with next loop
|
|
||||||
checkPumpHistory is now called every 15m the least after executing a command
|
|
||||||
- [x] Reading history
|
|
||||||
- [x] Bolus
|
|
||||||
- [x] Read
|
|
||||||
- [x] Update DB
|
|
||||||
- [x] TBRs
|
|
||||||
- [x] Read
|
|
||||||
- [x] Update DB
|
|
||||||
- [x] Alerts
|
|
||||||
- [x] Read
|
|
||||||
- [x] Update DB? No, but raise an alert if new ones are found beyond those read at startup
|
|
||||||
(Those that occurred while AAPS was not active needn't be turned into alarms,
|
|
||||||
the user had to deal with them on the pump already). (Done via "Taking over alerts")
|
|
||||||
- [x] Display in UI
|
|
||||||
- [x] TDD
|
|
||||||
- [x] Read
|
|
||||||
- [x] Update DB? No, just write to plugin cache
|
|
||||||
- [x] Display in UI
|
|
||||||
- [x] Optimize reading full history to pass timestamps of last known records to avoid reading known records
|
|
||||||
iteration.
|
|
||||||
- [x] Cleanups
|
|
||||||
- [x] TBR cancel logic
|
|
||||||
- [x] Check dynamic timeout logic in RuffyScripter.runCommand
|
|
||||||
- [x] Finish 'enacted' removal rewrite (esp. cancel tbr)
|
|
||||||
- [x] ComboPlugin, commands invocation, checks, upadting combo store/cache
|
|
||||||
- [x] Finish reconnect
|
|
||||||
- [x] Adrian says: when changing time; last treatments timestamp is updated??
|
|
||||||
- Nope, at least not with a 2014 pump (SW1.06?)
|
|
||||||
- [x] Reconnect and auto-retry for commands
|
|
||||||
- [x] Empty battery state
|
|
||||||
- [x] Integrate alarms
|
|
||||||
- [x] Remove combo alerter thread
|
|
||||||
- [x] Display errors in combo tab(?), nope notifications are better suited; also there's the alerts thing already
|
|
||||||
- [x] Option to raise overview notifications as android notification with noise (for urgent ones?)
|
|
||||||
- [ ] Next version(s)
|
|
||||||
- [ ] State in ComboPump is not safely shared among threads
|
|
||||||
- [x] Naming is messed up: pump has warnings and errors, which cause alerts; W+E are thus alerts,
|
|
||||||
e.g. pumpAlertHistory should be renamed to alertHistory
|
|
||||||
- [x] Enable BT if disabled? does DanaR does this? BT watchdog in CommandQueue takes care of it
|
|
||||||
- [-] Finish and test German translation
|
|
||||||
- [x] No clean startup/shutdown; RuffyScripter is instanciated once, idle disconnect thread never killed
|
|
||||||
- Application shut down is broken with PersistentNotification (never shut down) and WearPlugin -
|
|
||||||
Android logs it as crashed and restarts it, thereby restarting the app (or just keeping it alive,
|
|
||||||
also causes errors with the DB as there were attemtps to open a closed DB instance/ref.
|
|
||||||
Does xDrip intents start AAPS? Starts automatically (but not instantly) after boot and there's no "start on boot" setting enabled
|
|
||||||
CommandQueue now issues disconnect and the idle-disconnect-monitor has been removed.
|
|
||||||
- [ ] Check if TBRs are set to often from ConfigBuilder on high base basal rates (basalstep is 0.01; in reality larger on >1U/h base basal)
|
|
||||||
- [ ] With long running commands (e.g. setting basal rate, which can take up to 5m), multiple 'set tbr' commands
|
|
||||||
may stack up. Since setting a TBR multiple times in one minute fails, the ComboPlugin rejects such
|
|
||||||
request, letting the oldest TBR run till the net iteration. This can potentially be nicely solved
|
|
||||||
through the queue branch. However, the original problem is the amount of time the Combo can
|
|
||||||
take to execute commands, which might go away (mostly) with command mode.
|
|
||||||
- [ ] Fix display of alarms on mainscreen (increase height if needed)
|
|
111
Testing-Combo.md
111
Testing-Combo.md
|
@ -1,111 +0,0 @@
|
||||||
- [ ] Pairing
|
|
||||||
- [ ] Pairing works with `combo-scripter-v2` branch
|
|
||||||
- [ ] Bolusing
|
|
||||||
- [ ] Cancelling bolus at various stages shall not yield an error but cancel the bolus. If
|
|
||||||
cancelled before delivery started, no treatment must have been added, if cancel after delivery
|
|
||||||
started, the partially delivered bolus must have been added to treatments
|
|
||||||
- [ ] Enter a bolus of 2 U and press cancel when delivery is at 1.7 (cancelling requires AAAPS
|
|
||||||
to press the up button for 3 seconds, so the cancellation attempt will not succeed because delivery
|
|
||||||
ends before those 3 seconds are elapsed). The code should handle this without giving an
|
|
||||||
error and add the full bolus to treatments.
|
|
||||||
- [ ] Recovery from connection issues during bolusing
|
|
||||||
- [ ] Pressing a button on the pump during delivery => Progress dialog freezes, then states that recovery
|
|
||||||
is in process and then closes; no error dialog, record correctly added to treatments
|
|
||||||
- [ ] Breaking the connection e.g. by moving the pump away from phone for up to a minute => same as above
|
|
||||||
- [ ] Same as above but put pump out of reach for 5 minutes => Error dialog, no record in treatments
|
|
||||||
- [ ] Starting a bolus bigger than what's left in the reservoir => Error dialog and a record in treatments with the partially delivered bolus
|
|
||||||
- [ ] When the connection breaks during bolusing, pressing the cancel button should not interfere with recovery and
|
|
||||||
the delivered bolus should be added to treatments
|
|
||||||
- [ ] Low cartridge alarm during bolus
|
|
||||||
- [ ] alarm must be confirmed by AAPS
|
|
||||||
- [ ] bolus must have been fully delivered by pump
|
|
||||||
- [ ] bolus must have been added to DB
|
|
||||||
- [ ] the confirmed pump warning must be raised as a notification in AAPS
|
|
||||||
(or as android notification on watch/smartphone if setting "use system notifications ..." is enabled
|
|
||||||
- [ ] Pressing a button on the pump, or moving the pump away from the phone to break connection
|
|
||||||
must confirm the pump alert and recover to finish the bolusing.
|
|
||||||
- [ ] If recovery fails, an error popup must be displayed
|
|
||||||
- [ ] Test bolusing a bolus bigger than what's left in the reservoir. A message to check what
|
|
||||||
was actually delivered must appear (this is a corner-case where we practically can't
|
|
||||||
check what was actually delivered).
|
|
||||||
- [ ] Pressing a button on the pump before bolus delivery started must be handled gracefully
|
|
||||||
- [ ] Same as above, but moving pump out of range
|
|
||||||
- [ ] Pressing a button on the pump after bolus delivery has started will freeze the progress bar,
|
|
||||||
initiate recovery and add the delivered bolus the treatments.
|
|
||||||
- [ ] Same as above, but moving pump out of range
|
|
||||||
- [ ] Test the highest bolus you'd ever give yourself (AAPS has a configurable limit and the pump
|
|
||||||
has a limit which can be configured with the Config SW), no timeout or other issues must show
|
|
||||||
- [ ] BT disconnect issues
|
|
||||||
- [ ] Moving pump out of reach when setting TBR causes "TBR cancelled" alarm on pump.
|
|
||||||
When putting pump close to phone, AAPS must confirm the alert and successfully
|
|
||||||
retry setting TBR (reconnects are a best-effort kind of a thing, so this might not always work)
|
|
||||||
- [ ] When a disconnect occurs, the pump's screen shows the error and the pump only accepts a connection
|
|
||||||
again when the pump's menu(?) timeout has occurred. A recovery should be quicker if that timeout is decreased.
|
|
||||||
It might be interesting to experiment with the Config software to set lower menu or display timeouts
|
|
||||||
(or whatever they're called ...) to improve recovery speed.
|
|
||||||
- [ ] AAPS start
|
|
||||||
- [ ] Starting AAPS without a reachable pump must show something sensible in the Combo tab
|
|
||||||
(not hanging indefinitely with "initializing" activity)
|
|
||||||
- [ ] Starting AAPS without a reachable pump must trigger "pump unrechable" alert after the configured threshold
|
|
||||||
- [ ] If the pump's basal profile doesn't match AAPS', the pump must be updated when AAPS starts
|
|
||||||
- [ ] Read history using Smartpix and compare with AAPS' DB (treatment tab)
|
|
||||||
Esp. those times we communication was interrupted, boluses were cancelled, ...
|
|
||||||
- [ ] Boluses
|
|
||||||
- [ ] TBR
|
|
||||||
- [ ] Alerts
|
|
||||||
- [ ] Disconnected pump (pump unreachable)
|
|
||||||
- [ ] With local alerts enabled for 'pump unreachable', an alert must be triggered within 5 minutes
|
|
||||||
after the configured threshold. (Don't set the threshold too low, e.g. 10 minutes, since
|
|
||||||
there might be no need to set a TBR within such a short time, but since there was no pump connection
|
|
||||||
within that time, the alarm would be triggered).
|
|
||||||
- [ ] Refilling cartridge
|
|
||||||
- [ ] If TBR was cancelled by refilling, AAPS must detect this and create a TBR record in AAPS
|
|
||||||
based on what the pump displays (not the full TBR duration, but what is displayed as remaining
|
|
||||||
on the main screen.
|
|
||||||
- [ ] Stress testing
|
|
||||||
- PersistentNotification plugin disabled
|
|
||||||
- Lots of comms running, like Wifi, GSM, BT audio
|
|
||||||
- AAPS running in background
|
|
||||||
- Foreground app stresses the phone's memory, CPU (like a game) (potentially) pushing AAPS out of memory
|
|
||||||
- [ ] TBR must still be set/cancelled while running in the background
|
|
||||||
- [ ] With the pump powered off or out of reach, the 'pump unreachable alert' must still
|
|
||||||
trigger
|
|
||||||
- [ ] Combo tab
|
|
||||||
- [ ] Check displayed data (state, battery, reservoir, temp basal) is the same
|
|
||||||
as on the pump
|
|
||||||
- [ ] Unsafe usage
|
|
||||||
- [ ] An active extended or multiwave bolus must raise an alert and
|
|
||||||
restrict the loop functionality to low-suspend only for the next 6h (setting maxIOB to zero)
|
|
||||||
and cancel an active TBR.
|
|
||||||
- [ ] Closed loop functionality must resume 6 h after the last ext/multiwave bolus
|
|
||||||
- [ ] If a basal rate other than profile 1 is active on start, the pump must refuse to finish
|
|
||||||
initialization and disable the loop. When setting the profile to 1 and refreshing,
|
|
||||||
the pump must finish initialization and enable the loop (the overview screen will
|
|
||||||
still show "closed loop", but the Combo and Loop tabs will say the loop is disabled
|
|
||||||
due to a constraint violation).
|
|
||||||
- [ ] When changing profile to one other than the first after AAPS has started and read the first
|
|
||||||
basal profile, a warning must be shown, the loop must be disabled and the active TBR be cancelled.
|
|
||||||
- [ ] A request to change the AAPS profil (e.g. increase to 110%) must be rejected if the pump
|
|
||||||
doesn't have profile one active.
|
|
||||||
- [ ] Reading/setting basal profile
|
|
||||||
- [ ] AAPS reads basal rate properly
|
|
||||||
- [ ] Test profile with 115% (or something like that) change to ask the
|
|
||||||
pump for basal rates like 0.812, which should then be set propely
|
|
||||||
- [ ] Updating the profile extensively (200%, shifting time) takes up to 6 minutes, but
|
|
||||||
should complete without timeout.
|
|
||||||
- [ ] Doing a profile change (to shift time or increase/decrease insulin), the pump's basal profile must be updated
|
|
||||||
- [ ] If a profile change has a duration, the pump's basal profile must be set to the original value again at the end
|
|
||||||
(this can vary a few minutes between what the overview screen shows and when the pump is updated, as the check
|
|
||||||
whether the pump is up-to-date or not is performed periodically and not at the exact minute a profile change ends)
|
|
||||||
- [ ] Taking over alerts
|
|
||||||
- [ ] If an error alert is active on the pump, pressing refresh shall display the error
|
|
||||||
in the Combo tab but NOT confirm it. Easiest error to trigger: rewind piston
|
|
||||||
and attempt to start the pump, this will trigger E11: Not primed.
|
|
||||||
- [ ] Pressing refresh while a low cartridge or low battery alarm is active
|
|
||||||
must confirm the alarm, indicate the new status in the Combo tab and
|
|
||||||
show a notification on the overview screen
|
|
||||||
- [ ] A TBR CANCELLED is now also taken over when refreshing (since it's a benign error the loop will correct
|
|
||||||
during the next iteration).
|
|
||||||
- [ ] Misc
|
|
||||||
- [ ] Pump state is correctly uploaded to Nightscout (note that reservoir level are fake numbers representing
|
|
||||||
norma/low/empty).
|
|
Loading…
Reference in a new issue