From d07d9d309e20f804e198f970c44e1e6b6738f6b5 Mon Sep 17 00:00:00 2001 From: Jamorham Date: Wed, 31 Jan 2018 09:53:31 +0000 Subject: [PATCH] Implement additional methods --- .../PumpInsight/InsightPumpPlugin.java | 41 +++++++++++++++---- .../PumpInsight/connector/Connector.java | 5 ++- 2 files changed, 36 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/InsightPumpPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/InsightPumpPlugin.java index fdadab7bd3..1a26261b22 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/InsightPumpPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/InsightPumpPlugin.java @@ -41,10 +41,10 @@ import info.nightscout.androidaps.plugins.PumpInsight.utils.StatusItem; import info.nightscout.utils.DateUtil; import info.nightscout.utils.NSUpload; import info.nightscout.utils.SP; -import sugar.free.sightparser.applayer.messages.AppLayerMessage; import sugar.free.sightparser.applayer.descriptors.ActiveBolus; import sugar.free.sightparser.applayer.descriptors.ActiveBolusType; import sugar.free.sightparser.applayer.descriptors.PumpStatus; +import sugar.free.sightparser.applayer.messages.AppLayerMessage; import sugar.free.sightparser.applayer.messages.remote_control.CancelTBRMessage; import sugar.free.sightparser.applayer.messages.remote_control.ExtendedBolusMessage; import sugar.free.sightparser.applayer.messages.remote_control.StandardBolusMessage; @@ -134,7 +134,6 @@ public class InsightPumpPlugin implements PluginBase, PumpInterface { pumpDescription.tempDurationStep = 15; // 15 minutes up to 24 hours pumpDescription.tempMaxDuration = 24 * 60; - pumpDescription.isSetBasalProfileCapable = false; // leave this for now pumpDescription.basalStep = 0.01d; pumpDescription.basalMinimumRate = 0.02d; @@ -253,7 +252,7 @@ public class InsightPumpPlugin implements PluginBase, PumpInterface { @Override public boolean isSuspended() { - return false; + return !isPumpRunning(); } @Override @@ -266,10 +265,9 @@ public class InsightPumpPlugin implements PluginBase, PumpInterface { return Connector.get().isPumpConnected(); } - // TODO implement @Override public boolean isConnecting() { - return false; + return Connector.get().isPumpConnecting(); } @Override @@ -311,6 +309,21 @@ public class InsightPumpPlugin implements PluginBase, PumpInterface { @Override public void stopConnecting() { + log("InsightPumpPlugin::stopConnecting()"); + try { + if (isConnecting()) { + if (!SP.getBoolean("insight_always_connected", false)) { + log("Requesting disconnect"); + connector.getServiceConnector().disconnect(); + } else { + log("Not disconnecting due to preference"); + } + } else { + log("Not currently trying to connect so not stopping connection"); + } + } catch (NullPointerException e) { + log("Could not stop connecting - null pointer: " + e); + } } @Override @@ -411,10 +424,16 @@ public class InsightPumpPlugin implements PluginBase, PumpInterface { return result; } - // TODO implement @Override public void stopBolusDelivering() { + final UUID cmd = aSyncTaskRunner(new CancelBolusTaskRunner(connector.getServiceConnector(), ActiveBolusType.STANDARD), "Cancel standard bolus"); + if (cmd == null) { + return; + } + + final Cstatus cs = async.busyWaitForCommandResult(cmd, BUSY_WAIT_TIME); + log("Got command status: " + cs); } // Temporary Basals @@ -574,7 +593,7 @@ public class InsightPumpPlugin implements PluginBase, PumpInterface { extendedBolus.date = System.currentTimeMillis(); extendedBolus.insulin = insulin; extendedBolus.durationInMinutes = durationInMinutes; - extendedBolus.source = Source.USER; // TODO check this is correct + extendedBolus.source = Source.USER; MainApp.getConfigBuilder().addToHistoryExtendedBolus(extendedBolus); } @@ -607,7 +626,6 @@ public class InsightPumpPlugin implements PluginBase, PumpInterface { if (MainApp.getConfigBuilder().isInHistoryExtendedBoluslInProgress()) { ExtendedBolus exStop = new ExtendedBolus(System.currentTimeMillis()); exStop.source = Source.USER; - // TODO does this need any specific cancel flag? MainApp.getConfigBuilder().addToHistoryExtendedBolus(exStop); } @@ -710,6 +728,11 @@ public class InsightPumpPlugin implements PluginBase, PumpInterface { return MainApp.instance().getString(id); } + private boolean isPumpRunning() { + if (statusResult == null) return true; // assume running if we have no information + return statusResult.getPumpStatusMessage().getPumpStatus() == PumpStatus.STARTED; + } + List getStatusItems() { final List l = new ArrayList<>(); @@ -722,7 +745,7 @@ public class InsightPumpPlugin implements PluginBase, PumpInterface { // also check time since received if (statusResult != null) { - pumpRunning = statusResult.getPumpStatusMessage().getPumpStatus() == PumpStatus.STARTED; + pumpRunning = isPumpRunning(); if (pumpRunning) { l.add(new StatusItem(gs(R.string.pump_basebasalrate_label), getBaseBasalRateString() + "U")); } else { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/connector/Connector.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/connector/Connector.java index ad974664b4..470a649069 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/connector/Connector.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpInsight/connector/Connector.java @@ -30,7 +30,6 @@ import static sugar.free.sightparser.handling.SightService.COMPATIBILITY_VERSION public class Connector { - //public static final String ACTION_START_RESYNC = "sugar.free.sightremote.services.HistorySyncService.START_RESYNC"; private static final String TAG = "InsightConnector"; private static final String COMPANION_APP_PACKAGE = "sugar.free.sightremote"; private final static long FRESH_MS = 70000; @@ -194,6 +193,10 @@ public class Connector { return isConnected() && getLastStatus() == Status.CONNECTED; } + public boolean isPumpConnecting() { + return isConnected() && getLastStatus() == Status.CONNECTING; + } + public String getLastStatusMessage() { if (!companionAppInstalled) {