From a7aa4c2b5a28281af0b42e8122335ee3772e5d41 Mon Sep 17 00:00:00 2001 From: Nico Schmitz Date: Wed, 13 Jun 2018 00:28:17 +0200 Subject: [PATCH] Implement getBatteryLevel() in PumpInterface and for all pump plugins --- .../androidaps/interfaces/PumpInterface.java | 2 ++ .../androidaps/plugins/PumpCombo/ComboPlugin.java | 12 ++++++++++++ .../plugins/PumpDanaR/AbstractDanaRPlugin.java | 3 +++ .../androidaps/plugins/PumpDanaRS/DanaRSPlugin.java | 3 +++ .../plugins/PumpInsight/InsightPlugin.java | 3 +++ .../androidaps/plugins/PumpMDI/MDIPlugin.java | 3 +++ .../plugins/PumpVirtual/VirtualPumpPlugin.java | 3 +++ 7 files changed, 29 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/interfaces/PumpInterface.java b/app/src/main/java/info/nightscout/androidaps/interfaces/PumpInterface.java index 9030cf8bfd..0200f7635a 100644 --- a/app/src/main/java/info/nightscout/androidaps/interfaces/PumpInterface.java +++ b/app/src/main/java/info/nightscout/androidaps/interfaces/PumpInterface.java @@ -35,6 +35,8 @@ public interface PumpInterface { double getReservoirLevel(); + int getBatteryLevel(); // in percent as integer + PumpEnactResult deliverTreatment(DetailedBolusInfo detailedBolusInfo); void stopBolusDelivering(); PumpEnactResult setTempBasalAbsolute(Double absoluteRate, Integer durationInMinutes, Profile profile, boolean enforceNew); 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 c78af7a75b..b11b0c4694 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 @@ -428,6 +428,18 @@ public class ComboPlugin extends PluginBase implements PumpInterface, Constraint return pump.reservoirLevel; } + @Override + public int getBatteryLevel() { + switch (pump.state.batteryState) { + case PumpState.EMPTY: + return 0; + case PumpState.LOW: + return 25; + default: + return 100; + } + } + private static BolusProgressReporter bolusProgressReporter = (state, percent, delivered) -> { EventOverviewBolusProgress event = EventOverviewBolusProgress.getInstance(); switch (state) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/AbstractDanaRPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/AbstractDanaRPlugin.java index 77263e41b2..5deeac949f 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/AbstractDanaRPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaR/AbstractDanaRPlugin.java @@ -153,6 +153,9 @@ public abstract class AbstractDanaRPlugin extends PluginBase implements PumpInte @Override public double getReservoirLevel() { return pump.reservoirRemainingUnits; } + @Override + public int getBatteryLevel() { return pump.batteryRemaining; } + @Override public void stopBolusDelivering() { if (sExecutionService == null) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/DanaRSPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/DanaRSPlugin.java index 574a775426..10b7f0f4c2 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/DanaRSPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpDanaRS/DanaRSPlugin.java @@ -357,6 +357,9 @@ public class DanaRSPlugin extends PluginBase implements PumpInterface, DanaRInte return pump.reservoirRemainingUnits; } + @Override + public int getBatteryLevel() { return pump.batteryRemaining; } + @Override public synchronized PumpEnactResult deliverTreatment(DetailedBolusInfo detailedBolusInfo) { detailedBolusInfo.insulin = MainApp.getConstraintChecker().applyBolusConstraints(new Constraint<>(detailedBolusInfo.insulin)).value(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/InsightPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/InsightPlugin.java index 752360cbfc..2b31e4e3d7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/InsightPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/InsightPlugin.java @@ -388,6 +388,9 @@ public class InsightPlugin extends PluginBase implements PumpInterface, Constrai @Override public double getReservoirLevel() { return reservoirInUnits; } + @Override + public int getBatteryLevel() { return batteryPercent; } + public String getBaseBasalRateString() { final DecimalFormat df = new DecimalFormat("#.##"); return df.format(basalRate); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpMDI/MDIPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpMDI/MDIPlugin.java index 76068e71d4..4247b2b45f 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpMDI/MDIPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpMDI/MDIPlugin.java @@ -132,6 +132,9 @@ public class MDIPlugin extends PluginBase implements PumpInterface { @Override public double getReservoirLevel() { return -1; } + @Override + public int getBatteryLevel() { return -1; } + @Override public PumpEnactResult deliverTreatment(DetailedBolusInfo detailedBolusInfo) { PumpEnactResult result = new PumpEnactResult(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpVirtual/VirtualPumpPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpVirtual/VirtualPumpPlugin.java index bda4f2402e..949f9c9875 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpVirtual/VirtualPumpPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpVirtual/VirtualPumpPlugin.java @@ -200,6 +200,9 @@ public class VirtualPumpPlugin extends PluginBase implements PumpInterface { @Override public double getReservoirLevel() { return reservoirInUnits; } + @Override + public int getBatteryLevel() { return batteryPercent; } + @Override public PumpEnactResult deliverTreatment(DetailedBolusInfo detailedBolusInfo) { PumpEnactResult result = new PumpEnactResult();