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
Johannes Mockenhaupt
e01e85c54f
On connect, check if pump is in an error state.
2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt
d0dabf34da
Fix handling TBR CANCELLED alert, remove ill-advised attempts to fake a command queue and have all commands return a state object.
2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt
952aa0e8a2
RuffyScripter.waitForMenuToBeLeft: add timeout.
2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt
d8011aeaa4
Make cancelling TBR more robust to dismiss TBR cancelled alert specifially and only if it is raised.
...
Cancelling a TBR with a runtime < 60s (0:01 in the display) does NOT raise a TBR cancelled alert.
2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt
2c706e7c22
Remove status logging in Ruffy, now done by command.
2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt
f5ef666061
Add timestamp to State and rename to PumpState.
2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt
9d8d12fcb9
Cleanups.
2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt
e76524a539
Include state in CommandResult.toString.
2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt
375eb46695
ReadStateCommand: properly read TBR %.
2017-07-18 21:20:39 +02:00
Johannes Mockenhaupt
fa039e6961
Note on cancelling TBRs that don't trigger a pump alert.
2017-07-18 21:20:18 +02:00
Johannes Mockenhaupt
0345a01fc1
Make CancelTbrCommand more robust.
2017-07-18 20:59:56 +02:00
Johannes Mockenhaupt
5631488cc8
Add ReadStateCommand.
2017-07-18 20:59:56 +02:00
Johannes Mockenhaupt
a2b3c26b33
Log pump status on connect.
2017-07-18 20:59:56 +02:00
Johannes Mockenhaupt
347890496b
SetTbrCommand: wain for menu update when switching to TBR_DURATION to make it safer, hopefully.
2017-07-18 20:59:56 +02:00
Johannes Mockenhaupt
8c107cb48a
RuffyScripter: Log button presses.
2017-07-18 20:59:56 +02:00
Johannes Mockenhaupt
df58b6d1c2
CancelTbrCommand: log running TBR to be cancelled.
2017-07-18 20:59:56 +02:00
Johannes Mockenhaupt
9674db8d85
CancelTbrCommand: set enacted=true, even when there was no TBR to cancel.
...
This helps recover when there was an issue. AAPS thinks there's a TBR
running and by reporting back 'enacted', the plugin will create a
"Cancel temp" treatment.
2017-07-18 20:55:48 +02:00
Johannes Mockenhaupt
0729d7a114
RuffyScripter: Abort a running command after 90s timeout
2017-07-18 20:55:47 +02:00
Johannes Mockenhaupt
d35d93ed44
RuffyScripter.verifyMenuIsDisplayed: wait a bit longer if needed.
...
Sometimes the pump seems to take a bit longer.
2017-07-18 20:55:47 +02:00
Johannes Mockenhaupt
e07d62bf79
Fix setting TBR when existing TBR has runtime < 15m.
2017-07-18 20:55:47 +02:00
Johannes Mockenhaupt
97f9e99437
toString methods for Commands.
2017-07-18 20:55:47 +02:00
Johannes Mockenhaupt
1f5c03b64e
Cleanups.
2017-07-18 20:55:47 +02:00
Johannes Mockenhaupt
3280092566
Source ruffy scripter for the time being (already some fixes and tweaks in).
2017-07-18 20:55:44 +02:00