Trim requested TBR rate to maximum the pump supports, properly round.
This commit is contained in:
parent
127fbc993e
commit
27f788424a
1 changed files with 15 additions and 8 deletions
|
@ -478,20 +478,27 @@ public class ComboPlugin implements PluginBase, PumpInterface {
|
|||
@Override
|
||||
public PumpEnactResult setTempBasalPercent(Integer percent, Integer durationInMinutes) {
|
||||
log.debug("setTempBasalPercent called with " + percent + "% for " + durationInMinutes + "min");
|
||||
if (percent % 10 != 0) {
|
||||
int rounded = percent;
|
||||
while (rounded % 10 != 0) rounded = rounded - 1;
|
||||
log.debug("Rounded requested percentage from " + percent + " to " + rounded);
|
||||
percent = rounded;
|
||||
|
||||
int adjustedPercent = percent;
|
||||
|
||||
if (adjustedPercent > pumpDescription.maxTempPercent) {
|
||||
log.debug("Reducing requested TBR to the maximum support by the pump: " + percent + " -> " + pumpDescription.maxTempPercent);
|
||||
adjustedPercent = pumpDescription.maxTempPercent;
|
||||
}
|
||||
|
||||
CommandResult commandResult = runCommand(new SetTbrCommand(percent, durationInMinutes));
|
||||
if (adjustedPercent % 10 != 0) {
|
||||
Long rounded = Math.round(adjustedPercent / 10d) * 10;
|
||||
log.debug("Rounded requested percentage:" + adjustedPercent + " -> " + rounded);
|
||||
adjustedPercent = rounded.intValue();
|
||||
}
|
||||
|
||||
CommandResult commandResult = runCommand(new SetTbrCommand(adjustedPercent, durationInMinutes));
|
||||
if (commandResult.enacted) {
|
||||
TemporaryBasal tempStart = new TemporaryBasal(commandResult.completionTime);
|
||||
// TODO commandResult.state.tbrRemainingDuration might already display 29 if 30 was set, since 29:59 is shown as 29 ...
|
||||
// we should check this, but really ... something must be really screwed up if that number was anything different
|
||||
tempStart.durationInMinutes = durationInMinutes;
|
||||
tempStart.percentRate = percent;
|
||||
tempStart.percentRate = adjustedPercent;
|
||||
tempStart.isAbsolute = false;
|
||||
tempStart.source = Source.USER;
|
||||
ConfigBuilderPlugin treatmentsInterface = MainApp.getConfigBuilder();
|
||||
|
@ -505,7 +512,7 @@ public class ComboPlugin implements PluginBase, PumpInterface {
|
|||
pumpEnactResult.isPercent = true;
|
||||
// Combo would have bailed if this wasn't set properly. Maybe we should
|
||||
// have the command return this anyways ...
|
||||
pumpEnactResult.percent = percent;
|
||||
pumpEnactResult.percent = adjustedPercent;
|
||||
pumpEnactResult.duration = durationInMinutes;
|
||||
return pumpEnactResult;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue