more
This commit is contained in:
parent
738dd72f5b
commit
fabaf7c2ef
|
@ -18,7 +18,6 @@ import static de.jotomo.ruffyscripter.commands.ProgressReportCallback.State.DELI
|
||||||
import static de.jotomo.ruffyscripter.commands.ProgressReportCallback.State.STOPPED;
|
import static de.jotomo.ruffyscripter.commands.ProgressReportCallback.State.STOPPED;
|
||||||
import static de.jotomo.ruffyscripter.commands.ProgressReportCallback.State.STOPPING;
|
import static de.jotomo.ruffyscripter.commands.ProgressReportCallback.State.STOPPING;
|
||||||
import static de.jotomo.ruffyscripter.commands.ProgressReportCallback.State.DELIVERED;
|
import static de.jotomo.ruffyscripter.commands.ProgressReportCallback.State.DELIVERED;
|
||||||
import static de.jotomo.ruffyscripter.commands.ProgressReportCallback.State.PREPARING;
|
|
||||||
|
|
||||||
public class BolusCommand implements Command {
|
public class BolusCommand implements Command {
|
||||||
private static final Logger log = LoggerFactory.getLogger(BolusCommand.class);
|
private static final Logger log = LoggerFactory.getLogger(BolusCommand.class);
|
||||||
|
@ -164,7 +163,8 @@ public class BolusCommand implements Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean confirmAlert(String alertText, int maxWaitTillExpectedAlert) {
|
private boolean confirmAlert(String alertText, int maxWaitTillExpectedAlert) {
|
||||||
|
// TODO
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void enterBolusMenu(RuffyScripter scripter) {
|
private void enterBolusMenu(RuffyScripter scripter) {
|
||||||
|
|
|
@ -369,36 +369,38 @@ public class ComboPlugin implements PluginBase, PumpInterface {
|
||||||
private static ProgressReportCallback bolusProgressReportCallback = new ProgressReportCallback() {
|
private static ProgressReportCallback bolusProgressReportCallback = new ProgressReportCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void report(ProgressReportCallback.State state, int percent, double delivered) {
|
public void report(ProgressReportCallback.State state, int percent, double delivered) {
|
||||||
EventOverviewBolusProgress bolusingEvent = EventOverviewBolusProgress.getInstance();
|
EventOverviewBolusProgress enent = EventOverviewBolusProgress.getInstance();
|
||||||
switch (state) {
|
switch (state) {
|
||||||
// TODO move into enum as toString or so and make it translateb
|
|
||||||
case DELIVERING:
|
case DELIVERING:
|
||||||
bolusingEvent.status = String.format(MainApp.sResources.getString(R.string.bolusdelivering), delivered);
|
enent.status = String.format(MainApp.sResources.getString(R.string.bolusdelivering), delivered);
|
||||||
break;
|
break;
|
||||||
case DELIVERED:
|
case DELIVERED:
|
||||||
bolusingEvent.status = "Bolus delivery finished successfully";
|
enent.status = String.format(MainApp.sResources.getString(R.string.bolusdelivered), delivered);
|
||||||
break;
|
|
||||||
case STOPPED:
|
|
||||||
bolusingEvent.status = "Bolus delivery was cancelled";
|
|
||||||
break;
|
break;
|
||||||
case STOPPING:
|
case STOPPING:
|
||||||
bolusingEvent.status = "Cancelling bolus delivery";
|
enent.status = MainApp.sResources.getString(R.string.bolusstopping);
|
||||||
|
break;
|
||||||
|
case STOPPED:
|
||||||
|
enent.status = MainApp.sResources.getString(R.string.bolusstopped);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
bolusingEvent.percent = percent;
|
enent.percent = percent;
|
||||||
MainApp.bus().post(bolusingEvent);
|
MainApp.bus().post(enent);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// what a mess: pump integration code reading carb info from Detailed**Bolus**Info,
|
/** Updates Treatment records with carbs and boluses and delivers a bolus if needed */
|
||||||
// writing carb treatments to the history table. What's PumpEnactResult for again?
|
|
||||||
@Override
|
@Override
|
||||||
public PumpEnactResult deliverTreatment(DetailedBolusInfo detailedBolusInfo) {
|
public PumpEnactResult deliverTreatment(DetailedBolusInfo detailedBolusInfo) {
|
||||||
if (detailedBolusInfo.insulin > 0 || detailedBolusInfo.carbs > 0) {
|
if (detailedBolusInfo.insulin > 0 || detailedBolusInfo.carbs > 0) {
|
||||||
if (detailedBolusInfo.insulin > 0) {
|
if (detailedBolusInfo.insulin > 0) {
|
||||||
// bolus needed, ask pump to deliver it
|
// bolus needed, ask pump to deliver it
|
||||||
EventOverviewBolusProgress bolusingEvent = EventOverviewBolusProgress.getInstance();
|
|
||||||
MainApp.bus().post(bolusingEvent);
|
// TODO read history to ensure there are no boluses delivered on the pump we aren't
|
||||||
|
// aware of and haven't included in the bolus calulation
|
||||||
|
|
||||||
|
// Note that the BolusCommand send progress updates to the bolusProgressReporterCallback,
|
||||||
|
// which then posts appropriate events on the bus, so in this branch no posts are needed
|
||||||
runningBolusCommand = new BolusCommand(detailedBolusInfo.insulin, bolusProgressReportCallback);
|
runningBolusCommand = new BolusCommand(detailedBolusInfo.insulin, bolusProgressReportCallback);
|
||||||
CommandResult bolusCmdResult = runCommand(runningBolusCommand);
|
CommandResult bolusCmdResult = runCommand(runningBolusCommand);
|
||||||
runningBolusCommand = null;
|
runningBolusCommand = null;
|
||||||
|
@ -407,12 +409,8 @@ public class ComboPlugin implements PluginBase, PumpInterface {
|
||||||
pumpEnactResult.enacted = bolusCmdResult.enacted;
|
pumpEnactResult.enacted = bolusCmdResult.enacted;
|
||||||
pumpEnactResult.comment = bolusCmdResult.message;
|
pumpEnactResult.comment = bolusCmdResult.message;
|
||||||
|
|
||||||
// if enacted, add bolus and carbs to treatment history
|
// if enacted by pump, add bolus and carbs to treatment history
|
||||||
if (pumpEnactResult.enacted) {
|
if (pumpEnactResult.enacted) {
|
||||||
// TODO if no error occurred, the requested bolus is what the pump delievered,
|
|
||||||
// that has been checked. If an error occurred, we should check how much insulin
|
|
||||||
// was delivered, e.g. when the cartridge went empty mid-bolus
|
|
||||||
// For the first iteration, the alert the pump raises must suffice
|
|
||||||
pumpEnactResult.bolusDelivered = detailedBolusInfo.insulin;
|
pumpEnactResult.bolusDelivered = detailedBolusInfo.insulin;
|
||||||
pumpEnactResult.carbsDelivered = detailedBolusInfo.carbs;
|
pumpEnactResult.carbsDelivered = detailedBolusInfo.carbs;
|
||||||
|
|
||||||
|
@ -425,11 +423,6 @@ public class ComboPlugin implements PluginBase, PumpInterface {
|
||||||
return pumpEnactResult;
|
return pumpEnactResult;
|
||||||
} else {
|
} else {
|
||||||
// no bolus required, carb only treatment
|
// no bolus required, carb only treatment
|
||||||
|
|
||||||
// TODO the ui freezes when the calculator issues a carb-only treatment
|
|
||||||
// so just wait, yeah, this is dumb. for now; proper fix via GL#10
|
|
||||||
// info.nightscout.androidaps.plugins.Overview.Dialogs.BolusProgressDialog.scheduleDismiss()
|
|
||||||
// send event to indicate popup can be dismissed?
|
|
||||||
SystemClock.sleep(6000);
|
SystemClock.sleep(6000);
|
||||||
PumpEnactResult pumpEnactResult = new PumpEnactResult();
|
PumpEnactResult pumpEnactResult = new PumpEnactResult();
|
||||||
pumpEnactResult.success = true;
|
pumpEnactResult.success = true;
|
||||||
|
@ -438,6 +431,10 @@ public class ComboPlugin implements PluginBase, PumpInterface {
|
||||||
pumpEnactResult.carbsDelivered = detailedBolusInfo.carbs;
|
pumpEnactResult.carbsDelivered = detailedBolusInfo.carbs;
|
||||||
pumpEnactResult.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
|
pumpEnactResult.comment = MainApp.instance().getString(R.string.virtualpump_resultok);
|
||||||
MainApp.getConfigBuilder().addToHistoryTreatment(detailedBolusInfo);
|
MainApp.getConfigBuilder().addToHistoryTreatment(detailedBolusInfo);
|
||||||
|
|
||||||
|
EventOverviewBolusProgress bolusingEvent = EventOverviewBolusProgress.getInstance();
|
||||||
|
bolusingEvent.percent = 100;
|
||||||
|
MainApp.bus().post(bolusingEvent);
|
||||||
return pumpEnactResult;
|
return pumpEnactResult;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -453,6 +450,12 @@ public class ComboPlugin implements PluginBase, PumpInterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void stopBolusDelivering() {
|
||||||
|
BolusCommand localRunningBolusCommand = runningBolusCommand;
|
||||||
|
if (localRunningBolusCommand != null) localRunningBolusCommand.requestCancellation();
|
||||||
|
}
|
||||||
|
|
||||||
private CommandResult runCommand(Command command) {
|
private CommandResult runCommand(Command command) {
|
||||||
if (ruffyScripter == null) {
|
if (ruffyScripter == null) {
|
||||||
String msg = "No connection to ruffy. Pump control not available.";
|
String msg = "No connection to ruffy. Pump control not available.";
|
||||||
|
@ -486,11 +489,6 @@ public class ComboPlugin implements PluginBase, PumpInterface {
|
||||||
return commandResult;
|
return commandResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void stopBolusDelivering() {
|
|
||||||
if (runningBolusCommand != null) runningBolusCommand.requestCancellation();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Note: AAPS calls this only to enact OpenAPS recommendations
|
// Note: AAPS calls this only to enact OpenAPS recommendations
|
||||||
@Override
|
@Override
|
||||||
public PumpEnactResult setTempBasalAbsolute(Double absoluteRate, Integer durationInMinutes, boolean force) {
|
public PumpEnactResult setTempBasalAbsolute(Double absoluteRate, Integer durationInMinutes, boolean force) {
|
||||||
|
|
|
@ -702,6 +702,8 @@
|
||||||
<string name="ultrarapid_oref">Ultra-Rapid Oref</string>
|
<string name="ultrarapid_oref">Ultra-Rapid Oref</string>
|
||||||
<string name="dia_too_short" formatted="false">"DIA of %s too short - using %s instead!"</string>
|
<string name="dia_too_short" formatted="false">"DIA of %s too short - using %s instead!"</string>
|
||||||
<string name="activate_profile">ACTIVATE PROFILE</string>
|
<string name="activate_profile">ACTIVATE PROFILE</string>
|
||||||
|
<string name="bolusstopping">Stopping bolus delivery</string>
|
||||||
|
<string name="bolusstopped">Bolus delivery stopped</string>
|
||||||
|
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Loading…
Reference in a new issue