From 1e9d0d08c3e4c72535c8a7b0efee8080032739b6 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Sat, 25 Nov 2017 13:13:51 +0100 Subject: [PATCH] Reject requents to enact TBRs if one was already started within this minute. (cherry picked from commit 3805413) --- .../androidaps/plugins/PumpCombo/ComboPlugin.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java index 8623d68502..15be6a3337 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboPlugin.java @@ -589,6 +589,15 @@ public class ComboPlugin implements PluginBase, PumpInterface, ConstraintsInterf return cancelTempBasal(false); } + long thisMinute = System.currentTimeMillis() / (60 * 1000) * (60 * 1000); + TemporaryBasal activeTbr = MainApp.getConfigBuilder().getTempBasalFromHistory(thisMinute); + if (activeTbr != null && activeTbr.date == thisMinute) { + // setting multiple TBRs within a single minute (with the first TBR having a runtime + // of 0) is not supported. Attempting to do so sets a new TBR on the pump but adding + // the record to the DB fails as there already is a record with that date. + return new PumpEnactResult().success(false).enacted(false); + } + int finalAdjustedPercent = adjustedPercent; CommandResult commandResult = runCommand(MainApp.sResources.getString(R.string.combo_pump_action_setting_tbr, percent, durationInMinutes), 3, () -> ruffyScripter.setTbr(finalAdjustedPercent, durationInMinutes));