- TBR was incorrectly interpretted for high TBR values

This commit is contained in:
Andy Rozman 2021-03-07 00:46:53 +00:00
parent 23c23ea0b8
commit 2738cf7fce
2 changed files with 36 additions and 3 deletions

View file

@ -106,7 +106,7 @@ public class MedtronicPumpHistoryDecoder extends MedtronicHistoryDecoder<PumpHis
int els = getUnsignedInt(elements);
for (int k = 0; k < (els - 2); k++) {
if (counter<1022) {
if (counter < 1022) {
listRawData.add(dataClear.get(counter));
counter++;
}
@ -621,8 +621,16 @@ public class MedtronicPumpHistoryDecoder extends MedtronicHistoryDecoder<PumpHis
tbrRate = tbrPreviousRecord;
}
TempBasalPair tbr = new TempBasalPair(tbrRate.getHead()[0], tbrDuration.getHead()[0], (ByteUtil.asUINT8(tbrRate
.getDatetime()[4]) >> 3) == 0);
// TempBasalPair tbr = new TempBasalPair(
// tbrRate.getHead()[0],
// tbrDuration.getHead()[0],
// (ByteUtil.asUINT8(tbrRate.getDatetime()[4]) >> 3) == 0);
TempBasalPair tbr = new TempBasalPair(
tbrRate.getHead()[0],
tbrRate.getBody()[0],
tbrDuration.getHead()[0],
(ByteUtil.asUINT8(tbrRate.getDatetime()[4]) >> 3) == 0);
// System.out.println("TBR: amount=" + tbr.getInsulinRate() + ", duration=" + tbr.getDurationMinutes()
// // + " min. Packed: " + tbr.getValue()

View file

@ -1,5 +1,7 @@
package info.nightscout.androidaps.plugins.pump.medtronic.data.dto;
import android.util.Log;
import androidx.annotation.NonNull;
import java.util.ArrayList;
@ -38,6 +40,29 @@ public class TempBasalPair extends info.nightscout.androidaps.plugins.pump.commo
}
/**
* This constructor is for use with PumpHistoryDecoder
*
* @param rateByte0
* @param startTimeByte
* @param isPercent
*/
public TempBasalPair(byte rateByte0, byte rateByte1, int startTimeByte, boolean isPercent) {
// int rateInt = ByteUtil.asUINT8(rateByte0);
if (isPercent) {
this.insulinRate = rateByte0;
} else {
int rateInt2 = ByteUtil.toInt(rateByte1, rateByte0);
int rateInt3 = (rateByte1 & 0x7) << 8 | rateByte0;
this.insulinRate = rateInt2 * 0.025;
Log.d("ddd", "OldRate=" + this.insulinRate + ", NewRate=" + rateInt2 * 0.025 + ", NewRate2="
+ rateInt2 * 0.1 + ", NNNRate=" + rateInt3 * 0.025);
}
this.durationMinutes = startTimeByte * 30;
this.isPercent = isPercent;
}
public TempBasalPair(AAPSLogger aapsLogger, byte[] response) {
super();