From 83e9ec743ec421166c99fc17cebc3754cfdfe586 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Sat, 15 Jul 2017 21:47:06 +0200 Subject: [PATCH] Properly accessing volatile field pumpState. --- .../plugins/PumpCombo/ComboFragment.java | 9 +++---- .../plugins/PumpCombo/ComboPlugin.java | 27 +++++++++---------- 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboFragment.java index 32b034c4a1..23b176476b 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/PumpCombo/ComboFragment.java @@ -17,13 +17,11 @@ import com.squareup.otto.Subscribe; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Date; +import de.jotomo.ruffyscripter.commands.PumpState; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.plugins.PumpCombo.events.EventComboPumpUpdateGUI; -import info.nightscout.androidaps.plugins.PumpVirtual.VirtualPumpPlugin; -import info.nightscout.androidaps.plugins.PumpVirtual.events.EventVirtualPumpUpdateGui; public class ComboFragment extends Fragment { private static Logger log = LoggerFactory.getLogger(ComboFragment.class); @@ -76,9 +74,10 @@ public class ComboFragment extends Fragment { } else { StringBuilder sb = new StringBuilder(); sb.append(getPlugin().statusSummary); - if (getPlugin().pumpState != null) { + PumpState ps = getPlugin().pumpState; + if (ps != null) { sb.append("\n\n"); - sb.append(getPlugin().pumpState.toString() + sb.append(ps.toString() // i know ... i need to take a break already .replaceAll(", ", "\n") .replaceAll("PumpState\\{", "\n") 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 06b8e300a4..ebd8b69d3f 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 @@ -323,16 +323,13 @@ public class ComboPlugin implements PluginBase, PumpInterface { } finally { lastCmdTime = new Date(); statusSummary = "Idle"; - try { - if (pumpState != null) { - if (pumpState.errorMsg != null) { - statusSummary = "Error: " + pumpState.errorMsg; - } else if (pumpState.isErrorOrWarning) { - statusSummary = "Error: pump is in error mode, please check pump display"; - } + PumpState ps = pumpState; + if (ps != null) { + if (ps.errorMsg != null) { + statusSummary = "Error: " + ps.errorMsg; + } else if (ps.isErrorOrWarning) { + statusSummary = "Error: pump is in error mode, please check pump display"; } - } catch (Exception e) { - statusSummary = "Error"; } ruffyScripter.disconnect(); @@ -357,7 +354,8 @@ public class ComboPlugin implements PluginBase, PumpInterface { if (unroundedPercentage != roundedPercentage) { log.debug("Rounded requested rate " + unroundedPercentage + "% -> " + roundedPercentage + "%"); } - int activeTbrPercentage = pumpState != null ? pumpState.tbrPercent : 100; + PumpState ps = pumpState; + int activeTbrPercentage = ps != null ? ps.tbrPercent : 100; if (activeTbrPercentage != -1 && Math.abs(activeTbrPercentage - roundedPercentage) <= 20) { log.debug("Not bothering the pump for a small TBR change from " + activeTbrPercentage + "% -> " + roundedPercentage + "%"); PumpEnactResult pumpEnactResult = new PumpEnactResult(); @@ -456,11 +454,12 @@ public class ComboPlugin implements PluginBase, PumpInterface { } status.put("timestamp", lastCmdTime); - if (pumpState != null) { - extended.put("TempBasalAbsoluteRate", pumpState.tbrRate); + PumpState ps = this.pumpState; + if (ps != null) { + extended.put("TempBasalAbsoluteRate", ps.tbrRate); // TODO best guess at this point ... - extended.put("TempBasalStart", DateUtil.dateAndTimeString(System.currentTimeMillis() - (pumpState.tbrRemainingDuration - 15 * 60 * 1000))); - extended.put("TempBasalRemaining", pumpState.tbrRemainingDuration); + extended.put("TempBasalStart", DateUtil.dateAndTimeString(System.currentTimeMillis() - (ps.tbrRemainingDuration - 15 * 60 * 1000))); + extended.put("TempBasalRemaining", ps.tbrRemainingDuration); } // more info here .... look at dana plugin