Fix basal rate check.

This commit is contained in:
Johannes Mockenhaupt 2018-01-31 00:10:08 +01:00
parent 1107d00571
commit 6108e9f17a
No known key found for this signature in database
GPG key ID: 9E1EA6AF7BBBB0D1

View file

@ -829,7 +829,10 @@ public class ComboPlugin implements PluginBase, PumpInterface, ConstraintsInterf
checkAndResolveTbrMismatch(preCheckResult.state); checkAndResolveTbrMismatch(preCheckResult.state);
checkPumpTime(preCheckResult.state); checkPumpTime(preCheckResult.state);
checkBasalRate(preCheckResult.state); checkBasalRate(preCheckResult.state);
checkHistory(); CommandResult historyCheckError = checkHistory();
if (historyCheckError != null) {
return historyCheckError;
}
return null; return null;
} }
@ -840,12 +843,18 @@ public class ComboPlugin implements PluginBase, PumpInterface, ConstraintsInterf
// no cached profile to compare against // no cached profile to compare against
return; return;
} }
if (state.unsafeUsageDetected != PumpState.SAFE_USAGE) {
// with an extended or multiwavo bolus running it's not (easily) possible
// to infer base basal rate and not supported either. Also don't compare
// if set basal rate profile is != -1.
return;
}
if (state.tbrActive && state.tbrPercent == 0) { if (state.tbrActive && state.tbrPercent == 0) {
// can't infer base basal rate if TBR is 0 // can't infer base basal rate if TBR is 0
return; return;
} }
double pumpBasalRate = state.tbrActive double pumpBasalRate = state.tbrActive
? state.basalRate * 100 / state.tbrPercent ? Math.round(state.basalRate * 100 / state.tbrPercent * 100) / 100d
: state.basalRate; : state.basalRate;
int pumpHour = new Date(state.pumpTime).getHours(); int pumpHour = new Date(state.pumpTime).getHours();
int phoneHour = new Date().getHours(); int phoneHour = new Date().getHours();
@ -854,10 +863,15 @@ public class ComboPlugin implements PluginBase, PumpInterface, ConstraintsInterf
return; return;
} }
if (pumpBasalRate != getBaseBasalRate()) { if (Math.abs(pumpBasalRate - getBaseBasalRate()) > 0.001) {
CommandResult readBasalResult = runCommand(MainApp.gs(R.string.combo_actvity_reading_basal_profile), 2, ruffyScripter::readBasalProfile); CommandResult readBasalResult = runCommand(MainApp.gs(R.string.combo_actvity_reading_basal_profile), 2, ruffyScripter::readBasalProfile);
if (readBasalResult.success) { if (readBasalResult.success) {
pump.basalProfile = readBasalResult.basalProfile; pump.basalProfile = readBasalResult.basalProfile;
Notification notification = new Notification(Notification.COMBO_PUMP_ALARM, MainApp.gs(R.string.combo_warning_pump_basal_rate_changed), Notification.NORMAL);
MainApp.bus().post(new EventNewNotification(notification));
} else {
Notification notification = new Notification(Notification.COMBO_PUMP_ALARM, MainApp.gs(R.string.combo_error_failure_reading_changed_basal_rate), Notification.URGENT);
MainApp.bus().post(new EventNewNotification(notification));
} }
} }
} }