From 8eb73b81e9c680d549457b58193c20e80d5fba0a Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Sun, 11 Apr 2021 22:49:21 +0200 Subject: [PATCH] ComboPlugin: fix usages of bolus timestamp vs generated ID. --- .../androidaps/plugins/pump/combo/ComboPlugin.java | 10 +++++----- .../androidaps/plugins/pump/combo/ComboPluginTest.kt | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboPlugin.java b/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboPlugin.java index ebba3c5274..59ae81cbd4 100644 --- a/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboPlugin.java +++ b/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboPlugin.java @@ -639,10 +639,10 @@ public class ComboPlugin extends PumpPluginBase implements PumpInterface, Constr private boolean addBolusToTreatments(DetailedBolusInfo detailedBolusInfo, Bolus lastPumpBolus) { try { pumpSync.syncBolusWithPumpId( - calculateFakeBolusDate(lastPumpBolus), + lastPumpBolus.timestamp, lastPumpBolus.amount, detailedBolusInfo.getBolusType(), - detailedBolusInfo.timestamp, + generatePumpBolusId(lastPumpBolus), PumpType.ACCU_CHEK_COMBO, serialNumber() ); @@ -1149,10 +1149,10 @@ public class ComboPlugin extends PumpPluginBase implements PumpInterface, Constr boolean updated = false; for (Bolus pumpBolus : history.bolusHistory) { if (pumpSync.syncBolusWithPumpId( - calculateFakeBolusDate(pumpBolus), + pumpBolus.timestamp, pumpBolus.amount, DetailedBolusInfo.BolusType.NORMAL, - System.currentTimeMillis(), + generatePumpBolusId(pumpBolus), PumpType.ACCU_CHEK_COMBO, serialNumber() )) { @@ -1169,7 +1169,7 @@ public class ComboPlugin extends PumpPluginBase implements PumpInterface, Constr * Should be good enough, even with command mode, it's a challenge to create that situation * and most time clashes will be around SMBs which are covered. */ - long calculateFakeBolusDate(Bolus pumpBolus) { + long generatePumpBolusId(Bolus pumpBolus) { double bolus = pumpBolus.amount - 0.1; int secondsFromBolus = (int) (bolus * 10 * 1000); return pumpBolus.timestamp + Math.min(secondsFromBolus, 59 * 1000); diff --git a/combo/src/test/java/info/nightscout/androidaps/plugins/pump/combo/ComboPluginTest.kt b/combo/src/test/java/info/nightscout/androidaps/plugins/pump/combo/ComboPluginTest.kt index 63e328b222..c24b48fa00 100644 --- a/combo/src/test/java/info/nightscout/androidaps/plugins/pump/combo/ComboPluginTest.kt +++ b/combo/src/test/java/info/nightscout/androidaps/plugins/pump/combo/ComboPluginTest.kt @@ -64,22 +64,22 @@ class ComboPluginTest : TestBase() { } @Test - fun calculateFakePumpTimestamp() { + fun `generate bolus ID from timestamp and amount`() { val now = System.currentTimeMillis() val pumpTimestamp = now - now % 1000 // same timestamp, different bolus leads to different fake timestamp Assert.assertNotEquals( - comboPlugin.calculateFakeBolusDate(Bolus(pumpTimestamp, 0.1, true)), - comboPlugin.calculateFakeBolusDate(Bolus(pumpTimestamp, 0.3, true)) + comboPlugin.generatePumpBolusId(Bolus(pumpTimestamp, 0.1, true)), + comboPlugin.generatePumpBolusId(Bolus(pumpTimestamp, 0.3, true)) ) // different timestamp, same bolus leads to different fake timestamp Assert.assertNotEquals( - comboPlugin.calculateFakeBolusDate(Bolus(pumpTimestamp, 0.3, true)), - comboPlugin.calculateFakeBolusDate(Bolus(pumpTimestamp + 60 * 1000, 0.3, true)) + comboPlugin.generatePumpBolusId(Bolus(pumpTimestamp, 0.3, true)), + comboPlugin.generatePumpBolusId(Bolus(pumpTimestamp + 60 * 1000, 0.3, true)) ) // generated timestamp has second-precision val bolus = Bolus(pumpTimestamp, 0.2, true) - val calculatedTimestamp = comboPlugin.calculateFakeBolusDate(bolus) + val calculatedTimestamp = comboPlugin.generatePumpBolusId(bolus) Assert.assertEquals(calculatedTimestamp, calculatedTimestamp - calculatedTimestamp % 1000) } } \ No newline at end of file