Add IobCobCalculatorPlugin.getCobInfo().
This commit is contained in:
parent
4217e82e0a
commit
f4bafc6260
6 changed files with 58 additions and 20 deletions
|
@ -11,7 +11,7 @@ import info.nightscout.androidaps.R;
|
||||||
import info.nightscout.androidaps.db.BgReading;
|
import info.nightscout.androidaps.db.BgReading;
|
||||||
import info.nightscout.androidaps.db.TempTarget;
|
import info.nightscout.androidaps.db.TempTarget;
|
||||||
import info.nightscout.androidaps.interfaces.TreatmentsInterface;
|
import info.nightscout.androidaps.interfaces.TreatmentsInterface;
|
||||||
import info.nightscout.androidaps.plugins.IobCobCalculator.AutosensData;
|
import info.nightscout.androidaps.plugins.IobCobCalculator.CobInfo;
|
||||||
import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin;
|
import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin;
|
||||||
import info.nightscout.androidaps.plugins.Loop.LoopPlugin;
|
import info.nightscout.androidaps.plugins.Loop.LoopPlugin;
|
||||||
import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin;
|
import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin;
|
||||||
|
@ -79,14 +79,10 @@ public class QuickWizardEntry {
|
||||||
|
|
||||||
// COB
|
// COB
|
||||||
double cob = 0d;
|
double cob = 0d;
|
||||||
AutosensData autosensData;
|
if (useCOB() == YES) {
|
||||||
if (_synchronized)
|
CobInfo cobInfo = IobCobCalculatorPlugin.getPlugin().getCobInfo(_synchronized, "QuickWizard COB");
|
||||||
autosensData = IobCobCalculatorPlugin.getPlugin().getLastAutosensDataSynchronized("QuickWizard COB");
|
if (cobInfo.displayCob != null)
|
||||||
else
|
cob = cobInfo.displayCob;
|
||||||
autosensData = IobCobCalculatorPlugin.getPlugin().getLastAutosensData("QuickWizard COB");
|
|
||||||
|
|
||||||
if (autosensData != null && useCOB() == YES) {
|
|
||||||
cob = autosensData.cob;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Temp target
|
// Temp target
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
package info.nightscout.androidaps.plugins.IobCobCalculator;
|
||||||
|
|
||||||
|
import android.support.annotation.Nullable;
|
||||||
|
|
||||||
|
public class CobInfo {
|
||||||
|
/** All COB up to now, including carbs not yet processed by IobCob calculation. */
|
||||||
|
@Nullable
|
||||||
|
public final Double displayCob;
|
||||||
|
public final double futureCarbs;
|
||||||
|
|
||||||
|
public CobInfo(@Nullable Double displayCob, double futureCarbs) {
|
||||||
|
this.displayCob = displayCob;
|
||||||
|
this.futureCarbs = futureCarbs;
|
||||||
|
}
|
||||||
|
}
|
|
@ -34,9 +34,12 @@ import info.nightscout.androidaps.interfaces.PluginType;
|
||||||
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
|
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
|
||||||
import info.nightscout.androidaps.plugins.IobCobCalculator.events.EventNewHistoryData;
|
import info.nightscout.androidaps.plugins.IobCobCalculator.events.EventNewHistoryData;
|
||||||
import info.nightscout.androidaps.plugins.OpenAPSSMB.OpenAPSSMBPlugin;
|
import info.nightscout.androidaps.plugins.OpenAPSSMB.OpenAPSSMBPlugin;
|
||||||
|
import info.nightscout.androidaps.plugins.Treatments.Treatment;
|
||||||
import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin;
|
import info.nightscout.androidaps.plugins.Treatments.TreatmentsPlugin;
|
||||||
import info.nightscout.utils.DateUtil;
|
import info.nightscout.utils.DateUtil;
|
||||||
|
|
||||||
|
import static info.nightscout.utils.DateUtil.now;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by mike on 24.04.2017.
|
* Created by mike on 24.04.2017.
|
||||||
*/
|
*/
|
||||||
|
@ -401,6 +404,28 @@ public class IobCobCalculatorPlugin extends PluginBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public CobInfo getCobInfo(boolean _synchronized, String reason) {
|
||||||
|
AutosensData autosensData = _synchronized ? getLastAutosensDataSynchronized(reason) : getLastAutosensData(reason);
|
||||||
|
Double displayCob = null;
|
||||||
|
double futureCarbs = 0;
|
||||||
|
long now = now();
|
||||||
|
List<Treatment> treatments = TreatmentsPlugin.getPlugin().getTreatmentsFromHistory();
|
||||||
|
|
||||||
|
if (autosensData != null) {
|
||||||
|
displayCob = autosensData.cob;
|
||||||
|
for (Treatment treatment : treatments) {
|
||||||
|
if (IobCobCalculatorPlugin.roundUpTime(treatment.date) > autosensData.time && treatment.date < now && treatment.carbs > 0) {
|
||||||
|
displayCob += treatment.carbs;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (Treatment treatment : treatments) {
|
||||||
|
if (treatment.date > now && treatment.carbs > 0) {
|
||||||
|
futureCarbs += treatment.carbs;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new CobInfo(displayCob, futureCarbs);
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public AutosensData getLastAutosensData(String reason) {
|
public AutosensData getLastAutosensData(String reason) {
|
||||||
|
|
|
@ -56,7 +56,7 @@ import info.nightscout.androidaps.events.EventRefreshOverview;
|
||||||
import info.nightscout.androidaps.interfaces.Constraint;
|
import info.nightscout.androidaps.interfaces.Constraint;
|
||||||
import info.nightscout.androidaps.interfaces.PluginType;
|
import info.nightscout.androidaps.interfaces.PluginType;
|
||||||
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
|
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
|
||||||
import info.nightscout.androidaps.plugins.IobCobCalculator.AutosensData;
|
import info.nightscout.androidaps.plugins.IobCobCalculator.CobInfo;
|
||||||
import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin;
|
import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin;
|
||||||
import info.nightscout.androidaps.plugins.IobCobCalculator.events.EventAutosensCalculationFinished;
|
import info.nightscout.androidaps.plugins.IobCobCalculator.events.EventAutosensCalculationFinished;
|
||||||
import info.nightscout.androidaps.plugins.Loop.LoopPlugin;
|
import info.nightscout.androidaps.plugins.Loop.LoopPlugin;
|
||||||
|
@ -488,11 +488,9 @@ public class WizardDialog extends DialogFragment implements OnClickListener, Com
|
||||||
// COB
|
// COB
|
||||||
Double c_cob = 0d;
|
Double c_cob = 0d;
|
||||||
if (cobCheckbox.isChecked()) {
|
if (cobCheckbox.isChecked()) {
|
||||||
AutosensData autosensData = IobCobCalculatorPlugin.getPlugin().getLastAutosensData("Wizard COB");
|
CobInfo cobInfo = IobCobCalculatorPlugin.getPlugin().getCobInfo(false, "Wizard COB");
|
||||||
|
if (cobInfo != null)
|
||||||
if (autosensData != null) {
|
c_cob = cobInfo.displayCob;
|
||||||
c_cob = autosensData.cob;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BolusWizard wizard = new BolusWizard();
|
BolusWizard wizard = new BolusWizard();
|
||||||
|
|
|
@ -88,7 +88,7 @@ import info.nightscout.androidaps.plugins.Careportal.Dialogs.NewNSTreatmentDialo
|
||||||
import info.nightscout.androidaps.plugins.Careportal.OptionsToShow;
|
import info.nightscout.androidaps.plugins.Careportal.OptionsToShow;
|
||||||
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
|
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
|
||||||
import info.nightscout.androidaps.plugins.ConstraintsObjectives.ObjectivesPlugin;
|
import info.nightscout.androidaps.plugins.ConstraintsObjectives.ObjectivesPlugin;
|
||||||
import info.nightscout.androidaps.plugins.IobCobCalculator.AutosensData;
|
import info.nightscout.androidaps.plugins.IobCobCalculator.CobInfo;
|
||||||
import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin;
|
import info.nightscout.androidaps.plugins.IobCobCalculator.IobCobCalculatorPlugin;
|
||||||
import info.nightscout.androidaps.plugins.IobCobCalculator.events.EventAutosensCalculationFinished;
|
import info.nightscout.androidaps.plugins.IobCobCalculator.events.EventAutosensCalculationFinished;
|
||||||
import info.nightscout.androidaps.plugins.IobCobCalculator.events.EventIobCalculationProgress;
|
import info.nightscout.androidaps.plugins.IobCobCalculator.events.EventIobCalculationProgress;
|
||||||
|
@ -1283,10 +1283,13 @@ public class OverviewFragment extends Fragment implements View.OnClickListener,
|
||||||
|
|
||||||
// cob
|
// cob
|
||||||
if (cobView != null) { // view must not exists
|
if (cobView != null) { // view must not exists
|
||||||
String cobText = "";
|
String cobText = MainApp.gs(R.string.value_unavailable_short);
|
||||||
AutosensData autosensData = IobCobCalculatorPlugin.getPlugin().getLastAutosensData("Overview COB");
|
CobInfo cobInfo = IobCobCalculatorPlugin.getPlugin().getCobInfo(false, "Overview COB");
|
||||||
if (autosensData != null)
|
if (cobInfo.displayCob != null) {
|
||||||
cobText = (int) autosensData.cob + " g";
|
cobText = DecimalFormatter.to0Decimal(cobInfo.displayCob);
|
||||||
|
if (cobInfo.futureCarbs > 0)
|
||||||
|
cobText += "(" + DecimalFormatter.to0Decimal(cobInfo.futureCarbs) + ")";
|
||||||
|
}
|
||||||
cobView.setText(cobText);
|
cobView.setText(cobText);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1031,4 +1031,5 @@
|
||||||
<string name="openapsama_bolussnooze_dia_divisor">Bolus snooze dia divisor</string>
|
<string name="openapsama_bolussnooze_dia_divisor">Bolus snooze dia divisor</string>
|
||||||
<string name="openapsama_max_daily_safety_multiplier">Max daily safety multiplier</string>
|
<string name="openapsama_max_daily_safety_multiplier">Max daily safety multiplier</string>
|
||||||
<string name="openapsama_current_basal_safety_multiplier">Current basal safety multiplier</string>
|
<string name="openapsama_current_basal_safety_multiplier">Current basal safety multiplier</string>
|
||||||
|
<string name="value_unavailable_short">n/a</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Loading…
Reference in a new issue