Commit graph

173 commits

Author SHA1 Message Date
Sandra Keßler 6acc25978b Small fix for slow Set error 2017-08-11 17:35:58 +02:00
Sandra Keßler bd0a298168 fix maybe long duration before setting tbr 2017-08-11 17:35:58 +02:00
Sandra Keßler e20084c97f change step calculation and fix time setting (got the actual vs requested time wrong) 2017-08-11 17:35:58 +02:00
Sandra Keßler 29b5ad9696 modify Waits/timeouts to better Set tar with short Menu timeouts 2017-08-11 17:35:58 +02:00
Sandra Keßler b1a7083371 add Logs to setTbrCommand 2017-08-11 17:35:58 +02:00
Savek-CC d520643d45 Merge branch 'develop' into 'mainline'
# Conflicts:
#   app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java
2017-08-06 22:35:07 +00:00
Johannes Mockenhaupt c524e2a685
Revert merge which was committed due to a misunderstanding. 2017-08-06 21:47:17 +02:00
Johannes Mockenhaupt 0ef8fd9994
Some polish. 2017-08-05 13:11:07 +02:00
Johannes Mockenhaupt 8369893428
Fix if-statement. 2017-08-05 12:35:05 +02:00
Johannes Mockenhaupt 134bc32dac
Merge remote-tracking branch 'fork/tbrDurationFix-90-110-cancel' into stable
* fork/tbrDurationFix-90-110-cancel:
  change ComboPlugin to change basal to 90 or 110 percent instead of cancel - depending on previous tbr
  missing stuf :/
  add unused (but tested) command to get basal rate from Profile 1
  update setTBRCommand to way faster methods in scripter
  add waitScreen (wait for refresh with timeout), gotToMainMenuScreen (with the help of back and menu navigate to a given main menu), enterMenu (to navigate withhin submenus), and step (send a key repeated)
  add back key
  make keypress wait up to 2000ms for key response
  add type of menu to MenuType (main or sub menu)
  - fix Multi connect - add key sent with 2500ms wait on keypress - fix Timing and npes in setTBR - make ruffyScripter not reinit every time - fix menu npe
  change Version info
  exceptions
  maybe better error recovery?
  alternate setTBR based on StateMachine
  more time
  increase Button Timing to 200ms
  wait till we get something currentDuration % 15 == 0
  slow pump fix
  if umbind fails while service is dead, bind would never be called

# Conflicts:
#	app/src/main/java/de/jotomo/ruffyscripter/RuffyScripter.java
2017-08-05 11:42:14 +02:00
Johannes Mockenhaupt a5692d1076
Don't attempt to start idleDisconnectMonitor again if RS is restarted. 2017-08-05 11:28:53 +02:00
Sandra Keßler 37a3270a16 missing stuf :/ 2017-08-04 17:58:28 +02:00
Sandra Keßler f790ce6f20 add unused (but tested) command to get basal rate from Profile 1 2017-08-04 17:57:34 +02:00
Sandra Keßler ac3859dcae update setTBRCommand to way faster methods in scripter 2017-08-04 16:39:03 +02:00
Sandra Keßler d35283ad74 add waitScreen (wait for refresh with timeout), gotToMainMenuScreen (with the help of back and menu navigate to a given main menu), enterMenu (to navigate withhin submenus), and step (send a key repeated) 2017-08-04 16:38:25 +02:00
Sandra Keßler d8ca2771fb add back key 2017-08-04 16:36:25 +02:00
Sandra Keßler efb73ba4f2 make keypress wait up to 2000ms for key response 2017-08-04 16:36:12 +02:00
Sandra Keßler 6981276cab - fix Multi connect
- add key sent with 2500ms wait on keypress
- fix Timing and npes in setTBR
- make ruffyScripter not reinit every time
- fix menu npe
2017-08-04 11:53:51 +02:00
Sandra Keßler 791d905b14 exceptions 2017-07-31 13:08:10 +02:00
Sandra Keßler 58e6791441 alternate setTBR based on StateMachine 2017-07-31 11:52:31 +02:00
Sandra Keßler 3497296b6c more time 2017-07-31 09:08:12 +02:00
Sandra Keßler a7165497ea increase Button Timing to 200ms 2017-07-30 22:49:52 +02:00
Sandra Keßler 7c001e97bf wait till we get something currentDuration % 15 == 0 2017-07-30 22:25:49 +02:00
Sandra Keßler bfb6039c16 slow pump fix 2017-07-30 22:25:49 +02:00
Johannes Mockenhaupt d672f3c653
Remove hander on ruffy unbind. 2017-07-30 13:03:43 +02:00
Sandra Keßler 5e845e37f7 change to support changed IRuffyService 2017-07-28 13:41:10 +02:00
AdrianLxM 9572c8d9fc Merge remote-tracking branch 'origin/develop' into read-maxtbr-clean 2017-07-27 20:27:48 +02:00
Johannes Mockenhaupt 17b0e7d71a
Fix some typos. 2017-07-27 14:35:56 +02:00
AdrianLxM c41b12492f tbr capability retry change 2017-07-27 13:43:50 +02:00
Johannes Mockenhaupt bd353a7043
BolusCommand: confirm via My Data history the correct amount was delivered. 2017-07-27 13:39:23 +02:00
AdrianLxM 2697ac9420 battery and insulinstate 2017-07-27 12:20:59 +02:00
Johannes Mockenhaupt b96edc048e
Merge remote-tracking branch 'fork/develop' into stable
* fork/develop:
  setTBR - check for TBR and RUNTIME
2017-07-26 18:18:10 +02:00
AdrianLxM 76c0b999ff determine max possible tbr firstshot 2017-07-26 18:11:45 +02:00
Johannes Mockenhaupt 78d2322c14
Typos. 2017-07-26 18:02:21 +02:00
Johannes Mockenhaupt 02c80a924c
SetTbrCommand: remove retry logic, add extra checks for final bolus. 2017-07-26 18:00:18 +02:00
Johannes Mockenhaupt da69e69570
BolusCommand: remove retry logic, add extra checks for final bolus. 2017-07-26 16:06:58 +02:00
Johannes Mockenhaupt e1b63a4a74
Command doc. 2017-07-26 15:50:07 +02:00
Johannes Mockenhaupt d79b221940
CommandException: provide message for printing. 2017-07-26 14:44:28 +02:00
AdrianLxM 21b81a5084 setTBR - check for TBR and RUNTIME 2017-07-26 12:19:28 +00:00
Johannes Mockenhaupt 314a551c96
Mark log entries comming from ruffy. 2017-07-24 15:18:16 +02:00
Johannes Mockenhaupt c8c4cf2813
Add log statement. 2017-07-24 13:30:08 +02:00
Johannes Mockenhaupt ebd9c0d876
Add wait time between reconnects.
Might improve GL#34.
2017-07-24 13:16:35 +02:00
Johannes Mockenhaupt 81f3aea42a
Provide basic pump data for upload. 2017-07-24 12:59:56 +02:00
Johannes Mockenhaupt 6a0273046d
Comment on English being the only supported pump language so far. 2017-07-24 02:24:48 +02:00
Johannes Mockenhaupt 5e5c837949
Clean up comment. 2017-07-23 23:42:44 +02:00
Johannes Mockenhaupt cc715cf76f
Notes, typo. 2017-07-23 17:51:08 +02:00
Johannes Mockenhaupt 27187b5e75
Bugfix: More reliable way to determine if the connection is ready to execute comands. 2017-07-22 20:02:35 +02:00
Johannes Mockenhaupt 9cdd988bff
Bugfix: sleep *inside* the loop.
Whops, maxing out a core, draining the battery.
2017-07-22 17:53:55 +02:00
Johannes Mockenhaupt fcd6f4ea0e
jotomo/AndroidAPS#29 Don't raise alarm on 'double cancellation'. 2017-07-22 11:36:52 +02:00
Johannes Mockenhaupt a153b59d5d
Increase timeouts.
90s until timeout due to no menu updates
60s timeout for operations (waitForMenuToBeLeft, verifyMenuIsDisplayed).
2017-07-22 11:34:28 +02:00
Johannes Mockenhaupt b3a7585a52
Note an pump sluggishness. 2017-07-22 11:07:35 +02:00
Johannes Mockenhaupt 7f185557f4
DEBUG: log temp basals that are active when pump receives command to issue a tbr when non is active on the pump. 2017-07-21 22:46:00 +02:00
Johannes Mockenhaupt 9af2e0af01
Add v2 TODO 2017-07-21 17:40:12 +02:00
Johannes Mockenhaupt cb8a22582a
Wait up to 90s before timing out on connection attempt.
Might take longer if we need to wait for the pump display to time
out due to recent user activity.
2017-07-21 17:40:12 +02:00
Johannes Mockenhaupt 63131f73d0
Cleanups. 2017-07-21 17:40:12 +02:00
Johannes Mockenhaupt 821e31c1c3
Add debug logging. 2017-07-21 17:40:12 +02:00
Johannes Mockenhaupt a2fad3293d
Fix adding pump state to CommandResult when there are violations. 2017-07-21 17:40:12 +02:00
Johannes Mockenhaupt e526de68ea
Some improvements around connection state. 2017-07-21 17:40:12 +02:00
Johannes Mockenhaupt bf179cd751
Fail on attempts to cancel non-running TBR.
Until we know this would be benign.
We still return 'enacted=true', so AAPS can mark the TBR as finished
to recover from this error state.
2017-07-21 17:28:30 +02:00
Johannes Mockenhaupt a1564d5bb7
RuffyScripter: only set connected variable in rtConnected, rtDisconnected.
Hopefully fixes intermittent failures to close the connection, as
idleDisconnectMonitorThread sometimes fails to disconnect
because connected == false.
2017-07-19 21:45:28 +02:00
Johannes Mockenhaupt 1cf6448b0e
Add CommandResult.completionTime field and set it in RuffyScripter when the command has finished executing. 2017-07-19 21:45:28 +02:00
Johannes Mockenhaupt 97733848e7
SetTbrCommand: replace static wait with dynamic wait to have completionDate more accurate. 2017-07-19 21:45:28 +02:00
Johannes Mockenhaupt 467cf1e6ed
Pass pre-cmd pump state to command, log it. 2017-07-19 21:45:28 +02:00
Johannes Mockenhaupt 485b99e260
Show last command and pump state better in the Combo tab.
Gets rid of unhelpful "Unknown error" messaegs.
2017-07-19 01:33:19 +02:00
Johannes Mockenhaupt 5aacf8410d
Fix CancelTbrCommand to return command resutlt not in PumpState but as part of the CommandResult object. 2017-07-19 01:30:26 +02:00
Johannes Mockenhaupt 9927ab4989
Raise an error upon attempting to cancel a TBR when none is active. 2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt 3b287df77d
Check active menu again when retrying inputs. 2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt abf9566476
Log exception 2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt ebe14fb0cf
BolusCommand: deal with blinking values.
How did this not trigger with all the  boluses I've issued so far?
2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt 7fe9ad7910
Add retries for inputing values.
Rarely there seem to be timing issues and e.g.
10 button down presses to go from 100% to 0% only goes down to 20%.
Retry two more times in that case, restarting the input process on the
active screen (bolus input, tbr percent/duration input).
2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt e52c2a857c
RuffyScripter: log command execution time. 2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt 7dda253b88
RuffyScripter: when pump is suspended fail all commands but ReadPumpState.
Safest way for v1 (which I'm trying to stabilize, not rework ;-) ).
2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt bd14b399d5
Comment. 2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt 55e7006967
Remove superfluous code (state is always set later in controlling thread). 2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt 02a9ed6eda
Set an active command before establishing a connection.
Otherwise the disconnect thread will close the connection
due to inactivity. We could add a variable 'isConnecting',
but I'm not sure if adding another (ruffy-) global state
variable will make things simpler to grasp.
2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt c37310685a
Don't count the time establishing a connection towards a command timeout.
Note: connection timeouts are also dealt with. They're now (cleanly)
separated: connect- and command-timeouts.

If the pump's display is one due to the user interacting with the pump
directly, the pump needs a display timeout before being ready for an
incoming connection. What I'm trying to say is, it might take some time,
maybe up to 30s to establish a connection in that cause and can thus
easily create a false timeout error.
2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt 36966c8907
Handle the pump being stopped: don't treat it like an error, but don't execute commands either. 2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt af4ec4d072
BolusCommand: fix contstraint check (doh!) 2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt 5f43f0f147
* Fix stale data in Combo tab after error
* Add info about last command ran to the Combo tab
* Don't refresh data more than once a minute.
* Specify not only error, but also command that raised the error in
  alert notification
2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt ac10bdc01c
First stab at dynamic timeout. 2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt 44ae79bd50
Move command argument checking out of ctor into a dedicated method and check prior to execution. 2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt 5fad9b3a85
Cleanups. 2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt 20a8350c67
Robustness for RuffyScripter. 2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt c131280e91
RuffyScripter.verifyMenuIsDisplayed: don't call waitForMenuUpdate, menu should already be displayed. If not, wait up to 1 second. 2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt 362c3681d5
Clean up commands package. 2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt c63c86f98a
RuffyScripter improvements:
* Keep track of connection status rather than relying in IRuffyService.isConnected
* Abort running command if pump stops sending menu updates
* Fail if ruffy goes away (binding becomes invalid), currently only if this happens during disconnect attempts
2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt 52b9621e29
Paranoia: check we're in the expected menu before each and every button press. 2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt d619796019
Improving pump status in the UI (combo tab) 2017-07-18 21:20:40 +02:00
Johannes Mockenhaupt f7586268c7
Dead code be gone. 2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt 93c0147b23
RuffyScripter: take over connection management. Disconnect after 5s of inactivity. Plus some fixes. 2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt 2ddccd3c31
RuffyScripter.runCommand: Next shot at understanding threading better. 2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt 4c0944b9f8
Optimize cancelling TBR. 2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt 8ecf6922f7
Misc improvements:
* Make command execution (RuffyScripter/ComoboPlugin.runCommand) more robust (I still suck at threading).
* Return all possible states in PumpState
* Add absolute TBR to PumpState
* Add NoOpCommand to fetch state data from pump
* Display returned pump state in Combo fragment/tab.
2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt f251427d1b
Remove ReadStateCommand, all state will be return through the PumpState field on CommandResult, so it's passed back after every command. 2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt ec6491fcb7
Return absolute TBR rate in PumpState. 2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt 69b98c54c6
Polish. 2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt 9653af5501
RuffyScripter.navigateToMenu: detect if we're wrapping around not finding a menu (likely because it's hidden) 2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt 7e538cbcf6
Update PumpState s/errorCode/errorMsg/g 2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt 99830b05b6
Fix detecting error state on connection and fix cancelling TBR.
When there's an error, timing is crucial. Waiting for the blinking error code
to be readable hangs the thread running the command.
2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt 4ff81e885c
Simplify reading alerts (message doesn't blink) 2017-07-18 21:20:39 +02:00