From 09880f029a4f3b20b21752b18a444323bc995071 Mon Sep 17 00:00:00 2001 From: Radoslav Radev Date: Thu, 16 Feb 2017 16:46:47 +0200 Subject: [PATCH 001/140] Update strings.xml --- app/src/main/res/values-bg/strings.xml | 67 ++++++++++++++++++++------ 1 file changed, 53 insertions(+), 14 deletions(-) diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 9d8d44f4b9..138235ff8e 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -128,7 +128,7 @@ Безопасност Задай нов удължен болусs: Приложи нов временен базал: - Simple profile + Обикновен профил Временен базал IOB: Общо IOB: @@ -290,7 +290,7 @@ Настройване на Closed Loop, повишаване на максималният IOB над 0 и понижаване на целевите нива на КЗ Една седмица успешно дневно използване с редовно въвеждане на въглехидрати Настройване на базалния инсулин и коефициенти ако е необходимо и активиране на auto-sens - Uploading + Качване Подава %.2fU Spanish Не е избран профил @@ -374,22 +374,22 @@ Wear Избран е грешен тип помпа преди %d м. - "Д-я" + "ДЕЙСТВ" "Wear" - "ВП " - "ТТ " + "ВП" + "ТТ" "ВЦeл" - "ВБ " - "СМС " - "ОПр " - "Пр " - "HOME" - "ЦЕЛИ " - "oAPS" + "ВБ" + "СМС" + "ОПРОФ" + "ПРОф" + "ОСН" + \"ЦЕЛИ" + "OAPS" "Loop " "ЛПр " "Dana" - "КОНФ. " + "КОНФ" "ППр " "CaPr" Физ.активност @@ -397,7 +397,7 @@ Базал Болус Дата - Стари данни! Натиснете \"Презареждане\" + Стари данни! Натиснете "Презареждане" Коефициент Общо базален инс. Общо базален инс.² @@ -435,4 +435,43 @@ IOB: %dmin ago Изчаква за помпа + Използвай краткоср. Δ вместо разлика от последната КЗ + Полезно при данни за КЗ с много шум + Приближава достигане на дневният лимит на иснулин + Стартира подаване на %.2fU + Изпратена калибрация до xDrip + Копирано в клипборд + Копирай в клипборд + Продължителност на инсулиновата активност + Прекъсване + Не показвай отново + Полето не може да бъде празно + Позволени са само числа + Позволени са числа между %1$s - %2$s + Телефонният номер не е валиден + Изпълнение + Получава статус на помпа + Покажи лог + Максимално позволен временен базал Е/ч + Максимален базален IOB + Калибрация + Помпата е спряна + xDrip+ не е инсталиран + Грешна парола + Изпраща статус в NS + Настройки на виртуална помпа + Качва базални стойности + Firmware: + Отключи настройки + Спиране на удължен болус + Спиране на временен базал + Не е разрешена отдалечена калибрация + Грешка при подаване на временен базал + Изпращане на калибрация %.1f към xDrip? + Настройки на удължен болус + Парола за настройки + Настройки на временен базал + Помпата е спряна. Натиснете за обновяване + Настройки на параметър Δ КЗ + Калибрация на КЗ From 71112a90e23e974cf6c6852a98bc3715c9a4701f Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Fri, 17 Feb 2017 13:18:36 +0100 Subject: [PATCH 002/140] internal nsclient --- app/build.gradle | 6 + app/src/main/AndroidManifest.xml | 54 +- .../info/nightscout/androidaps/Constants.java | 3 + .../info/nightscout/androidaps/MainApp.java | 2 + .../androidaps/PreferencesActivity.java | 5 + .../androidaps/Services/DataService.java | 4 +- .../androidaps/Services/Intents.java | 2 + .../nightscout/androidaps/data/IobTotal.java | 3 +- .../nightscout/androidaps/data/MealData.java | 2 +- .../androidaps/data/PumpEnactResult.java | 4 +- .../nightscout/androidaps/db/BgReading.java | 2 +- .../nightscout/androidaps/db/TempBasal.java | 2 +- .../nightscout/androidaps/db/Treatment.java | 2 +- .../events/EventNewBasalProfile.java | 2 +- .../interfaces/ProfileInterface.java | 2 +- .../androidaps/interfaces/PumpInterface.java | 3 +- .../Actions/dialogs/NewTempBasalDialog.java | 2 +- .../Dialogs/NewNSTreatmentDialog.java | 2 +- .../CircadianPercentageProfilePlugin.java | 2 +- .../ConfigBuilder/ConfigBuilderPlugin.java | 4 +- .../androidaps/plugins/DanaR/DanaRPlugin.java | 2 +- .../androidaps/plugins/DanaR/DanaRPump.java | 2 +- .../DanaR/Dialogs/ProfileViewDialog.java | 4 +- .../DanaR/History/DanaRHistoryActivity.java | 3 +- .../DanaR/History/DanaRNSHistorySync.java | 2 +- .../DanaR/Services/ExecutionService.java | 3 +- .../DanaRKorean/DanaRKoreanPlugin.java | 2 +- .../plugins/DanaRKorean/DanaRKoreanPump.java | 2 +- .../History/DanaRHistoryActivity.java | 3 +- .../Services/ExecutionService.java | 2 +- .../LocalProfile/LocalProfilePlugin.java | 3 +- .../androidaps/plugins/Loop/DeviceStatus.java | 6 +- .../androidaps/plugins/MDI/MDIPlugin.java | 6 +- .../NSClientInternalFragment.java | 163 ++++ .../NSClientInternalPlugin.java | 215 +++++ .../plugins/NSClientInternal/UploadQueue.java | 151 ++++ .../NSClientInternal/acks/NSAddAck.java | 54 ++ .../NSClientInternal/acks/NSAuthAck.java | 24 + .../NSClientInternal/acks/NSPingAck.java | 38 + .../NSClientInternal/acks/NSUpdateAck.java | 32 + .../broadcasts/BroadcastCals.java | 34 + .../broadcasts/BroadcastDeviceStatus.java | 45 ++ .../broadcasts/BroadcastMbgs.java | 34 + .../broadcasts/BroadcastProfile.java | 37 + .../broadcasts/BroadcastQueueStatus.java | 30 + .../broadcasts/BroadcastSgvs.java | 49 ++ .../broadcasts/BroadcastStatus.java | 45 ++ .../broadcasts/BroadcastTreatment.java | 107 +++ .../NSClientInternal}/data/DbLogger.java | 2 +- .../NSClientInternal/data/DbRequest.java | 46 ++ .../plugins/NSClientInternal}/data/NSCal.java | 6 +- .../NSClientInternal}/data/NSProfile.java | 2 +- .../plugins/NSClientInternal}/data/NSSgv.java | 2 +- .../NSClientInternal}/data/NSStatus.java | 2 +- .../NSClientInternal}/data/NSTreatment.java | 2 +- .../events/EventNSClientNewLog.java | 30 + .../events/EventNSClientRestart.java | 8 + .../events/EventNSClientStatus.java | 16 + .../events/EventNSClientUpdateGUI.java | 8 + .../receivers/AutoStartReceiver.java | 17 + .../receivers/DBAccessReceiver.java | 87 ++ .../receivers/RestartReceiver.java | 25 + .../services/NSClientService.java | 760 ++++++++++++++++++ .../plugins/NSProfile/NSProfilePlugin.java | 2 +- .../plugins/OpenAPSAMA/Autosens.java | 3 +- .../DetermineBasalAdapterAMAJS.java | 5 +- .../plugins/OpenAPSAMA/OpenAPSAMAPlugin.java | 3 +- .../OpenAPSMA/DetermineBasalAdapterMAJS.java | 2 +- .../plugins/OpenAPSMA/OpenAPSMAPlugin.java | 3 +- .../Overview/Dialogs/CalibrationDialog.java | 2 +- .../Overview/Dialogs/WizardDialog.java | 2 +- .../plugins/Overview/OverviewFragment.java | 2 +- .../plugins/Overview/QuickWizard.java | 4 +- .../plugins/SafetyFragment/SafetyPlugin.java | 2 +- .../SimpleProfile/SimpleProfilePlugin.java | 2 +- .../SmsCommunicatorPlugin.java | 2 +- .../TempTargetRangeFragment.java | 2 +- .../Treatments/TreatmentsFragment.java | 2 +- .../plugins/Treatments/TreatmentsPlugin.java | 9 +- .../VirtualPump/VirtualPumpPlugin.java | 2 +- .../plugins/Wear/ActionStringHandler.java | 12 +- .../wearintegration/WatchUpdaterService.java | 2 +- .../PersistentNotificationPlugin.java | 2 +- .../receivers/KeepAliveReceiver.java | 6 +- .../info/nightscout/utils/BolusWizard.java | 2 +- .../nightscout/utils/XdripCalibrations.java | 2 +- .../res/layout/nsclientinternal_fragment.xml | 156 ++++ app/src/main/res/values/strings.xml | 22 + .../main/res/xml/pref_nsclientinternal.xml | 46 ++ 89 files changed, 2404 insertions(+), 114 deletions(-) create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAddAck.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAuthAck.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSPingAck.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSUpdateAck.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastCals.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastDeviceStatus.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastMbgs.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastProfile.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastQueueStatus.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastSgvs.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastStatus.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastTreatment.java rename app/src/main/java/info/nightscout/{client => androidaps/plugins/NSClientInternal}/data/DbLogger.java (96%) create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/DbRequest.java rename app/src/main/java/info/nightscout/{client => androidaps/plugins/NSClientInternal}/data/NSCal.java (67%) rename app/src/main/java/info/nightscout/{client => androidaps/plugins/NSClientInternal}/data/NSProfile.java (99%) rename app/src/main/java/info/nightscout/{client => androidaps/plugins/NSClientInternal}/data/NSSgv.java (96%) rename app/src/main/java/info/nightscout/{client => androidaps/plugins/NSClientInternal}/data/NSStatus.java (97%) rename app/src/main/java/info/nightscout/{client => androidaps/plugins/NSClientInternal}/data/NSTreatment.java (97%) create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientNewLog.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientRestart.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientStatus.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientUpdateGUI.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/AutoStartReceiver.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/RestartReceiver.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java create mode 100644 app/src/main/res/layout/nsclientinternal_fragment.xml create mode 100644 app/src/main/res/xml/pref_nsclientinternal.xml diff --git a/app/build.gradle b/app/build.gradle index 18cf49f1b8..b0f2c864ec 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -157,5 +157,11 @@ dependencies { androidTestCompile "com.google.dexmaker:dexmaker:1.2" androidTestCompile "com.google.dexmaker:dexmaker-mockito:1.2" compile(name:'android-edittext-validator-v1.3.4-mod', ext:'aar') + compile ('io.socket:socket.io-client:0.8.3') { + // excluding org.json which is provided by Android + exclude group: 'org.json', module: 'json' + } + compile 'com.google.code.gson:gson:2.4' + compile 'com.google.guava:guava:18.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8f500c4421..7db20117be 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -29,11 +29,14 @@ + - + @@ -42,6 +45,7 @@ + @@ -68,20 +72,44 @@ - - + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + - + \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/androidaps/Constants.java b/app/src/main/java/info/nightscout/androidaps/Constants.java index 52cb5d85a1..2873d29611 100644 --- a/app/src/main/java/info/nightscout/androidaps/Constants.java +++ b/app/src/main/java/info/nightscout/androidaps/Constants.java @@ -52,4 +52,7 @@ public class Constants { //DanaR public static final double dailyLimitWarning = 0.95d; + + //NSClientInternal + public static final int MAX_LOG_LINES = 100; } diff --git a/app/src/main/java/info/nightscout/androidaps/MainApp.java b/app/src/main/java/info/nightscout/androidaps/MainApp.java index 415e30c1ce..09014619cb 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainApp.java +++ b/app/src/main/java/info/nightscout/androidaps/MainApp.java @@ -27,6 +27,7 @@ import info.nightscout.androidaps.plugins.DanaRKorean.DanaRKoreanFragment; import info.nightscout.androidaps.plugins.LocalProfile.LocalProfileFragment; import info.nightscout.androidaps.plugins.Loop.LoopFragment; import info.nightscout.androidaps.plugins.MDI.MDIFragment; +import info.nightscout.androidaps.plugins.NSClientInternal.NSClientInternalFragment; import info.nightscout.androidaps.plugins.NSProfile.NSProfileFragment; import info.nightscout.androidaps.plugins.Objectives.ObjectivesFragment; import info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAFragment; @@ -103,6 +104,7 @@ public class MainApp extends Application { if (Config.WEAR) pluginsList.add(WearFragment.getPlugin(this)); pluginsList.add(new PersistentNotificationPlugin(this)); + pluginsList.add(NSClientInternalFragment.getPlugin()); pluginsList.add(sConfigBuilder = ConfigBuilderFragment.getPlugin()); diff --git a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java index f0d60cae19..02169ac473 100644 --- a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java @@ -18,6 +18,7 @@ import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.DanaR.BluetoothDevicePreference; import info.nightscout.androidaps.plugins.DanaR.DanaRPlugin; import info.nightscout.androidaps.plugins.DanaRKorean.DanaRKoreanPlugin; +import info.nightscout.androidaps.plugins.NSClientInternal.NSClientInternalPlugin; import info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin; import info.nightscout.androidaps.plugins.VirtualPump.VirtualPumpPlugin; import info.nightscout.utils.LocaleHelper; @@ -110,6 +111,10 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre if (virtualPumpPlugin != null && virtualPumpPlugin.isEnabled(PluginBase.PUMP)) { addPreferencesFromResource(R.xml.pref_virtualpump); } + NSClientInternalPlugin nsClientInternalPlugin = (NSClientInternalPlugin) MainApp.getSpecificPlugin(NSClientInternalPlugin.class); + if (nsClientInternalPlugin != null && nsClientInternalPlugin.isEnabled(PluginBase.GENERAL)) { + addPreferencesFromResource(R.xml.pref_nsclientinternal); + } if (Config.SMSCOMMUNICATORENABLED) addPreferencesFromResource(R.xml.pref_smscommunicator); addPreferencesFromResource(R.xml.pref_others); diff --git a/app/src/main/java/info/nightscout/androidaps/Services/DataService.java b/app/src/main/java/info/nightscout/androidaps/Services/DataService.java index 100a452ede..b27a1a85b4 100644 --- a/app/src/main/java/info/nightscout/androidaps/Services/DataService.java +++ b/app/src/main/java/info/nightscout/androidaps/Services/DataService.java @@ -49,8 +49,8 @@ import info.nightscout.androidaps.plugins.SourceNSClient.SourceNSClientPlugin; import info.nightscout.androidaps.plugins.SourceXdrip.SourceXdripPlugin; import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange; import info.nightscout.androidaps.receivers.DataReceiver; -import info.nightscout.client.data.NSProfile; -import info.nightscout.client.data.NSSgv; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSSgv; public class DataService extends IntentService { diff --git a/app/src/main/java/info/nightscout/androidaps/Services/Intents.java b/app/src/main/java/info/nightscout/androidaps/Services/Intents.java index 921b04b936..4787838d4f 100644 --- a/app/src/main/java/info/nightscout/androidaps/Services/Intents.java +++ b/app/src/main/java/info/nightscout/androidaps/Services/Intents.java @@ -11,11 +11,13 @@ public interface Intents { String ACTION_NEW_MBG = "info.nightscout.client.NEW_MBG"; String ACTION_NEW_CAL = "info.nightscout.client.NEW_CAL"; String ACTION_NEW_STATUS = "info.nightscout.client.NEW_STATUS"; + String ACTION_QUEUE_STATUS = "info.nightscout.client.QUEUE_STATUS"; // App -> NSClient String ACTION_DATABASE = "info.nightscout.client.DBACCESS"; String ACTION_RESTART = "info.nightscout.client.RESTART"; + String ACTION_RESEND = "info.nightscout.client.RESEND"; // xDrip -> App String RECEIVER_PERMISSION = "com.eveningoutpost.dexdrip.permissions.RECEIVE_BG_ESTIMATE"; diff --git a/app/src/main/java/info/nightscout/androidaps/data/IobTotal.java b/app/src/main/java/info/nightscout/androidaps/data/IobTotal.java index f2a6ad0df2..ce0a94ef5a 100644 --- a/app/src/main/java/info/nightscout/androidaps/data/IobTotal.java +++ b/app/src/main/java/info/nightscout/androidaps/data/IobTotal.java @@ -6,9 +6,8 @@ import org.json.JSONObject; import java.util.Date; -import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; import info.nightscout.utils.Round; diff --git a/app/src/main/java/info/nightscout/androidaps/data/MealData.java b/app/src/main/java/info/nightscout/androidaps/data/MealData.java index b8e73c3e00..18919c3c8a 100644 --- a/app/src/main/java/info/nightscout/androidaps/data/MealData.java +++ b/app/src/main/java/info/nightscout/androidaps/data/MealData.java @@ -10,7 +10,7 @@ import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.OpenAPSAMA.Autosens; import info.nightscout.androidaps.plugins.OpenAPSAMA.AutosensResult; import info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; /** * Created by mike on 04.01.2017. diff --git a/app/src/main/java/info/nightscout/androidaps/data/PumpEnactResult.java b/app/src/main/java/info/nightscout/androidaps/data/PumpEnactResult.java index 7ce7c14678..a2a5b91870 100644 --- a/app/src/main/java/info/nightscout/androidaps/data/PumpEnactResult.java +++ b/app/src/main/java/info/nightscout/androidaps/data/PumpEnactResult.java @@ -1,7 +1,5 @@ package info.nightscout.androidaps.data; -import android.os.Parcel; -import android.os.Parcelable; import android.text.Html; import android.text.Spanned; @@ -10,7 +8,7 @@ import org.json.JSONObject; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.Round; diff --git a/app/src/main/java/info/nightscout/androidaps/db/BgReading.java b/app/src/main/java/info/nightscout/androidaps/db/BgReading.java index 6dcf282e6c..951d370bf3 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/BgReading.java +++ b/app/src/main/java/info/nightscout/androidaps/db/BgReading.java @@ -10,7 +10,7 @@ import org.slf4j.LoggerFactory; import java.util.Date; import info.nightscout.androidaps.Constants; -import info.nightscout.client.data.NSSgv; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSSgv; import info.nightscout.utils.DecimalFormatter; @DatabaseTable(tableName = DatabaseHelper.DATABASE_BGREADINGS) diff --git a/app/src/main/java/info/nightscout/androidaps/db/TempBasal.java b/app/src/main/java/info/nightscout/androidaps/db/TempBasal.java index 99389777d5..d15ab436da 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/TempBasal.java +++ b/app/src/main/java/info/nightscout/androidaps/db/TempBasal.java @@ -11,7 +11,7 @@ import java.util.Date; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.data.Iob; import info.nightscout.androidaps.data.IobTotal; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; diff --git a/app/src/main/java/info/nightscout/androidaps/db/Treatment.java b/app/src/main/java/info/nightscout/androidaps/db/Treatment.java index f8c2f3b829..a8afacd767 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/Treatment.java +++ b/app/src/main/java/info/nightscout/androidaps/db/Treatment.java @@ -15,7 +15,7 @@ import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.data.Iob; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.Overview.graphExtensions.DataPointWithLabelInterface; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventNewBasalProfile.java b/app/src/main/java/info/nightscout/androidaps/events/EventNewBasalProfile.java index 61feaa0897..3e270e8a1b 100644 --- a/app/src/main/java/info/nightscout/androidaps/events/EventNewBasalProfile.java +++ b/app/src/main/java/info/nightscout/androidaps/events/EventNewBasalProfile.java @@ -1,6 +1,6 @@ package info.nightscout.androidaps.events; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; /** * Created by mike on 04.06.2016. diff --git a/app/src/main/java/info/nightscout/androidaps/interfaces/ProfileInterface.java b/app/src/main/java/info/nightscout/androidaps/interfaces/ProfileInterface.java index ae28697834..0924723776 100644 --- a/app/src/main/java/info/nightscout/androidaps/interfaces/ProfileInterface.java +++ b/app/src/main/java/info/nightscout/androidaps/interfaces/ProfileInterface.java @@ -2,7 +2,7 @@ package info.nightscout.androidaps.interfaces; import android.support.annotation.Nullable; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; /** * Created by mike on 14.06.2016. diff --git a/app/src/main/java/info/nightscout/androidaps/interfaces/PumpInterface.java b/app/src/main/java/info/nightscout/androidaps/interfaces/PumpInterface.java index 550b05103e..18f0c54da6 100644 --- a/app/src/main/java/info/nightscout/androidaps/interfaces/PumpInterface.java +++ b/app/src/main/java/info/nightscout/androidaps/interfaces/PumpInterface.java @@ -8,8 +8,7 @@ import java.util.Date; import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.db.TempBasal; -import info.nightscout.androidaps.plugins.Loop.APSResult; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; /** * Created by mike on 04.06.2016. diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java index ea0ef114e8..f29d6e18ff 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java @@ -23,7 +23,7 @@ import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.interfaces.PumpInterface; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.PlusMinusEditText; import info.nightscout.utils.SafeParse; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java index 4c93b88102..3fe6865a8e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java @@ -54,7 +54,7 @@ import info.nightscout.androidaps.plugins.Careportal.OptionsToShow; import info.nightscout.androidaps.plugins.CircadianPercentageProfile.CircadianPercentageProfilePlugin; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; import info.nightscout.utils.PlusMinusEditText; import info.nightscout.utils.SafeParse; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfilePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfilePlugin.java index 56aa813c29..e56651eee1 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfilePlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfilePlugin.java @@ -15,7 +15,7 @@ import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.ProfileInterface; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.SafeParse; import info.nightscout.utils.ToastUtils; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java index a0b2a7b3b0..129ba98ff7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java @@ -54,8 +54,8 @@ import info.nightscout.androidaps.plugins.Overview.Dialogs.BolusProgressHelperAc import info.nightscout.androidaps.plugins.Overview.Notification; import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification; import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; -import info.nightscout.client.data.DbLogger; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.DbLogger; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; /** diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java index 7889471d6b..e116ffffe6 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java @@ -40,7 +40,7 @@ import info.nightscout.androidaps.plugins.NSProfile.NSProfilePlugin; import info.nightscout.androidaps.plugins.Overview.Notification; import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification; import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.Round; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPump.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPump.java index 1e9808becd..b5d085b185 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPump.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPump.java @@ -12,7 +12,7 @@ import java.util.Date; import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.SafeParse; /** diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Dialogs/ProfileViewDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Dialogs/ProfileViewDialog.java index 3cb21f4221..1cedf012fd 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Dialogs/ProfileViewDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Dialogs/ProfileViewDialog.java @@ -15,12 +15,10 @@ import org.slf4j.LoggerFactory; import java.util.Date; -import info.nightscout.androidaps.MainActivity; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; -import info.nightscout.androidaps.plugins.DanaR.DanaRFragment; import info.nightscout.androidaps.plugins.DanaR.DanaRPlugin; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DecimalFormatter; /** diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRHistoryActivity.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRHistoryActivity.java index 4056943e70..ea1adaa908 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRHistoryActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRHistoryActivity.java @@ -32,7 +32,6 @@ import org.slf4j.LoggerFactory; import java.sql.SQLException; import java.util.ArrayList; -import java.util.Date; import java.util.List; import info.nightscout.androidaps.Constants; @@ -44,7 +43,7 @@ import info.nightscout.androidaps.plugins.DanaR.Services.ExecutionService; import info.nightscout.androidaps.plugins.DanaR.comm.RecordTypes; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRSyncStatus; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.ToastUtils; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRNSHistorySync.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRNSHistorySync.java index 327465eba2..205d83df9c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRNSHistorySync.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRNSHistorySync.java @@ -14,7 +14,7 @@ import info.nightscout.androidaps.db.DanaRHistoryRecord; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.DanaR.comm.RecordTypes; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRSyncStatus; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; import info.nightscout.utils.ToastUtils; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java index e7ecb4c742..ef707ef2f1 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java @@ -34,7 +34,6 @@ import info.nightscout.androidaps.events.EventAppExit; import info.nightscout.androidaps.events.EventInitializationChanged; import info.nightscout.androidaps.events.EventPreferenceChange; import info.nightscout.androidaps.interfaces.PluginBase; -import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.DanaR.DanaRPlugin; import info.nightscout.androidaps.plugins.DanaR.DanaRPump; import info.nightscout.androidaps.plugins.DanaR.SerialIOThread; @@ -82,7 +81,7 @@ import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatu import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRNewStatus; import info.nightscout.androidaps.plugins.Overview.Notification; import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.SafeParse; import info.nightscout.utils.ToastUtils; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java index 1384be16e2..59d74c4131 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java @@ -40,7 +40,7 @@ import info.nightscout.androidaps.plugins.NSProfile.NSProfilePlugin; import info.nightscout.androidaps.plugins.Overview.Notification; import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification; import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.Round; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPump.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPump.java index b29d9a4347..faf8318710 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPump.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPump.java @@ -12,7 +12,7 @@ import java.util.Date; import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.SafeParse; /** diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/History/DanaRHistoryActivity.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/History/DanaRHistoryActivity.java index d23cff488b..98e31261b5 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/History/DanaRHistoryActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/History/DanaRHistoryActivity.java @@ -32,7 +32,6 @@ import org.slf4j.LoggerFactory; import java.sql.SQLException; import java.util.ArrayList; -import java.util.Date; import java.util.List; import info.nightscout.androidaps.Constants; @@ -45,7 +44,7 @@ import info.nightscout.androidaps.plugins.DanaR.comm.RecordTypes; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRSyncStatus; import info.nightscout.androidaps.plugins.DanaRKorean.Services.ExecutionService; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.ToastUtils; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java index 0bad19b38e..8b3a3287a1 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java @@ -77,7 +77,7 @@ import info.nightscout.androidaps.plugins.DanaRKorean.comm.MsgStatusBolusExtende import info.nightscout.androidaps.plugins.DanaRKorean.comm.MsgStatusTempBasal; import info.nightscout.androidaps.plugins.Overview.Notification; import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.SafeParse; import info.nightscout.utils.ToastUtils; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfilePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfilePlugin.java index 91c994cdbb..6b917b44da 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfilePlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfilePlugin.java @@ -15,8 +15,7 @@ import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.ProfileInterface; -import info.nightscout.androidaps.plugins.SimpleProfile.SimpleProfileFragment; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.SafeParse; /** diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/DeviceStatus.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/DeviceStatus.java index 85a9f39b09..77e1d322c5 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/DeviceStatus.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/DeviceStatus.java @@ -2,7 +2,6 @@ package info.nightscout.androidaps.plugins.Loop; import android.content.Context; import android.content.Intent; -import android.content.pm.ResolveInfo; import android.os.Bundle; import org.json.JSONException; @@ -10,12 +9,9 @@ import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.List; - -import info.nightscout.androidaps.Config; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.Services.Intents; -import info.nightscout.client.data.DbLogger; +import info.nightscout.androidaps.plugins.NSClientInternal.data.DbLogger; /* { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/MDI/MDIPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/MDI/MDIPlugin.java index ce48a966de..0528ddf21d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/MDI/MDIPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/MDI/MDIPlugin.java @@ -7,7 +7,6 @@ import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.sql.SQLException; import java.util.Date; import info.nightscout.androidaps.BuildConfig; @@ -19,10 +18,7 @@ import info.nightscout.androidaps.db.TempBasal; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PumpDescription; import info.nightscout.androidaps.interfaces.PumpInterface; -import info.nightscout.androidaps.plugins.Overview.events.EventOverviewBolusProgress; -import info.nightscout.androidaps.plugins.VirtualPump.VirtualPumpFragment; -import info.nightscout.androidaps.plugins.VirtualPump.events.EventVirtualPumpUpdateGui; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; /** diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java new file mode 100644 index 0000000000..4a9b5f963c --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java @@ -0,0 +1,163 @@ +package info.nightscout.androidaps.plugins.NSClientInternal; + + +import android.app.Activity; +import android.content.SharedPreferences; +import android.graphics.Paint; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.ScrollView; +import android.widget.TextView; + +import com.squareup.otto.Subscribe; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; +import info.nightscout.androidaps.interfaces.FragmentBase; +import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientNewLog; +import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientRestart; +import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientStatus; +import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientUpdateGUI; + +public class NSClientInternalFragment extends Fragment implements FragmentBase, View.OnClickListener, CompoundButton.OnCheckedChangeListener { + private static Logger log = LoggerFactory.getLogger(NSClientInternalFragment.class); + + static NSClientInternalPlugin nsClientInternalPlugin; + + static public NSClientInternalPlugin getPlugin() { + if (nsClientInternalPlugin == null) { + nsClientInternalPlugin = new NSClientInternalPlugin(); + } + return nsClientInternalPlugin; + } + + private TextView logTextView; + private TextView queueTextView; + private TextView urlTextView; + private TextView statusTextView; + private TextView restart; + private TextView delivernow; + private TextView clearqueue; + private TextView showqueue; + private ScrollView logScrollview; + private CheckBox autoscrollCheckbox; + private CheckBox pausedCheckbox; + + String status = ""; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View view = inflater.inflate(R.layout.nsclientinternal_fragment, container, false); + + logScrollview = (ScrollView) view.findViewById(R.id.nsclientinternal_logscrollview); + autoscrollCheckbox = (CheckBox) view.findViewById(R.id.nsclientinternal_autoscroll); + autoscrollCheckbox.setOnCheckedChangeListener(this); + pausedCheckbox = (CheckBox) view.findViewById(R.id.nsclientinternal_paused); + pausedCheckbox.setOnCheckedChangeListener(this); + logTextView = (TextView) view.findViewById(R.id.nsclientinternal_log); + queueTextView = (TextView) view.findViewById(R.id.nsclientinternal_queue); + urlTextView = (TextView) view.findViewById(R.id.nsclientinternal_url); + statusTextView = (TextView) view.findViewById(R.id.nsclientinternal_status); + + restart = (TextView) view.findViewById(R.id.nsclientinternal_restart); + restart.setOnClickListener(this); + restart.setPaintFlags(restart.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); + delivernow = (TextView) view.findViewById(R.id.nsclientinternal_delivernow); + delivernow.setOnClickListener(this); + delivernow.setPaintFlags(delivernow.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); + clearqueue = (TextView) view.findViewById(R.id.nsclientinternal_clearqueue); + clearqueue.setOnClickListener(this); + clearqueue.setPaintFlags(clearqueue.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); + showqueue = (TextView) view.findViewById(R.id.nsclientinternal_showqueue); + showqueue.setOnClickListener(this); + showqueue.setPaintFlags(showqueue.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); + + updateGUI(); + return view; + } + + @Override + public void onClick(View view) { + switch (view.getId()) { + case R.id.nsclientinternal_restart: + MainApp.bus().post(new EventNSClientRestart()); + break; + case R.id.nsclientinternal_delivernow: + getPlugin().resend("GUI"); + break; + case R.id.nsclientinternal_clearqueue: + getPlugin().clearLog(); + break; + case R.id.nsclientinternal_showqueue: + MainApp.bus().post(new EventNSClientNewLog("QUEUE", getPlugin().queue().textList())); + break; + } + } + + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + SharedPreferences.Editor editor = SP.edit(); + switch (buttonView.getId()) { + case R.id.nsclientinternal_paused: + editor.putBoolean("nsclientinternal_paused", isChecked); + editor.apply(); + getPlugin().paused = isChecked; + // TODO + updateGUI(); + break; + case R.id.nsclientinternal_autoscroll: + editor.putBoolean("nsclientinternal_autoscroll", isChecked); + editor.apply(); + updateGUI(); + break; + } + } + + @Override + public void onPause() { + super.onPause(); + MainApp.bus().unregister(this); + } + + @Override + public void onResume() { + super.onResume(); + MainApp.bus().register(this); + updateGUI(); + } + + @Subscribe + public void onStatusEvent(final EventNSClientUpdateGUI ev) { + updateGUI(); + } + + private void updateGUI() { + Activity activity = getActivity(); + if (activity != null) + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + logTextView.setText(getPlugin().textLog); + if (getPlugin().autoscroll) { + logScrollview.fullScroll(ScrollView.FOCUS_DOWN); + } + urlTextView.setText(getPlugin().url); + queueTextView.setText(((Integer)getPlugin().queue().size()).toString()); + statusTextView.setText(getPlugin().status); + } + }); + } + + +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java new file mode 100644 index 0000000000..ed4e74ec50 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java @@ -0,0 +1,215 @@ +package info.nightscout.androidaps.plugins.NSClientInternal; + +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.ServiceConnection; +import android.content.SharedPreferences; +import android.os.Handler; +import android.os.HandlerThread; +import android.os.IBinder; +import android.preference.PreferenceManager; +import android.text.Html; +import android.text.Spanned; +import android.text.TextUtils; + +import com.squareup.otto.Subscribe; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import info.nightscout.androidaps.Constants; +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; +import info.nightscout.androidaps.events.EventAppExit; +import info.nightscout.androidaps.events.EventPreferenceChange; +import info.nightscout.androidaps.interfaces.PluginBase; +import info.nightscout.androidaps.interfaces.PumpDescription; +import info.nightscout.androidaps.plugins.DanaR.Services.ExecutionService; +import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientNewLog; +import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientRestart; +import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientStatus; +import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientUpdateGUI; +import info.nightscout.androidaps.plugins.NSClientInternal.services.NSClientService; + +public class NSClientInternalPlugin implements PluginBase { + private static Logger log = LoggerFactory.getLogger(NSClientInternalPlugin.class); + + boolean fragmentEnabled = true; + boolean fragmentVisible = true; + + static public Handler handler; + static private HandlerThread handlerThread; + + public List listLog = new ArrayList(); + public Spanned textLog = Html.fromHtml(""); + + public boolean paused = false; + public boolean autoscroll = true; + public String url = ""; + + public String status = ""; + + public NSClientService nsClientService = null; + + public NSClientInternalPlugin() { + MainApp.bus().register(this); + SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + paused = SP.getBoolean("nsclientinternal_paused", false); + autoscroll = SP.getBoolean("nsclientinternal_autoscroll", true); + url = SP.getString("nsclientinternal_url", ""); + + if (handler == null) { + handlerThread = new HandlerThread(NSClientInternalPlugin.class.getSimpleName() + "Handler"); + handlerThread.start(); + handler = new Handler(handlerThread.getLooper()); + } + + Context context = MainApp.instance().getApplicationContext(); + Intent intent = new Intent(context, NSClientService.class); + context.bindService(intent, mConnection, Context.BIND_AUTO_CREATE); + } + + @Override + public int getType() { + return PluginBase.GENERAL; + } + + @Override + public String getFragmentClass() { + return NSClientInternalFragment.class.getName(); + } + + @Override + public String getName() { + return MainApp.sResources.getString(R.string.nsclientinternal); + } + + @Override + public String getNameShort() { + String name = MainApp.sResources.getString(R.string.nsclientinternal_shortname); + if (!name.trim().isEmpty()) { + //only if translation exists + return name; + } + // use long name as fallback + return getName(); + } + + @Override + public boolean isEnabled(int type) { + return type == GENERAL && fragmentEnabled; + } + + @Override + public boolean isVisibleInTabs(int type) { + return type == GENERAL && fragmentVisible; + } + + @Override + public boolean canBeHidden(int type) { + return true; + } + + @Override + public void setFragmentEnabled(int type, boolean fragmentEnabled) { + if (type == GENERAL) this.fragmentEnabled = fragmentEnabled; + } + + @Override + public void setFragmentVisible(int type, boolean fragmentVisible) { + if (type == GENERAL) this.fragmentVisible = fragmentVisible; + } + + ServiceConnection mConnection = new ServiceConnection() { + + public void onServiceDisconnected(ComponentName name) { + log.debug("Service is disconnected"); + nsClientService = null; + } + + public void onServiceConnected(ComponentName name, IBinder service) { + log.debug("Service is connected"); + NSClientService.LocalBinder mLocalBinder = (NSClientService.LocalBinder) service; + nsClientService = mLocalBinder.getServiceInstance(); + } + }; + + @SuppressWarnings("UnusedParameters") + @Subscribe + public void onStatusEvent(final EventAppExit e) { + if (nsClientService != null) + MainApp.instance().getApplicationContext().unbindService(mConnection); + } + + @Subscribe + public void onStatusEvent(final EventPreferenceChange s) { + //TODO + } + + @Subscribe + public void onStatusEvent(final EventNSClientNewLog ev) { + addToLog(ev); + log.debug(ev.action + " " + ev.logText); + } + + @Subscribe + public void onStatusEvent(final EventNSClientRestart ev) { + if (nsClientService != null) + nsClientService.restart(); + } + + @Subscribe + public void onStatusEvent(final EventNSClientStatus ev) { + status = ev.status; + MainApp.bus().post(new EventNSClientUpdateGUI()); + } + + public void clearLog() { + handler.post(new Runnable() { + @Override + public void run() { + listLog = new ArrayList(); + updateLog(); + } + }); + } + + private void addToLog(final EventNSClientNewLog ev) { + handler.post(new Runnable() { + @Override + public void run() { + SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss"); + listLog.add(ev); + // remove the first line if log is too large + if (listLog.size() >= Constants.MAX_LOG_LINES) { + listLog.remove(0); + } + updateLog(); + } + }); + } + + private void updateLog() { + Spanned newTextLog = Html.fromHtml(""); + for (EventNSClientNewLog log : listLog) { + newTextLog = (Spanned) TextUtils.concat(newTextLog, log.toHtml()); + } + textLog = newTextLog; + MainApp.bus().post(new EventNSClientUpdateGUI()); + } + + public void resend(String reason) { + if (nsClientService != null) + nsClientService.resend(reason); + } + + public UploadQueue queue() { + return NSClientService.uploadQueue; + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java new file mode 100644 index 0000000000..f0486b2511 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java @@ -0,0 +1,151 @@ +package info.nightscout.androidaps.plugins.NSClientInternal; + +import android.content.Context; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; + +import org.json.JSONException; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +import info.nightscout.androidaps.Config; +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.plugins.NSClientInternal.acks.NSAddAck; +import info.nightscout.androidaps.plugins.NSClientInternal.acks.NSUpdateAck; +import info.nightscout.androidaps.plugins.NSClientInternal.broadcasts.BroadcastQueueStatus; +import info.nightscout.androidaps.plugins.NSClientInternal.data.DbRequest; +import info.nightscout.androidaps.plugins.NSClientInternal.services.NSClientService; + +/** + * Created by mike on 21.02.2016. + */ +public class UploadQueue { + private static Logger log = LoggerFactory.getLogger(UploadQueue.class); + + public static HashMap queue = null; + + public UploadQueue() { + loadMap(); + } + + public static String status() { + return "QUEUE: " + queue.size(); + } + + public static int size() { + return queue.size(); + } + + public static void add(final DbRequest dbr) { + NSClientService.handler.post(new Runnable() { + @Override + public void run() { + log.debug("QUEUE adding: " + dbr.data.toString()); + queue.put(dbr.hash(), dbr); + } + }); + } + + public static void put(final String hash, final DbRequest dbr) { + NSClientService.handler.post(new Runnable() { + @Override + public void run() { + queue.put(hash, dbr); + BroadcastQueueStatus bs = new BroadcastQueueStatus(); + bs.handleNewStatus(queue.size(), MainApp.instance().getApplicationContext()); + } + }); + } + + public static void reset() { + NSClientService.handler.post(new Runnable() { + @Override + public void run() { + log.debug("QUEUE Reset"); + queue.clear(); + log.debug(status()); + } + }); + } + + public static void removeID(final JSONObject record) { + NSClientService.handler.post(new Runnable() { + @Override + public void run() { + try { + long id = -1L; + if (record.has("NSCLIENT_ID")) { + id = record.getLong("NSCLIENT_ID"); + } else { + return; + } + Iterator> iter = queue.entrySet().iterator(); + while (iter.hasNext()) { + DbRequest dbr = iter.next().getValue(); + JSONObject data = dbr.data; + long nsclientId = -1; + if (data.has("NSCLIENT_ID")) { + nsclientId = data.getLong("NSCLIENT_ID"); + if (nsclientId == id) { + log.debug("Removing item from UploadQueue"); + iter.remove(); + log.debug(UploadQueue.status()); + return; + } + } + } + } catch (JSONException e) { + e.printStackTrace(); + } + } + }); + } + + final String KEY = "UploadQueue"; + + private void saveMap() { + SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + JSONObject jsonObject = new JSONObject(queue); + String jsonString = jsonObject.toString(); + SharedPreferences.Editor editor = sp.edit(); + editor.remove(KEY).commit(); + editor.putString(KEY, jsonString); + editor.commit(); + } + + private void loadMap() { + queue = new HashMap(); + SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + try { + String jsonString = sp.getString(KEY, (new JSONObject()).toString()); + JSONObject jsonObject = new JSONObject(jsonString); + Iterator keysItr = jsonObject.keys(); + while (keysItr.hasNext()) { + String key = keysItr.next(); + DbRequest value = (DbRequest) jsonObject.get(key); + queue.put(key, value); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + public String textList() { + Iterator> iter = queue.entrySet().iterator(); + String result = ""; + + while (iter.hasNext()) { + DbRequest dbr = iter.next().getValue(); + result += dbr.action.toUpperCase() + " "; + result += dbr.collection + ": "; + result += dbr.data.toString(); + } + return result; + } + +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAddAck.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAddAck.java new file mode 100644 index 0000000000..43fc09876e --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAddAck.java @@ -0,0 +1,54 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.acks; + +import org.json.JSONArray; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import info.nightscout.androidaps.plugins.NSClientInternal.services.NSClientService; +import io.socket.client.Ack; + +/** + * Created by mike on 29.12.2015. + */ +public class NSAddAck implements Ack { + private static Logger log = LoggerFactory.getLogger(NSAddAck.class); + public String _id = null; + public void call(Object...args) { + // Regular response + try { + JSONArray responsearray = (JSONArray) (args[0]); + JSONObject response = null; + if (responsearray.length()>0) { + response = responsearray.getJSONObject(0); + _id = response.getString("_id"); + } + synchronized(this) { + this.notify(); + } + return; + } catch (Exception e) { + } + // Check for not authorized + try { + JSONObject response = (JSONObject) (args[0]); + if (response.has("result")) { + _id = null; + if (response.getString("result").equals("Not authorized")) { + synchronized(this) { + this.notify(); + } + NSClientService.forcerestart = true; + return; + } + log.debug("DBACCESS " + response.getString("result")); + } + synchronized(this) { + this.notify(); + } + return; + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAuthAck.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAuthAck.java new file mode 100644 index 0000000000..3c3b173173 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAuthAck.java @@ -0,0 +1,24 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.acks; + +import org.json.JSONObject; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientNewLog; +import io.socket.client.Ack; + +/** + * Created by mike on 02.01.2016. + */ +public class NSAuthAck implements Ack{ + public boolean read = false; + public boolean write = false; + public boolean write_treatment = false; + + public void call(Object...args) { + JSONObject response = (JSONObject)args[0]; + read = response.optBoolean("read"); + write = response.optBoolean("write"); + write_treatment = response.optBoolean("write_treatment"); + MainApp.bus().post(this); + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSPingAck.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSPingAck.java new file mode 100644 index 0000000000..2824e922aa --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSPingAck.java @@ -0,0 +1,38 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.acks; + +import org.json.JSONException; +import org.json.JSONObject; + +import io.socket.client.Ack; + +/** + * Created by mike on 29.12.2015. + */ +public class NSPingAck implements Ack { + public long mills = 0; + public boolean received = false; + public boolean auth_received = false; + public boolean read = false; + public boolean write = false; + public boolean write_treatment = false; + + public void call(Object...args) { + JSONObject response = (JSONObject)args[0]; + mills = response.optLong("mills"); + if (response.has("authorization")) { + auth_received = true; + try { + JSONObject authorization = response.getJSONObject("authorization"); + read = authorization.optBoolean("read"); + write = authorization.optBoolean("write"); + write_treatment = authorization.optBoolean("write_treatment"); + } catch (JSONException e) { + e.printStackTrace(); + } + } + received = true; + synchronized(this) { + this.notify(); + } + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSUpdateAck.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSUpdateAck.java new file mode 100644 index 0000000000..46b09f4430 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSUpdateAck.java @@ -0,0 +1,32 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.acks; + +import org.json.JSONException; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.socket.client.Ack; + +/** + * Created by mike on 21.02.2016. + */ +public class NSUpdateAck implements Ack { + private static Logger log = LoggerFactory.getLogger(NSUpdateAck.class); + public boolean result = false; + public void call(Object...args) { + JSONObject response = (JSONObject)args[0]; + if (response.has("result")) + try { + if (response.getString("result").equals("success")) + result = true; + else if (response.getString("result").equals("Missing _id")) { + result = true; + log.debug("Internal error: Missing _id returned on dbUpdate ack"); + } + } catch (JSONException e) { + } + synchronized(this) { + this.notify(); + } + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastCals.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastCals.java new file mode 100644 index 0000000000..58a24e825c --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastCals.java @@ -0,0 +1,34 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.broadcasts; + +import android.content.Context; +import android.content.Intent; +import android.content.pm.ResolveInfo; +import android.os.Bundle; + +import org.json.JSONArray; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; + +import info.nightscout.androidaps.Services.Intents; + +/** + * Created by mike on 26.06.2016. + */ +public class BroadcastCals { + private static Logger log = LoggerFactory.getLogger(BroadcastCals.class); + + public void handleNewCal(JSONArray cals, Context context, boolean isDelta) { + Bundle bundle = new Bundle(); + bundle.putString("cals", cals.toString()); + bundle.putBoolean("delta", isDelta); + Intent intent = new Intent(Intents.ACTION_NEW_CAL); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + context.sendBroadcast(intent); + List x = context.getPackageManager().queryBroadcastReceivers(intent, 0); + + log.debug("CAL " + x.size() + " receivers"); + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastDeviceStatus.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastDeviceStatus.java new file mode 100644 index 0000000000..64fd72b36a --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastDeviceStatus.java @@ -0,0 +1,45 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.broadcasts; + +import android.content.Context; +import android.content.Intent; +import android.content.pm.ResolveInfo; +import android.os.Bundle; + +import org.json.JSONArray; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; + +import info.nightscout.androidaps.Services.Intents; + + +public class BroadcastDeviceStatus { + private static Logger log = LoggerFactory.getLogger(BroadcastDeviceStatus.class); + + public void handleNewDeviceStatus(JSONObject status, Context context, boolean isDelta) { + Bundle bundle = new Bundle(); + bundle.putString("devicestatus", status.toString()); + bundle.putBoolean("delta", isDelta); + Intent intent = new Intent(Intents.ACTION_NEW_DEVICESTATUS); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + context.sendBroadcast(intent); + List x = context.getPackageManager().queryBroadcastReceivers(intent, 0); + + log.debug("DEVICESTATUS " + x.size() + " receivers"); + } + public void handleNewDeviceStatus(JSONArray statuses, Context context, boolean isDelta) { + Bundle bundle = new Bundle(); + bundle.putString("devicestatuses", statuses.toString()); + bundle.putBoolean("delta", isDelta); + Intent intent = new Intent(Intents.ACTION_NEW_DEVICESTATUS); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + context.sendBroadcast(intent); + List x = context.getPackageManager().queryBroadcastReceivers(intent, 0); + + log.debug("DEVICESTATUS " + x.size() + " receivers"); + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastMbgs.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastMbgs.java new file mode 100644 index 0000000000..33669e1852 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastMbgs.java @@ -0,0 +1,34 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.broadcasts; + +import android.content.Context; +import android.content.Intent; +import android.content.pm.ResolveInfo; +import android.os.Bundle; + +import org.json.JSONArray; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; + +import info.nightscout.androidaps.Services.Intents; + +/** + * Created by mike on 26.06.2016. + */ +public class BroadcastMbgs { + private static Logger log = LoggerFactory.getLogger(BroadcastMbgs.class); + + public void handleNewMbg(JSONArray mbgs, Context context, boolean isDelta) { + Bundle bundle = new Bundle(); + bundle.putString("mbgs", mbgs.toString()); + bundle.putBoolean("delta", isDelta); + Intent intent = new Intent(Intents.ACTION_NEW_MBG); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + context.sendBroadcast(intent); + List x = context.getPackageManager().queryBroadcastReceivers(intent, 0); + + log.debug("MBG " + x.size() + " receivers"); + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastProfile.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastProfile.java new file mode 100644 index 0000000000..a1d44d0340 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastProfile.java @@ -0,0 +1,37 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.broadcasts; + +import android.content.Context; +import android.content.Intent; +import android.content.pm.ResolveInfo; +import android.os.Bundle; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; + +import info.nightscout.androidaps.Services.Intents; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; + + +/** + * Created by mike on 20.02.2016. + */ +public class BroadcastProfile { + private static Logger log = LoggerFactory.getLogger(BroadcastProfile.class); + + public void handleNewTreatment(NSProfile profile, Context context, boolean isDelta) { + Bundle bundle = new Bundle(); + bundle.putString("profile", profile.getData().toString()); + bundle.putString("activeprofile", profile.getActiveProfile()); + bundle.putBoolean("delta", isDelta); + Intent intent = new Intent(Intents.ACTION_NEW_PROFILE); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + context.sendBroadcast(intent); + List x = context.getPackageManager().queryBroadcastReceivers(intent, 0); + + log.debug("PROFILE " + x.size() + " receivers"); + } + +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastQueueStatus.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastQueueStatus.java new file mode 100644 index 0000000000..ed2b01a27c --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastQueueStatus.java @@ -0,0 +1,30 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.broadcasts; + +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.os.PowerManager; + +import info.nightscout.androidaps.Services.Intents; + +/** + * Created by mike on 28.02.2016. + */ +public class BroadcastQueueStatus { + public void handleNewStatus(int size, Context context) { + PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); + PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, + "sendQueue"); + wakeLock.acquire(); + try { + Bundle bundle = new Bundle(); + bundle.putInt("size", size); + Intent intent = new Intent(Intents.ACTION_QUEUE_STATUS); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + context.sendBroadcast(intent); + } finally { + wakeLock.release(); + } + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastSgvs.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastSgvs.java new file mode 100644 index 0000000000..81a2621a77 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastSgvs.java @@ -0,0 +1,49 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.broadcasts; + +import android.content.Context; +import android.content.Intent; +import android.content.pm.ResolveInfo; +import android.os.Bundle; + +import org.json.JSONArray; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; + +import info.nightscout.androidaps.Services.Intents; + +/** + * Created by mike on 22.02.2016. + */ +public class BroadcastSgvs { + private static Logger log = LoggerFactory.getLogger(BroadcastSgvs.class); + + public void handleNewSgv(JSONObject sgv, Context context, boolean isDelta) { + Bundle bundle = new Bundle(); + bundle.putString("sgv", sgv.toString()); + bundle.putBoolean("delta", isDelta); + Intent intent = new Intent(Intents.ACTION_NEW_SGV); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + context.sendBroadcast(intent); + List x = context.getPackageManager().queryBroadcastReceivers(intent, 0); + + log.debug("SGV " + x.size() + " receivers"); + } + + public void handleNewSgv(JSONArray sgvs, Context context, boolean isDelta) { + Bundle bundle = new Bundle(); + bundle.putString("sgvs", sgvs.toString()); + bundle.putBoolean("delta", isDelta); + Intent intent = new Intent(Intents.ACTION_NEW_SGV); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + context.sendBroadcast(intent); + List x = context.getPackageManager().queryBroadcastReceivers(intent, 0); + + log.debug("SGV " + x.size() + " receivers"); + } + +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastStatus.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastStatus.java new file mode 100644 index 0000000000..b99950c89b --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastStatus.java @@ -0,0 +1,45 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.broadcasts; + +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; +import android.os.Bundle; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.Services.Intents; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSStatus; +import info.nightscout.androidaps.plugins.NSClientInternal.services.NSClientService; + +/** + * Created by mike on 24.02.2016. + */ +public class BroadcastStatus { + private static Logger log = LoggerFactory.getLogger(BroadcastStatus.class); + + public void handleNewStatus(NSStatus status, Context context, boolean isDelta) { + Bundle bundle = new Bundle(); + try { + bundle.putString("nsclientversionname", MainApp.instance().getPackageManager().getPackageInfo(MainApp.instance().getPackageName(), 0).versionName); + bundle.putInt("nsclientversioncode", MainApp.instance().getPackageManager().getPackageInfo(MainApp.instance().getPackageName(), 0).versionCode); + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + }; + bundle.putString("nightscoutversionname", NSClientService.nightscoutVersionName); + bundle.putInt("nightscoutversioncode", NSClientService.nightscoutVersionCode); + bundle.putString("status", status.getData().toString()); + bundle.putBoolean("delta", isDelta); + Intent intent = new Intent(Intents.ACTION_NEW_STATUS); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + context.sendBroadcast(intent); + List x = context.getPackageManager().queryBroadcastReceivers(intent, 0); + + log.debug("STATUS: " + x.size() + " receivers"); + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastTreatment.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastTreatment.java new file mode 100644 index 0000000000..9d1abe43e3 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/broadcasts/BroadcastTreatment.java @@ -0,0 +1,107 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.broadcasts; + +import android.content.Context; +import android.content.Intent; +import android.content.pm.ResolveInfo; +import android.os.Bundle; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; + +import info.nightscout.androidaps.Services.Intents; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSTreatment; + +/** + * Created by mike on 20.02.2016. + */ +public class BroadcastTreatment { + private static Logger log = LoggerFactory.getLogger(BroadcastTreatment.class); + + public void handleNewTreatment(NSTreatment treatment, Context context, boolean isDelta) { + Bundle bundle = new Bundle(); + bundle.putString("treatment", treatment.getData().toString()); + bundle.putBoolean("delta", isDelta); + Intent intent = new Intent(Intents.ACTION_NEW_TREATMENT); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + context.sendBroadcast(intent); + List x = context.getPackageManager().queryBroadcastReceivers(intent, 0); + + log.debug("TREAT_ADD " + treatment.getEventType() + " " + x.size() + " receivers"); + } + + public void handleNewTreatment(JSONArray treatments, Context context, boolean isDelta) { + Bundle bundle = new Bundle(); + bundle.putString("treatments", treatments.toString()); + bundle.putBoolean("delta", isDelta); + Intent intent = new Intent(Intents.ACTION_NEW_TREATMENT); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + context.sendBroadcast(intent); + List x = context.getPackageManager().queryBroadcastReceivers(intent, 0); + + log.debug("TREAT_ADD " + treatments.length() + " " + x.size() + " receivers"); + } + + public void handleChangedTreatment(JSONObject treatment, Context context, boolean isDelta) { + Bundle bundle = new Bundle(); + bundle.putString("treatment", treatment.toString()); + bundle.putBoolean("delta", isDelta); + Intent intent = new Intent(Intents.ACTION_CHANGED_TREATMENT); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + context.sendBroadcast(intent); + List x = context.getPackageManager().queryBroadcastReceivers(intent, 0); + + try { + log.debug("TREAT_CHANGE " + treatment.getString("_id") + " " + x.size() + " receivers"); + } catch (JSONException e) {} + } + + public void handleChangedTreatment(JSONArray treatments, Context context, boolean isDelta) { + Bundle bundle = new Bundle(); + bundle.putString("treatments", treatments.toString()); + bundle.putBoolean("delta", isDelta); + Intent intent = new Intent(Intents.ACTION_CHANGED_TREATMENT); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + context.sendBroadcast(intent); + List x = context.getPackageManager().queryBroadcastReceivers(intent, 0); + + log.debug("TREAT_CHANGE " + treatments.length() + " " + x.size() + " receivers"); + } + + public void handleRemovedTreatment(JSONObject treatment, Context context, boolean isDelta) { + Bundle bundle = new Bundle(); + bundle.putString("treatment", treatment.toString()); + bundle.putBoolean("delta", isDelta); + Intent intent = new Intent(Intents.ACTION_REMOVED_TREATMENT); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + context.sendBroadcast(intent); + List x = context.getPackageManager().queryBroadcastReceivers(intent, 0); + + try { + log.debug("TREAT_REMOVE " + treatment.getString("_id") + " " + x.size() + " receivers"); + } catch (JSONException e) {} + } + + public void handleRemovedTreatment(JSONArray treatments, Context context, boolean isDelta) { + Bundle bundle = new Bundle(); + bundle.putString("treatments", treatments.toString()); + bundle.putBoolean("delta", isDelta); + Intent intent = new Intent(Intents.ACTION_REMOVED_TREATMENT); + intent.putExtras(bundle); + intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); + context.sendBroadcast(intent); + List x = context.getPackageManager().queryBroadcastReceivers(intent, 0); + + log.debug("TREAT_REMOVE " + treatments.length() + " treatments " + x.size() + " receivers"); + } + +} diff --git a/app/src/main/java/info/nightscout/client/data/DbLogger.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/DbLogger.java similarity index 96% rename from app/src/main/java/info/nightscout/client/data/DbLogger.java rename to app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/DbLogger.java index 3695d5e735..70d8e9e336 100644 --- a/app/src/main/java/info/nightscout/client/data/DbLogger.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/DbLogger.java @@ -1,4 +1,4 @@ -package info.nightscout.client.data; +package info.nightscout.androidaps.plugins.NSClientInternal.data; import android.content.Intent; import android.content.pm.ResolveInfo; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/DbRequest.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/DbRequest.java new file mode 100644 index 0000000000..36fba1e637 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/DbRequest.java @@ -0,0 +1,46 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.data; + +import com.google.common.base.Charsets; +import com.google.common.hash.Hashing; + +import org.json.JSONObject; + +/** + * Created by mike on 27.02.2016. + * + * Allowed actions "dbAdd" || "dbUpdate" || "dbUpdateUnset" || "dbRemove" + */ +public class DbRequest { + public String action = null; + public String collection = null; + public JSONObject data = null; + public String _id = null; + + // dbAdd + public DbRequest(String action, String collection, JSONObject data) { + this.action = action; + this.collection = collection; + this.data = data; + this._id = ""; + } + + // dbUpdate, dbUpdateUnset + public DbRequest(String action, String collection, String _id, JSONObject data) { + this.action = action; + this.collection = collection; + this.data = data; + this._id = _id; + } + + // dbRemove + public DbRequest(String action, String collection, String _id) { + this.action = action; + this.collection = collection; + this.data = new JSONObject(); + this._id = _id; + } + + public String hash() { + return Hashing.sha1().hashString(action + collection + _id + data.toString(), Charsets.UTF_8).toString(); + } +} diff --git a/app/src/main/java/info/nightscout/client/data/NSCal.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSCal.java similarity index 67% rename from app/src/main/java/info/nightscout/client/data/NSCal.java rename to app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSCal.java index 5a78dbaa02..74b5f688d9 100644 --- a/app/src/main/java/info/nightscout/client/data/NSCal.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSCal.java @@ -1,9 +1,12 @@ -package info.nightscout.client.data; +package info.nightscout.androidaps.plugins.NSClientInternal.data; import org.json.JSONException; import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class NSCal { + private static Logger log = LoggerFactory.getLogger(NSCal.class); public long date; public double slope; public double intercept; @@ -17,6 +20,7 @@ public class NSCal { scale = json.getDouble("scale"); } catch (JSONException e) { e.printStackTrace(); + log.debug("Data: " + json.toString()); } } } diff --git a/app/src/main/java/info/nightscout/client/data/NSProfile.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSProfile.java similarity index 99% rename from app/src/main/java/info/nightscout/client/data/NSProfile.java rename to app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSProfile.java index 2e732c8c9f..4d3df3068c 100644 --- a/app/src/main/java/info/nightscout/client/data/NSProfile.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSProfile.java @@ -1,4 +1,4 @@ -package info.nightscout.client.data; +package info.nightscout.androidaps.plugins.NSClientInternal.data; import com.crashlytics.android.Crashlytics; diff --git a/app/src/main/java/info/nightscout/client/data/NSSgv.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSSgv.java similarity index 96% rename from app/src/main/java/info/nightscout/client/data/NSSgv.java rename to app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSSgv.java index 5ce9b35caa..c8666f4306 100644 --- a/app/src/main/java/info/nightscout/client/data/NSSgv.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSSgv.java @@ -1,4 +1,4 @@ -package info.nightscout.client.data; +package info.nightscout.androidaps.plugins.NSClientInternal.data; import org.json.JSONException; import org.json.JSONObject; diff --git a/app/src/main/java/info/nightscout/client/data/NSStatus.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSStatus.java similarity index 97% rename from app/src/main/java/info/nightscout/client/data/NSStatus.java rename to app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSStatus.java index f247907296..fe20e90b1d 100644 --- a/app/src/main/java/info/nightscout/client/data/NSStatus.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSStatus.java @@ -1,4 +1,4 @@ -package info.nightscout.client.data; +package info.nightscout.androidaps.plugins.NSClientInternal.data; import org.json.JSONException; import org.json.JSONObject; diff --git a/app/src/main/java/info/nightscout/client/data/NSTreatment.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSTreatment.java similarity index 97% rename from app/src/main/java/info/nightscout/client/data/NSTreatment.java rename to app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSTreatment.java index f358b4e74d..7430caf600 100644 --- a/app/src/main/java/info/nightscout/client/data/NSTreatment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSTreatment.java @@ -1,4 +1,4 @@ -package info.nightscout.client.data; +package info.nightscout.androidaps.plugins.NSClientInternal.data; import org.json.JSONException; import org.json.JSONObject; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientNewLog.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientNewLog.java new file mode 100644 index 0000000000..7f576fde7e --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientNewLog.java @@ -0,0 +1,30 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.events; + +import android.text.Html; +import android.text.Spanned; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * Created by mike on 15.02.2017. + */ + +public class EventNSClientNewLog { + public Date date = new Date(); + public String action; + public String logText; + public EventNSClientNewLog(String action, String logText) { + this.action = action; + this.logText = logText; + } + + public Spanned toHtml() { + SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm:ss"); + Spanned line = Html.fromHtml(timeFormat.format(date) + " " + action + " " + logText + "
"); + return line; + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientRestart.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientRestart.java new file mode 100644 index 0000000000..9bf90be31b --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientRestart.java @@ -0,0 +1,8 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.events; + +/** + * Created by mike on 15.02.2017. + */ + +public class EventNSClientRestart { +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientStatus.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientStatus.java new file mode 100644 index 0000000000..6a1c721535 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientStatus.java @@ -0,0 +1,16 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.events; + +/** + * Created by mike on 02.01.2016. + */ +public class EventNSClientStatus { + public String status = ""; + + public EventNSClientStatus(String status) { + this.status = status; + } + + public EventNSClientStatus() { + } + +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientUpdateGUI.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientUpdateGUI.java new file mode 100644 index 0000000000..8f00bd3424 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/events/EventNSClientUpdateGUI.java @@ -0,0 +1,8 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.events; + +/** + * Created by mike on 17.02.2017. + */ + +public class EventNSClientUpdateGUI { +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/AutoStartReceiver.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/AutoStartReceiver.java new file mode 100644 index 0000000000..dd5d3330ab --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/AutoStartReceiver.java @@ -0,0 +1,17 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.receivers; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; + +import info.nightscout.androidaps.plugins.NSClientInternal.services.NSClientService; + +public class AutoStartReceiver extends BroadcastReceiver { + public AutoStartReceiver() { + } + + @Override + public void onReceive(Context context, Intent intent) { + context.startService(new Intent(context, NSClientService.class)); + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java new file mode 100644 index 0000000000..1cf0d27b77 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java @@ -0,0 +1,87 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.receivers; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.os.PowerManager; + +import org.json.JSONException; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Date; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.plugins.NSClientInternal.NSClientInternalPlugin; +import info.nightscout.androidaps.plugins.NSClientInternal.UploadQueue; +import info.nightscout.androidaps.plugins.NSClientInternal.data.DbRequest; + +public class DBAccessReceiver extends BroadcastReceiver { + private static Logger log = LoggerFactory.getLogger(DBAccessReceiver.class); + + + @Override + public void onReceive(Context context, Intent intent) { + PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); + PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, + "sendQueue"); + wakeLock.acquire(); + try { + Bundle bundles = intent.getExtras(); + if (bundles == null) return; + if (!bundles.containsKey("action")) return; + + String collection = null; + String _id = null; + JSONObject data = null; + String action = bundles.getString("action"); + try { collection = bundles.getString("collection"); } catch (Exception e) {} + try { _id = bundles.getString("_id"); } catch (Exception e) {} + try { data = new JSONObject(bundles.getString("data")); } catch (Exception e) {} + + if (data == null && !action.equals("dbRemove") || _id == null && action.equals("dbRemove")) { + log.debug("DBACCESS no data inside record"); + return; + } + + // mark by id + if (action.equals("dbRemove")) { + data = new JSONObject(); + } + try { + data.put("NSCLIENT_ID", (new Date()).getTime()); + } catch (JSONException e) { + e.printStackTrace(); + } + + if (!isAllowedCollection(collection)) { + log.debug("DBACCESS wrong collection specified"); + return; + } + + if (action.equals("dbRemove")) { + DbRequest dbr = new DbRequest(action, collection, _id); + UploadQueue.add(dbr); + } else { + DbRequest dbr = new DbRequest(action, collection, data); + UploadQueue.add(dbr); + } + + } finally { + wakeLock.release(); + } + + } + + private boolean isAllowedCollection(String collection) { + // "treatments" || "entries" || "devicestatus" || "profile" || "food" + if (collection.equals("treatments")) return true; + if (collection.equals("entries")) return true; + if (collection.equals("devicestatus")) return true; + if (collection.equals("profile")) return true; + if (collection.equals("food")) return true; + return false; + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/RestartReceiver.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/RestartReceiver.java new file mode 100644 index 0000000000..a38ca842f9 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/RestartReceiver.java @@ -0,0 +1,25 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.receivers; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.support.v4.content.WakefulBroadcastReceiver; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientRestart; +import info.nightscout.androidaps.plugins.NSClientInternal.services.NSClientService; + +public class RestartReceiver extends WakefulBroadcastReceiver { + public RestartReceiver() { + } + + @Override + public void onReceive(Context context, Intent intent) { + startWakefulService(context, new Intent(context, NSClientService.class) + .setAction(intent.getAction()) + .putExtras(intent)); + + MainApp.bus().post(new EventNSClientRestart()); + completeWakefulIntent(intent); + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java new file mode 100644 index 0000000000..9aadc0d1dc --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java @@ -0,0 +1,760 @@ +package info.nightscout.androidaps.plugins.NSClientInternal.services; + +import android.app.Service; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Binder; +import android.os.Handler; +import android.os.HandlerThread; +import android.os.IBinder; +import android.os.PowerManager; +import android.preference.PreferenceManager; +import android.widget.Toast; + +import com.google.common.base.Charsets; +import com.google.common.hash.Hashing; +import com.squareup.otto.Subscribe; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.net.URISyntaxException; +import java.util.Date; +import java.util.Iterator; +import java.util.Map; + +import info.nightscout.androidaps.Config; +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.events.EventAppExit; +import info.nightscout.androidaps.interfaces.PluginBase; +import info.nightscout.androidaps.plugins.DanaR.Services.ExecutionService; +import info.nightscout.androidaps.plugins.NSClientInternal.NSClientInternalPlugin; +import info.nightscout.androidaps.plugins.NSClientInternal.UploadQueue; +import info.nightscout.androidaps.plugins.NSClientInternal.acks.NSAddAck; +import info.nightscout.androidaps.plugins.NSClientInternal.acks.NSAuthAck; +import info.nightscout.androidaps.plugins.NSClientInternal.acks.NSPingAck; +import info.nightscout.androidaps.plugins.NSClientInternal.acks.NSUpdateAck; +import info.nightscout.androidaps.plugins.NSClientInternal.broadcasts.BroadcastCals; +import info.nightscout.androidaps.plugins.NSClientInternal.broadcasts.BroadcastDeviceStatus; +import info.nightscout.androidaps.plugins.NSClientInternal.broadcasts.BroadcastMbgs; +import info.nightscout.androidaps.plugins.NSClientInternal.broadcasts.BroadcastProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.broadcasts.BroadcastSgvs; +import info.nightscout.androidaps.plugins.NSClientInternal.broadcasts.BroadcastStatus; +import info.nightscout.androidaps.plugins.NSClientInternal.broadcasts.BroadcastTreatment; +import info.nightscout.androidaps.plugins.NSClientInternal.data.DbRequest; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSCal; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSSgv; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSStatus; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSTreatment; +import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientNewLog; +import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientStatus; +import info.nightscout.utils.SafeParse; +import io.socket.client.IO; +import io.socket.client.Socket; +import io.socket.emitter.Emitter; + +public class NSClientService extends Service { + private static Logger log = LoggerFactory.getLogger(ExecutionService.class); + + static public PowerManager.WakeLock mWakeLock; + public static boolean forcerestart = false; + private IBinder mBinder = new NSClientService.LocalBinder(); + + static NSProfile nsProfile; + + static public Handler handler; + static private HandlerThread handlerThread; + + public static Socket mSocket; + public static boolean isConnected = false; + private static Integer dataCounter = 0; + + + public static String nightscoutVersionName = ""; + public static Integer nightscoutVersionCode = 0; + + private boolean nsEnabled = false; + private String nsURL = ""; + private String nsAPISecret = ""; + private String nsDevice = ""; + private Integer nsHours = 3; + + private final Integer timeToWaitForResponseInMs = 30000; + private boolean uploading = false; + public Date lastReception = new Date(); + + private String nsAPIhashCode = ""; + + public static UploadQueue uploadQueue = new UploadQueue(); + + public NSClientService() { + registerBus(); + if (handler == null) { + handlerThread = new HandlerThread(NSClientService.class.getSimpleName() + "Handler"); + handlerThread.start(); + handler = new Handler(handlerThread.getLooper()); + } + + PowerManager powerManager = (PowerManager) MainApp.instance().getApplicationContext().getSystemService(Context.POWER_SERVICE); + mWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "NSClientService"); + initialize(); + } + + public class LocalBinder extends Binder { + public NSClientService getServiceInstance() { + return NSClientService.this; + } + } + + @Override + public IBinder onBind(Intent intent) { + return mBinder; + } + + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + + return START_STICKY; + } + + private void registerBus() { + try { + MainApp.bus().unregister(this); + } catch (RuntimeException x) { + // Ignore + } + MainApp.bus().register(this); + } + + @Subscribe + public void onStatusEvent(EventAppExit event) { + if (Config.logFunctionCalls) + log.debug("EventAppExit received"); + + destroy(); + + stopSelf(); + if (Config.logFunctionCalls) + log.debug("EventAppExit finished"); + } + + public static void setNsProfile(NSProfile profile) { + nsProfile = profile; + } + + public static NSProfile getNsProfile() { + return nsProfile; + } + + public void initialize() { + dataCounter = 0; + + NSClientService.mWakeLock.acquire(); + + readPreferences(); + + if (!nsAPISecret.equals("")) + nsAPIhashCode = Hashing.sha1().hashString(nsAPISecret, Charsets.UTF_8).toString(); + + MainApp.bus().post(new EventNSClientStatus("Initializing")); + if (!nsEnabled) { + MainApp.bus().post(new EventNSClientNewLog("NSCLIENT", "disabled")); + MainApp.bus().post(new EventNSClientStatus("Disabled")); + } else if (!nsURL.equals("")) { + try { + MainApp.bus().post(new EventNSClientStatus("Connecting ...")); + IO.Options opt = new IO.Options(); + opt.forceNew = true; + opt.reconnection = true; + mSocket = IO.socket(nsURL, opt); + mSocket.on(Socket.EVENT_CONNECT, onConnect); + mSocket.on(Socket.EVENT_DISCONNECT, onDisconnect); + mSocket.on(Socket.EVENT_PING, onPing); + MainApp.bus().post(new EventNSClientNewLog("NSCLIENT", "do connect")); + mSocket.connect(); + mSocket.on("dataUpdate", onDataUpdate); + } catch (URISyntaxException | RuntimeException e) { + MainApp.bus().post(new EventNSClientNewLog("NSCLIENT", "Wrong URL syntax")); + MainApp.bus().post(new EventNSClientStatus("Wrong URL syntax")); + } + } else { + MainApp.bus().post(new EventNSClientNewLog("NSCLIENT", "No NS URL specified")); + MainApp.bus().post(new EventNSClientStatus("Not configured")); + } + NSClientService.mWakeLock.release(); + } + + private Emitter.Listener onConnect = new Emitter.Listener() { + @Override + public void call(Object... args) { + MainApp.bus().post(new EventNSClientNewLog("NSCLIENT", "connect event. ID: " + mSocket.id())); + sendAuthMessage(new NSAuthAck()); + } + }; + + private Emitter.Listener onDisconnect = new Emitter.Listener() { + @Override + public void call(Object... args) { + MainApp.bus().post(new EventNSClientNewLog("NSCLIENT", "disconnect event")); + } + }; + + public void destroy() { + if (mSocket != null) { + MainApp.bus().post(new EventNSClientNewLog("NSCLIENT", "destroy")); + isConnected = false; + mSocket.disconnect(); + mSocket = null; + } + } + + + public void sendAuthMessage(NSAuthAck ack) { + JSONObject authMessage = new JSONObject(); + try { + authMessage.put("client", "Android_" + nsDevice); + authMessage.put("history", nsHours); + authMessage.put("status", true); // receive status + authMessage.put("pingme", true); // send mi pings to keep alive + authMessage.put("secret", nsAPIhashCode); + } catch (JSONException e) { + e.printStackTrace(); + return; + } + MainApp.bus().post(new EventNSClientNewLog("AUTH", "requesting auth")); + mSocket.emit("authorize", authMessage, ack); + } + + @Subscribe + public void onStatusEvent(NSAuthAck ack) { + String connectionStatus = "Authenticated ("; + if (ack.read) connectionStatus += "R"; + if (ack.write) connectionStatus += "W"; + if (ack.write_treatment) connectionStatus += "T"; + connectionStatus += ')'; + isConnected = true; + MainApp.bus().post(new EventNSClientStatus(connectionStatus)); + MainApp.bus().post(new EventNSClientNewLog("AUTH", connectionStatus)); + if (!ack.write) { + MainApp.bus().post(new EventNSClientNewLog("ERROR", "Write permission not granted !!!!")); + } + if (!ack.write_treatment) { + MainApp.bus().post(new EventNSClientNewLog("ERROR", "Write treatment permission not granted !!!!")); + } + lastReception = new Date(); + } + + public void readPreferences() { + SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + nsEnabled = MainApp.getSpecificPlugin(NSClientInternalPlugin.class).isEnabled(PluginBase.GENERAL); + nsURL = SP.getString("nsclientinternal_url", ""); + nsAPISecret = SP.getString("nsclientinternal_api_secret", ""); + nsHours = SafeParse.stringToInt(SP.getString("nsclientinternal_hours", "3")); + nsDevice = SP.getString("nsclientinternal_devicename", ""); + } + + private Emitter.Listener onPing = new Emitter.Listener() { + @Override + public void call(final Object... args) { + if (Config.detailedLog) + MainApp.bus().post(new EventNSClientNewLog("PING", "received")); + // send data if there is something waiting + resend("Ping received"); + } + }; + + private Emitter.Listener onDataUpdate = new Emitter.Listener() { + @Override + public void call(final Object... args) { + lastReception = new Date(); + NSClientService.handler.post(new Runnable() { + @Override + public void run() { + PowerManager powerManager = (PowerManager) MainApp.instance().getApplicationContext().getSystemService(Context.POWER_SERVICE); + PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, + "onDataUpdate"); + wakeLock.acquire(); + try { + SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + + JSONObject data = (JSONObject) args[0]; + NSCal actualCal = new NSCal(); + boolean broadcastProfile = false; + try { + // delta means only increment/changes are comming + boolean isDelta = data.has("delta"); + boolean isFull = !isDelta; + MainApp.bus().post(new EventNSClientNewLog("DATA", "Data packet #" + dataCounter++ + (isDelta ? " delta" : " full"))); + + if (data.has("profiles")) { + JSONArray profiles = (JSONArray) data.getJSONArray("profiles"); + if (profiles.length() > 0) { + JSONObject profile = (JSONObject) profiles.get(profiles.length() - 1); + String activeProfile = NSClientService.getNsProfile() == null ? null : NSClientService.getNsProfile().getActiveProfile(); + NSProfile nsProfile = new NSProfile(profile, activeProfile); + NSClientService.setNsProfile(nsProfile); + broadcastProfile = true; + MainApp.bus().post(new EventNSClientNewLog("PROFILE", "profile received")); + } + } + + if (data.has("status")) { + JSONObject status = data.getJSONObject("status"); + NSStatus nsStatus = new NSStatus(status); + + if (!status.has("versionNum")) { + if (status.getInt("versionNum") < 900) { + MainApp.bus().post(new EventNSClientNewLog("ERROR", "Unsupported Nightscout version !!!!")); + } + } else { + nightscoutVersionName = status.getString("version"); + nightscoutVersionCode = status.getInt("versionNum"); + } + + BroadcastStatus bs = new BroadcastStatus(); + bs.handleNewStatus(nsStatus, MainApp.instance().getApplicationContext(), isDelta); + + if (NSClientService.getNsProfile() != null) { + String oldActiveProfile = NSClientService.getNsProfile().getActiveProfile(); + String receivedActiveProfile = nsStatus.getActiveProfile(); + NSClientService.getNsProfile().setActiveProfile(receivedActiveProfile); + if (receivedActiveProfile != null) { + MainApp.bus().post(new EventNSClientNewLog("PROFILE", "status activeProfile received: " + receivedActiveProfile)); + } + // Change possible nulls to "" + String oldP = oldActiveProfile == null ? "" : oldActiveProfile; + String newP = receivedActiveProfile == null ? "" : receivedActiveProfile; + if (!newP.equals(oldP)) { + broadcastProfile = true; + } + } + /* Other received data to 2016/02/10 + { + status: 'ok' + , name: env.name + , version: env.version + , versionNum: versionNum (for ver 1.2.3 contains 10203) + , serverTime: new Date().toISOString() + , apiEnabled: apiEnabled + , careportalEnabled: apiEnabled && env.settings.enable.indexOf('careportal') > -1 + , boluscalcEnabled: apiEnabled && env.settings.enable.indexOf('boluscalc') > -1 + , head: env.head + , settings: env.settings + , extendedSettings: ctx.plugins && ctx.plugins.extendedClientSettings ? ctx.plugins.extendedClientSettings(env.extendedSettings) : {} + , activeProfile ..... calculated from treatments or missing + } + */ + } else if (!isDelta) { + MainApp.bus().post(new EventNSClientNewLog("ERROR", "Unsupported Nightscout version !!!!")); + } + + // If new profile received or change detected broadcast it + if (broadcastProfile && nsProfile != null) { + BroadcastProfile bp = new BroadcastProfile(); + bp.handleNewTreatment(nsProfile, MainApp.instance().getApplicationContext(), isDelta); + MainApp.bus().post(new EventNSClientNewLog("PROFILE", "broadcasting")); + } + + if (data.has("treatments")) { + JSONArray treatments = (JSONArray) data.getJSONArray("treatments"); + JSONArray removedTreatments = new JSONArray(); + JSONArray updatedTreatments = new JSONArray(); + JSONArray addedTreatments = new JSONArray(); + BroadcastTreatment bt = new BroadcastTreatment(); + if (treatments.length() > 0) + MainApp.bus().post(new EventNSClientNewLog("DATA", "received " + treatments.length() + " treatments")); + for (Integer index = 0; index < treatments.length(); index++) { + JSONObject jsonTreatment = treatments.getJSONObject(index); + NSTreatment treatment = new NSTreatment(jsonTreatment); + + // remove from upload queue if Ack is failing + UploadQueue.removeID(jsonTreatment); + if (treatment.getAction() == null) { + if (!isCurrent(treatment)) continue; + addedTreatments.put(jsonTreatment); + } else if (treatment.getAction().equals("update")) { + if (!isCurrent(treatment)) continue; + updatedTreatments.put(jsonTreatment); + } else if (treatment.getAction().equals("remove")) { + removedTreatments.put(jsonTreatment); + } + } + if (removedTreatments.length() > 0) { + bt.handleRemovedTreatment(removedTreatments, MainApp.instance().getApplicationContext(), isDelta); + } + if (updatedTreatments.length() > 0) { + bt.handleChangedTreatment(updatedTreatments, MainApp.instance().getApplicationContext(), isDelta); + } + if (addedTreatments.length() > 0) { + bt.handleNewTreatment(addedTreatments, MainApp.instance().getApplicationContext(), isDelta); + } + } + if (data.has("devicestatus")) { + BroadcastDeviceStatus bds = new BroadcastDeviceStatus(); + JSONArray devicestatuses = (JSONArray) data.getJSONArray("devicestatus"); + if (devicestatuses.length() > 0) { + MainApp.bus().post(new EventNSClientNewLog("DATA", "received " + devicestatuses.length() + " devicestatuses")); + for (Integer index = 0; index < devicestatuses.length(); index++) { + JSONObject jsonStatus = devicestatuses.getJSONObject(index); + // remove from upload queue if Ack is failing + UploadQueue.removeID(jsonStatus); + } + // send only last record + bds.handleNewDeviceStatus(devicestatuses.getJSONObject(devicestatuses.length() - 1), MainApp.instance().getApplicationContext(), isDelta); + } + } + if (data.has("mbgs")) { + BroadcastMbgs bmbg = new BroadcastMbgs(); + JSONArray mbgs = (JSONArray) data.getJSONArray("mbgs"); + if (mbgs.length() > 0) + MainApp.bus().post(new EventNSClientNewLog("DATA", "received " + mbgs.length() + " mbgs")); + for (Integer index = 0; index < mbgs.length(); index++) { + JSONObject jsonMbg = mbgs.getJSONObject(index); + // remove from upload queue if Ack is failing + UploadQueue.removeID(jsonMbg); + } + bmbg.handleNewMbg(mbgs, MainApp.instance().getApplicationContext(), isDelta); + } + if (data.has("cals")) { + BroadcastCals bc = new BroadcastCals(); + JSONArray cals = (JSONArray) data.getJSONArray("cals"); + if (cals.length() > 0) + MainApp.bus().post(new EventNSClientNewLog("DATA", "received " + cals.length() + " cals")); + // Retreive actual calibration + for (Integer index = 0; index < cals.length(); index++) { + if (index == 0) { + actualCal.set(cals.optJSONObject(index)); + } + // remove from upload queue if Ack is failing + UploadQueue.removeID(cals.optJSONObject(index)); + } + bc.handleNewCal(cals, MainApp.instance().getApplicationContext(), isDelta); + } + if (data.has("sgvs")) { + BroadcastSgvs bs = new BroadcastSgvs(); + String units = nsProfile != null ? nsProfile.getUnits() : "mg/dl"; + JSONArray sgvs = (JSONArray) data.getJSONArray("sgvs"); + if (sgvs.length() > 0) + MainApp.bus().post(new EventNSClientNewLog("DATA", "received " + sgvs.length() + " sgvs")); + for (Integer index = 0; index < sgvs.length(); index++) { + JSONObject jsonSgv = sgvs.getJSONObject(index); + // MainApp.bus().post(new EventNSClientNewLog("DATA", "svg " + sgvs.getJSONObject(index).toString()); + NSSgv sgv = new NSSgv(jsonSgv); + // Handle new sgv here + // remove from upload queue if Ack is failing + UploadQueue.removeID(jsonSgv); + } + bs.handleNewSgv(sgvs, MainApp.instance().getApplicationContext(), isDelta); + } + } catch (JSONException e) { + e.printStackTrace(); + } + //MainApp.bus().post(new EventNSClientNewLog("NSCLIENT", "onDataUpdate end"); + } finally { + wakeLock.release(); + } + } + + }); + } + }; + + public void dbUpdate(DbRequest dbr, NSUpdateAck ack) { + try { + if (!isConnected) return; + if (uploading) { + MainApp.bus().post(new EventNSClientNewLog("DBUPDATE", "Busy, adding to queue")); + return; + } + uploading = true; + JSONObject message = new JSONObject(); + message.put("collection", dbr.collection); + message.put("_id", dbr._id); + message.put("data", dbr.data); + mSocket.emit("dbUpdate", message, ack); + synchronized (ack) { + try { + ack.wait(timeToWaitForResponseInMs); + } catch (InterruptedException e) { + } + } + } catch (JSONException e) { + e.printStackTrace(); + return; + } + uploading = false; + } + + public void dbUpdate(DbRequest dbr) { + try { + if (!isConnected) return; + if (uploading) { + MainApp.bus().post(new EventNSClientNewLog("DBUPDATE", "Busy, adding to queue")); + return; + } + uploading = true; + JSONObject message = new JSONObject(); + message.put("collection", dbr.collection); + message.put("_id", dbr._id); + message.put("data", dbr.data); + mSocket.emit("dbUpdate", message); + } catch (JSONException e) { + e.printStackTrace(); + return; + } + uploading = false; + } + + public void dbUpdateUnset(DbRequest dbr, NSUpdateAck ack) { + try { + if (!isConnected) return; + if (uploading) { + MainApp.bus().post(new EventNSClientNewLog("DBUPUNSET", "Busy, adding to queue")); + return; + } + uploading = true; + JSONObject message = new JSONObject(); + message.put("collection", dbr.collection); + message.put("_id", dbr._id); + message.put("data", dbr.data); + mSocket.emit("dbUpdateUnset", message, ack); + synchronized (ack) { + try { + ack.wait(timeToWaitForResponseInMs); + } catch (InterruptedException e) { + } + } + } catch (JSONException e) { + e.printStackTrace(); + return; + } + uploading = false; + } + + public void dbUpdateUnset(DbRequest dbr) { + try { + if (!isConnected) return; + if (uploading) { + MainApp.bus().post(new EventNSClientNewLog("DBUPUNSET", "Busy, adding to queue")); + return; + } + uploading = true; + JSONObject message = new JSONObject(); + message.put("collection", dbr.collection); + message.put("_id", dbr._id); + message.put("data", dbr.data); + mSocket.emit("dbUpdateUnset", message); + } catch (JSONException e) { + e.printStackTrace(); + return; + } + uploading = false; + } + + public void dbRemove(DbRequest dbr, NSUpdateAck ack) { + try { + if (!isConnected) return; + if (uploading) { + MainApp.bus().post(new EventNSClientNewLog("DBREMOVE", "Busy, adding to queue")); + return; + } + uploading = true; + JSONObject message = new JSONObject(); + message.put("collection", dbr.collection); + message.put("_id", dbr._id); + mSocket.emit("dbRemove", message, ack); + synchronized (ack) { + try { + ack.wait(timeToWaitForResponseInMs); + } catch (InterruptedException e) { + } + } + } catch (JSONException e) { + e.printStackTrace(); + return; + } + uploading = false; + } + + public void dbRemove(DbRequest dbr) { + try { + if (!isConnected) return; + if (uploading) { + MainApp.bus().post(new EventNSClientNewLog("DBREMOVE", "Busy, adding to queue")); + return; + } + uploading = true; + JSONObject message = new JSONObject(); + message.put("collection", dbr.collection); + message.put("_id", dbr._id); + mSocket.emit("dbRemove", message); + } catch (JSONException e) { + e.printStackTrace(); + return; + } + uploading = false; + } + + public void dbAdd(DbRequest dbr, NSAddAck ack) { + try { + if (!isConnected) return; + if (uploading) { + MainApp.bus().post(new EventNSClientNewLog("DBADD", "Busy, adding to queue")); + return; + } + uploading = true; + JSONObject message = new JSONObject(); + message.put("collection", dbr.collection); + message.put("data", dbr.data); + mSocket.emit("dbAdd", message, ack); + synchronized (ack) { + try { + ack.wait(timeToWaitForResponseInMs); + } catch (InterruptedException e) { + } + } + } catch (JSONException e) { + e.printStackTrace(); + return; + } + uploading = false; + } + + public void dbAdd(DbRequest dbr) { + try { + if (!isConnected) return; + if (uploading) { + MainApp.bus().post(new EventNSClientNewLog("DBADD", "Busy, adding to queue")); + return; + } + uploading = true; + JSONObject message = new JSONObject(); + message.put("collection", dbr.collection); + message.put("data", dbr.data); + mSocket.emit("dbAdd", message); + } catch (JSONException e) { + e.printStackTrace(); + return; + } + uploading = false; + } + + public void doPing() { + if (!isConnected) return; + MainApp.bus().post(new EventNSClientNewLog("PING", "Sending")); + uploading = true; + JSONObject message = new JSONObject(); + try { + message.put("mills", new Date().getTime()); + } catch (JSONException e) { + e.printStackTrace(); + } + NSPingAck ack = new NSPingAck(); + mSocket.emit("nsping", message, ack); + synchronized (ack) { + try { + ack.wait(timeToWaitForResponseInMs); + } catch (InterruptedException e) { + } + } + if (ack.received) { + String connectionStatus = "Pong received"; + if (ack.auth_received) { + connectionStatus += ": "; + if (ack.read) connectionStatus += "R"; + if (ack.write) connectionStatus += "W"; + if (ack.write_treatment) connectionStatus += "T"; + } + if (!ack.read) sendAuthMessage(new NSAuthAck()); + MainApp.bus().post(new EventNSClientNewLog("AUTH ", connectionStatus)); + } else { + MainApp.bus().post(new EventNSClientNewLog("PING", "Ping lost")); + } + uploading = false; + } + + private boolean isCurrent(NSTreatment treatment) { + long now = (new Date()).getTime(); + long minPast = now - nsHours * 60L * 60 * 1000; + if (treatment.getMills() == null) { + log.debug("treatment.getMills() == null " + treatment.getData().toString()); + return false; + } + if (treatment.getMills() > minPast) return true; + return false; + } + + public void resend(final String reason) { + if (UploadQueue.queue.size() == 0) + return; + + if (!isConnected) return; + + MainApp.bus().post(new EventNSClientNewLog("QUEUE", "Resend started: " + reason)); + + handler.post(new Runnable() { + @Override + public void run() { + Logger log = LoggerFactory.getLogger(UploadQueue.class); + Iterator> iter = UploadQueue.queue.entrySet().iterator(); + + if (mSocket == null || !mSocket.connected()) return; + + while (iter.hasNext()) { + DbRequest dbr = iter.next().getValue(); + if (dbr.action.equals("dbAdd")) { + NSAddAck addAck = new NSAddAck(); + dbAdd(dbr, addAck); + if (addAck._id == null) { + MainApp.bus().post(new EventNSClientNewLog("QUEUE", "No response on dbAdd")); + return; + } + if (Config.detailedLog) + MainApp.bus().post(new EventNSClientNewLog("QUEUE", "dbAdd processed: " + dbr.data.toString())); + else + MainApp.bus().post(new EventNSClientNewLog("QUEUE", "dbAdd processed")); + iter.remove(); + } else if (dbr.action.equals("dbRemove")) { + NSUpdateAck removeAck = new NSUpdateAck(); + dbRemove(dbr, removeAck); + if (!removeAck.result) { + MainApp.bus().post(new EventNSClientNewLog("QUEUE", "No response on dbRemove")); + return; + } + MainApp.bus().post(new EventNSClientNewLog("QUEUE", "dbRemove processed: " + dbr._id)); + iter.remove(); + } else if (dbr.action.equals("dbUpdate")) { + NSUpdateAck updateAck = new NSUpdateAck(); + dbUpdate(dbr, updateAck); + if (!updateAck.result) { + MainApp.bus().post(new EventNSClientNewLog("QUEUE", "No response on dbUpdate")); + return; + } + MainApp.bus().post(new EventNSClientNewLog("QUEUE", "dbUpdate processed: " + dbr._id)); + iter.remove(); + } else if (dbr.action.equals("dbUpdateUnset")) { + NSUpdateAck updateUnsetAck = new NSUpdateAck(); + dbUpdateUnset(dbr, updateUnsetAck); + if (!updateUnsetAck.result) { + MainApp.bus().post(new EventNSClientNewLog("QUEUE", "No response on dbUpdateUnset")); + return; + } + MainApp.bus().post(new EventNSClientNewLog("QUEUE", "dbUpdateUnset processed: " + dbr._id)); + iter.remove(); + } + } + MainApp.bus().post(new EventNSClientNewLog("QUEUE", "Resend ended: " + reason)); + } + }); + } + + public void restart() { + destroy(); + initialize(); + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSProfile/NSProfilePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSProfile/NSProfilePlugin.java index 5f5ed9ca1d..5a4098a26a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSProfile/NSProfilePlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSProfile/NSProfilePlugin.java @@ -20,7 +20,7 @@ import info.nightscout.androidaps.events.EventNewBasalProfile; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.ProfileInterface; import info.nightscout.androidaps.plugins.NSProfile.events.EventNSProfileUpdateGUI; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; /** * Created by mike on 05.08.2016. diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java index eb449b96c8..e670ac7138 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java @@ -11,11 +11,10 @@ import java.util.Arrays; import java.util.Date; import java.util.List; -import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.db.BgReading; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.Round; import info.nightscout.utils.SafeParse; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/DetermineBasalAdapterAMAJS.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/DetermineBasalAdapterAMAJS.java index d443113fc4..4f33a42284 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/DetermineBasalAdapterAMAJS.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/DetermineBasalAdapterAMAJS.java @@ -16,17 +16,14 @@ import org.slf4j.LoggerFactory; import java.io.IOException; import info.nightscout.androidaps.Config; -import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.data.MealData; import info.nightscout.androidaps.db.TempBasal; import info.nightscout.androidaps.interfaces.PumpInterface; -import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderFragment; -import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.Loop.ScriptReader; import info.nightscout.androidaps.data.IobTotal; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.SafeParse; public class DetermineBasalAdapterAMAJS { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java index 49d5b760b9..7bf0f169e1 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java @@ -22,14 +22,13 @@ import info.nightscout.androidaps.db.TempTarget; import info.nightscout.androidaps.interfaces.APSInterface; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PumpInterface; -import info.nightscout.androidaps.interfaces.TempBasalsInterface; import info.nightscout.androidaps.plugins.Loop.APSResult; import info.nightscout.androidaps.plugins.Loop.ScriptReader; import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateGui; import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateResultGui; import info.nightscout.androidaps.plugins.TempTargetRange.TempTargetRangePlugin; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; import info.nightscout.utils.Profiler; import info.nightscout.utils.Round; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalAdapterMAJS.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalAdapterMAJS.java index 75c68cd5cc..75f87021c5 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalAdapterMAJS.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/DetermineBasalAdapterMAJS.java @@ -18,7 +18,7 @@ import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.MealData; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.Loop.ScriptReader; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; public class DetermineBasalAdapterMAJS { private static Logger log = LoggerFactory.getLogger(DetermineBasalAdapterMAJS.class); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java index a3d5c3c508..b6032b9dcc 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java @@ -28,12 +28,11 @@ import info.nightscout.androidaps.plugins.Loop.ScriptReader; import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateGui; import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateResultGui; import info.nightscout.androidaps.plugins.TempTargetRange.TempTargetRangePlugin; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; import info.nightscout.utils.Profiler; import info.nightscout.utils.Round; import info.nightscout.utils.SafeParse; -import info.nightscout.utils.ToastUtils; import static info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin.checkOnlyHardLimits; import static info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin.verifyHardLimits; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java index 9e06bbb600..0c2b9068bf 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java @@ -21,7 +21,7 @@ import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.data.GlucoseStatus; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.PlusMinusEditText; import info.nightscout.utils.XdripCalibrations; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java index 890c393edc..2fc8764a9d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java @@ -43,7 +43,7 @@ import info.nightscout.androidaps.interfaces.TempBasalsInterface; import info.nightscout.androidaps.interfaces.TreatmentsInterface; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.data.IobTotal; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.BolusWizard; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index 61f4279a51..9f0efee0e1 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -87,7 +87,7 @@ import info.nightscout.androidaps.plugins.Overview.graphExtensions.TimeAsXAxisLa import info.nightscout.androidaps.plugins.SourceXdrip.SourceXdripPlugin; import info.nightscout.androidaps.plugins.TempTargetRange.TempTargetRangePlugin; import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.BolusWizard; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/QuickWizard.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/QuickWizard.java index ac7dbaa101..4f3e2a255c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/QuickWizard.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/QuickWizard.java @@ -7,12 +7,10 @@ import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -import java.util.Calendar; import java.util.Date; -import java.util.GregorianCalendar; import info.nightscout.androidaps.MainApp; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; /** diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SafetyFragment/SafetyPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SafetyFragment/SafetyPlugin.java index b01abf3436..ddc0333306 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SafetyFragment/SafetyPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SafetyFragment/SafetyPlugin.java @@ -13,7 +13,7 @@ import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.interfaces.ConstraintsInterface; import info.nightscout.androidaps.interfaces.PluginBase; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.Round; import info.nightscout.utils.SafeParse; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfilePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfilePlugin.java index 3264696feb..8b3659d8ca 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfilePlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfilePlugin.java @@ -15,7 +15,7 @@ import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.ProfileInterface; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.SafeParse; /** diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java index 4097efcdf9..c71f036477 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java @@ -35,7 +35,7 @@ import info.nightscout.androidaps.plugins.Overview.Notification; import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.SmsCommunicator.events.EventNewSMS; import info.nightscout.androidaps.plugins.SmsCommunicator.events.EventSmsCommunicatorUpdateGui; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.SafeParse; import info.nightscout.utils.XdripCalibrations; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/TempTargetRangeFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/TempTargetRangeFragment.java index 4bfe4ca74e..f9e979ae45 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/TempTargetRangeFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/TempTargetRange/TempTargetRangeFragment.java @@ -34,7 +34,7 @@ import info.nightscout.androidaps.db.TempTarget; import info.nightscout.androidaps.interfaces.FragmentBase; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.ToastUtils; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java index 38a4904b56..4e1b41906e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java @@ -36,7 +36,7 @@ import info.nightscout.androidaps.data.Iob; import info.nightscout.androidaps.db.Treatment; import info.nightscout.androidaps.events.EventTreatmentChange; import info.nightscout.androidaps.interfaces.FragmentBase; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.ToastUtils; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java index 966a5e7578..e77db84e26 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java @@ -3,21 +3,14 @@ package info.nightscout.androidaps.plugins.Treatments; import android.content.SharedPreferences; import android.preference.PreferenceManager; -import com.j256.ormlite.dao.Dao; -import com.j256.ormlite.stmt.PreparedQuery; -import com.j256.ormlite.stmt.QueryBuilder; -import com.j256.ormlite.stmt.Where; import com.squareup.otto.Subscribe; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.sql.SQLException; -import java.util.ArrayList; import java.util.Date; import java.util.List; -import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.data.Iob; @@ -28,7 +21,7 @@ import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.TreatmentsInterface; import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.SafeParse; /** diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java index e90916122f..58068f75a4 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java @@ -23,7 +23,7 @@ import info.nightscout.androidaps.interfaces.PumpDescription; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.Overview.events.EventOverviewBolusProgress; import info.nightscout.androidaps.plugins.VirtualPump.events.EventVirtualPumpUpdateGui; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; /** diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index 8b24be7979..c4e348a11c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -1,21 +1,13 @@ package info.nightscout.androidaps.plugins.Wear; -import android.content.DialogInterface; import android.content.SharedPreferences; -import android.graphics.Color; import android.os.Handler; import android.os.HandlerThread; import android.preference.PreferenceManager; -import android.support.annotation.BoolRes; import android.support.annotation.NonNull; -import android.support.v7.app.AlertDialog; -import android.view.View; import com.j256.ormlite.dao.Dao; -import org.json.JSONException; -import org.json.JSONObject; - import java.sql.SQLException; import java.text.DecimalFormat; import java.util.Date; @@ -32,12 +24,10 @@ import info.nightscout.androidaps.db.TempTarget; import info.nightscout.androidaps.interfaces.APSInterface; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.Actions.dialogs.FillDialog; -import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.Loop.LoopPlugin; -import info.nightscout.androidaps.plugins.Overview.QuickWizard; import info.nightscout.androidaps.plugins.TempTargetRange.TempTargetRangePlugin; import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.BolusWizard; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java index fc08941cd3..ee36823878 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java @@ -33,7 +33,7 @@ import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.plugins.Overview.OverviewPlugin; import info.nightscout.androidaps.plugins.Wear.ActionStringHandler; import info.nightscout.androidaps.plugins.Wear.WearPlugin; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.SafeParse; import info.nightscout.utils.ToastUtils; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/persistentnotification/PersistentNotificationPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/persistentnotification/PersistentNotificationPlugin.java index 532959d926..37b2d5b99d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/persistentnotification/PersistentNotificationPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/persistentnotification/PersistentNotificationPlugin.java @@ -28,7 +28,7 @@ import info.nightscout.androidaps.events.EventTreatmentChange; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.data.IobTotal; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DecimalFormatter; /** diff --git a/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java b/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java index a7f3f02f36..006982f4bd 100644 --- a/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java +++ b/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java @@ -18,14 +18,10 @@ import org.slf4j.LoggerFactory; import java.util.Date; -import info.nightscout.androidaps.Config; import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; -import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PumpInterface; -import info.nightscout.androidaps.plugins.DanaR.DanaRPlugin; -import info.nightscout.androidaps.plugins.DanaRKorean.DanaRKoreanPlugin; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; public class KeepAliveReceiver extends BroadcastReceiver { private static Logger log = LoggerFactory.getLogger(KeepAliveReceiver.class); diff --git a/app/src/main/java/info/nightscout/utils/BolusWizard.java b/app/src/main/java/info/nightscout/utils/BolusWizard.java index 80e907bb6f..c3607cc89a 100644 --- a/app/src/main/java/info/nightscout/utils/BolusWizard.java +++ b/app/src/main/java/info/nightscout/utils/BolusWizard.java @@ -6,7 +6,7 @@ import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.interfaces.TempBasalsInterface; import info.nightscout.androidaps.interfaces.TreatmentsInterface; import info.nightscout.androidaps.data.IobTotal; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; /** * Created by mike on 11.10.2016. diff --git a/app/src/main/java/info/nightscout/utils/XdripCalibrations.java b/app/src/main/java/info/nightscout/utils/XdripCalibrations.java index 338304d790..53c3bf45ec 100644 --- a/app/src/main/java/info/nightscout/utils/XdripCalibrations.java +++ b/app/src/main/java/info/nightscout/utils/XdripCalibrations.java @@ -17,7 +17,7 @@ import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.Services.Intents; -import info.nightscout.client.data.NSProfile; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; /** * Created by mike on 10.02.2017. diff --git a/app/src/main/res/layout/nsclientinternal_fragment.xml b/app/src/main/res/layout/nsclientinternal_fragment.xml new file mode 100644 index 0000000000..27f9267dd1 --- /dev/null +++ b/app/src/main/res/layout/nsclientinternal_fragment.xml @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 21bcb13ff5..7d24240f5d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -507,4 +507,26 @@ Password for settings Unlock settings Approaching insulin daily limit + NSClient internal + NSCI + URL: + Autoscroll + Restart + Internal NSClient + Nightscout URL + Enter Nightscout URL + Hours to fetch + Enter hours to fetch from NS (max 48) + NS API secret + NS API secret + Enter NS API secret (min 12 chars) + Device name + Enter device name + It will be used for enteredBy field + Deliver now + Clear queue + Show queue + Queue: + Status: + Paused diff --git a/app/src/main/res/xml/pref_nsclientinternal.xml b/app/src/main/res/xml/pref_nsclientinternal.xml new file mode 100644 index 0000000000..e52bfa7516 --- /dev/null +++ b/app/src/main/res/xml/pref_nsclientinternal.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + \ No newline at end of file From 3216ff636a6c9444292cb0b505540ee04cad1179 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Fri, 17 Feb 2017 13:43:17 +0100 Subject: [PATCH 003/140] preference keys to strings --- .../NSClientInternal/services/NSClientService.java | 9 +++++---- app/src/main/res/values/strings.xml | 3 +++ app/src/main/res/xml/pref_nsclientinternal.xml | 14 +++----------- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java index 9aadc0d1dc..3c5e8aac82 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java @@ -29,6 +29,7 @@ import java.util.Map; import info.nightscout.androidaps.Config; import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; import info.nightscout.androidaps.events.EventAppExit; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.DanaR.Services.ExecutionService; @@ -252,10 +253,10 @@ public class NSClientService extends Service { public void readPreferences() { SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); nsEnabled = MainApp.getSpecificPlugin(NSClientInternalPlugin.class).isEnabled(PluginBase.GENERAL); - nsURL = SP.getString("nsclientinternal_url", ""); - nsAPISecret = SP.getString("nsclientinternal_api_secret", ""); - nsHours = SafeParse.stringToInt(SP.getString("nsclientinternal_hours", "3")); - nsDevice = SP.getString("nsclientinternal_devicename", ""); + nsURL = SP.getString(MainApp.sResources.getString(R.string.key_nsclientinternal_url), ""); + nsAPISecret = SP.getString(MainApp.sResources.getString(R.string.key_nsclientinternal_api_secret), ""); + nsHours = SafeParse.stringToInt(SP.getString(MainApp.sResources.getString(R.string.key_nsclientinternal_hours), "3")); + nsDevice = SP.getString("careportal_enteredby", ""); } private Emitter.Listener onPing = new Emitter.Listener() { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7d24240f5d..4038b83300 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -529,4 +529,7 @@ Queue: Status: Paused + nsclientinternal_url + nsclientinternal_api_secret + nsclientinternal_hours diff --git a/app/src/main/res/xml/pref_nsclientinternal.xml b/app/src/main/res/xml/pref_nsclientinternal.xml index e52bfa7516..5f7efd868d 100644 --- a/app/src/main/res/xml/pref_nsclientinternal.xml +++ b/app/src/main/res/xml/pref_nsclientinternal.xml @@ -12,23 +12,15 @@ android:inputType="textUri" android:title="@string/nsclientinternal_url_title" android:dialogMessage="@string/nsclientinternal_url_dialogmessage" - android:key="nsclientinternal_url" /> + android:key="@string/key_nsclientinternal_url" /> - - + android:key="@string/key_nsclientinternal_hours" /> \ No newline at end of file From 8a374f1b3533890c3bc0bed52535b6c4e7d75473 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Fri, 17 Feb 2017 16:16:20 +0100 Subject: [PATCH 004/140] Shared preferences cleanup --- .../info/nightscout/androidaps/Constants.java | 12 +- .../nightscout/androidaps/MainActivity.java | 4 +- .../androidaps/PreferencesActivity.java | 2 +- .../events/EventConfigBuilderChange.java | 8 ++ .../events/EventPreferenceChange.java | 14 +++ .../plugins/Actions/dialogs/FillDialog.java | 8 +- .../Dialogs/NewNSTreatmentDialog.java | 7 +- .../CircadianPercentageProfilePlugin.java | 93 +++----------- .../ConfigBuilder/ConfigBuilderFragment.java | 2 + .../plugins/DanaR/DanaRFragment.java | 6 - .../androidaps/plugins/DanaR/DanaRPump.java | 10 +- .../DanaR/Services/ExecutionService.java | 6 +- .../DanaRKorean/DanaRKoreanFragment.java | 6 - .../plugins/DanaRKorean/DanaRKoreanPump.java | 10 +- .../Services/ExecutionService.java | 11 +- .../LocalProfile/LocalProfilePlugin.java | 118 ++++-------------- .../NSClientInternalFragment.java | 12 +- .../NSClientInternalPlugin.java | 2 +- .../plugins/NSClientInternal/UploadQueue.java | 8 +- .../services/NSClientService.java | 29 ++++- .../plugins/NSProfile/NSProfilePlugin.java | 8 +- .../plugins/Objectives/ObjectivesPlugin.java | 12 +- .../plugins/OpenAPSAMA/Autosens.java | 7 +- .../DetermineBasalAdapterAMAJS.java | 10 +- .../plugins/OpenAPSAMA/OpenAPSAMAPlugin.java | 18 +-- .../plugins/OpenAPSMA/OpenAPSMAPlugin.java | 21 ++-- .../plugins/Overview/OverviewFragment.java | 18 +-- .../plugins/Overview/OverviewPlugin.java | 7 +- .../plugins/SafetyFragment/SafetyPlugin.java | 26 ++-- .../SimpleProfile/SimpleProfilePlugin.java | 68 ++-------- .../SmsCommunicatorPlugin.java | 16 ++- .../plugins/Treatments/TreatmentsPlugin.java | 2 +- .../plugins/Wear/ActionStringHandler.java | 24 ++-- .../info/nightscout/utils/LocaleHelper.java | 3 +- .../nightscout/utils/PasswordProtection.java | 4 - .../main/java/info/nightscout/utils/SP.java | 72 +++++++++++ app/src/main/res/values-bg/strings.xml | 2 +- app/src/main/res/values-cs/strings.xml | 2 +- app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-es/strings.xml | 2 +- app/src/main/res/values-ko/strings.xml | 2 +- app/src/main/res/values/strings.xml | 6 +- app/src/main/res/xml/pref_danar.xml | 8 +- app/src/main/res/xml/pref_danarprofile.xml | 2 +- 44 files changed, 299 insertions(+), 411 deletions(-) create mode 100644 app/src/main/java/info/nightscout/androidaps/events/EventConfigBuilderChange.java create mode 100644 app/src/main/java/info/nightscout/utils/SP.java diff --git a/app/src/main/java/info/nightscout/androidaps/Constants.java b/app/src/main/java/info/nightscout/androidaps/Constants.java index 2873d29611..da0feef01f 100644 --- a/app/src/main/java/info/nightscout/androidaps/Constants.java +++ b/app/src/main/java/info/nightscout/androidaps/Constants.java @@ -32,12 +32,12 @@ public class Constants { public static final int CPP_MAX_PERCENTAGE = 200; // Defaults for settings - public static final String MAX_BG_DEFAULT_MGDL = "180"; - public static final String MAX_BG_DEFAULT_MMOL = "10"; - public static final String MIN_BG_DEFAULT_MGDL = "100"; - public static final String MIN_BG_DEFAULT_MMOL = "5"; - public static final String TARGET_BG_DEFAULT_MGDL = "150"; - public static final String TARGET_BG_DEFAULT_MMOL = "7"; + public static final Double MAX_BG_DEFAULT_MGDL = 180d; + public static final Double MAX_BG_DEFAULT_MMOL = 10d; + public static final Double MIN_BG_DEFAULT_MGDL = 100d; + public static final Double MIN_BG_DEFAULT_MMOL = 5d; + public static final Double TARGET_BG_DEFAULT_MGDL = 150d; + public static final Double TARGET_BG_DEFAULT_MMOL = 7d; // Very Hard Limits Ranges // First value is the Lowest and second value is the Highest a Limit can define diff --git a/app/src/main/java/info/nightscout/androidaps/MainActivity.java b/app/src/main/java/info/nightscout/androidaps/MainActivity.java index 36931ccd5b..603b0e2699 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/MainActivity.java @@ -36,10 +36,11 @@ import info.nightscout.androidaps.events.EventRefreshGui; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.tabs.SlidingTabLayout; import info.nightscout.androidaps.tabs.TabPageAdapter; -import info.nightscout.utils.LogDialog; import info.nightscout.utils.ImportExportPrefs; import info.nightscout.utils.LocaleHelper; +import info.nightscout.utils.LogDialog; import info.nightscout.utils.PasswordProtection; +import info.nightscout.utils.SP; public class MainActivity extends AppCompatActivity { private static Logger log = LoggerFactory.getLogger(MainActivity.class); @@ -86,7 +87,6 @@ public class MainActivity extends AppCompatActivity { @Subscribe public void onStatusEvent(final EventRefreshGui ev) { - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); String lang = SP.getString("language", "en"); LocaleHelper.setLocale(getApplicationContext(), lang); runOnUiThread(new Runnable() { diff --git a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java index 02169ac473..d04615fc2f 100644 --- a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java @@ -36,7 +36,7 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - MainApp.bus().post(new EventPreferenceChange()); + MainApp.bus().post(new EventPreferenceChange(key)); if (key.equals("language")) { String lang = sharedPreferences.getString("language", "en"); LocaleHelper.setLocale(getApplicationContext(), lang); diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventConfigBuilderChange.java b/app/src/main/java/info/nightscout/androidaps/events/EventConfigBuilderChange.java new file mode 100644 index 0000000000..38331ca581 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/events/EventConfigBuilderChange.java @@ -0,0 +1,8 @@ +package info.nightscout.androidaps.events; + +/** + * Created by mike on 17.02.2017. + */ + +public class EventConfigBuilderChange { +} diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventPreferenceChange.java b/app/src/main/java/info/nightscout/androidaps/events/EventPreferenceChange.java index b4b430bb1e..f8b38a4321 100644 --- a/app/src/main/java/info/nightscout/androidaps/events/EventPreferenceChange.java +++ b/app/src/main/java/info/nightscout/androidaps/events/EventPreferenceChange.java @@ -1,7 +1,21 @@ package info.nightscout.androidaps.events; +import info.nightscout.androidaps.MainApp; + /** * Created by mike on 19.06.2016. */ public class EventPreferenceChange { + public String changedKey; + public EventPreferenceChange(String key) { + changedKey = key; + } + + public boolean isChanged(int id) { + return changedKey.equals(MainApp.sResources.getString(id)); + } + + public boolean isChanged(String id) { + return changedKey.equals(id); + } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java index a170ea0e02..3331228f65 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java @@ -28,6 +28,7 @@ import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.PlusMinusEditText; +import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; public class FillDialog extends DialogFragment implements OnClickListener { @@ -72,10 +73,9 @@ public class FillDialog extends DialogFragment implements OnClickListener { Button button3 = (Button) view.findViewById(R.id.fill_preset_button3); View divider = view.findViewById(R.id.fill_preset_divider); - SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); - amount1 = SafeParse.stringToDouble(DecimalFormatter.to2Decimal(SafeParse.stringToDouble(sp.getString("fill_button1", "0.3")))); - amount2 = SafeParse.stringToDouble(DecimalFormatter.to2Decimal(SafeParse.stringToDouble(sp.getString("fill_button2", "0")))); - amount3 = SafeParse.stringToDouble(DecimalFormatter.to2Decimal(SafeParse.stringToDouble(sp.getString("fill_button3", "0")))); + amount1 = SP.getDouble("fill_button1", 0.3); + amount2 = SP.getDouble("fill_button2", 0d); + amount3 = SP.getDouble("fill_button3", 0d); if(amount1 >0) { button1.setVisibility(View.VISIBLE); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java index 3fe6865a8e..b7fcab69a7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java @@ -3,11 +3,9 @@ package info.nightscout.androidaps.plugins.Careportal.Dialogs; import android.app.Activity; import android.content.DialogInterface; -import android.content.SharedPreferences; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; -import android.preference.PreferenceManager; import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; import android.support.v7.app.AlertDialog; @@ -42,7 +40,6 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.Date; - import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; @@ -53,10 +50,11 @@ import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.Careportal.OptionsToShow; import info.nightscout.androidaps.plugins.CircadianPercentageProfile.CircadianPercentageProfilePlugin; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; -import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; +import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange; import info.nightscout.utils.DateUtil; import info.nightscout.utils.PlusMinusEditText; +import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; import info.nightscout.utils.ToastUtils; import info.nightscout.utils.Translator; @@ -391,7 +389,6 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick JSONObject gatherData() { - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); String enteredBy = SP.getString("careportal_enteredby", ""); JSONObject data = new JSONObject(); try { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfilePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfilePlugin.java index e56651eee1..201b2ac37b 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfilePlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/CircadianPercentageProfile/CircadianPercentageProfilePlugin.java @@ -17,6 +17,7 @@ import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.ProfileInterface; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DecimalFormatter; +import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; import info.nightscout.utils.ToastUtils; @@ -66,7 +67,7 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte @Override public String getNameShort() { String name = MainApp.sResources.getString(R.string.circadian_percentage_profile_shortname); - if (!name.trim().isEmpty()){ + if (!name.trim().isEmpty()) { //only if translation exists return name; } @@ -125,75 +126,19 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte void loadSettings() { if (Config.logPrefsChange) log.debug("Loading stored settings"); - SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); - if (settings.contains(SETTINGS_PREFIX + "mgdl")) - try { - mgdl = settings.getBoolean(SETTINGS_PREFIX + "mgdl", true); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else mgdl = true; - if (settings.contains(SETTINGS_PREFIX + "mmol")) - try { - mmol = settings.getBoolean(SETTINGS_PREFIX + "mmol", false); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else mmol = false; - if (settings.contains(SETTINGS_PREFIX + "dia")) - try { - dia = SafeParse.stringToDouble(settings.getString(SETTINGS_PREFIX + "dia", "3")); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else dia = 3d; - if (settings.contains(SETTINGS_PREFIX + "targetlow")) - try { - targetLow = SafeParse.stringToDouble(settings.getString(SETTINGS_PREFIX + "targetlow", "80")); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else targetLow = 80d; - if (settings.contains(SETTINGS_PREFIX + "targethigh")) - try { - targetHigh = SafeParse.stringToDouble(settings.getString(SETTINGS_PREFIX + "targethigh", "120")); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else targetHigh = 120d; - if (settings.contains(SETTINGS_PREFIX + "percentage")) - try { - percentage = SafeParse.stringToInt(settings.getString(SETTINGS_PREFIX + "percentage", "100")); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else percentage = 100; - - if (settings.contains(SETTINGS_PREFIX + "timeshift")) - try { - timeshift = SafeParse.stringToInt(settings.getString(SETTINGS_PREFIX + "timeshift", "0")); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else timeshift = 0; + mgdl = SP.getBoolean(SETTINGS_PREFIX + "mgdl", true); + mmol = SP.getBoolean(SETTINGS_PREFIX + "mmol", false); + dia = SP.getDouble(SETTINGS_PREFIX + "dia", 3d); + targetLow = SP.getDouble(SETTINGS_PREFIX + "targetlow", 80d); + targetHigh = SP.getDouble(SETTINGS_PREFIX + "targethigh", 120d); + percentage = SP.getInt(SETTINGS_PREFIX + "percentage", 100); + timeshift = SP.getInt(SETTINGS_PREFIX + "timeshift", 0); for (int i = 0; i < 24; i++) { - try { - basebasal[i] = SafeParse.stringToDouble(settings.getString(SETTINGS_PREFIX + "basebasal" + i, DecimalFormatter.to2Decimal(basebasal[i]))); - } catch (Exception e) { - log.debug(e.getMessage()); - } - try { - baseic[i] = SafeParse.stringToDouble(settings.getString(SETTINGS_PREFIX + "baseic" + i, DecimalFormatter.to2Decimal(baseic[i]))); - } catch (Exception e) { - log.debug(e.getMessage()); - } - try { - baseisf[i] = SafeParse.stringToDouble(settings.getString(SETTINGS_PREFIX + "baseisf" + i, DecimalFormatter.to2Decimal(baseisf[i]))); - } catch (Exception e) { - log.debug(e.getMessage()); - } + basebasal[i] = SP.getDouble(SETTINGS_PREFIX + "basebasal" + i, basebasal[i]); + baseic[i] = SP.getDouble(SETTINGS_PREFIX + "baseic" + i, baseic[i]); + baseisf[i] = SP.getDouble(SETTINGS_PREFIX + "baseisf" + i, baseisf[i]); } @@ -227,7 +172,7 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte } profile.put("carbratio", icArray); - JSONArray isfArray = new JSONArray(); + JSONArray isfArray = new JSONArray(); for (int i = 0; i < 24; i++) { isfArray.put(new JSONObject().put("timeAsSeconds", i * 60 * 60).put("value", baseisf[(offset + i) % 24] * 100d / percentage)); } @@ -259,7 +204,7 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte } private void performLimitCheck() { - if (percentage < Constants.CPP_MIN_PERCENTAGE || percentage > Constants.CPP_MAX_PERCENTAGE){ + if (percentage < Constants.CPP_MIN_PERCENTAGE || percentage > Constants.CPP_MAX_PERCENTAGE) { String msg = String.format(MainApp.sResources.getString(R.string.openapsma_valueoutofrange), "Profile-Percentage"); log.error(msg); MainApp.getConfigBuilder().uploadError(msg); @@ -289,13 +234,15 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte return profileString(baseisf, 0, 100, false); } - String baseBasalString() {return profileString(basebasal, 0, 100, true);} + String baseBasalString() { + return profileString(basebasal, 0, 100, true); + } - public double baseBasalSum(){ + public double baseBasalSum() { return sum(basebasal); } - public double percentageBasalSum(){ + public double percentageBasalSum() { double result = 0; for (int i = 0; i < basebasal.length; i++) { result += SafeParse.stringToDouble(DecimalFormatter.to2Decimal(basebasal[i] * percentage / 100d)); @@ -304,7 +251,7 @@ public class CircadianPercentageProfilePlugin implements PluginBase, ProfileInte } - public static double sum(double values[]){ + public static double sum(double values[]) { double result = 0; for (int i = 0; i < values.length; i++) { result += values[i]; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java index bf9f3fb0b2..4b0ce3bd0a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java @@ -20,6 +20,7 @@ import java.util.ArrayList; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; +import info.nightscout.androidaps.events.EventConfigBuilderChange; import info.nightscout.androidaps.events.EventRefreshGui; import info.nightscout.androidaps.interfaces.APSInterface; import info.nightscout.androidaps.interfaces.BgSourceInterface; @@ -197,6 +198,7 @@ public class ConfigBuilderFragment extends Fragment implements FragmentBase { onEnabledCategoryChanged(plugin, type); configBuilderPlugin.storeSettings(); MainApp.bus().post(new EventRefreshGui(true)); + MainApp.bus().post(new EventConfigBuilderChange()); getPlugin().logPluginStatus(); } }); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRFragment.java index 7c59790e35..a9d4ed5b36 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRFragment.java @@ -24,7 +24,6 @@ import java.util.Date; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; -import info.nightscout.androidaps.events.EventPreferenceChange; import info.nightscout.androidaps.events.EventTempBasalChange; import info.nightscout.androidaps.interfaces.FragmentBase; import info.nightscout.androidaps.plugins.DanaR.Dialogs.ProfileViewDialog; @@ -195,11 +194,6 @@ public class DanaRFragment extends Fragment implements FragmentBase { updateGUI(); } - @Subscribe - public void onStatusEvent(final EventPreferenceChange s) { - updateGUI(); - } - // GUI functions private void updateGUI() { Activity activity = getActivity(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPump.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPump.java index b5d085b185..c68bac86ac 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPump.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPump.java @@ -1,8 +1,5 @@ package info.nightscout.androidaps.plugins.DanaR; -import android.content.SharedPreferences; -import android.preference.PreferenceManager; - import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -11,9 +8,9 @@ import java.text.DecimalFormat; import java.util.Date; import info.nightscout.androidaps.Constants; -import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; -import info.nightscout.utils.SafeParse; +import info.nightscout.utils.SP; /** * Created by mike on 04.07.2016. @@ -122,8 +119,7 @@ public class DanaRPump { // Evening / 17:00–21:59 // Night / 22:00–5:59 - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); - double dia = SafeParse.stringToDouble(SP.getString("danarprofile_dia", "3")); + double dia = SP.getDouble(R.string.key_danarprofile_dia, 3d); try { json.put("defaultProfile", PROFILE_PREFIX + (activeProfile + 1)); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java index ef707ef2f1..cc36efac9a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java @@ -82,13 +82,13 @@ import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRNewStatus; import info.nightscout.androidaps.plugins.Overview.Notification; import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; +import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; import info.nightscout.utils.ToastUtils; public class ExecutionService extends Service { private static Logger log = LoggerFactory.getLogger(ExecutionService.class); - private SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); private String devName; private SerialIOThread mSerialIOThread; @@ -187,7 +187,7 @@ public class ExecutionService extends Service { } public void connect(String from) { - if (danaRPump.password != -1 && danaRPump.password != SafeParse.stringToInt(SP.getString("danar_password", "-1"))) { + if (danaRPump.password != -1 && danaRPump.password != SP.getInt(R.string.key_danar_password, -1)) { ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.wrongpumppassword), R.raw.error); return; } @@ -246,7 +246,7 @@ public class ExecutionService extends Service { } private void getBTSocketForSelectedPump() { - devName = SP.getString("danar_bt_name", ""); + devName = SP.getString(MainApp.sResources.getString(R.string.key_danar_bt_name), ""); BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (bluetoothAdapter != null) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanFragment.java index 4142b43ff6..6e854f85e5 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanFragment.java @@ -24,7 +24,6 @@ import java.util.Date; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; -import info.nightscout.androidaps.events.EventPreferenceChange; import info.nightscout.androidaps.events.EventTempBasalChange; import info.nightscout.androidaps.interfaces.FragmentBase; import info.nightscout.androidaps.plugins.DanaR.Dialogs.ProfileViewDialog; @@ -192,11 +191,6 @@ public class DanaRKoreanFragment extends Fragment implements FragmentBase { updateGUI(); } - @Subscribe - public void onStatusEvent(final EventPreferenceChange s) { - updateGUI(); - } - // GUI functions private void updateGUI() { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPump.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPump.java index faf8318710..b8a7016956 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPump.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPump.java @@ -1,8 +1,5 @@ package info.nightscout.androidaps.plugins.DanaRKorean; -import android.content.SharedPreferences; -import android.preference.PreferenceManager; - import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; @@ -11,9 +8,9 @@ import java.text.DecimalFormat; import java.util.Date; import info.nightscout.androidaps.Constants; -import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; -import info.nightscout.utils.SafeParse; +import info.nightscout.utils.SP; /** * Created by mike on 04.07.2016. @@ -115,8 +112,7 @@ public class DanaRKoreanPump { // Evening / 17:00–21:59 // Night / 22:00–5:59 - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); - double dia = SafeParse.stringToDouble(SP.getString("danarprofile_dia", "3")); + double dia = SP.getDouble(R.string.key_danarprofile_dia, 3d); try { json.put("defaultProfile", PROFILE_PREFIX + (activeProfile + 1)); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java index 8b3a3287a1..cb48424be0 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java @@ -8,11 +8,9 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; -import android.content.SharedPreferences; import android.os.Binder; import android.os.IBinder; import android.os.PowerManager; -import android.preference.PreferenceManager; import com.squareup.otto.Subscribe; @@ -75,16 +73,15 @@ import info.nightscout.androidaps.plugins.DanaRKorean.comm.MsgSettingShippingInf import info.nightscout.androidaps.plugins.DanaRKorean.comm.MsgStatusBasic; import info.nightscout.androidaps.plugins.DanaRKorean.comm.MsgStatusBolusExtended; import info.nightscout.androidaps.plugins.DanaRKorean.comm.MsgStatusTempBasal; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.androidaps.plugins.Overview.Notification; import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; -import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; -import info.nightscout.utils.SafeParse; +import info.nightscout.utils.SP; import info.nightscout.utils.ToastUtils; public class ExecutionService extends Service { private static Logger log = LoggerFactory.getLogger(ExecutionService.class); - private SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); private String devName; private SerialIOThread mSerialIOThread; @@ -183,7 +180,7 @@ public class ExecutionService extends Service { } public void connect(String from) { - if (danaRKoreanPump.password != -1 && danaRKoreanPump.password != SafeParse.stringToInt(SP.getString("danar_password", "-1"))) { + if (danaRKoreanPump.password != -1 && danaRKoreanPump.password != SP.getInt(R.string.key_danar_password, -1)) { ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.wrongpumppassword), R.raw.error); return; } @@ -242,7 +239,7 @@ public class ExecutionService extends Service { } private void getBTSocketForSelectedPump() { - devName = SP.getString("danar_bt_name", ""); + devName = SP.getString(MainApp.sResources.getString(R.string.key_danar_bt_name), ""); BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (bluetoothAdapter != null) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfilePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfilePlugin.java index 6b917b44da..a4c65e83dd 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfilePlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/LocalProfile/LocalProfilePlugin.java @@ -16,6 +16,7 @@ import info.nightscout.androidaps.R; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.ProfileInterface; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; +import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; /** @@ -62,7 +63,7 @@ public class LocalProfilePlugin implements PluginBase, ProfileInterface { @Override public String getNameShort() { String name = MainApp.sResources.getString(R.string.localprofile_shortname); - if (!name.trim().isEmpty()){ + if (!name.trim().isEmpty()) { //only if translation exists return name; } @@ -116,117 +117,48 @@ public class LocalProfilePlugin implements PluginBase, ProfileInterface { private void loadSettings() { if (Config.logPrefsChange) log.debug("Loading stored settings"); - SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); - if (settings.contains("LocalProfile" + "mgdl")) - try { - mgdl = settings.getBoolean("LocalProfile" + "mgdl", false); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else mgdl = false; - if (settings.contains("LocalProfile" + "mmol")) - try { - mmol = settings.getBoolean("LocalProfile" + "mmol", true); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else mmol = true; - if (settings.contains("LocalProfile" + "dia")) - try { - dia = SafeParse.stringToDouble(settings.getString("LocalProfile" + "dia", "3")); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else dia = 3d; - if (settings.contains("LocalProfile" + "ic")) - try { - ic = new JSONArray(settings.getString("LocalProfile" + "ic", DEFAULTARRAY)); - } catch (Exception e) { - log.debug(e.getMessage()); - try { - ic = new JSONArray(DEFAULTARRAY); - } catch (JSONException e1) { - e1.printStackTrace(); - } - } - else { + mgdl = SP.getBoolean("LocalProfile" + "mgdl", false); + mmol = SP.getBoolean("LocalProfile" + "mmol", true); + dia = SP.getDouble("LocalProfile" + "dia", 3d); + try { + ic = new JSONArray(SP.getString("LocalProfile" + "ic", DEFAULTARRAY)); + } catch (JSONException e1) { try { ic = new JSONArray(DEFAULTARRAY); - } catch (JSONException e) { - e.printStackTrace(); + } catch (JSONException e2) { } } - if (settings.contains("LocalProfile" + "isf")) - try { - isf = new JSONArray(settings.getString("LocalProfile" + "isf", DEFAULTARRAY)); - } catch (Exception e) { - log.debug(e.getMessage()); - try { - isf = new JSONArray(DEFAULTARRAY); - } catch (JSONException e1) { - e1.printStackTrace(); - } - } - else { + try { + isf = new JSONArray(SP.getString("LocalProfile" + "isf", DEFAULTARRAY)); + } catch (JSONException e1) { try { isf = new JSONArray(DEFAULTARRAY); - } catch (JSONException e) { - e.printStackTrace(); + } catch (JSONException e2) { } } - if (settings.contains("LocalProfile" + "basal")) - try { - basal = new JSONArray(settings.getString("LocalProfile" + "basal", DEFAULTARRAY)); - } catch (Exception e) { - log.debug(e.getMessage()); - try { - basal = new JSONArray(DEFAULTARRAY); - } catch (JSONException e1) { - e1.printStackTrace(); - } - } - else { + try { + basal = new JSONArray(SP.getString("LocalProfile" + "basal", DEFAULTARRAY)); + } catch (JSONException e1) { try { basal = new JSONArray(DEFAULTARRAY); - } catch (JSONException e) { - e.printStackTrace(); + } catch (JSONException e2) { } } - if (settings.contains("LocalProfile" + "targetlow")) - try { - targetLow = new JSONArray(settings.getString("LocalProfile" + "targetlow", DEFAULTARRAY)); - } catch (Exception e) { - log.debug(e.getMessage()); - try { - targetLow = new JSONArray(DEFAULTARRAY); - } catch (JSONException e1) { - e1.printStackTrace(); - } - } - else { + try { + targetLow = new JSONArray(SP.getString("LocalProfile" + "targetlow", DEFAULTARRAY)); + } catch (JSONException e1) { try { targetLow = new JSONArray(DEFAULTARRAY); - } catch (JSONException e) { - e.printStackTrace(); + } catch (JSONException e2) { } } - if (settings.contains("LocalProfile" + "targethigh")) - try { - targetHigh = new JSONArray(settings.getString("LocalProfile" + "targethigh", DEFAULTARRAY)); - } catch (Exception e) { - log.debug(e.getMessage()); - try { - targetHigh = new JSONArray(DEFAULTARRAY); - } catch (JSONException e1) { - e1.printStackTrace(); - } - } - else { + try { + targetHigh = new JSONArray(SP.getString("LocalProfile" + "targethigh", DEFAULTARRAY)); + } catch (JSONException e1) { try { targetHigh = new JSONArray(DEFAULTARRAY); - } catch (JSONException e) { - e.printStackTrace(); + } catch (JSONException e2) { } } createConvertedProfile(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java index 4a9b5f963c..d101b3f5fe 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java @@ -2,10 +2,8 @@ package info.nightscout.androidaps.plugins.NSClientInternal; import android.app.Activity; -import android.content.SharedPreferences; import android.graphics.Paint; import android.os.Bundle; -import android.preference.PreferenceManager; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; @@ -25,8 +23,8 @@ import info.nightscout.androidaps.R; import info.nightscout.androidaps.interfaces.FragmentBase; import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientNewLog; import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientRestart; -import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientStatus; import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientUpdateGUI; +import info.nightscout.utils.SP; public class NSClientInternalFragment extends Fragment implements FragmentBase, View.OnClickListener, CompoundButton.OnCheckedChangeListener { private static Logger log = LoggerFactory.getLogger(NSClientInternalFragment.class); @@ -106,19 +104,15 @@ public class NSClientInternalFragment extends Fragment implements FragmentBase, @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); - SharedPreferences.Editor editor = SP.edit(); switch (buttonView.getId()) { case R.id.nsclientinternal_paused: - editor.putBoolean("nsclientinternal_paused", isChecked); - editor.apply(); + SP.putBoolean("nsclientinternal_paused", isChecked); getPlugin().paused = isChecked; // TODO updateGUI(); break; case R.id.nsclientinternal_autoscroll: - editor.putBoolean("nsclientinternal_autoscroll", isChecked); - editor.apply(); + SP.putBoolean("nsclientinternal_autoscroll", isChecked); updateGUI(); break; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java index ed4e74ec50..ff530e6410 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java @@ -36,6 +36,7 @@ import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientR import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientStatus; import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientUpdateGUI; import info.nightscout.androidaps.plugins.NSClientInternal.services.NSClientService; +import info.nightscout.utils.SP; public class NSClientInternalPlugin implements PluginBase { private static Logger log = LoggerFactory.getLogger(NSClientInternalPlugin.class); @@ -59,7 +60,6 @@ public class NSClientInternalPlugin implements PluginBase { public NSClientInternalPlugin() { MainApp.bus().register(this); - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); paused = SP.getBoolean("nsclientinternal_paused", false); autoscroll = SP.getBoolean("nsclientinternal_autoscroll", true); url = SP.getString("nsclientinternal_url", ""); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java index f0486b2511..8c22120c0e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java @@ -1,6 +1,5 @@ package info.nightscout.androidaps.plugins.NSClientInternal; -import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; @@ -13,13 +12,11 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Map; -import info.nightscout.androidaps.Config; import info.nightscout.androidaps.MainApp; -import info.nightscout.androidaps.plugins.NSClientInternal.acks.NSAddAck; -import info.nightscout.androidaps.plugins.NSClientInternal.acks.NSUpdateAck; import info.nightscout.androidaps.plugins.NSClientInternal.broadcasts.BroadcastQueueStatus; import info.nightscout.androidaps.plugins.NSClientInternal.data.DbRequest; import info.nightscout.androidaps.plugins.NSClientInternal.services.NSClientService; +import info.nightscout.utils.SP; /** * Created by mike on 21.02.2016. @@ -120,9 +117,8 @@ public class UploadQueue { private void loadMap() { queue = new HashMap(); - SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); try { - String jsonString = sp.getString(KEY, (new JSONObject()).toString()); + String jsonString = SP.getString(KEY, (new JSONObject()).toString()); JSONObject jsonObject = new JSONObject(jsonString); Iterator keysItr = jsonObject.keys(); while (keysItr.hasNext()) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java index 3c5e8aac82..2f42814f5d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java @@ -31,6 +31,8 @@ import info.nightscout.androidaps.Config; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.events.EventAppExit; +import info.nightscout.androidaps.events.EventConfigBuilderChange; +import info.nightscout.androidaps.events.EventPreferenceChange; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.DanaR.Services.ExecutionService; import info.nightscout.androidaps.plugins.NSClientInternal.NSClientInternalPlugin; @@ -54,6 +56,7 @@ import info.nightscout.androidaps.plugins.NSClientInternal.data.NSStatus; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSTreatment; import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientNewLog; import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientStatus; +import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; import io.socket.client.IO; import io.socket.client.Socket; @@ -144,6 +147,25 @@ public class NSClientService extends Service { log.debug("EventAppExit finished"); } + @Subscribe + public void onStatusEvent(EventPreferenceChange ev) { + if (ev.isChanged(R.string.key_nsclientinternal_url) || + ev.isChanged(R.string.key_nsclientinternal_api_secret) || + ev.isChanged(R.string.key_nsclientinternal_hours) + ) { + destroy(); + initialize(); + } + } + + @Subscribe + public void onStatusEvent(EventConfigBuilderChange ev) { + if (nsEnabled != MainApp.getSpecificPlugin(NSClientInternalPlugin.class).isEnabled(PluginBase.GENERAL)) { + destroy(); + initialize(); + } + } + public static void setNsProfile(NSProfile profile) { nsProfile = profile; } @@ -251,11 +273,10 @@ public class NSClientService extends Service { } public void readPreferences() { - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); nsEnabled = MainApp.getSpecificPlugin(NSClientInternalPlugin.class).isEnabled(PluginBase.GENERAL); - nsURL = SP.getString(MainApp.sResources.getString(R.string.key_nsclientinternal_url), ""); - nsAPISecret = SP.getString(MainApp.sResources.getString(R.string.key_nsclientinternal_api_secret), ""); - nsHours = SafeParse.stringToInt(SP.getString(MainApp.sResources.getString(R.string.key_nsclientinternal_hours), "3")); + nsURL = SP.getString(R.string.key_nsclientinternal_url, ""); + nsAPISecret = SP.getString(R.string.key_nsclientinternal_api_secret, ""); + nsHours = SP.getInt(R.string.key_nsclientinternal_hours, 3); nsDevice = SP.getString("careportal_enteredby", ""); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSProfile/NSProfilePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSProfile/NSProfilePlugin.java index 5a4098a26a..3c19b5a5c4 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSProfile/NSProfilePlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSProfile/NSProfilePlugin.java @@ -19,8 +19,9 @@ import info.nightscout.androidaps.Services.Intents; import info.nightscout.androidaps.events.EventNewBasalProfile; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.ProfileInterface; -import info.nightscout.androidaps.plugins.NSProfile.events.EventNSProfileUpdateGUI; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; +import info.nightscout.androidaps.plugins.NSProfile.events.EventNSProfileUpdateGUI; +import info.nightscout.utils.SP; /** * Created by mike on 05.08.2016. @@ -110,9 +111,8 @@ public class NSProfilePlugin implements PluginBase, ProfileInterface { private void loadNSProfile() { if (Config.logPrefsChange) log.debug("Loading stored profile"); - SharedPreferences store = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); - String activeProfile = store.getString("activeProfile", null); - String profileString = store.getString("profile", null); + String activeProfile = SP.getString("activeProfile", null); + String profileString = SP.getString("profile", null); if (profileString != null) { if (Config.logPrefsChange) { log.debug("Loaded profile: " + profileString); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesPlugin.java index 030878b6e9..5d33fdae5e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesPlugin.java @@ -16,6 +16,7 @@ import info.nightscout.androidaps.R; import info.nightscout.androidaps.interfaces.ConstraintsInterface; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.Loop.LoopPlugin; +import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; /** @@ -211,20 +212,19 @@ public class ObjectivesPlugin implements PluginBase, ConstraintsInterface { } void loadProgress() { - SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); for (int num = 0; num < objectives.size(); num++) { Objective o = objectives.get(num); try { - o.started = new Date(SafeParse.stringToLong(settings.getString("Objectives" + num + "started", "0"))); - o.accomplished = new Date(SafeParse.stringToLong(settings.getString("Objectives" + num + "accomplished", "0"))); + o.started = new Date(SP.getLong("Objectives" + num + "started", 0L)); + o.accomplished = new Date(SP.getLong("Objectives" + num + "accomplished", 0L)); } catch (Exception e) { e.printStackTrace(); } } - bgIsAvailableInNS = settings.getBoolean("Objectives" + "bgIsAvailableInNS", false); - pumpStatusIsAvailableInNS = settings.getBoolean("Objectives" + "pumpStatusIsAvailableInNS", false); + bgIsAvailableInNS = SP.getBoolean("Objectives" + "bgIsAvailableInNS", false); + pumpStatusIsAvailableInNS = SP.getBoolean("Objectives" + "pumpStatusIsAvailableInNS", false); try { - manualEnacts = SafeParse.stringToInt(settings.getString("Objectives" + "manualEnacts", "0")); + manualEnacts = SP.getInt("Objectives" + "manualEnacts", 0); } catch (Exception e) { e.printStackTrace(); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java index e670ac7138..44c3970ac5 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java @@ -1,8 +1,5 @@ package info.nightscout.androidaps.plugins.OpenAPSAMA; -import android.content.SharedPreferences; -import android.preference.PreferenceManager; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -16,6 +13,7 @@ import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.Round; +import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; @@ -23,7 +21,6 @@ public class Autosens { private static Logger log = LoggerFactory.getLogger(Autosens.class); public static AutosensResult detectSensitivityandCarbAbsorption(List glucose_data, Long mealTime) { - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); //console.error(mealTime); @@ -131,7 +128,7 @@ public class Autosens { if (mealTime != null && bgTime > mealTime) { // figure out how many carbs that represents // but always assume at least 3mg/dL/5m (default) absorption - double ci = Math.max(deviation, SafeParse.stringToDouble(SP.getString("openapsama_min_5m_carbimpact", "3.0"))); + double ci = Math.max(deviation, SP.getDouble("openapsama_min_5m_carbimpact", 3.0)); double absorbed = ci * profile.getIc(secondsFromMidnight) / sens; // and add that to the running total carbsAbsorbed carbsAbsorbed += absorbed; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/DetermineBasalAdapterAMAJS.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/DetermineBasalAdapterAMAJS.java index 4f33a42284..16d0eb6409 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/DetermineBasalAdapterAMAJS.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/DetermineBasalAdapterAMAJS.java @@ -24,6 +24,7 @@ import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.Loop.ScriptReader; import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; +import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; public class DetermineBasalAdapterAMAJS { @@ -206,7 +207,6 @@ public class DetermineBasalAdapterAMAJS { double min_5m_carbimpact) { String units = profile.getUnits(); - SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); mProfile = new V8Object(mV8rt); mProfile.add("max_iob", maxIob); @@ -219,13 +219,13 @@ public class DetermineBasalAdapterAMAJS { mProfile.add("target_bg", targetBg); mProfile.add("carb_ratio", profile.getIc(profile.secondsFromMidnight())); mProfile.add("sens", NSProfile.toMgdl(profile.getIsf(NSProfile.secondsFromMidnight()).doubleValue(), units)); - mProfile.add("max_daily_safety_multiplier", SafeParse.stringToInt(preferences.getString("openapsama_max_daily_safety_multiplier", "3"))); - mProfile.add("current_basal_safety_multiplier", SafeParse.stringToInt(preferences.getString("openapsama_max_basal_safety_multiplier", "4"))); + mProfile.add("max_daily_safety_multiplier", SP.getInt("openapsama_max_daily_safety_multiplier", 3)); + mProfile.add("current_basal_safety_multiplier", SP.getInt("openapsama_max_basal_safety_multiplier", 4)); mProfile.add("skip_neutral_temps", true); mProfile.add("current_basal", pump.getBaseBasalRate()); mProfile.add("temptargetSet", tempTargetSet); - mProfile.add("autosens_adjust_targets", preferences.getBoolean("openapsama_autosens_adjusttargets", true)); - mProfile.add("min_5m_carbimpact", SafeParse.stringToDouble(preferences.getString("openapsama_min_5m_carbimpact", "3.0"))); + mProfile.add("autosens_adjust_targets", SP.getBoolean("openapsama_autosens_adjusttargets", true)); + mProfile.add("min_5m_carbimpact", SP.getDouble("openapsama_min_5m_carbimpact", 3d)); mV8rt.add(PARAM_profile, mProfile); mCurrentTemp = new V8Object(mV8rt); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java index 7bf0f169e1..2cbffae52a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java @@ -32,6 +32,7 @@ import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; import info.nightscout.utils.Profiler; import info.nightscout.utils.Round; +import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; import info.nightscout.utils.ToastUtils; @@ -155,12 +156,11 @@ public class OpenAPSAMAPlugin implements PluginBase, APSInterface { return; } - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); String units = profile.getUnits(); - String maxBgDefault = Constants.MAX_BG_DEFAULT_MGDL; - String minBgDefault = Constants.MIN_BG_DEFAULT_MGDL; - String targetBgDefault = Constants.TARGET_BG_DEFAULT_MGDL; + Double maxBgDefault = Constants.MAX_BG_DEFAULT_MGDL; + Double minBgDefault = Constants.MIN_BG_DEFAULT_MGDL; + Double targetBgDefault = Constants.TARGET_BG_DEFAULT_MGDL; if (!units.equals(Constants.MGDL)) { maxBgDefault = Constants.MAX_BG_DEFAULT_MMOL; minBgDefault = Constants.MIN_BG_DEFAULT_MMOL; @@ -169,11 +169,11 @@ public class OpenAPSAMAPlugin implements PluginBase, APSInterface { Date now = new Date(); - double maxIob = SafeParse.stringToDouble(SP.getString("openapsma_max_iob", "1.5")); - double maxBasal = SafeParse.stringToDouble(SP.getString("openapsma_max_basal", "1")); - double minBg = NSProfile.toMgdl(SafeParse.stringToDouble(SP.getString("openapsma_min_bg", minBgDefault)), units); - double maxBg = NSProfile.toMgdl(SafeParse.stringToDouble(SP.getString("openapsma_max_bg", maxBgDefault)), units); - double targetBg = NSProfile.toMgdl(SafeParse.stringToDouble(SP.getString("openapsma_target_bg", targetBgDefault)), units); + double maxIob = SP.getDouble("openapsma_max_iob", 1.5d); + double maxBasal = SP.getDouble("openapsma_max_basal", 1d); + double minBg = NSProfile.toMgdl(SP.getDouble("openapsma_min_bg", minBgDefault), units); + double maxBg = NSProfile.toMgdl(SP.getDouble("openapsma_max_bg", maxBgDefault), units); + double targetBg = NSProfile.toMgdl(SP.getDouble("openapsma_target_bg", targetBgDefault), units); minBg = Round.roundTo(minBg, 0.1d); maxBg = Round.roundTo(maxBg, 0.1d); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java index b6032b9dcc..c4b8f3e34a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAPlugin.java @@ -1,8 +1,5 @@ package info.nightscout.androidaps.plugins.OpenAPSMA; -import android.content.SharedPreferences; -import android.preference.PreferenceManager; - import org.json.JSONException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -25,13 +22,14 @@ import info.nightscout.androidaps.interfaces.TempBasalsInterface; import info.nightscout.androidaps.interfaces.TreatmentsInterface; import info.nightscout.androidaps.plugins.Loop.APSResult; import info.nightscout.androidaps.plugins.Loop.ScriptReader; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateGui; import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateResultGui; import info.nightscout.androidaps.plugins.TempTargetRange.TempTargetRangePlugin; -import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; import info.nightscout.utils.Profiler; import info.nightscout.utils.Round; +import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; import static info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin.checkOnlyHardLimits; @@ -156,12 +154,11 @@ public class OpenAPSMAPlugin implements PluginBase, APSInterface { return; } - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); String units = profile.getUnits(); - String maxBgDefault = Constants.MAX_BG_DEFAULT_MGDL; - String minBgDefault = Constants.MIN_BG_DEFAULT_MGDL; - String targetBgDefault = Constants.TARGET_BG_DEFAULT_MGDL; + Double maxBgDefault = Constants.MAX_BG_DEFAULT_MGDL; + Double minBgDefault = Constants.MIN_BG_DEFAULT_MGDL; + Double targetBgDefault = Constants.TARGET_BG_DEFAULT_MGDL; if (!units.equals(Constants.MGDL)) { maxBgDefault = Constants.MAX_BG_DEFAULT_MMOL; minBgDefault = Constants.MIN_BG_DEFAULT_MMOL; @@ -170,11 +167,11 @@ public class OpenAPSMAPlugin implements PluginBase, APSInterface { Date now = new Date(); - double maxIob = SafeParse.stringToDouble(SP.getString("openapsma_max_iob", "1.5")); + double maxIob = SP.getDouble("openapsma_max_iob", 1.5d); double maxBasal = SafeParse.stringToDouble(SP.getString("openapsma_max_basal", "1")); - double minBg = NSProfile.toMgdl(SafeParse.stringToDouble(SP.getString("openapsma_min_bg", minBgDefault)), units); - double maxBg = NSProfile.toMgdl(SafeParse.stringToDouble(SP.getString("openapsma_max_bg", maxBgDefault)), units); - double targetBg = NSProfile.toMgdl(SafeParse.stringToDouble(SP.getString("openapsma_target_bg", targetBgDefault)), units); + double minBg = NSProfile.toMgdl(SP.getDouble("openapsma_min_bg", minBgDefault), units); + double maxBg = NSProfile.toMgdl(SP.getDouble("openapsma_max_bg", maxBgDefault), units); + double targetBg = NSProfile.toMgdl(SP.getDouble("openapsma_target_bg", targetBgDefault), units); minBg = Round.roundTo(minBg, 0.1d); maxBg = Round.roundTo(maxBg, 0.1d); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index 9f0efee0e1..618aed3aee 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -92,6 +92,7 @@ import info.nightscout.utils.BolusWizard; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.Round; +import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; @@ -99,7 +100,6 @@ public class OverviewFragment extends Fragment { private static Logger log = LoggerFactory.getLogger(OverviewFragment.class); private static OverviewPlugin overviewPlugin = new OverviewPlugin(); - private SharedPreferences prefs; public static OverviewPlugin getPlugin() { return overviewPlugin; @@ -151,7 +151,6 @@ public class OverviewFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); View view = inflater.inflate(R.layout.overview_fragment, container, false); bgView = (TextView) view.findViewById(R.id.overview_bg); @@ -185,12 +184,13 @@ public class OverviewFragment extends Fragment { llm = new LinearLayoutManager(view.getContext()); notificationsView.setLayoutManager(llm); - showPredictionView.setChecked(prefs.getBoolean("showprediction", false)); + showPredictionView.setChecked(SP.getBoolean("showprediction", false)); showPredictionView.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - SharedPreferences.Editor editor = prefs.edit(); + SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putBoolean("showprediction", showPredictionView.isChecked()); editor.apply(); updateGUI(); @@ -623,15 +623,15 @@ public class OverviewFragment extends Fragment { tempTargetView.setText(NSProfile.toUnitsString(tempTarget.low, NSProfile.fromMgdlToUnits(tempTarget.low, profile.getUnits()), profile.getUnits()) + " - " + NSProfile.toUnitsString(tempTarget.high, NSProfile.fromMgdlToUnits(tempTarget.high, profile.getUnits()), profile.getUnits())); } else { - String maxBgDefault = Constants.MAX_BG_DEFAULT_MGDL; - String minBgDefault = Constants.MIN_BG_DEFAULT_MGDL; + Double maxBgDefault = Constants.MAX_BG_DEFAULT_MGDL; + Double minBgDefault = Constants.MIN_BG_DEFAULT_MGDL; if (!profile.getUnits().equals(Constants.MGDL)) { maxBgDefault = Constants.MAX_BG_DEFAULT_MMOL; minBgDefault = Constants.MIN_BG_DEFAULT_MMOL; } tempTargetView.setTextColor(Color.WHITE); tempTargetView.setBackgroundResource(R.drawable.temptargetborderdisabled); - tempTargetView.setText(prefs.getString("openapsma_min_bg", minBgDefault) + " - " + prefs.getString("openapsma_max_bg", maxBgDefault)); + tempTargetView.setText(SP.getDouble("openapsma_min_bg", minBgDefault) + " - " + SP.getDouble("openapsma_max_bg", maxBgDefault)); tempTargetView.setVisibility(View.VISIBLE); } } else { @@ -799,8 +799,8 @@ public class OverviewFragment extends Fragment { endTime = toTime; } - Double lowLine = SafeParse.stringToDouble(prefs.getString("low_mark", "0")); - Double highLine = SafeParse.stringToDouble(prefs.getString("high_mark", "0")); + Double lowLine = SP.getDouble("low_mark", 0d); + Double highLine = SP.getDouble("high_mark", 0d); if (lowLine < 1) { lowLine = NSProfile.fromMgdlToUnits(OverviewPlugin.bgTargetLow, units); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewPlugin.java index 9caa2fde10..a8f0083afc 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewPlugin.java @@ -1,8 +1,5 @@ package info.nightscout.androidaps.plugins.Overview; -import android.content.SharedPreferences; -import android.preference.PreferenceManager; - import com.squareup.otto.Subscribe; import org.json.JSONArray; @@ -13,6 +10,7 @@ import info.nightscout.androidaps.R; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification; import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; +import info.nightscout.utils.SP; /** * Created by mike on 05.08.2016. @@ -27,8 +25,7 @@ public class OverviewPlugin implements PluginBase { public NotificationStore notificationStore = new NotificationStore(); public OverviewPlugin() { - SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); - String storedData = preferences.getString("QuickWizard", "[]"); + String storedData = SP.getString("QuickWizard", "[]"); try { quickWizard.setData(new JSONArray(storedData)); } catch (JSONException e) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SafetyFragment/SafetyPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SafetyFragment/SafetyPlugin.java index ddc0333306..12ec4f5d4f 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SafetyFragment/SafetyPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SafetyFragment/SafetyPlugin.java @@ -1,8 +1,5 @@ package info.nightscout.androidaps.plugins.SafetyFragment; -import android.content.SharedPreferences; -import android.preference.PreferenceManager; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -15,7 +12,7 @@ import info.nightscout.androidaps.interfaces.ConstraintsInterface; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.Round; -import info.nightscout.utils.SafeParse; +import info.nightscout.utils.SP; /** * Created by mike on 05.08.2016. @@ -78,7 +75,6 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface { **/ @Override public boolean isClosedModeEnabled() { - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); String mode = SP.getString("aps_mode", "open"); return mode.equals("closed") && BuildConfig.CLOSEDLOOP; } @@ -96,15 +92,14 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface { @Override public Double applyBasalConstraints(Double absoluteRate) { Double origAbsoluteRate = absoluteRate; - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); - Double maxBasal = SafeParse.stringToDouble(SP.getString("openapsma_max_basal", "1")); + Double maxBasal = SP.getDouble("openapsma_max_basal", 1d); NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); if (profile == null) return absoluteRate; if (absoluteRate < 0) absoluteRate = 0d; - Integer maxBasalMult = SafeParse.stringToInt(SP.getString("openapsama_max_basal_safety_multiplier", "4")); - Integer maxBasalFromDaily = SafeParse.stringToInt(SP.getString("openapsama_max_daily_safety_multiplier", "3")); + Integer maxBasalMult = SP.getInt("openapsama_max_basal_safety_multiplier", 4); + Integer maxBasalFromDaily = SP.getInt("openapsama_max_daily_safety_multiplier", 3); // Check percentRate but absolute rate too, because we know real current basal in pump Double origRate = absoluteRate; if (absoluteRate > maxBasal) { @@ -128,8 +123,7 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface { @Override public Integer applyBasalConstraints(Integer percentRate) { Integer origPercentRate = percentRate; - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); - Double maxBasal = SafeParse.stringToDouble(SP.getString("openapsma_max_basal", "1")); + Double maxBasal = SP.getDouble("openapsma_max_basal", 1d); NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); if (profile == null) return percentRate; @@ -142,8 +136,8 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface { if (absoluteRate < 0) absoluteRate = 0d; - Integer maxBasalMult = SafeParse.stringToInt(SP.getString("openapsama_max_basal_safety_multiplier", "4")); - Integer maxBasalFromDaily = SafeParse.stringToInt(SP.getString("openapsama_max_daily_safety_multiplier", "3")); + Integer maxBasalMult = SP.getInt("openapsama_max_basal_safety_multiplier", 4); + Integer maxBasalFromDaily = SP.getInt("openapsama_max_daily_safety_multiplier", 3); // Check percentRate but absolute rate too, because we know real current basal in pump Double origRate = absoluteRate; if (absoluteRate > maxBasal) { @@ -174,9 +168,8 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface { @Override public Double applyBolusConstraints(Double insulin) { - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); try { - Double maxBolus = SafeParse.stringToDouble(SP.getString("treatmentssafety_maxbolus", "3")); + Double maxBolus = SP.getDouble("treatmentssafety_maxbolus", 3d); if (insulin < 0) insulin = 0d; if (insulin > maxBolus) insulin = maxBolus; @@ -189,9 +182,8 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface { @Override public Integer applyCarbsConstraints(Integer carbs) { - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); try { - Integer maxCarbs = SafeParse.stringToInt(SP.getString("treatmentssafety_maxcarbs", "48")); + Integer maxCarbs = SP.getInt("treatmentssafety_maxcarbs", 48); if (carbs < 0) carbs = 0; if (carbs > maxCarbs) carbs = maxCarbs; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfilePlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfilePlugin.java index 8b3659d8ca..f40d85371e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfilePlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SimpleProfile/SimpleProfilePlugin.java @@ -16,6 +16,7 @@ import info.nightscout.androidaps.R; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.ProfileInterface; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; +import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; /** @@ -60,7 +61,7 @@ public class SimpleProfilePlugin implements PluginBase, ProfileInterface { @Override public String getNameShort() { String name = MainApp.sResources.getString(R.string.simpleprofile_shortname); - if (!name.trim().isEmpty()){ + if (!name.trim().isEmpty()) { //only if translation exists return name; } @@ -114,64 +115,15 @@ public class SimpleProfilePlugin implements PluginBase, ProfileInterface { private void loadSettings() { if (Config.logPrefsChange) log.debug("Loading stored settings"); - SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); - if (settings.contains("SimpleProfile" + "mgdl")) - try { - mgdl = settings.getBoolean("SimpleProfile" + "mgdl", true); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else mgdl = true; - if (settings.contains("SimpleProfile" + "mmol")) - try { - mmol = settings.getBoolean("SimpleProfile" + "mmol", false); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else mmol = false; - if (settings.contains("SimpleProfile" + "dia")) - try { - dia = SafeParse.stringToDouble(settings.getString("SimpleProfile" + "dia", "3")); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else dia = 3d; - if (settings.contains("SimpleProfile" + "ic")) - try { - ic = SafeParse.stringToDouble(settings.getString("SimpleProfile" + "ic", "20")); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else ic = 20d; - if (settings.contains("SimpleProfile" + "isf")) - try { - isf = SafeParse.stringToDouble(settings.getString("SimpleProfile" + "isf", "200")); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else isf = 200d; - if (settings.contains("SimpleProfile" + "basal")) - try { - basal = SafeParse.stringToDouble(settings.getString("SimpleProfile" + "basal", "1")); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else basal = 1d; - if (settings.contains("SimpleProfile" + "targetlow")) - try { - targetLow = SafeParse.stringToDouble(settings.getString("SimpleProfile" + "targetlow", "80")); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else targetLow = 80d; - if (settings.contains("SimpleProfile" + "targethigh")) - try { - targetHigh = SafeParse.stringToDouble(settings.getString("SimpleProfile" + "targethigh", "120")); - } catch (Exception e) { - log.debug(e.getMessage()); - } - else targetHigh = 120d; + mgdl = SP.getBoolean("SimpleProfile" + "mgdl", true); + mmol = SP.getBoolean("SimpleProfile" + "mmol", false); + dia = SP.getDouble("SimpleProfile" + "dia", 3d); + ic = SP.getDouble("SimpleProfile" + "ic", 20d); + isf = SP.getDouble("SimpleProfile" + "isf", 200d); + basal = SP.getDouble("SimpleProfile" + "basal", 1d); + targetLow = SP.getDouble("SimpleProfile" + "targetlow", 80d); + targetHigh = SP.getDouble("SimpleProfile" + "targethigh", 120d); createConvertedProfile(); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java index c71f036477..e216764a3d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java @@ -22,6 +22,7 @@ import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.Services.Intents; import info.nightscout.androidaps.data.GlucoseStatus; +import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.events.EventPreferenceChange; @@ -30,13 +31,13 @@ import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.DanaR.DanaRPlugin; import info.nightscout.androidaps.plugins.DanaRKorean.DanaRKoreanPlugin; import info.nightscout.androidaps.plugins.Loop.LoopPlugin; -import info.nightscout.androidaps.data.IobTotal; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.androidaps.plugins.Overview.Notification; import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.SmsCommunicator.events.EventNewSMS; import info.nightscout.androidaps.plugins.SmsCommunicator.events.EventSmsCommunicatorUpdateGui; -import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DecimalFormatter; +import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; import info.nightscout.utils.XdripCalibrations; @@ -159,8 +160,7 @@ public class SmsCommunicatorPlugin implements PluginBase { @Subscribe public void processSettings(final EventPreferenceChange ev) { - SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); - String settings = sharedPreferences.getString("smscommunicator_allowednumbers", ""); + String settings = SP.getString("smscommunicator_allowednumbers", ""); String pattern = ";"; @@ -191,8 +191,6 @@ public class SmsCommunicatorPlugin implements PluginBase { } private void processSms(Sms receivedSms) { - SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); - if (!isEnabled(PluginBase.GENERAL)) { log.debug("Ignoring SMS. Plugin disabled."); return; @@ -319,7 +317,7 @@ public class SmsCommunicatorPlugin implements PluginBase { break; case "BASAL": if (splited.length > 1) { - boolean remoteCommandsAllowed = sharedPreferences.getBoolean("smscommunicator_remotecommandsallowed", false); + boolean remoteCommandsAllowed = SP.getBoolean("smscommunicator_remotecommandsallowed", false); if (splited[1].toUpperCase().equals("CANCEL") || splited[1].toUpperCase().equals("STOP")) { if (remoteCommandsAllowed) { passCode = generatePasscode(); @@ -355,7 +353,7 @@ public class SmsCommunicatorPlugin implements PluginBase { } else if (splited.length > 1) { amount = SafeParse.stringToDouble(splited[1]); amount = MainApp.getConfigBuilder().applyBolusConstraints(amount); - boolean remoteCommandsAllowed = sharedPreferences.getBoolean("smscommunicator_remotecommandsallowed", false); + boolean remoteCommandsAllowed = SP.getBoolean("smscommunicator_remotecommandsallowed", false); if (amount > 0d && remoteCommandsAllowed) { passCode = generatePasscode(); reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_bolusreplywithcode), amount, passCode); @@ -372,7 +370,7 @@ public class SmsCommunicatorPlugin implements PluginBase { case "CAL": if (splited.length > 1) { amount = SafeParse.stringToDouble(splited[1]); - boolean remoteCommandsAllowed = sharedPreferences.getBoolean("smscommunicator_remotecommandsallowed", false); + boolean remoteCommandsAllowed = SP.getBoolean("smscommunicator_remotecommandsallowed", false); if (amount > 0d && remoteCommandsAllowed) { passCode = generatePasscode(); reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_calibrationreplywithcode), amount, passCode); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java index e77db84e26..cbc2a336ce 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java @@ -136,7 +136,7 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface { Iob tIOB = t.iobCalc(now, dia); total.iob += tIOB.iobContrib; total.activity += tIOB.activityContrib; - Iob bIOB = t.iobCalc(now, dia / SafeParse.stringToInt(SP.getString("openapsama_bolussnooze_dia_divisor", "2"))); + Iob bIOB = t.iobCalc(now, dia / SP.getInt("openapsama_bolussnooze_dia_divisor", 2)); total.bolussnooze += bIOB.iobContrib; } return total; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index c4e348a11c..6afb51c5c6 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -1,9 +1,7 @@ package info.nightscout.androidaps.plugins.Wear; -import android.content.SharedPreferences; import android.os.Handler; import android.os.HandlerThread; -import android.preference.PreferenceManager; import android.support.annotation.NonNull; import com.j256.ormlite.dao.Dao; @@ -25,12 +23,13 @@ import info.nightscout.androidaps.interfaces.APSInterface; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.Actions.dialogs.FillDialog; import info.nightscout.androidaps.plugins.Loop.LoopPlugin; +import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.androidaps.plugins.TempTargetRange.TempTargetRangePlugin; import info.nightscout.androidaps.plugins.TempTargetRange.events.EventTempTargetRangeChange; -import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.BolusWizard; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; +import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; import info.nightscout.utils.ToastUtils; @@ -46,9 +45,6 @@ public class ActionStringHandler { private static String lastConfirmActionString = null; private static BolusWizard lastBolusWizard = null; - private static SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); - - private static HandlerThread handlerThread = new HandlerThread(FillDialog.class.getSimpleName()); static { handlerThread.start(); @@ -73,11 +69,11 @@ public class ActionStringHandler { ///////////////////////////////////// PRIME/FILL double amount = 0d; if ("1".equals(act[1])) { - amount = SafeParse.stringToDouble(DecimalFormatter.to2Decimal(SafeParse.stringToDouble(sp.getString("fill_button1", "0.3")))); + amount = SP.getDouble("fill_button1", 0.3); } else if ("2".equals(act[1])) { - amount = SafeParse.stringToDouble(DecimalFormatter.to2Decimal(SafeParse.stringToDouble(sp.getString("fill_button2", "0")))); + amount = SP.getDouble("fill_button2", 0d); } else if ("3".equals(act[1])) { - amount = SafeParse.stringToDouble(DecimalFormatter.to2Decimal(SafeParse.stringToDouble(sp.getString("fill_button3", "0")))); + amount = SP.getDouble("fill_button3", 0d); } else { return; } @@ -295,17 +291,17 @@ public class ActionStringHandler { } //Default Range/Target - String maxBgDefault = Constants.MAX_BG_DEFAULT_MGDL; - String minBgDefault = Constants.MIN_BG_DEFAULT_MGDL; - String targetBgDefault = Constants.TARGET_BG_DEFAULT_MGDL; + Double maxBgDefault = Constants.MAX_BG_DEFAULT_MGDL; + Double minBgDefault = Constants.MIN_BG_DEFAULT_MGDL; + Double targetBgDefault = Constants.TARGET_BG_DEFAULT_MGDL; if (!profile.getUnits().equals(Constants.MGDL)) { maxBgDefault = Constants.MAX_BG_DEFAULT_MMOL; minBgDefault = Constants.MIN_BG_DEFAULT_MMOL; targetBgDefault = Constants.TARGET_BG_DEFAULT_MMOL; } ret += "DEFAULT RANGE: "; - ret += sp.getString("openapsma_min_bg", minBgDefault) + " - " + sp.getString("openapsma_max_bg", maxBgDefault); - ret += " target: " + sp.getString("openapsma_target_bg", targetBgDefault); + ret += SP.getDouble("openapsma_min_bg", minBgDefault) + " - " + SP.getDouble("openapsma_max_bg", maxBgDefault); + ret += " target: " + SP.getDouble("openapsma_target_bg", targetBgDefault); return ret; } diff --git a/app/src/main/java/info/nightscout/utils/LocaleHelper.java b/app/src/main/java/info/nightscout/utils/LocaleHelper.java index 1d89c7d689..c8faa83b9d 100644 --- a/app/src/main/java/info/nightscout/utils/LocaleHelper.java +++ b/app/src/main/java/info/nightscout/utils/LocaleHelper.java @@ -40,8 +40,7 @@ public class LocaleHelper { } private static String getPersistedData(Context context, String defaultLanguage) { - SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); - return preferences.getString(SELECTED_LANGUAGE, defaultLanguage); + return SP.getString(SELECTED_LANGUAGE, defaultLanguage); } private static void persist(Context context, String language) { diff --git a/app/src/main/java/info/nightscout/utils/PasswordProtection.java b/app/src/main/java/info/nightscout/utils/PasswordProtection.java index 2b8d7a59c1..1af10eb2d2 100644 --- a/app/src/main/java/info/nightscout/utils/PasswordProtection.java +++ b/app/src/main/java/info/nightscout/utils/PasswordProtection.java @@ -3,8 +3,6 @@ package info.nightscout.utils; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; -import android.content.SharedPreferences; -import android.preference.PreferenceManager; import android.view.LayoutInflater; import android.view.View; import android.widget.EditText; @@ -19,7 +17,6 @@ import info.nightscout.androidaps.R; public class PasswordProtection { static public boolean isLocked(String preference) { - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); final String password = SP.getString(preference, ""); if (password.equals("")) { return false; @@ -28,7 +25,6 @@ public class PasswordProtection { } static public void QueryPassword(final Context context, int stringID, String preference, final Runnable ok, final Runnable fail) { - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); final String password = SP.getString(preference, ""); if (password.equals("")) { if (ok != null) ok.run(); diff --git a/app/src/main/java/info/nightscout/utils/SP.java b/app/src/main/java/info/nightscout/utils/SP.java new file mode 100644 index 0000000000..4305be2076 --- /dev/null +++ b/app/src/main/java/info/nightscout/utils/SP.java @@ -0,0 +1,72 @@ +package info.nightscout.utils; + +import android.content.SharedPreferences; +import android.preference.PreferenceManager; + +import info.nightscout.androidaps.MainApp; + +/** + * Created by mike on 17.02.2017. + */ + +public class SP { + static SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); + + static public boolean contains(String key) { + return sharedPreferences.contains(key); + } + + static public String getString(int resourceID, String defaultValue) { + return sharedPreferences.getString(MainApp.sResources.getString(resourceID), defaultValue); + } + + static public String getString(String key, String defaultValue) { + return sharedPreferences.getString(key, defaultValue); + } + + static public boolean getBoolean(int resourceID, boolean defaultValue) { + try { + return sharedPreferences.getBoolean(MainApp.sResources.getString(resourceID), defaultValue); + } catch (Exception e) { + return defaultValue; + } + } + + static public boolean getBoolean(String key, boolean defaultValue) { + try { + return sharedPreferences.getBoolean(key, defaultValue); + } catch (Exception e) { + return defaultValue; + } + } + + static public Double getDouble(int resourceID, Double defaultValue) { + return SafeParse.stringToDouble(sharedPreferences.getString(MainApp.sResources.getString(resourceID), defaultValue.toString())); + } + + static public Double getDouble(String key, Double defaultValue) { + return SafeParse.stringToDouble(sharedPreferences.getString(key, defaultValue.toString())); + } + + static public int getInt(int resourceID, Integer defaultValue) { + return SafeParse.stringToInt(sharedPreferences.getString(MainApp.sResources.getString(resourceID), defaultValue.toString())); + } + + static public int getInt(String key, Integer defaultValue) { + return SafeParse.stringToInt(sharedPreferences.getString(key, defaultValue.toString())); + } + + static public long getLong(int resourceID, Long defaultValue) { + return SafeParse.stringToLong(sharedPreferences.getString(MainApp.sResources.getString(resourceID), defaultValue.toString())); + } + + static public long getLong(String key, Long defaultValue) { + return SafeParse.stringToLong(sharedPreferences.getString(key, defaultValue.toString())); + } + + static public void putBoolean(String key, boolean value) { + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.putBoolean(key, value); + editor.apply(); + } +} diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 9d8d44f4b9..a265c239e5 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -267,7 +267,7 @@ Прекъсване Презареждане IOB на помпата - Парола за помпа + Парола за помпа пълнене Общо %d записа са изпратени Приложено diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 835421fbb0..001d624c96 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -265,7 +265,7 @@ Nahrávám Pumpa je zaneprázdněna Špatné heslo k pumpě - Heslo k pumpě + Heslo k pumpě Okluze Podáno Stop diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index abf9b60b58..77af750cf3 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -259,7 +259,7 @@ Glukose Füllmenge Unterbrechungen - Pumpen-Passwort + Pumpen-Passwort Essensbolus Kein Profil gewählt Stop diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index bd95743215..7d28d6ef7f 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -275,7 +275,7 @@ Rellenar Suspender Conexión de %d s - Contraseña de la bomba + Contraseña de la bomba Contraseña de la bomba incorrecta! Bomba ocupada Entregado diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index b45c7393b0..9c947244c0 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -278,7 +278,7 @@ 교체 중지 %d 초 동안 연결중 - 펌프 비밀번호 + 펌프 비밀번호 펌프 비밀번호가 잘못되었습니다! 펌프가 바쁩니다 주입됨 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4038b83300..cab260d268 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -294,7 +294,7 @@ Refill Suspend Connecting for %d s - Pump password + Pump password Wrong pump password! Pump is busy Delivered @@ -532,4 +532,8 @@ nsclientinternal_url nsclientinternal_api_secret nsclientinternal_hours + danar_bt_name + danar_password + danar_useextended + danarprofile_dia diff --git a/app/src/main/res/xml/pref_danar.xml b/app/src/main/res/xml/pref_danar.xml index d0ca8a997a..9d5c86a535 100644 --- a/app/src/main/res/xml/pref_danar.xml +++ b/app/src/main/res/xml/pref_danar.xml @@ -6,16 +6,16 @@ diff --git a/app/src/main/res/xml/pref_danarprofile.xml b/app/src/main/res/xml/pref_danarprofile.xml index 5e864d7561..68be80566a 100644 --- a/app/src/main/res/xml/pref_danarprofile.xml +++ b/app/src/main/res/xml/pref_danarprofile.xml @@ -5,7 +5,7 @@ android:title="@string/danarprofile"> From 31364ff07b7ce57151a37e278cce77e687d63075 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Fri, 17 Feb 2017 16:41:28 +0100 Subject: [PATCH 005/140] ignore dbaccess if nsclient not enabled --- .../NSClientInternal/NSClientInternalFragment.java | 9 ++++++++- .../NSClientInternal/receivers/DBAccessReceiver.java | 7 ++++++- app/src/main/res/layout/nsclientinternal_fragment.xml | 9 +++++++++ app/src/main/res/values/strings.xml | 1 + 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java index d101b3f5fe..a30571d4d1 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java @@ -42,6 +42,7 @@ public class NSClientInternalFragment extends Fragment implements FragmentBase, private TextView queueTextView; private TextView urlTextView; private TextView statusTextView; + private TextView clearlog; private TextView restart; private TextView delivernow; private TextView clearqueue; @@ -67,6 +68,9 @@ public class NSClientInternalFragment extends Fragment implements FragmentBase, urlTextView = (TextView) view.findViewById(R.id.nsclientinternal_url); statusTextView = (TextView) view.findViewById(R.id.nsclientinternal_status); + clearlog = (TextView) view.findViewById(R.id.nsclientinternal_clearlog); + clearlog.setOnClickListener(this); + clearlog.setPaintFlags(clearlog.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); restart = (TextView) view.findViewById(R.id.nsclientinternal_restart); restart.setOnClickListener(this); restart.setPaintFlags(restart.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); @@ -93,9 +97,12 @@ public class NSClientInternalFragment extends Fragment implements FragmentBase, case R.id.nsclientinternal_delivernow: getPlugin().resend("GUI"); break; - case R.id.nsclientinternal_clearqueue: + case R.id.nsclientinternal_clearlog: getPlugin().clearLog(); break; + case R.id.nsclientinternal_clearqueue: + getPlugin().queue().reset(); + break; case R.id.nsclientinternal_showqueue: MainApp.bus().post(new EventNSClientNewLog("QUEUE", getPlugin().queue().textList())); break; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java index 1cf0d27b77..cf9c7ea673 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java @@ -14,6 +14,7 @@ import org.slf4j.LoggerFactory; import java.util.Date; import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.NSClientInternal.NSClientInternalPlugin; import info.nightscout.androidaps.plugins.NSClientInternal.UploadQueue; import info.nightscout.androidaps.plugins.NSClientInternal.data.DbRequest; @@ -27,6 +28,10 @@ public class DBAccessReceiver extends BroadcastReceiver { PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "sendQueue"); + NSClientInternalPlugin nsClientInternalPlugin = (NSClientInternalPlugin) MainApp.getSpecificPlugin(NSClientInternalPlugin.class); + if (!nsClientInternalPlugin.isEnabled(PluginBase.GENERAL)) { + return; + } wakeLock.acquire(); try { Bundle bundles = intent.getExtras(); @@ -46,10 +51,10 @@ public class DBAccessReceiver extends BroadcastReceiver { return; } - // mark by id if (action.equals("dbRemove")) { data = new JSONObject(); } + // mark by id try { data.put("NSCLIENT_ID", (new Date()).getTime()); } catch (JSONException e) { diff --git a/app/src/main/res/layout/nsclientinternal_fragment.xml b/app/src/main/res/layout/nsclientinternal_fragment.xml index 27f9267dd1..064d369253 100644 --- a/app/src/main/res/layout/nsclientinternal_fragment.xml +++ b/app/src/main/res/layout/nsclientinternal_fragment.xml @@ -97,6 +97,15 @@ android:layout_marginRight="5dp" android:orientation="horizontal"> + + danar_password danar_useextended danarprofile_dia + Clear log From 14e37246c2d25c9c1e40f85def9c207ba857cde1 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Fri, 17 Feb 2017 18:14:33 +0100 Subject: [PATCH 006/140] nsclient gui and pausing tweaking --- .../events/EventPreferenceChange.java | 4 ++ .../NSClientInternalFragment.java | 17 +++-- .../NSClientInternalPlugin.java | 10 +-- .../NSClientInternal/acks/NSAddAck.java | 4 +- .../services/NSClientService.java | 11 +-- .../main/java/info/nightscout/utils/SP.java | 6 ++ .../res/layout/nsclientinternal_fragment.xml | 67 ++++++++++--------- app/src/main/res/values/strings.xml | 2 + 8 files changed, 75 insertions(+), 46 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventPreferenceChange.java b/app/src/main/java/info/nightscout/androidaps/events/EventPreferenceChange.java index f8b38a4321..76da0a4e67 100644 --- a/app/src/main/java/info/nightscout/androidaps/events/EventPreferenceChange.java +++ b/app/src/main/java/info/nightscout/androidaps/events/EventPreferenceChange.java @@ -11,6 +11,10 @@ public class EventPreferenceChange { changedKey = key; } + public EventPreferenceChange(int resourceID) { + changedKey = MainApp.sResources.getString(resourceID); + } + public boolean isChanged(int id) { return changedKey.equals(MainApp.sResources.getString(id)); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java index a30571d4d1..42ddcc9ba8 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java @@ -5,6 +5,8 @@ import android.app.Activity; import android.graphics.Paint; import android.os.Bundle; import android.support.v4.app.Fragment; +import android.text.Html; +import android.text.Spanned; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -20,6 +22,7 @@ import org.slf4j.LoggerFactory; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; +import info.nightscout.androidaps.events.EventPreferenceChange; import info.nightscout.androidaps.interfaces.FragmentBase; import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientNewLog; import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientRestart; @@ -60,8 +63,10 @@ public class NSClientInternalFragment extends Fragment implements FragmentBase, logScrollview = (ScrollView) view.findViewById(R.id.nsclientinternal_logscrollview); autoscrollCheckbox = (CheckBox) view.findViewById(R.id.nsclientinternal_autoscroll); + autoscrollCheckbox.setChecked(getPlugin().autoscroll); autoscrollCheckbox.setOnCheckedChangeListener(this); pausedCheckbox = (CheckBox) view.findViewById(R.id.nsclientinternal_paused); + pausedCheckbox.setChecked(getPlugin().paused); pausedCheckbox.setOnCheckedChangeListener(this); logTextView = (TextView) view.findViewById(R.id.nsclientinternal_log); queueTextView = (TextView) view.findViewById(R.id.nsclientinternal_queue); @@ -113,13 +118,14 @@ public class NSClientInternalFragment extends Fragment implements FragmentBase, public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { switch (buttonView.getId()) { case R.id.nsclientinternal_paused: - SP.putBoolean("nsclientinternal_paused", isChecked); + SP.putBoolean(R.string.key_nsclientinternal_paused, isChecked); getPlugin().paused = isChecked; - // TODO + MainApp.bus().post(new EventPreferenceChange(R.string.key_nsclientinternal_paused)); updateGUI(); break; case R.id.nsclientinternal_autoscroll: - SP.putBoolean("nsclientinternal_autoscroll", isChecked); + SP.putBoolean(R.string.key_nsclientinternal_autoscroll, isChecked); + getPlugin().autoscroll = isChecked; updateGUI(); break; } @@ -153,8 +159,9 @@ public class NSClientInternalFragment extends Fragment implements FragmentBase, if (getPlugin().autoscroll) { logScrollview.fullScroll(ScrollView.FOCUS_DOWN); } - urlTextView.setText(getPlugin().url); - queueTextView.setText(((Integer)getPlugin().queue().size()).toString()); + urlTextView.setText(getPlugin().url()); + Spanned queuetext = Html.fromHtml(MainApp.sResources.getString(R.string.queue) + " " + getPlugin().queue().size() + ""); + queueTextView.setText(queuetext); statusTextView.setText(getPlugin().status); } }); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java index ff530e6410..a272ed77aa 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java @@ -52,7 +52,6 @@ public class NSClientInternalPlugin implements PluginBase { public boolean paused = false; public boolean autoscroll = true; - public String url = ""; public String status = ""; @@ -60,9 +59,8 @@ public class NSClientInternalPlugin implements PluginBase { public NSClientInternalPlugin() { MainApp.bus().register(this); - paused = SP.getBoolean("nsclientinternal_paused", false); - autoscroll = SP.getBoolean("nsclientinternal_autoscroll", true); - url = SP.getString("nsclientinternal_url", ""); + paused = SP.getBoolean(R.string.key_nsclientinternal_paused, false); + autoscroll = SP.getBoolean(R.string.key_nsclientinternal_autoscroll, true); if (handler == null) { handlerThread = new HandlerThread(NSClientInternalPlugin.class.getSimpleName() + "Handler"); @@ -212,4 +210,8 @@ public class NSClientInternalPlugin implements PluginBase { public UploadQueue queue() { return NSClientService.uploadQueue; } + + public String url() { + return NSClientService.nsURL; + } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAddAck.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAddAck.java index 43fc09876e..05cbb17623 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAddAck.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAddAck.java @@ -5,6 +5,8 @@ import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientRestart; import info.nightscout.androidaps.plugins.NSClientInternal.services.NSClientService; import io.socket.client.Ack; @@ -38,7 +40,7 @@ public class NSAddAck implements Ack { synchronized(this) { this.notify(); } - NSClientService.forcerestart = true; + MainApp.bus().post(new EventNSClientRestart()); return; } log.debug("DBACCESS " + response.getString("result")); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java index 2f42814f5d..750d9752ab 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java @@ -66,7 +66,6 @@ public class NSClientService extends Service { private static Logger log = LoggerFactory.getLogger(ExecutionService.class); static public PowerManager.WakeLock mWakeLock; - public static boolean forcerestart = false; private IBinder mBinder = new NSClientService.LocalBinder(); static NSProfile nsProfile; @@ -83,7 +82,7 @@ public class NSClientService extends Service { public static Integer nightscoutVersionCode = 0; private boolean nsEnabled = false; - private String nsURL = ""; + static public String nsURL = ""; private String nsAPISecret = ""; private String nsDevice = ""; private Integer nsHours = 3; @@ -151,7 +150,8 @@ public class NSClientService extends Service { public void onStatusEvent(EventPreferenceChange ev) { if (ev.isChanged(R.string.key_nsclientinternal_url) || ev.isChanged(R.string.key_nsclientinternal_api_secret) || - ev.isChanged(R.string.key_nsclientinternal_hours) + ev.isChanged(R.string.key_nsclientinternal_hours) || + ev.isChanged(R.string.key_nsclientinternal_paused) ) { destroy(); initialize(); @@ -185,7 +185,10 @@ public class NSClientService extends Service { nsAPIhashCode = Hashing.sha1().hashString(nsAPISecret, Charsets.UTF_8).toString(); MainApp.bus().post(new EventNSClientStatus("Initializing")); - if (!nsEnabled) { + if (((NSClientInternalPlugin)MainApp.getSpecificPlugin(NSClientInternalPlugin.class)).paused) { + MainApp.bus().post(new EventNSClientNewLog("NSCLIENT", "paused")); + MainApp.bus().post(new EventNSClientStatus("Paused")); + } else if (!nsEnabled) { MainApp.bus().post(new EventNSClientNewLog("NSCLIENT", "disabled")); MainApp.bus().post(new EventNSClientStatus("Disabled")); } else if (!nsURL.equals("")) { diff --git a/app/src/main/java/info/nightscout/utils/SP.java b/app/src/main/java/info/nightscout/utils/SP.java index 4305be2076..33ac2c1abb 100644 --- a/app/src/main/java/info/nightscout/utils/SP.java +++ b/app/src/main/java/info/nightscout/utils/SP.java @@ -69,4 +69,10 @@ public class SP { editor.putBoolean(key, value); editor.apply(); } + + static public void putBoolean(int resourceID, boolean value) { + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.putBoolean(MainApp.sResources.getString(resourceID), value); + editor.apply(); + } } diff --git a/app/src/main/res/layout/nsclientinternal_fragment.xml b/app/src/main/res/layout/nsclientinternal_fragment.xml index 064d369253..580df825ca 100644 --- a/app/src/main/res/layout/nsclientinternal_fragment.xml +++ b/app/src/main/res/layout/nsclientinternal_fragment.xml @@ -13,35 +13,34 @@ + android:orientation="horizontal" + android:gravity="center_horizontal"> + android:text="@string/nsclientinternal_url" /> + android:layout_marginLeft="5dp" + android:autoLink="web" /> + android:orientation="horizontal" + android:gravity="center_horizontal"> - - - - + android:layout_height="wrap_content" + android:textStyle="normal|bold" /> + + + + android:orientation="horizontal" + android:layout_marginBottom="10dp" + android:layout_marginTop="10dp"> + android:textColor="@android:color/holo_orange_light" + android:textStyle="normal|bold" /> + android:textColor="@android:color/holo_orange_light" + android:textStyle="normal|bold" /> + android:textColor="@android:color/holo_orange_light" + android:textStyle="normal|bold" /> + android:textColor="@android:color/holo_orange_light" + android:textStyle="normal|bold" /> + android:textColor="@android:color/holo_orange_light" + android:textStyle="normal|bold" /> @@ -149,8 +153,7 @@ android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginLeft="5dp" - android:layout_marginRight="5dp" - android:layout_marginTop="10dp"> + android:layout_marginRight="5dp"> danar_useextended
danarprofile_dia Clear log + nsclientinternal_autoscroll + nsclientinternal_paused From f33ccf278b46b15fff959f786a52d3d1c18143a7 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Fri, 17 Feb 2017 21:24:30 +0100 Subject: [PATCH 007/140] dbupdate/remove, saving queue --- .../NSClientInternalPlugin.java | 4 +- .../plugins/NSClientInternal/UploadQueue.java | 66 ++++--- .../NSClientInternal/acks/NSAddAck.java | 17 +- .../NSClientInternal/acks/NSUpdateAck.java | 13 +- .../NSClientInternal/data/DbRequest.java | 49 ++++- .../receivers/DBAccessReceiver.java | 7 +- .../services/NSClientService.java | 175 +++--------------- .../plugins/Treatments/TreatmentsPlugin.java | 8 +- .../main/java/info/nightscout/utils/SP.java | 12 ++ 9 files changed, 143 insertions(+), 208 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java index a272ed77aa..46830deadc 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java @@ -41,8 +41,8 @@ import info.nightscout.utils.SP; public class NSClientInternalPlugin implements PluginBase { private static Logger log = LoggerFactory.getLogger(NSClientInternalPlugin.class); - boolean fragmentEnabled = true; - boolean fragmentVisible = true; + boolean fragmentEnabled = false; + boolean fragmentVisible = false; static public Handler handler; static private HandlerThread handlerThread; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java index 8c22120c0e..ded00ffb85 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java @@ -3,6 +3,7 @@ package info.nightscout.androidaps.plugins.NSClientInternal; import android.content.SharedPreferences; import android.preference.PreferenceManager; +import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.slf4j.Logger; @@ -44,17 +45,7 @@ public class UploadQueue { public void run() { log.debug("QUEUE adding: " + dbr.data.toString()); queue.put(dbr.hash(), dbr); - } - }); - } - - public static void put(final String hash, final DbRequest dbr) { - NSClientService.handler.post(new Runnable() { - @Override - public void run() { - queue.put(hash, dbr); - BroadcastQueueStatus bs = new BroadcastQueueStatus(); - bs.handleNewStatus(queue.size(), MainApp.instance().getApplicationContext()); + saveMap(); } }); } @@ -99,32 +90,52 @@ public class UploadQueue { } catch (JSONException e) { e.printStackTrace(); } + saveMap(); } }); } - final String KEY = "UploadQueue"; + public static void removeID(final String action, final String _id) { + NSClientService.handler.post(new Runnable() { + @Override + public void run() { + Iterator> iter = queue.entrySet().iterator(); + while (iter.hasNext()) { + DbRequest dbr = iter.next().getValue(); + if (dbr.action.equals(action) && dbr._id.equals(_id)) { + log.debug("Removing item from UploadQueue"); + iter.remove(); + return; + } else { + log.debug("Failed removing item from UploadQueue"); + } + } + saveMap(); + } + }); + } - private void saveMap() { - SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); - JSONObject jsonObject = new JSONObject(queue); - String jsonString = jsonObject.toString(); - SharedPreferences.Editor editor = sp.edit(); - editor.remove(KEY).commit(); - editor.putString(KEY, jsonString); - editor.commit(); + final static String KEY = "UploadQueue"; + + private static void saveMap() { + JSONArray jsonArray = new JSONArray(); + Iterator> iter = queue.entrySet().iterator(); + while (iter.hasNext()) { + DbRequest dbr = iter.next().getValue(); + jsonArray.put(dbr.toJSON()); + } + SP.putString(KEY, jsonArray.toString()); } private void loadMap() { queue = new HashMap(); try { - String jsonString = SP.getString(KEY, (new JSONObject()).toString()); - JSONObject jsonObject = new JSONObject(jsonString); - Iterator keysItr = jsonObject.keys(); - while (keysItr.hasNext()) { - String key = keysItr.next(); - DbRequest value = (DbRequest) jsonObject.get(key); - queue.put(key, value); + String jsonString = SP.getString(KEY, (new JSONArray()).toString()); + JSONArray jsonArray = new JSONArray(jsonString); + for (int i=0; i < jsonArray.length(); i++) { + JSONObject jsonObject = jsonArray.getJSONObject(i); + DbRequest dbr = DbRequest.fromJSON(jsonObject); + queue.put(dbr.hash(), dbr); } } catch (Exception e) { e.printStackTrace(); @@ -137,6 +148,7 @@ public class UploadQueue { while (iter.hasNext()) { DbRequest dbr = iter.next().getValue(); + result += "
"; result += dbr.action.toUpperCase() + " "; result += dbr.collection + ": "; result += dbr.data.toString(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAddAck.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAddAck.java index 05cbb17623..3cf2551afa 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAddAck.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAddAck.java @@ -1,6 +1,7 @@ package info.nightscout.androidaps.plugins.NSClientInternal.acks; import org.json.JSONArray; +import org.json.JSONException; import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -16,6 +17,8 @@ import io.socket.client.Ack; public class NSAddAck implements Ack { private static Logger log = LoggerFactory.getLogger(NSAddAck.class); public String _id = null; + public String nsClientID = null; + public JSONObject json = null; public void call(Object...args) { // Regular response try { @@ -24,10 +27,12 @@ public class NSAddAck implements Ack { if (responsearray.length()>0) { response = responsearray.getJSONObject(0); _id = response.getString("_id"); + json = response; + if (response.has("NSCLIENT_ID")) { + nsClientID = response.getString("NSCLIENT_ID"); + } } - synchronized(this) { - this.notify(); - } + MainApp.bus().post(this); return; } catch (Exception e) { } @@ -37,17 +42,11 @@ public class NSAddAck implements Ack { if (response.has("result")) { _id = null; if (response.getString("result").equals("Not authorized")) { - synchronized(this) { - this.notify(); - } MainApp.bus().post(new EventNSClientRestart()); return; } log.debug("DBACCESS " + response.getString("result")); } - synchronized(this) { - this.notify(); - } return; } catch (Exception e) { e.printStackTrace(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSUpdateAck.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSUpdateAck.java index 46b09f4430..5aef754d8c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSUpdateAck.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSUpdateAck.java @@ -5,6 +5,7 @@ import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import info.nightscout.androidaps.MainApp; import io.socket.client.Ack; /** @@ -13,6 +14,8 @@ import io.socket.client.Ack; public class NSUpdateAck implements Ack { private static Logger log = LoggerFactory.getLogger(NSUpdateAck.class); public boolean result = false; + public String _id = null; + public String action; public void call(Object...args) { JSONObject response = (JSONObject)args[0]; if (response.has("result")) @@ -23,10 +26,14 @@ public class NSUpdateAck implements Ack { result = true; log.debug("Internal error: Missing _id returned on dbUpdate ack"); } + MainApp.bus().post(this); } catch (JSONException e) { } - synchronized(this) { - this.notify(); - } + } + + public NSUpdateAck(String action, String _id) { + super(); + this.action = action; + this._id = _id; } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/DbRequest.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/DbRequest.java index 36fba1e637..ed7de35f49 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/DbRequest.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/DbRequest.java @@ -3,11 +3,12 @@ package info.nightscout.androidaps.plugins.NSClientInternal.data; import com.google.common.base.Charsets; import com.google.common.hash.Hashing; +import org.json.JSONException; import org.json.JSONObject; /** * Created by mike on 27.02.2016. - * + *

* Allowed actions "dbAdd" || "dbUpdate" || "dbUpdateUnset" || "dbRemove" */ public class DbRequest { @@ -15,32 +16,72 @@ public class DbRequest { public String collection = null; public JSONObject data = null; public String _id = null; + public String nsClientID = null; + + public DbRequest() { + } // dbAdd - public DbRequest(String action, String collection, JSONObject data) { + public DbRequest(String action, String collection, String nsClientID, JSONObject data) { this.action = action; this.collection = collection; this.data = data; + this.nsClientID = nsClientID; this._id = ""; } // dbUpdate, dbUpdateUnset - public DbRequest(String action, String collection, String _id, JSONObject data) { + public DbRequest(String action, String collection, String nsClientID, String _id, JSONObject data) { this.action = action; this.collection = collection; this.data = data; + this.nsClientID = nsClientID; this._id = _id; } // dbRemove - public DbRequest(String action, String collection, String _id) { + public DbRequest(String action, String collection, String nsClientID, String _id) { this.action = action; this.collection = collection; this.data = new JSONObject(); + this.nsClientID = nsClientID; this._id = _id; } public String hash() { return Hashing.sha1().hashString(action + collection + _id + data.toString(), Charsets.UTF_8).toString(); } + + public JSONObject toJSON() { + JSONObject object = new JSONObject(); + try { + object.put("action", action); + object.put("collection", collection); + object.put("data", data); + if (_id != null) object.put("_id", _id); + if (nsClientID != null) object.put("nsClientID", nsClientID); + } catch (JSONException e) { + e.printStackTrace(); + } + return object; + } + + public static DbRequest fromJSON(JSONObject jsonObject) { + DbRequest result = new DbRequest(); + try { + if (jsonObject.has("action")) + result.action = jsonObject.getString("action"); + if (jsonObject.has("collection")) + result.collection = jsonObject.getString("collection"); + if (jsonObject.has("data")) + result.data = jsonObject.getJSONObject("data"); + if (jsonObject.has("_id")) + result._id = jsonObject.getString("_id"); + if (jsonObject.has("nsClientID")) + result.nsClientID = jsonObject.getString("nsClientID"); + } catch (JSONException e) { + e.printStackTrace(); + } + return result; + } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java index cf9c7ea673..5f715ad78e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java @@ -55,8 +55,9 @@ public class DBAccessReceiver extends BroadcastReceiver { data = new JSONObject(); } // mark by id + Long nsclientid = new Date().getTime(); try { - data.put("NSCLIENT_ID", (new Date()).getTime()); + data.put("NSCLIENT_ID", nsclientid); } catch (JSONException e) { e.printStackTrace(); } @@ -67,10 +68,10 @@ public class DBAccessReceiver extends BroadcastReceiver { } if (action.equals("dbRemove")) { - DbRequest dbr = new DbRequest(action, collection, _id); + DbRequest dbr = new DbRequest(action, collection, nsclientid.toString(), _id); UploadQueue.add(dbr); } else { - DbRequest dbr = new DbRequest(action, collection, data); + DbRequest dbr = new DbRequest(action, collection, nsclientid.toString(), data); UploadQueue.add(dbr); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java index 750d9752ab..97af63caec 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java @@ -492,181 +492,75 @@ public class NSClientService extends Service { public void dbUpdate(DbRequest dbr, NSUpdateAck ack) { try { if (!isConnected) return; - if (uploading) { - MainApp.bus().post(new EventNSClientNewLog("DBUPDATE", "Busy, adding to queue")); - return; - } - uploading = true; JSONObject message = new JSONObject(); message.put("collection", dbr.collection); message.put("_id", dbr._id); message.put("data", dbr.data); mSocket.emit("dbUpdate", message, ack); - synchronized (ack) { - try { - ack.wait(timeToWaitForResponseInMs); - } catch (InterruptedException e) { - } - } + MainApp.bus().post(new EventNSClientNewLog("DBUPDATE", "Sent " + dbr._id)); } catch (JSONException e) { e.printStackTrace(); - return; } - uploading = false; - } - - public void dbUpdate(DbRequest dbr) { - try { - if (!isConnected) return; - if (uploading) { - MainApp.bus().post(new EventNSClientNewLog("DBUPDATE", "Busy, adding to queue")); - return; - } - uploading = true; - JSONObject message = new JSONObject(); - message.put("collection", dbr.collection); - message.put("_id", dbr._id); - message.put("data", dbr.data); - mSocket.emit("dbUpdate", message); - } catch (JSONException e) { - e.printStackTrace(); - return; - } - uploading = false; } public void dbUpdateUnset(DbRequest dbr, NSUpdateAck ack) { try { if (!isConnected) return; - if (uploading) { - MainApp.bus().post(new EventNSClientNewLog("DBUPUNSET", "Busy, adding to queue")); - return; - } - uploading = true; JSONObject message = new JSONObject(); message.put("collection", dbr.collection); message.put("_id", dbr._id); message.put("data", dbr.data); mSocket.emit("dbUpdateUnset", message, ack); - synchronized (ack) { - try { - ack.wait(timeToWaitForResponseInMs); - } catch (InterruptedException e) { - } - } + MainApp.bus().post(new EventNSClientNewLog("DBUPDATEUNSET", "Sent " + dbr._id)); } catch (JSONException e) { e.printStackTrace(); - return; } - uploading = false; - } - - public void dbUpdateUnset(DbRequest dbr) { - try { - if (!isConnected) return; - if (uploading) { - MainApp.bus().post(new EventNSClientNewLog("DBUPUNSET", "Busy, adding to queue")); - return; - } - uploading = true; - JSONObject message = new JSONObject(); - message.put("collection", dbr.collection); - message.put("_id", dbr._id); - message.put("data", dbr.data); - mSocket.emit("dbUpdateUnset", message); - } catch (JSONException e) { - e.printStackTrace(); - return; - } - uploading = false; } public void dbRemove(DbRequest dbr, NSUpdateAck ack) { try { if (!isConnected) return; - if (uploading) { - MainApp.bus().post(new EventNSClientNewLog("DBREMOVE", "Busy, adding to queue")); - return; - } - uploading = true; JSONObject message = new JSONObject(); message.put("collection", dbr.collection); message.put("_id", dbr._id); mSocket.emit("dbRemove", message, ack); - synchronized (ack) { - try { - ack.wait(timeToWaitForResponseInMs); - } catch (InterruptedException e) { - } - } + MainApp.bus().post(new EventNSClientNewLog("DBREMOVE", "Sent " + dbr._id)); } catch (JSONException e) { e.printStackTrace(); - return; } - uploading = false; } - public void dbRemove(DbRequest dbr) { - try { - if (!isConnected) return; - if (uploading) { - MainApp.bus().post(new EventNSClientNewLog("DBREMOVE", "Busy, adding to queue")); - return; - } - uploading = true; - JSONObject message = new JSONObject(); - message.put("collection", dbr.collection); - message.put("_id", dbr._id); - mSocket.emit("dbRemove", message); - } catch (JSONException e) { - e.printStackTrace(); - return; + @Subscribe + public void onStatusEvent(NSUpdateAck ack) { + if (ack.result) { + uploadQueue.removeID(ack.action, ack._id); + MainApp.bus().post(new EventNSClientNewLog("DBUPDATE/DBREMOVE", "Acked " + ack._id)); + } else { + MainApp.bus().post(new EventNSClientNewLog("ERROR", "DBUPDATE/DBREMOVE Unknown response")); } - uploading = false; } public void dbAdd(DbRequest dbr, NSAddAck ack) { try { if (!isConnected) return; - if (uploading) { - MainApp.bus().post(new EventNSClientNewLog("DBADD", "Busy, adding to queue")); - return; - } - uploading = true; JSONObject message = new JSONObject(); message.put("collection", dbr.collection); message.put("data", dbr.data); mSocket.emit("dbAdd", message, ack); - synchronized (ack) { - try { - ack.wait(timeToWaitForResponseInMs); - } catch (InterruptedException e) { - } - } + MainApp.bus().post(new EventNSClientNewLog("DBADD", "Sent " + dbr.nsClientID)); } catch (JSONException e) { e.printStackTrace(); - return; } - uploading = false; } - public void dbAdd(DbRequest dbr) { - try { - if (!isConnected) return; - if (uploading) { - MainApp.bus().post(new EventNSClientNewLog("DBADD", "Busy, adding to queue")); - return; - } - uploading = true; - JSONObject message = new JSONObject(); - message.put("collection", dbr.collection); - message.put("data", dbr.data); - mSocket.emit("dbAdd", message); - } catch (JSONException e) { - e.printStackTrace(); - return; + @Subscribe + public void onStatusEvent(NSAddAck ack) { + if (ack.nsClientID != null) { + uploadQueue.removeID(ack.json); + MainApp.bus().post(new EventNSClientNewLog("DBADD", "Acked " + ack.nsClientID)); + } else { + MainApp.bus().post(new EventNSClientNewLog("ERROR", "DBADD Unknown response")); } - uploading = false; } public void doPing() { @@ -735,42 +629,15 @@ public class NSClientService extends Service { if (dbr.action.equals("dbAdd")) { NSAddAck addAck = new NSAddAck(); dbAdd(dbr, addAck); - if (addAck._id == null) { - MainApp.bus().post(new EventNSClientNewLog("QUEUE", "No response on dbAdd")); - return; - } - if (Config.detailedLog) - MainApp.bus().post(new EventNSClientNewLog("QUEUE", "dbAdd processed: " + dbr.data.toString())); - else - MainApp.bus().post(new EventNSClientNewLog("QUEUE", "dbAdd processed")); - iter.remove(); } else if (dbr.action.equals("dbRemove")) { - NSUpdateAck removeAck = new NSUpdateAck(); + NSUpdateAck removeAck = new NSUpdateAck(dbr.action, dbr._id); dbRemove(dbr, removeAck); - if (!removeAck.result) { - MainApp.bus().post(new EventNSClientNewLog("QUEUE", "No response on dbRemove")); - return; - } - MainApp.bus().post(new EventNSClientNewLog("QUEUE", "dbRemove processed: " + dbr._id)); - iter.remove(); } else if (dbr.action.equals("dbUpdate")) { - NSUpdateAck updateAck = new NSUpdateAck(); + NSUpdateAck updateAck = new NSUpdateAck(dbr.action, dbr._id); dbUpdate(dbr, updateAck); - if (!updateAck.result) { - MainApp.bus().post(new EventNSClientNewLog("QUEUE", "No response on dbUpdate")); - return; - } - MainApp.bus().post(new EventNSClientNewLog("QUEUE", "dbUpdate processed: " + dbr._id)); - iter.remove(); } else if (dbr.action.equals("dbUpdateUnset")) { - NSUpdateAck updateUnsetAck = new NSUpdateAck(); + NSUpdateAck updateUnsetAck = new NSUpdateAck(dbr.action, dbr._id); dbUpdateUnset(dbr, updateUnsetAck); - if (!updateUnsetAck.result) { - MainApp.bus().post(new EventNSClientNewLog("QUEUE", "No response on dbUpdateUnset")); - return; - } - MainApp.bus().post(new EventNSClientNewLog("QUEUE", "dbUpdateUnset processed: " + dbr._id)); - iter.remove(); } } MainApp.bus().post(new EventNSClientNewLog("QUEUE", "Resend ended: " + reason)); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java index cbc2a336ce..c49e26553e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsPlugin.java @@ -1,8 +1,5 @@ package info.nightscout.androidaps.plugins.Treatments; -import android.content.SharedPreferences; -import android.preference.PreferenceManager; - import com.squareup.otto.Subscribe; import org.slf4j.Logger; @@ -14,15 +11,15 @@ import java.util.List; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.data.Iob; +import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.MealData; import info.nightscout.androidaps.db.Treatment; import info.nightscout.androidaps.events.EventTreatmentChange; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.TreatmentsInterface; -import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; -import info.nightscout.utils.SafeParse; +import info.nightscout.utils.SP; /** * Created by mike on 05.08.2016. @@ -118,7 +115,6 @@ public class TreatmentsPlugin implements PluginBase, TreatmentsInterface { @Override public IobTotal getCalculationToTime(long time) { - SharedPreferences SP = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); IobTotal total = new IobTotal(time); if (MainApp.getConfigBuilder() == null || ConfigBuilderPlugin.getActiveProfile() == null) // app not initialized yet diff --git a/app/src/main/java/info/nightscout/utils/SP.java b/app/src/main/java/info/nightscout/utils/SP.java index 33ac2c1abb..3626d7c69e 100644 --- a/app/src/main/java/info/nightscout/utils/SP.java +++ b/app/src/main/java/info/nightscout/utils/SP.java @@ -75,4 +75,16 @@ public class SP { editor.putBoolean(MainApp.sResources.getString(resourceID), value); editor.apply(); } + + static public void putString(String key, String value) { + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.putString(key, value); + editor.apply(); + } + + static public void putString(int resourceID, String value) { + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.putString(MainApp.sResources.getString(resourceID), value); + editor.apply(); + } } From 29b4f0063be8518b0f4fb2b2bd505a0e9bdc9a94 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Fri, 17 Feb 2017 22:12:35 +0100 Subject: [PATCH 008/140] better handling readonly permission --- .../NSClientInternal/acks/NSAddAck.java | 2 +- .../services/NSClientService.java | 24 ++++++++++++++----- .../plugins/Overview/Notification.java | 1 + app/src/main/res/values/strings.xml | 1 + 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAddAck.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAddAck.java index 3cf2551afa..b4ba0c3364 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAddAck.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/acks/NSAddAck.java @@ -41,7 +41,7 @@ public class NSAddAck implements Ack { JSONObject response = (JSONObject) (args[0]); if (response.has("result")) { _id = null; - if (response.getString("result").equals("Not authorized")) { + if (response.getString("result").contains("Not")) { MainApp.bus().post(new EventNSClientRestart()); return; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java index 97af63caec..3b7f57c7d4 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java @@ -56,6 +56,9 @@ import info.nightscout.androidaps.plugins.NSClientInternal.data.NSStatus; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSTreatment; import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientNewLog; import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientStatus; +import info.nightscout.androidaps.plugins.Overview.Notification; +import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification; +import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; import info.nightscout.utils.SP; import info.nightscout.utils.SafeParse; import io.socket.client.IO; @@ -75,6 +78,7 @@ public class NSClientService extends Service { public static Socket mSocket; public static boolean isConnected = false; + public static boolean hasWriteAuth = false; private static Integer dataCounter = 0; @@ -234,6 +238,7 @@ public class NSClientService extends Service { if (mSocket != null) { MainApp.bus().post(new EventNSClientNewLog("NSCLIENT", "destroy")); isConnected = false; + hasWriteAuth = false; mSocket.disconnect(); mSocket = null; } @@ -264,6 +269,7 @@ public class NSClientService extends Service { if (ack.write_treatment) connectionStatus += "T"; connectionStatus += ')'; isConnected = true; + hasWriteAuth = ack.write && ack.write_treatment; MainApp.bus().post(new EventNSClientStatus(connectionStatus)); MainApp.bus().post(new EventNSClientNewLog("AUTH", connectionStatus)); if (!ack.write) { @@ -272,6 +278,12 @@ public class NSClientService extends Service { if (!ack.write_treatment) { MainApp.bus().post(new EventNSClientNewLog("ERROR", "Write treatment permission not granted !!!!")); } + if (!hasWriteAuth) { + Notification noperm = new Notification(Notification.NSCLIENT_NO_WRITE_PERMISSION, MainApp.sResources.getString(R.string.nowritepermission), Notification.URGENT); + MainApp.bus().post(new EventNewNotification(noperm)); + } else { + MainApp.bus().post(new EventDismissNotification(Notification.NSCLIENT_NO_WRITE_PERMISSION)); + } lastReception = new Date(); } @@ -491,7 +503,7 @@ public class NSClientService extends Service { public void dbUpdate(DbRequest dbr, NSUpdateAck ack) { try { - if (!isConnected) return; + if (!isConnected || !hasWriteAuth) return; JSONObject message = new JSONObject(); message.put("collection", dbr.collection); message.put("_id", dbr._id); @@ -505,7 +517,7 @@ public class NSClientService extends Service { public void dbUpdateUnset(DbRequest dbr, NSUpdateAck ack) { try { - if (!isConnected) return; + if (!isConnected || !hasWriteAuth) return; JSONObject message = new JSONObject(); message.put("collection", dbr.collection); message.put("_id", dbr._id); @@ -519,7 +531,7 @@ public class NSClientService extends Service { public void dbRemove(DbRequest dbr, NSUpdateAck ack) { try { - if (!isConnected) return; + if (!isConnected || !hasWriteAuth) return; JSONObject message = new JSONObject(); message.put("collection", dbr.collection); message.put("_id", dbr._id); @@ -542,7 +554,7 @@ public class NSClientService extends Service { public void dbAdd(DbRequest dbr, NSAddAck ack) { try { - if (!isConnected) return; + if (!isConnected || !hasWriteAuth) return; JSONObject message = new JSONObject(); message.put("collection", dbr.collection); message.put("data", dbr.data); @@ -564,7 +576,7 @@ public class NSClientService extends Service { } public void doPing() { - if (!isConnected) return; + if (!isConnected || !hasWriteAuth) return; MainApp.bus().post(new EventNSClientNewLog("PING", "Sending")); uploading = true; JSONObject message = new JSONObject(); @@ -612,7 +624,7 @@ public class NSClientService extends Service { if (UploadQueue.queue.size() == 0) return; - if (!isConnected) return; + if (!isConnected || !hasWriteAuth) return; MainApp.bus().post(new EventNSClientNewLog("QUEUE", "Resend started: " + reason)); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Notification.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Notification.java index 5d83a76cc7..0508917312 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Notification.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Notification.java @@ -23,6 +23,7 @@ public class Notification { public static final int OLD_NSCLIENT = 8; public static final int INVALID_PHONE_NUMBER = 9; public static final int APPROACHING_DAILY_LIMIT = 10; + public static final int NSCLIENT_NO_WRITE_PERMISSION = 10; public int id; public Date date; diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3c9e7149b9..70b6ea72b7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -539,4 +539,5 @@ Clear log nsclientinternal_autoscroll nsclientinternal_paused + NSCLIENT has no write permission From 2e15c8b1383f80e9981bf34f6cc6d32e64da7696 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sat, 18 Feb 2017 10:41:42 +0100 Subject: [PATCH 009/140] add permissions to manifest --- app/src/main/AndroidManifest.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7db20117be..310ad6d42c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -14,6 +14,8 @@ + + From d113d39916190abb47de17aed933ede52754874a Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Sat, 18 Feb 2017 18:13:13 +0100 Subject: [PATCH 010/140] wear setting to show detailed IOB --- .../nightscout/androidaps/PreferencesActivity.java | 6 ++++++ .../androidaps/plugins/Wear/WearPlugin.java | 4 +++- .../Wear/wearintegration/WatchUpdaterService.java | 10 +++++++--- app/src/main/res/values/strings.xml | 3 +++ app/src/main/res/xml/pref_wear.xml | 14 ++++++++++++++ 5 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 app/src/main/res/xml/pref_wear.xml diff --git a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java index f0d60cae19..d9807e9d00 100644 --- a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java @@ -20,6 +20,7 @@ import info.nightscout.androidaps.plugins.DanaR.DanaRPlugin; import info.nightscout.androidaps.plugins.DanaRKorean.DanaRKoreanPlugin; import info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin; import info.nightscout.androidaps.plugins.VirtualPump.VirtualPumpPlugin; +import info.nightscout.androidaps.plugins.Wear.WearPlugin; import info.nightscout.utils.LocaleHelper; public class PreferencesActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener { @@ -115,6 +116,11 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre addPreferencesFromResource(R.xml.pref_others); addPreferencesFromResource(R.xml.pref_advanced); initSummary(getPreferenceScreen()); + + WearPlugin wearPlugin = (WearPlugin) MainApp.getSpecificPlugin(WearPlugin.class); + if (wearPlugin != null && wearPlugin.isEnabled(PluginBase.GENERAL)) { + addPreferencesFromResource(R.xml.pref_wear); + } } public Preference getPreference (String key) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java index 96f2b75062..4113076899 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java @@ -120,8 +120,10 @@ public class WearPlugin implements PluginBase { @Subscribe public void onStatusEvent(final EventPreferenceChange ev) { - //possibly new high or low mark + // possibly new high or low mark resendDataToWatch(); + // status may be formated differently + sendDataToWatch(true, false, false); } @Subscribe diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java index fc08941cd3..93fe700af2 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java @@ -520,9 +520,13 @@ public class WatchUpdaterService extends WearableListenerService implements IobTotal bolusIob = MainApp.getConfigBuilder().getActiveTreatments().getLastCalculation().round(); MainApp.getConfigBuilder().getActiveTempBasals().updateTotalIOB(); IobTotal basalIob = MainApp.getConfigBuilder().getActiveTempBasals().getLastCalculation().round(); - status += (shortString?"":(getString(R.string.treatments_iob_label_string) + " ")) + DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob) + "(" - + DecimalFormatter.to2Decimal(bolusIob.iob) + "|" - + DecimalFormatter.to2Decimal(basalIob.basaliob) + ")"; + status += (shortString?"":(getString(R.string.treatments_iob_label_string) + " ")) + DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob); + + if (mPrefs.getBoolean("wear_detailediob", true)) { + status += "(" + + DecimalFormatter.to2Decimal(bolusIob.iob) + "|" + + DecimalFormatter.to2Decimal(basalIob.basaliob) + ")"; + } PutDataMapRequest dataMapRequest = PutDataMapRequest.create(NEW_STATUS_PATH); //unique content diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 21bcb13ff5..23fddfed1f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -507,4 +507,7 @@ Password for settings Unlock settings Approaching insulin daily limit + Wear settings + Show detailed IOB + Break down IOB into bolus and basal IOB on the watchface diff --git a/app/src/main/res/xml/pref_wear.xml b/app/src/main/res/xml/pref_wear.xml new file mode 100644 index 0000000000..bc5c475f9e --- /dev/null +++ b/app/src/main/res/xml/pref_wear.xml @@ -0,0 +1,14 @@ + + + + + + + + \ No newline at end of file From abaafb87ebd575951d2e80d69b62f2cff5c939ca Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Sat, 18 Feb 2017 18:52:09 +0100 Subject: [PATCH 011/140] wear show on status when loop is disabled --- .../androidaps/plugins/Wear/WearPlugin.java | 12 ++++++++++++ .../wearintegration/WatchUpdaterService.java | 16 ++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java index 4113076899..c9520ac82c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java @@ -15,6 +15,7 @@ import info.nightscout.androidaps.events.EventRefreshGui; import info.nightscout.androidaps.events.EventTempBasalChange; import info.nightscout.androidaps.events.EventTreatmentChange; import info.nightscout.androidaps.interfaces.PluginBase; +import info.nightscout.androidaps.plugins.Loop.LoopPlugin; import info.nightscout.androidaps.plugins.Loop.events.EventNewOpenLoopNotification; import info.nightscout.androidaps.plugins.Overview.events.EventOverviewBolusProgress; import info.nightscout.androidaps.plugins.Wear.wearintegration.WatchUpdaterService; @@ -146,6 +147,17 @@ public class WearPlugin implements PluginBase { sendDataToWatch(false, true, false); } + @Subscribe + public void onStatusEvent(final EventRefreshGui ev) { + + LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop(); + if (activeloop == null) return; + + if(WatchUpdaterService.shouldReportLoopStatus(activeloop.isEnabled(PluginBase.LOOP))) { + sendDataToWatch(true, false, false); + } + } + @Subscribe public void onStatusEvent(final EventOverviewBolusProgress ev) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java index 93fe700af2..9e1f9709dd 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/wearintegration/WatchUpdaterService.java @@ -28,8 +28,10 @@ import info.nightscout.androidaps.R; import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.db.TempBasal; +import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.data.IobTotal; +import info.nightscout.androidaps.plugins.Loop.LoopPlugin; import info.nightscout.androidaps.plugins.Overview.OverviewPlugin; import info.nightscout.androidaps.plugins.Wear.ActionStringHandler; import info.nightscout.androidaps.plugins.Wear.WearPlugin; @@ -66,6 +68,7 @@ public class WatchUpdaterService extends WearableListenerService implements boolean wear_integration = false; SharedPreferences mPrefs; + private static boolean lastLoopStatus; @Override public void onCreate() { @@ -503,6 +506,15 @@ public class WatchUpdaterService extends WearableListenerService implements String status = ""; boolean shortString = true; + LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop(); + + if (activeloop != null && !activeloop.isEnabled(PluginBase.LOOP)) { + status += getString(R.string.disabledloop) + "\n"; + lastLoopStatus = false; + } else if (activeloop != null && activeloop.isEnabled(PluginBase.LOOP)) { + lastLoopStatus = true; + } + //Temp basal PumpInterface pump = MainApp.getConfigBuilder(); @@ -555,6 +567,10 @@ public class WatchUpdaterService extends WearableListenerService implements public void onConnectionFailed(ConnectionResult connectionResult) { } + public static boolean shouldReportLoopStatus(boolean enabled){ + return (lastLoopStatus != enabled); + } + public static int getBatteryLevel(Context context) { Intent batteryIntent = context.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); int level = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); From e0a9a7ae815ac8a4a8894edf7ca673539a7907c2 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sat, 18 Feb 2017 23:12:45 +0100 Subject: [PATCH 012/140] fix carbs logging in driver --- .../androidaps/plugins/DanaR/comm/MsgSetCarbsEntry.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSetCarbsEntry.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSetCarbsEntry.java index 667070c684..ed3e3ac455 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSetCarbsEntry.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSetCarbsEntry.java @@ -27,7 +27,7 @@ public class MsgSetCarbsEntry extends MessageBase { AddParamByte((byte) 0x43); //?? AddParamInt(amount); if (Config.logDanaMessageDetail) - log.debug("Set carb entry: " + amount + " date " + time.toString()); + log.debug("Set carb entry: " + amount + " date " + time.getTime().toString()); } @Override From a2eb76a8b8074c648b782ed79f041b1ea36eb444 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sun, 19 Feb 2017 00:06:29 +0100 Subject: [PATCH 013/140] handle if bolus progress is not sent --- .../androidaps/plugins/DanaR/Services/ExecutionService.java | 4 ++-- .../androidaps/plugins/DanaR/comm/MsgBolusProgress.java | 2 +- .../plugins/DanaRKorean/Services/ExecutionService.java | 5 +++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java index cc36efac9a..d855858286 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java @@ -395,7 +395,6 @@ public class ExecutionService extends Service { public boolean bolus(Double amount, int carbs, Treatment t) { bolusingTreatment = t; MsgBolusStart start = new MsgBolusStart(amount); - MsgBolusProgress progress = new MsgBolusProgress(amount, t); // initialize static variables MsgBolusStop stop = new MsgBolusStop(amount, t); connect("bolus"); @@ -405,6 +404,7 @@ public class ExecutionService extends Service { Calendar time = Calendar.getInstance(); mSerialIOThread.sendMessage(new MsgSetCarbsEntry(time, carbs)); } + MsgBolusProgress progress = new MsgBolusProgress(amount, t); // initialize static variables MainApp.bus().post(new EventDanaRBolusStart()); if (!stop.stopped) { @@ -415,7 +415,7 @@ public class ExecutionService extends Service { } while (!stop.stopped && !start.failed) { waitMsec(100); - if (progress.lastReceive != 0 && (new Date().getTime() - progress.lastReceive) > 5 * 1000L) { // if i didn't receive status for more than 5 sec expecting broken comm + if ((new Date().getTime() - progress.lastReceive) > 5 * 1000L) { // if i didn't receive status for more than 5 sec expecting broken comm stop.stopped = true; stop.forced = true; log.debug("Communication stopped"); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgBolusProgress.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgBolusProgress.java index aa8a77f7bf..fe30fea1be 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgBolusProgress.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgBolusProgress.java @@ -30,7 +30,7 @@ public class MsgBolusProgress extends MessageBase { this(); this.amount = amount; this.t = t; - lastReceive = 0; + lastReceive = new Date().getTime(); } @Override diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java index cb48424be0..a53b9fc030 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java @@ -387,7 +387,6 @@ public class ExecutionService extends Service { public boolean bolus(Double amount, int carbs, Treatment t) { bolusingTreatment = t; MsgBolusStart start = new MsgBolusStart(amount); - MsgBolusProgress progress = new MsgBolusProgress(amount, t); // initialize static variables MsgBolusStop stop = new MsgBolusStop(amount, t); connect("bolus"); @@ -397,6 +396,8 @@ public class ExecutionService extends Service { Calendar time = Calendar.getInstance(); mSerialIOThread.sendMessage(new MsgSetCarbsEntry(time, carbs)); } + + MsgBolusProgress progress = new MsgBolusProgress(amount, t); // initialize static variables MainApp.bus().post(new EventDanaRBolusStart()); if (!stop.stopped) { @@ -407,7 +408,7 @@ public class ExecutionService extends Service { } while (!stop.stopped && !start.failed) { waitMsec(100); - if (progress.lastReceive != 0 && (new Date().getTime() - progress.lastReceive) > 5 * 1000L) { // if i didn't receive status for more than 5 sec expecting broken comm + if ((new Date().getTime() - progress.lastReceive) > 5 * 1000L) { // if i didn't receive status for more than 5 sec expecting broken comm stop.stopped = true; stop.forced = true; log.debug("Communication stopped"); From 5f4eb1e4c49e07ee40b93a75fdd10a8c59975918 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sun, 19 Feb 2017 19:15:14 +0100 Subject: [PATCH 014/140] pump status tweaking --- .../events/EventPumpStatusChanged.java | 50 ++++++++ .../androidaps/interfaces/PumpInterface.java | 8 +- .../ConfigBuilder/ConfigBuilderPlugin.java | 10 +- .../plugins/DanaR/DanaRFragment.java | 10 +- .../androidaps/plugins/DanaR/DanaRPlugin.java | 4 +- .../DanaR/History/DanaRHistoryActivity.java | 17 +-- .../DanaR/History/DanaRStatsActivity.java | 108 ++++++++---------- .../DanaR/Services/ExecutionService.java | 32 +++--- .../events/EventDanaRConnectionStatus.java | 23 ---- .../DanaRKorean/DanaRKoreanFragment.java | 10 +- .../DanaRKorean/DanaRKoreanPlugin.java | 6 +- .../History/DanaRHistoryActivity.java | 17 +-- .../History/DanaRStatsActivity.java | 108 ++++++++---------- .../Services/ExecutionService.java | 33 +++--- .../androidaps/plugins/MDI/MDIPlugin.java | 4 +- .../Overview/Dialogs/BolusProgressDialog.java | 19 +-- .../plugins/Overview/OverviewFragment.java | 55 ++++----- .../VirtualPump/VirtualPumpPlugin.java | 4 +- .../receivers/KeepAliveReceiver.java | 6 +- app/src/main/res/layout/overview_fragment.xml | 23 ++-- app/src/main/res/values/colors.xml | 2 +- 21 files changed, 263 insertions(+), 286 deletions(-) create mode 100644 app/src/main/java/info/nightscout/androidaps/events/EventPumpStatusChanged.java delete mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/DanaR/events/EventDanaRConnectionStatus.java diff --git a/app/src/main/java/info/nightscout/androidaps/events/EventPumpStatusChanged.java b/app/src/main/java/info/nightscout/androidaps/events/EventPumpStatusChanged.java new file mode 100644 index 0000000000..ab697e4840 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/events/EventPumpStatusChanged.java @@ -0,0 +1,50 @@ +package info.nightscout.androidaps.events; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; + +/** + * Created by mike on 19.02.2017. + */ + +public class EventPumpStatusChanged { + public static final int CONNECTING = 0; + public static final int CONNECTED = 1; + public static final int PERFORMING = 2; + public static final int DISCONNECTING = 3; + public static final int DISCONNECTED = 4; + + public int sStatus = DISCONNECTED; + public int sSecondsElapsed = 0; + public String sPerfomingAction = ""; + + public EventPumpStatusChanged(int status) { + sStatus = status; + sSecondsElapsed = 0; + } + + public EventPumpStatusChanged(int status, int secondsElapsed) { + sStatus = status; + sSecondsElapsed = secondsElapsed; + } + + public EventPumpStatusChanged(String action) { + sStatus = PERFORMING; + sSecondsElapsed = 0; + sPerfomingAction = action; + } + + public String textStatus() { + if (sStatus == CONNECTING) + return String.format(MainApp.sResources.getString(R.string.danar_history_connectingfor), sSecondsElapsed); + else if (sStatus == CONNECTED) + return MainApp.sResources.getString(R.string.connected); + else if (sStatus == PERFORMING) + return sPerfomingAction; + else if (sStatus == DISCONNECTING) + return MainApp.sResources.getString(R.string.disconnecting); + else if (sStatus == DISCONNECTED) + return ""; + return ""; + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/interfaces/PumpInterface.java b/app/src/main/java/info/nightscout/androidaps/interfaces/PumpInterface.java index 18f0c54da6..6b6d8e856f 100644 --- a/app/src/main/java/info/nightscout/androidaps/interfaces/PumpInterface.java +++ b/app/src/main/java/info/nightscout/androidaps/interfaces/PumpInterface.java @@ -29,8 +29,8 @@ public interface PumpInterface { int setNewBasalProfile(NSProfile profile); boolean isThisProfileSet(NSProfile profile); - Date lastStatusTime(); - void updateStatus(String reason); + Date lastDataTime(); + void refreshDataFromPump(String reason); double getBaseBasalRate(); // base basal rate, not temp basal double getTempBasalAbsoluteRate(); @@ -51,7 +51,9 @@ public interface PumpInterface { JSONObject getJSONStatus(); String deviceID(); + // Pump capabilities PumpDescription getPumpDescription(); - public String shortStatus(boolean veryShort); + // Short info for SMS, Wear etc + String shortStatus(boolean veryShort); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java index 129ba98ff7..0e988d6862 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java @@ -390,13 +390,13 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain } @Override - public Date lastStatusTime() { - return activePump.lastStatusTime(); + public Date lastDataTime() { + return activePump.lastDataTime(); } @Override - public void updateStatus(String reason) { - activePump.updateStatus(reason); + public void refreshDataFromPump(String reason) { + activePump.refreshDataFromPump(reason); } @Override @@ -682,7 +682,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain public String deviceID() { if (activePump != null) return activePump.deviceID(); - else return "Unknown"; + else return "No Pump active!"; } @Override diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRFragment.java index a9d4ed5b36..c0faeddef1 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRFragment.java @@ -24,12 +24,12 @@ import java.util.Date; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; +import info.nightscout.androidaps.events.EventPumpStatusChanged; import info.nightscout.androidaps.events.EventTempBasalChange; import info.nightscout.androidaps.interfaces.FragmentBase; import info.nightscout.androidaps.plugins.DanaR.Dialogs.ProfileViewDialog; import info.nightscout.androidaps.plugins.DanaR.History.DanaRHistoryActivity; import info.nightscout.androidaps.plugins.DanaR.History.DanaRStatsActivity; -import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRNewStatus; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; @@ -165,18 +165,18 @@ public class DanaRFragment extends Fragment implements FragmentBase { } @Subscribe - public void onStatusEvent(final EventDanaRConnectionStatus c) { + public void onStatusEvent(final EventPumpStatusChanged c) { Activity activity = getActivity(); if (activity != null) { activity.runOnUiThread( new Runnable() { @Override public void run() { - if (c.sStatus == EventDanaRConnectionStatus.CONNECTING) + if (c.sStatus == EventPumpStatusChanged.CONNECTING) btConnectionView.setText("{fa-bluetooth-b spin} " + c.sSecondsElapsed + "s"); - else if (c.sStatus == EventDanaRConnectionStatus.CONNECTED) + else if (c.sStatus == EventPumpStatusChanged.CONNECTED) btConnectionView.setText("{fa-bluetooth}"); - else + else if (c.sStatus == EventPumpStatusChanged.DISCONNECTED) btConnectionView.setText("{fa-bluetooth-b}"); } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java index e116ffffe6..556c6d9770 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java @@ -285,12 +285,12 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf } @Override - public Date lastStatusTime() { + public Date lastDataTime() { return getDanaRPump().lastConnection; } @Override - public void updateStatus(String reason) { + public void refreshDataFromPump(String reason) { if (!isConnected() && !isConnecting()) { doConnect(reason); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRHistoryActivity.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRHistoryActivity.java index ea1adaa908..994d5b629e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRHistoryActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRHistoryActivity.java @@ -38,10 +38,10 @@ import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.db.DanaRHistoryRecord; +import info.nightscout.androidaps.events.EventPumpStatusChanged; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.DanaR.Services.ExecutionService; import info.nightscout.androidaps.plugins.DanaR.comm.RecordTypes; -import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRSyncStatus; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DateUtil; @@ -306,7 +306,7 @@ public class DanaRHistoryActivity extends Activity { case RecordTypes.RECORD_TYPE_DAILY: holder.dailybasal.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBasal()) + "U"); holder.dailybolus.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBolus()) + "U"); - holder.dailytotal.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBolus()+ record.getRecordDailyBasal()) + "U"); + holder.dailytotal.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBolus() + record.getRecordDailyBasal()) + "U"); holder.time.setText(DateUtil.dateString(record.getRecordDate())); holder.time.setVisibility(View.VISIBLE); holder.value.setVisibility(View.GONE); @@ -434,21 +434,12 @@ public class DanaRHistoryActivity extends Activity { } @Subscribe - public void onStatusEvent(final EventDanaRConnectionStatus c) { + public void onStatusEvent(final EventPumpStatusChanged s) { runOnUiThread( new Runnable() { @Override public void run() { - if (c.sStatus == EventDanaRConnectionStatus.CONNECTING) { - statusView.setText(String.format(getString(R.string.danar_history_connectingfor), c.sSecondsElapsed)); - log.debug("EventDanaRConnectionStatus: " + "Connecting for " + c.sSecondsElapsed + "s"); - } else if (c.sStatus == EventDanaRConnectionStatus.CONNECTED) { - statusView.setText(MainApp.sResources.getString(R.string.connected)); - log.debug("EventDanaRConnectionStatus: Connected"); - } else { - statusView.setText(MainApp.sResources.getString(R.string.disconnected)); - log.debug("EventDanaRConnectionStatus: Disconnected"); - } + statusView.setText(s.textStatus()); } } ); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRStatsActivity.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRStatsActivity.java index 674213d66f..7d5bf0c548 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRStatsActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/History/DanaRStatsActivity.java @@ -48,12 +48,12 @@ import java.util.List; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.db.DanaRHistoryRecord; +import info.nightscout.androidaps.events.EventPumpStatusChanged; import info.nightscout.androidaps.interfaces.ProfileInterface; import info.nightscout.androidaps.plugins.CircadianPercentageProfile.CircadianPercentageProfilePlugin; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.DanaR.Services.ExecutionService; import info.nightscout.androidaps.plugins.DanaR.comm.RecordTypes; -import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRSyncStatus; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.SafeParse; @@ -68,11 +68,11 @@ public class DanaRStatsActivity extends Activity { private Handler mHandler; private static HandlerThread mHandlerThread; - TextView statusView, statsMessage,totalBaseBasal2; + TextView statusView, statsMessage, totalBaseBasal2; EditText totalBaseBasal; Button reloadButton; LinearLayoutManager llm; - TableLayout tl,ctl,etl; + TableLayout tl, ctl, etl; String TBB; double magicNumber; DecimalFormat decimalFormat; @@ -118,15 +118,15 @@ public class DanaRStatsActivity extends Activity { public boolean dispatchTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { View myView = getCurrentFocus(); - if ( myView instanceof EditText) { + if (myView instanceof EditText) { Rect rect = new Rect(); myView.getGlobalVisibleRect(rect); - if (!rect.contains((int)event.getRawX(), (int)event.getRawY())) { + if (!rect.contains((int) event.getRawX(), (int) event.getRawY())) { myView.clearFocus(); } } } - return super.dispatchTouchEvent( event ); + return super.dispatchTouchEvent(event); } ServiceConnection mConnection = new ServiceConnection() { @@ -172,11 +172,11 @@ public class DanaRStatsActivity extends Activity { totalBaseBasal.setText(TBB); ProfileInterface pi = ConfigBuilderPlugin.getActiveProfile(); - if (pi != null && pi instanceof CircadianPercentageProfilePlugin){ - double cppTBB = ((CircadianPercentageProfilePlugin)pi).baseBasalSum(); + if (pi != null && pi instanceof CircadianPercentageProfilePlugin) { + double cppTBB = ((CircadianPercentageProfilePlugin) pi).baseBasalSum(); totalBaseBasal.setText(decimalFormat.format(cppTBB)); SharedPreferences.Editor edit = preferences.edit(); - edit.putString("TBB",totalBaseBasal.getText().toString()); + edit.putString("TBB", totalBaseBasal.getText().toString()); edit.commit(); TBB = preferences.getString("TBB", ""); } @@ -312,7 +312,7 @@ public class DanaRStatsActivity extends Activity { totalBaseBasal.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { - if(actionId== EditorInfo.IME_ACTION_DONE){ + if (actionId == EditorInfo.IME_ACTION_DONE) { totalBaseBasal.clearFocus(); return true; } @@ -323,11 +323,11 @@ public class DanaRStatsActivity extends Activity { totalBaseBasal.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { - if(hasFocus){ + if (hasFocus) { totalBaseBasal.getText().clear(); } else { SharedPreferences.Editor edit = preferences.edit(); - edit.putString("TBB",totalBaseBasal.getText().toString()); + edit.putString("TBB", totalBaseBasal.getText().toString()); edit.commit(); TBB = preferences.getString("TBB", ""); loadDataFromDB(RecordTypes.RECORD_TYPE_DAILY); @@ -362,15 +362,14 @@ public class DanaRStatsActivity extends Activity { cleanTable(etl); DateFormat df = new SimpleDateFormat("dd.MM."); - if(TextUtils.isEmpty(TBB)) { + if (TextUtils.isEmpty(TBB)) { totalBaseBasal.setError("Please Enter Total Base Basal"); return; - } - else { + } else { magicNumber = SafeParse.stringToDouble(TBB); } - magicNumber *=2; + magicNumber *= 2; totalBaseBasal2.setText(decimalFormat.format(magicNumber)); int i = 0; @@ -379,45 +378,45 @@ public class DanaRStatsActivity extends Activity { double weighted05 = 0d; double weighted07 = 0d; - for (DanaRHistoryRecord record: historyList) { - double tdd= record.getRecordDailyBolus() + record.getRecordDailyBasal(); + for (DanaRHistoryRecord record : historyList) { + double tdd = record.getRecordDailyBolus() + record.getRecordDailyBasal(); // Create the table row TableRow tr = new TableRow(DanaRStatsActivity.this); - if(i%2!=0) tr.setBackgroundColor(Color.DKGRAY); - tr.setId(100+i); + if (i % 2 != 0) tr.setBackgroundColor(Color.DKGRAY); + tr.setId(100 + i); tr.setLayoutParams(new TableLayout.LayoutParams( TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT)); // Here create the TextView dynamically TextView labelDATE = new TextView(DanaRStatsActivity.this); - labelDATE.setId(200+i); + labelDATE.setId(200 + i); labelDATE.setText(df.format(new Date(record.getRecordDate()))); labelDATE.setTextColor(Color.WHITE); tr.addView(labelDATE); TextView labelBASAL = new TextView(DanaRStatsActivity.this); - labelBASAL.setId(300+i); + labelBASAL.setId(300 + i); labelBASAL.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBasal()) + " U"); labelBASAL.setTextColor(Color.WHITE); tr.addView(labelBASAL); TextView labelBOLUS = new TextView(DanaRStatsActivity.this); - labelBOLUS.setId(400+i); + labelBOLUS.setId(400 + i); labelBOLUS.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBolus()) + " U"); labelBOLUS.setTextColor(Color.WHITE); tr.addView(labelBOLUS); TextView labelTDD = new TextView(DanaRStatsActivity.this); - labelTDD.setId(500+i); + labelTDD.setId(500 + i); labelTDD.setText(DecimalFormatter.to2Decimal(tdd) + " U"); labelTDD.setTextColor(Color.WHITE); tr.addView(labelTDD); TextView labelRATIO = new TextView(DanaRStatsActivity.this); - labelRATIO.setId(600+i); - labelRATIO.setText(Math.round(100*tdd/magicNumber) +" %"); + labelRATIO.setId(600 + i); + labelRATIO.setText(Math.round(100 * tdd / magicNumber) + " %"); labelRATIO.setTextColor(Color.WHITE); tr.addView(labelRATIO); @@ -431,28 +430,28 @@ public class DanaRStatsActivity extends Activity { // Create the cumtable row TableRow ctr = new TableRow(DanaRStatsActivity.this); - if(i%2==0) ctr.setBackgroundColor(Color.DKGRAY); - ctr.setId(700+i); + if (i % 2 == 0) ctr.setBackgroundColor(Color.DKGRAY); + ctr.setId(700 + i); ctr.setLayoutParams(new TableLayout.LayoutParams( TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT)); // Here create the TextView dynamically TextView labelDAYS = new TextView(DanaRStatsActivity.this); - labelDAYS.setId(800+i); + labelDAYS.setId(800 + i); labelDAYS.setText("" + i); labelDAYS.setTextColor(Color.WHITE); ctr.addView(labelDAYS); TextView labelCUMTDD = new TextView(DanaRStatsActivity.this); - labelCUMTDD.setId(900+i); - labelCUMTDD.setText(DecimalFormatter.to2Decimal(sum/i) + " U"); + labelCUMTDD.setId(900 + i); + labelCUMTDD.setText(DecimalFormatter.to2Decimal(sum / i) + " U"); labelCUMTDD.setTextColor(Color.WHITE); ctr.addView(labelCUMTDD); TextView labelCUMRATIO = new TextView(DanaRStatsActivity.this); - labelCUMRATIO.setId(1000+i); - labelCUMRATIO.setText(Math.round(100*sum/i/magicNumber) + " %"); + labelCUMRATIO.setId(1000 + i); + labelCUMRATIO.setText(Math.round(100 * sum / i / magicNumber) + " %"); labelCUMRATIO.setTextColor(Color.WHITE); ctr.addView(labelCUMRATIO); @@ -462,7 +461,7 @@ public class DanaRStatsActivity extends Activity { TableLayout.LayoutParams.WRAP_CONTENT)); } - if (historyList.size()<3 || !(df.format(new Date(historyList.get(0).getRecordDate())).equals(df.format(new Date(System.currentTimeMillis() - 1000*60*60*24))))){ + if (historyList.size() < 3 || !(df.format(new Date(historyList.get(0).getRecordDate())).equals(df.format(new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24))))) { statsMessage.setVisibility(View.VISIBLE); statsMessage.setText(getString(R.string.danar_stats_olddata_Message)); @@ -474,38 +473,38 @@ public class DanaRStatsActivity extends Activity { i = 0; - for (DanaRHistoryRecord record: historyList) { - double tdd= record.getRecordDailyBolus() + record.getRecordDailyBasal(); - if(i == 0 ) { + for (DanaRHistoryRecord record : historyList) { + double tdd = record.getRecordDailyBolus() + record.getRecordDailyBasal(); + if (i == 0) { weighted03 = tdd; weighted05 = tdd; weighted07 = tdd; } else { - weighted07 = (weighted07*0.3 + tdd*0.7); - weighted05 = (weighted05*0.5 + tdd*0.5); - weighted03 = (weighted03*0.7 + tdd*0.3); + weighted07 = (weighted07 * 0.3 + tdd * 0.7); + weighted05 = (weighted05 * 0.5 + tdd * 0.5); + weighted03 = (weighted03 * 0.7 + tdd * 0.3); } i++; } // Create the exptable row TableRow etr = new TableRow(DanaRStatsActivity.this); - if(i%2!=0) etr.setBackgroundColor(Color.DKGRAY); - etr.setId(1100+i); + if (i % 2 != 0) etr.setBackgroundColor(Color.DKGRAY); + etr.setId(1100 + i); etr.setLayoutParams(new TableLayout.LayoutParams( TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT)); // Here create the TextView dynamically TextView labelWEIGHT = new TextView(DanaRStatsActivity.this); - labelWEIGHT.setId(1200+i); + labelWEIGHT.setId(1200 + i); labelWEIGHT.setText("0.3\n" + "0.5\n" + "0.7"); labelWEIGHT.setTextColor(Color.WHITE); etr.addView(labelWEIGHT); TextView labelEXPTDD = new TextView(DanaRStatsActivity.this); - labelEXPTDD.setId(1300+i); + labelEXPTDD.setId(1300 + i); labelEXPTDD.setText(DecimalFormatter.to2Decimal(weighted03) + " U\n" + DecimalFormatter.to2Decimal(weighted05) + " U\n" + DecimalFormatter.to2Decimal(weighted07) + " U"); @@ -513,10 +512,10 @@ public class DanaRStatsActivity extends Activity { etr.addView(labelEXPTDD); TextView labelEXPRATIO = new TextView(DanaRStatsActivity.this); - labelEXPRATIO.setId(1400+i); - labelEXPRATIO.setText(Math.round(100*weighted03/magicNumber) +" %\n" - + Math.round(100*weighted05/magicNumber) +" %\n" - + Math.round(100*weighted07/magicNumber) +" %"); + labelEXPRATIO.setId(1400 + i); + labelEXPRATIO.setText(Math.round(100 * weighted03 / magicNumber) + " %\n" + + Math.round(100 * weighted05 / magicNumber) + " %\n" + + Math.round(100 * weighted07 / magicNumber) + " %"); labelEXPRATIO.setTextColor(Color.WHITE); etr.addView(labelEXPRATIO); @@ -549,21 +548,12 @@ public class DanaRStatsActivity extends Activity { } @Subscribe - public void onStatusEvent(final EventDanaRConnectionStatus c) { + public void onStatusEvent(final EventPumpStatusChanged c) { runOnUiThread( new Runnable() { @Override public void run() { - if (c.sStatus == EventDanaRConnectionStatus.CONNECTING) { - statusView.setText(String.format(getString(R.string.danar_history_connectingfor), c.sSecondsElapsed)); - log.debug("EventDanaRConnectionStatus: " + "Connecting for " + c.sSecondsElapsed + "s"); - } else if (c.sStatus == EventDanaRConnectionStatus.CONNECTED) { - statusView.setText(MainApp.sResources.getString(R.string.connected)); - log.debug("EventDanaRConnectionStatus: Connected"); - } else { - statusView.setText(MainApp.sResources.getString(R.string.disconnected)); - log.debug("EventDanaRConnectionStatus: Disconnected"); - } + statusView.setText(c.textStatus()); } } ); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java index d855858286..78a0a1f0bb 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java @@ -33,6 +33,7 @@ import info.nightscout.androidaps.db.Treatment; import info.nightscout.androidaps.events.EventAppExit; import info.nightscout.androidaps.events.EventInitializationChanged; import info.nightscout.androidaps.events.EventPreferenceChange; +import info.nightscout.androidaps.events.EventPumpStatusChanged; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.DanaR.DanaRPlugin; import info.nightscout.androidaps.plugins.DanaR.DanaRPump; @@ -77,7 +78,6 @@ import info.nightscout.androidaps.plugins.DanaR.comm.MsgStatusBolusExtended; import info.nightscout.androidaps.plugins.DanaR.comm.MsgStatusTempBasal; import info.nightscout.androidaps.plugins.DanaR.comm.RecordTypes; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRBolusStart; -import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRNewStatus; import info.nightscout.androidaps.plugins.Overview.Notification; import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; @@ -117,7 +117,7 @@ public class ExecutionService extends Service { if (mSerialIOThread != null) { mSerialIOThread.disconnect("BT disconnection broadcast"); } - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.DISCONNECTED, 0)); + MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTED)); } } } @@ -207,7 +207,7 @@ public class ExecutionService extends Service { long startTime = new Date().getTime(); while (!isConnected() && startTime + maxConnectionTime >= new Date().getTime()) { long secondsElapsed = (new Date().getTime() - startTime) / 1000L; - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.CONNECTING, (int) secondsElapsed)); + MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.CONNECTING, (int) secondsElapsed)); if (Config.logDanaBTComm) log.debug("connect waiting " + secondsElapsed + "sec from: " + from); try { @@ -226,18 +226,19 @@ public class ExecutionService extends Service { mSerialIOThread.disconnect("Recreate SerialIOThread"); } mSerialIOThread = new SerialIOThread(mRfcommSocket); - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.CONNECTED, 0)); + MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.CONNECTED, 0)); if (!getPumpStatus()) { mSerialIOThread.disconnect("getPumpStatus failed"); waitMsec(3000); if (!MainApp.getSpecificPlugin(DanaRPlugin.class).isEnabled(PluginBase.PUMP)) return; getBTSocketForSelectedPump(); + startTime = new Date().getTime(); } } } if (!isConnected()) { - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.DISCONNECTED, 0)); + MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTED)); log.error("Pump connection timed out"); } connectionInProgress = false; @@ -279,7 +280,7 @@ public class ExecutionService extends Service { private boolean getPumpStatus() { try { - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.gettingpumpstatus))); + MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingpumpstatus))); MsgStatus statusMsg = new MsgStatus(); MsgStatusBasic statusBasicMsg = new MsgStatusBasic(); MsgStatusTempBasal tempStatusMsg = new MsgStatusTempBasal(); @@ -356,39 +357,40 @@ public class ExecutionService extends Service { public boolean tempBasal(int percent, int durationInHours) { connect("tempBasal"); if (!isConnected()) return false; - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.settingtempbasal))); + MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.settingtempbasal))); mSerialIOThread.sendMessage(new MsgSetTempBasalStart(percent, durationInHours)); mSerialIOThread.sendMessage(new MsgStatusTempBasal()); - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting))); + MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING)); return true; } public boolean tempBasalStop() { connect("tempBasalStop"); if (!isConnected()) return false; - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.stoppingtempbasal))); + MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.stoppingtempbasal))); mSerialIOThread.sendMessage(new MsgSetTempBasalStop()); mSerialIOThread.sendMessage(new MsgStatusTempBasal()); - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting))); + MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING)); return true; } public boolean extendedBolus(double insulin, int durationInHalfHours) { connect("extendedBolus"); if (!isConnected()) return false; - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.settingextendedbolus))); + MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.settingextendedbolus))); mSerialIOThread.sendMessage(new MsgSetExtendedBolusStart(insulin, (byte) (durationInHalfHours & 0xFF))); mSerialIOThread.sendMessage(new MsgStatusBolusExtended()); - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting))); + MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING)); return true; } public boolean extendedBolusStop() { connect("extendedBolusStop"); if (!isConnected()) return false; - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.stoppingextendedbolus))); + MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.stoppingextendedbolus))); mSerialIOThread.sendMessage(new MsgSetExtendedBolusStop()); mSerialIOThread.sendMessage(new MsgStatusBolusExtended()); + MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING)); return true; } @@ -500,7 +502,7 @@ public class ExecutionService extends Service { public boolean updateBasalsInPump(final NSProfile profile) { connect("updateBasalsInPump"); if (!isConnected()) return false; - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.updatingbasalrates))); + MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.updatingbasalrates))); double[] basal = buildDanaRProfileRecord(profile); MsgSetBasalProfile msgSet = new MsgSetBasalProfile((byte) 0, basal); mSerialIOThread.sendMessage(msgSet); @@ -508,7 +510,7 @@ public class ExecutionService extends Service { mSerialIOThread.sendMessage(msgActivate); danaRPump.lastSettingsRead = new Date(0); // force read full settings getPumpStatus(); - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting))); + MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING)); return true; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/events/EventDanaRConnectionStatus.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/events/EventDanaRConnectionStatus.java deleted file mode 100644 index fef8868d2b..0000000000 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/events/EventDanaRConnectionStatus.java +++ /dev/null @@ -1,23 +0,0 @@ -package info.nightscout.androidaps.plugins.DanaR.events; - -public class EventDanaRConnectionStatus { - public static final int CONNECTING = 0; - public static final int CONNECTED = 1; - public static final int DISCONNECTED = 2; - public static final int PERFORMING = 3; - - public int sStatus = DISCONNECTED; - public int sSecondsElapsed = 0; - public String sAction = ""; - - public EventDanaRConnectionStatus(int status, int secondsElapsed) { - sStatus = status; - sSecondsElapsed = secondsElapsed; - } - - public EventDanaRConnectionStatus(int status, int secondsElapsed, String action) { - sStatus = status; - sSecondsElapsed = secondsElapsed; - sAction = action; - } -} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanFragment.java index 6e854f85e5..af4d12e5ef 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanFragment.java @@ -24,10 +24,10 @@ import java.util.Date; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; +import info.nightscout.androidaps.events.EventPumpStatusChanged; import info.nightscout.androidaps.events.EventTempBasalChange; import info.nightscout.androidaps.interfaces.FragmentBase; import info.nightscout.androidaps.plugins.DanaR.Dialogs.ProfileViewDialog; -import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRNewStatus; import info.nightscout.androidaps.plugins.DanaRKorean.History.DanaRHistoryActivity; import info.nightscout.androidaps.plugins.DanaRKorean.History.DanaRStatsActivity; @@ -162,18 +162,18 @@ public class DanaRKoreanFragment extends Fragment implements FragmentBase { } @Subscribe - public void onStatusEvent(final EventDanaRConnectionStatus c) { + public void onStatusEvent(final EventPumpStatusChanged c) { Activity activity = getActivity(); if (activity != null) { activity.runOnUiThread( new Runnable() { @Override public void run() { - if (c.sStatus == EventDanaRConnectionStatus.CONNECTING) + if (c.sStatus == EventPumpStatusChanged.CONNECTING) btConnectionView.setText("{fa-bluetooth-b spin} " + c.sSecondsElapsed + "s"); - else if (c.sStatus == EventDanaRConnectionStatus.CONNECTED) + else if (c.sStatus == EventPumpStatusChanged.CONNECTED) btConnectionView.setText("{fa-bluetooth}"); - else + else if (c.sStatus == EventPumpStatusChanged.DISCONNECTED) btConnectionView.setText("{fa-bluetooth-b}"); } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java index 59d74c4131..683e2d8f1b 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java @@ -72,6 +72,8 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints return sDanaRKoreanPump; } + String textStatus = ""; + public DanaRKoreanPlugin() { SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(MainApp.instance().getApplicationContext()); useExtendedBoluses = sharedPreferences.getBoolean("danar_useextended", false); @@ -285,12 +287,12 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints } @Override - public Date lastStatusTime() { + public Date lastDataTime() { return getDanaRPump().lastConnection; } @Override - public void updateStatus(String reason) { + public void refreshDataFromPump(String reason) { if (!isConnected() && !isConnecting()) { doConnect(reason); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/History/DanaRHistoryActivity.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/History/DanaRHistoryActivity.java index 98e31261b5..158d0b43cb 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/History/DanaRHistoryActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/History/DanaRHistoryActivity.java @@ -38,10 +38,10 @@ import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.db.DanaRHistoryRecord; +import info.nightscout.androidaps.events.EventPumpStatusChanged; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.DanaR.History.DanaRNSHistorySync; import info.nightscout.androidaps.plugins.DanaR.comm.RecordTypes; -import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRSyncStatus; import info.nightscout.androidaps.plugins.DanaRKorean.Services.ExecutionService; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; @@ -305,7 +305,7 @@ public class DanaRHistoryActivity extends Activity { case RecordTypes.RECORD_TYPE_DAILY: holder.dailybasal.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBasal()) + "U"); holder.dailybolus.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBolus()) + "U"); - holder.dailytotal.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBolus()+ record.getRecordDailyBasal()) + "U"); + holder.dailytotal.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBolus() + record.getRecordDailyBasal()) + "U"); holder.time.setText(DateUtil.dateString(record.getRecordDate())); holder.time.setVisibility(View.VISIBLE); holder.value.setVisibility(View.GONE); @@ -433,21 +433,12 @@ public class DanaRHistoryActivity extends Activity { } @Subscribe - public void onStatusEvent(final EventDanaRConnectionStatus c) { + public void onStatusEvent(final EventPumpStatusChanged c) { runOnUiThread( new Runnable() { @Override public void run() { - if (c.sStatus == EventDanaRConnectionStatus.CONNECTING) { - statusView.setText(String.format(getString(R.string.danar_history_connectingfor), c.sSecondsElapsed)); - log.debug("EventDanaRConnectionStatus: " + "Connecting for " + c.sSecondsElapsed + "s"); - } else if (c.sStatus == EventDanaRConnectionStatus.CONNECTED) { - statusView.setText(MainApp.sResources.getString(R.string.connected)); - log.debug("EventDanaRConnectionStatus: Connected"); - } else { - statusView.setText(MainApp.sResources.getString(R.string.disconnected)); - log.debug("EventDanaRConnectionStatus: Disconnected"); - } + statusView.setText(c.textStatus()); } } ); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/History/DanaRStatsActivity.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/History/DanaRStatsActivity.java index d8b5390fbd..0c0e2f112b 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/History/DanaRStatsActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/History/DanaRStatsActivity.java @@ -48,11 +48,11 @@ import java.util.List; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.db.DanaRHistoryRecord; +import info.nightscout.androidaps.events.EventPumpStatusChanged; import info.nightscout.androidaps.interfaces.ProfileInterface; import info.nightscout.androidaps.plugins.CircadianPercentageProfile.CircadianPercentageProfilePlugin; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.DanaR.comm.RecordTypes; -import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRSyncStatus; import info.nightscout.androidaps.plugins.DanaRKorean.Services.ExecutionService; import info.nightscout.utils.DecimalFormatter; @@ -68,11 +68,11 @@ public class DanaRStatsActivity extends Activity { private Handler mHandler; private static HandlerThread mHandlerThread; - TextView statusView, statsMessage,totalBaseBasal2; + TextView statusView, statsMessage, totalBaseBasal2; EditText totalBaseBasal; Button reloadButton; LinearLayoutManager llm; - TableLayout tl,ctl,etl; + TableLayout tl, ctl, etl; String TBB; double magicNumber; DecimalFormat decimalFormat; @@ -118,15 +118,15 @@ public class DanaRStatsActivity extends Activity { public boolean dispatchTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { View myView = getCurrentFocus(); - if ( myView instanceof EditText) { + if (myView instanceof EditText) { Rect rect = new Rect(); myView.getGlobalVisibleRect(rect); - if (!rect.contains((int)event.getRawX(), (int)event.getRawY())) { + if (!rect.contains((int) event.getRawX(), (int) event.getRawY())) { myView.clearFocus(); } } } - return super.dispatchTouchEvent( event ); + return super.dispatchTouchEvent(event); } ServiceConnection mConnection = new ServiceConnection() { @@ -172,11 +172,11 @@ public class DanaRStatsActivity extends Activity { totalBaseBasal.setText(TBB); ProfileInterface pi = ConfigBuilderPlugin.getActiveProfile(); - if (pi != null && pi instanceof CircadianPercentageProfilePlugin){ - double cppTBB = ((CircadianPercentageProfilePlugin)pi).baseBasalSum(); + if (pi != null && pi instanceof CircadianPercentageProfilePlugin) { + double cppTBB = ((CircadianPercentageProfilePlugin) pi).baseBasalSum(); totalBaseBasal.setText(decimalFormat.format(cppTBB)); SharedPreferences.Editor edit = preferences.edit(); - edit.putString("TBB",totalBaseBasal.getText().toString()); + edit.putString("TBB", totalBaseBasal.getText().toString()); edit.commit(); TBB = preferences.getString("TBB", ""); } @@ -312,7 +312,7 @@ public class DanaRStatsActivity extends Activity { totalBaseBasal.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { - if(actionId== EditorInfo.IME_ACTION_DONE){ + if (actionId == EditorInfo.IME_ACTION_DONE) { totalBaseBasal.clearFocus(); return true; } @@ -323,11 +323,11 @@ public class DanaRStatsActivity extends Activity { totalBaseBasal.setOnFocusChangeListener(new View.OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { - if(hasFocus){ + if (hasFocus) { totalBaseBasal.getText().clear(); } else { SharedPreferences.Editor edit = preferences.edit(); - edit.putString("TBB",totalBaseBasal.getText().toString()); + edit.putString("TBB", totalBaseBasal.getText().toString()); edit.commit(); TBB = preferences.getString("TBB", ""); loadDataFromDB(RecordTypes.RECORD_TYPE_DAILY); @@ -362,15 +362,14 @@ public class DanaRStatsActivity extends Activity { cleanTable(etl); DateFormat df = new SimpleDateFormat("dd.MM."); - if(TextUtils.isEmpty(TBB)) { + if (TextUtils.isEmpty(TBB)) { totalBaseBasal.setError("Please Enter Total Base Basal"); return; - } - else { + } else { magicNumber = SafeParse.stringToDouble(TBB); } - magicNumber *=2; + magicNumber *= 2; totalBaseBasal2.setText(decimalFormat.format(magicNumber)); int i = 0; @@ -379,45 +378,45 @@ public class DanaRStatsActivity extends Activity { double weighted05 = 0d; double weighted07 = 0d; - for (DanaRHistoryRecord record: historyList) { - double tdd= record.getRecordDailyBolus() + record.getRecordDailyBasal(); + for (DanaRHistoryRecord record : historyList) { + double tdd = record.getRecordDailyBolus() + record.getRecordDailyBasal(); // Create the table row TableRow tr = new TableRow(DanaRStatsActivity.this); - if(i%2!=0) tr.setBackgroundColor(Color.DKGRAY); - tr.setId(100+i); + if (i % 2 != 0) tr.setBackgroundColor(Color.DKGRAY); + tr.setId(100 + i); tr.setLayoutParams(new TableLayout.LayoutParams( TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT)); // Here create the TextView dynamically TextView labelDATE = new TextView(DanaRStatsActivity.this); - labelDATE.setId(200+i); + labelDATE.setId(200 + i); labelDATE.setText(df.format(new Date(record.getRecordDate()))); labelDATE.setTextColor(Color.WHITE); tr.addView(labelDATE); TextView labelBASAL = new TextView(DanaRStatsActivity.this); - labelBASAL.setId(300+i); + labelBASAL.setId(300 + i); labelBASAL.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBasal()) + " U"); labelBASAL.setTextColor(Color.WHITE); tr.addView(labelBASAL); TextView labelBOLUS = new TextView(DanaRStatsActivity.this); - labelBOLUS.setId(400+i); + labelBOLUS.setId(400 + i); labelBOLUS.setText(DecimalFormatter.to2Decimal(record.getRecordDailyBolus()) + " U"); labelBOLUS.setTextColor(Color.WHITE); tr.addView(labelBOLUS); TextView labelTDD = new TextView(DanaRStatsActivity.this); - labelTDD.setId(500+i); + labelTDD.setId(500 + i); labelTDD.setText(DecimalFormatter.to2Decimal(tdd) + " U"); labelTDD.setTextColor(Color.WHITE); tr.addView(labelTDD); TextView labelRATIO = new TextView(DanaRStatsActivity.this); - labelRATIO.setId(600+i); - labelRATIO.setText(Math.round(100*tdd/magicNumber) +" %"); + labelRATIO.setId(600 + i); + labelRATIO.setText(Math.round(100 * tdd / magicNumber) + " %"); labelRATIO.setTextColor(Color.WHITE); tr.addView(labelRATIO); @@ -431,28 +430,28 @@ public class DanaRStatsActivity extends Activity { // Create the cumtable row TableRow ctr = new TableRow(DanaRStatsActivity.this); - if(i%2==0) ctr.setBackgroundColor(Color.DKGRAY); - ctr.setId(700+i); + if (i % 2 == 0) ctr.setBackgroundColor(Color.DKGRAY); + ctr.setId(700 + i); ctr.setLayoutParams(new TableLayout.LayoutParams( TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT)); // Here create the TextView dynamically TextView labelDAYS = new TextView(DanaRStatsActivity.this); - labelDAYS.setId(800+i); + labelDAYS.setId(800 + i); labelDAYS.setText("" + i); labelDAYS.setTextColor(Color.WHITE); ctr.addView(labelDAYS); TextView labelCUMTDD = new TextView(DanaRStatsActivity.this); - labelCUMTDD.setId(900+i); - labelCUMTDD.setText(DecimalFormatter.to2Decimal(sum/i) + " U"); + labelCUMTDD.setId(900 + i); + labelCUMTDD.setText(DecimalFormatter.to2Decimal(sum / i) + " U"); labelCUMTDD.setTextColor(Color.WHITE); ctr.addView(labelCUMTDD); TextView labelCUMRATIO = new TextView(DanaRStatsActivity.this); - labelCUMRATIO.setId(1000+i); - labelCUMRATIO.setText(Math.round(100*sum/i/magicNumber) + " %"); + labelCUMRATIO.setId(1000 + i); + labelCUMRATIO.setText(Math.round(100 * sum / i / magicNumber) + " %"); labelCUMRATIO.setTextColor(Color.WHITE); ctr.addView(labelCUMRATIO); @@ -462,7 +461,7 @@ public class DanaRStatsActivity extends Activity { TableLayout.LayoutParams.WRAP_CONTENT)); } - if (historyList.size()<3 || !(df.format(new Date(historyList.get(0).getRecordDate())).equals(df.format(new Date(System.currentTimeMillis() - 1000*60*60*24))))){ + if (historyList.size() < 3 || !(df.format(new Date(historyList.get(0).getRecordDate())).equals(df.format(new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24))))) { statsMessage.setVisibility(View.VISIBLE); statsMessage.setText(getString(R.string.danar_stats_olddata_Message)); @@ -474,38 +473,38 @@ public class DanaRStatsActivity extends Activity { i = 0; - for (DanaRHistoryRecord record: historyList) { - double tdd= record.getRecordDailyBolus() + record.getRecordDailyBasal(); - if(i == 0 ) { + for (DanaRHistoryRecord record : historyList) { + double tdd = record.getRecordDailyBolus() + record.getRecordDailyBasal(); + if (i == 0) { weighted03 = tdd; weighted05 = tdd; weighted07 = tdd; } else { - weighted07 = (weighted07*0.3 + tdd*0.7); - weighted05 = (weighted05*0.5 + tdd*0.5); - weighted03 = (weighted03*0.7 + tdd*0.3); + weighted07 = (weighted07 * 0.3 + tdd * 0.7); + weighted05 = (weighted05 * 0.5 + tdd * 0.5); + weighted03 = (weighted03 * 0.7 + tdd * 0.3); } i++; } // Create the exptable row TableRow etr = new TableRow(DanaRStatsActivity.this); - if(i%2!=0) etr.setBackgroundColor(Color.DKGRAY); - etr.setId(1100+i); + if (i % 2 != 0) etr.setBackgroundColor(Color.DKGRAY); + etr.setId(1100 + i); etr.setLayoutParams(new TableLayout.LayoutParams( TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT)); // Here create the TextView dynamically TextView labelWEIGHT = new TextView(DanaRStatsActivity.this); - labelWEIGHT.setId(1200+i); + labelWEIGHT.setId(1200 + i); labelWEIGHT.setText("0.3\n" + "0.5\n" + "0.7"); labelWEIGHT.setTextColor(Color.WHITE); etr.addView(labelWEIGHT); TextView labelEXPTDD = new TextView(DanaRStatsActivity.this); - labelEXPTDD.setId(1300+i); + labelEXPTDD.setId(1300 + i); labelEXPTDD.setText(DecimalFormatter.to2Decimal(weighted03) + " U\n" + DecimalFormatter.to2Decimal(weighted05) + " U\n" + DecimalFormatter.to2Decimal(weighted07) + " U"); @@ -513,10 +512,10 @@ public class DanaRStatsActivity extends Activity { etr.addView(labelEXPTDD); TextView labelEXPRATIO = new TextView(DanaRStatsActivity.this); - labelEXPRATIO.setId(1400+i); - labelEXPRATIO.setText(Math.round(100*weighted03/magicNumber) +" %\n" - + Math.round(100*weighted05/magicNumber) +" %\n" - + Math.round(100*weighted07/magicNumber) +" %"); + labelEXPRATIO.setId(1400 + i); + labelEXPRATIO.setText(Math.round(100 * weighted03 / magicNumber) + " %\n" + + Math.round(100 * weighted05 / magicNumber) + " %\n" + + Math.round(100 * weighted07 / magicNumber) + " %"); labelEXPRATIO.setTextColor(Color.WHITE); etr.addView(labelEXPRATIO); @@ -549,21 +548,12 @@ public class DanaRStatsActivity extends Activity { } @Subscribe - public void onStatusEvent(final EventDanaRConnectionStatus c) { + public void onStatusEvent(final EventPumpStatusChanged c) { runOnUiThread( new Runnable() { @Override public void run() { - if (c.sStatus == EventDanaRConnectionStatus.CONNECTING) { - statusView.setText(String.format(getString(R.string.danar_history_connectingfor), c.sSecondsElapsed)); - log.debug("EventDanaRConnectionStatus: " + "Connecting for " + c.sSecondsElapsed + "s"); - } else if (c.sStatus == EventDanaRConnectionStatus.CONNECTED) { - statusView.setText(MainApp.sResources.getString(R.string.connected)); - log.debug("EventDanaRConnectionStatus: Connected"); - } else { - statusView.setText(MainApp.sResources.getString(R.string.disconnected)); - log.debug("EventDanaRConnectionStatus: Disconnected"); - } + statusView.setText(c.textStatus()); } } ); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java index a53b9fc030..56650c4fcd 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java @@ -31,6 +31,7 @@ import info.nightscout.androidaps.db.Treatment; import info.nightscout.androidaps.events.EventAppExit; import info.nightscout.androidaps.events.EventInitializationChanged; import info.nightscout.androidaps.events.EventPreferenceChange; +import info.nightscout.androidaps.events.EventPumpStatusChanged; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.DanaR.comm.MessageBase; import info.nightscout.androidaps.plugins.DanaR.comm.MsgBolusProgress; @@ -57,7 +58,6 @@ import info.nightscout.androidaps.plugins.DanaR.comm.MsgSetTempBasalStop; import info.nightscout.androidaps.plugins.DanaR.comm.MsgSetTime; import info.nightscout.androidaps.plugins.DanaR.comm.RecordTypes; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRBolusStart; -import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRNewStatus; import info.nightscout.androidaps.plugins.DanaRKorean.DanaRKoreanPlugin; import info.nightscout.androidaps.plugins.DanaRKorean.DanaRKoreanPump; @@ -110,7 +110,7 @@ public class ExecutionService extends Service { if (mSerialIOThread != null) { mSerialIOThread.disconnect("BT disconnection broadcast"); } - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.DISCONNECTED, 0)); + MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTED)); } } } @@ -200,7 +200,7 @@ public class ExecutionService extends Service { long startTime = new Date().getTime(); while (!isConnected() && startTime + maxConnectionTime >= new Date().getTime()) { long secondsElapsed = (new Date().getTime() - startTime) / 1000L; - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.CONNECTING, (int) secondsElapsed)); + MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.CONNECTING, (int) secondsElapsed)); if (Config.logDanaBTComm) log.debug("connect waiting " + secondsElapsed + "sec from: " + from); try { @@ -219,18 +219,19 @@ public class ExecutionService extends Service { mSerialIOThread.disconnect("Recreate SerialIOThread"); } mSerialIOThread = new SerialIOThread(mRfcommSocket); - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.CONNECTED, 0)); + MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.CONNECTED)); if (!getPumpStatus()) { mSerialIOThread.disconnect("getPumpStatus failed"); waitMsec(3000); if (!MainApp.getSpecificPlugin(DanaRKoreanPlugin.class).isEnabled(PluginBase.PUMP)) return; getBTSocketForSelectedPump(); + startTime = new Date().getTime(); } } } if (!isConnected()) { - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.DISCONNECTED, 0)); + MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTED)); log.error("Pump connection timed out"); } connectionInProgress = false; @@ -272,7 +273,7 @@ public class ExecutionService extends Service { private boolean getPumpStatus() { try { - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.gettingpumpstatus))); + MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.gettingpumpstatus))); //MsgStatus statusMsg = new MsgStatus(); MsgStatusBasic statusBasicMsg = new MsgStatusBasic(); MsgStatusTempBasal tempStatusMsg = new MsgStatusTempBasal(); @@ -347,40 +348,40 @@ public class ExecutionService extends Service { public boolean tempBasal(int percent, int durationInHours) { connect("tempBasal"); if (!isConnected()) return false; - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.settingtempbasal))); + MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.settingtempbasal))); mSerialIOThread.sendMessage(new MsgSetTempBasalStart(percent, durationInHours)); mSerialIOThread.sendMessage(new MsgStatusTempBasal()); - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting))); + MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING)); return true; } public boolean tempBasalStop() { connect("tempBasalStop"); if (!isConnected()) return false; - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.stoppingtempbasal))); + MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.stoppingtempbasal))); mSerialIOThread.sendMessage(new MsgSetTempBasalStop()); mSerialIOThread.sendMessage(new MsgStatusTempBasal()); - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting))); + MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING)); return true; } public boolean extendedBolus(double insulin, int durationInHalfHours) { connect("extendedBolus"); if (!isConnected()) return false; - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.settingextendedbolus))); + MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.settingextendedbolus))); mSerialIOThread.sendMessage(new MsgSetExtendedBolusStart(insulin, (byte) (durationInHalfHours & 0xFF))); mSerialIOThread.sendMessage(new MsgStatusBolusExtended()); - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting))); + MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING)); return true; } public boolean extendedBolusStop() { connect("extendedBolusStop"); if (!isConnected()) return false; - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.stoppingextendedbolus))); + MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.stoppingextendedbolus))); mSerialIOThread.sendMessage(new MsgSetExtendedBolusStop()); mSerialIOThread.sendMessage(new MsgStatusBolusExtended()); - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting))); + MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING)); return true; } @@ -493,13 +494,13 @@ public class ExecutionService extends Service { public boolean updateBasalsInPump(final NSProfile profile) { connect("updateBasalsInPump"); if (!isConnected()) return false; - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.updatingbasalrates))); + MainApp.bus().post(new EventPumpStatusChanged(MainApp.sResources.getString(R.string.updatingbasalrates))); double[] basal = buildDanaRProfileRecord(profile); MsgSetSingleBasalProfile msgSet = new MsgSetSingleBasalProfile(basal); mSerialIOThread.sendMessage(msgSet); danaRKoreanPump.lastSettingsRead = new Date(0); // force read full settings getPumpStatus(); - MainApp.bus().post(new EventDanaRConnectionStatus(EventDanaRConnectionStatus.PERFORMING, 0, MainApp.sResources.getString(R.string.disconnecting))); + MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING)); return true; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/MDI/MDIPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/MDI/MDIPlugin.java index 0528ddf21d..534a77b766 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/MDI/MDIPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/MDI/MDIPlugin.java @@ -143,12 +143,12 @@ public class MDIPlugin implements PluginBase, PumpInterface { } @Override - public Date lastStatusTime() { + public Date lastDataTime() { return new Date(); } @Override - public void updateStatus(String reason) { + public void refreshDataFromPump(String reason) { // do nothing } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java index dfedda106e..a5d45128be 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java @@ -18,10 +18,10 @@ import org.slf4j.LoggerFactory; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; +import info.nightscout.androidaps.events.EventPumpStatusChanged; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.Overview.events.EventOverviewBolusProgress; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRBolusStart; -import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus; public class BolusProgressDialog extends DialogFragment implements View.OnClickListener { private static Logger log = LoggerFactory.getLogger(BolusProgressDialog.class); @@ -46,7 +46,7 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL bolusEnded = false; } - public void setHelperActivity(BolusProgressHelperActivity activity){ + public void setHelperActivity(BolusProgressHelperActivity activity) { this.helperActivity = activity; } @@ -77,9 +77,9 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL } @Override - public void dismiss(){ + public void dismiss() { super.dismiss(); - if (helperActivity!= null){ + if (helperActivity != null) { helperActivity.finish(); } } @@ -128,7 +128,7 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL } @Subscribe - public void onStatusEvent(final EventDanaRConnectionStatus c) { + public void onStatusEvent(final EventPumpStatusChanged c) { Activity activity = getActivity(); if (activity != null) { @@ -136,14 +136,7 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL new Runnable() { @Override public void run() { - if (c.sStatus == c.CONNECTING) { - statusView.setText(String.format(MainApp.sResources.getString(R.string.danar_history_connectingfor), c.sSecondsElapsed)); - } else if (c.sStatus == c.CONNECTED) { - statusView.setText(MainApp.sResources.getString(R.string.connected)); - } else { - statusView.setText(MainApp.sResources.getString(R.string.disconnected)); - if (started) scheduleDismiss(); - } + statusView.setText(c.textStatus()); } } ); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index 618aed3aee..ac9035b7fd 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -63,6 +63,7 @@ import info.nightscout.androidaps.events.EventInitializationChanged; import info.nightscout.androidaps.events.EventNewBG; import info.nightscout.androidaps.events.EventNewBasalProfile; import info.nightscout.androidaps.events.EventPreferenceChange; +import info.nightscout.androidaps.events.EventPumpStatusChanged; import info.nightscout.androidaps.events.EventRefreshGui; import info.nightscout.androidaps.events.EventTempBasalChange; import info.nightscout.androidaps.events.EventTreatmentChange; @@ -71,7 +72,6 @@ import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.Careportal.Dialogs.NewNSTreatmentDialog; import info.nightscout.androidaps.plugins.Careportal.OptionsToShow; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; -import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRConnectionStatus; import info.nightscout.androidaps.plugins.Loop.LoopPlugin; import info.nightscout.androidaps.plugins.Loop.events.EventNewOpenLoopNotification; import info.nightscout.androidaps.plugins.Objectives.ObjectivesPlugin; @@ -93,7 +93,6 @@ import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.Round; import info.nightscout.utils.SP; -import info.nightscout.utils.SafeParse; public class OverviewFragment extends Fragment { @@ -118,6 +117,8 @@ public class OverviewFragment extends Fragment { TextView apsModeView; TextView tempTargetView; TextView pumpStatusView; + LinearLayout loopStatusLayout; + LinearLayout pumpStatusLayout; GraphView bgGraph; CheckBox showPredictionView; @@ -162,7 +163,9 @@ public class OverviewFragment extends Fragment { baseBasalView = (TextView) view.findViewById(R.id.overview_basebasal); basalLayout = (LinearLayout) view.findViewById(R.id.overview_basallayout); activeProfileView = (TextView) view.findViewById(R.id.overview_activeprofile); - pumpStatusView = (TextView) view.findViewById(R.id.overview_initializing); + pumpStatusView = (TextView) view.findViewById(R.id.overview_pumpstatus); + loopStatusLayout = (LinearLayout) view.findViewById(R.id.overview_looplayout); + pumpStatusLayout = (LinearLayout) view.findViewById(R.id.overview_pumpstatuslayout); iobView = (TextView) view.findViewById(R.id.overview_iob); apsModeView = (TextView) view.findViewById(R.id.overview_apsmode); @@ -295,7 +298,7 @@ public class OverviewFragment extends Fragment { sHandler.post(new Runnable() { @Override public void run() { - MainApp.getConfigBuilder().updateStatus("RefreshClicked"); + MainApp.getConfigBuilder().refreshDataFromPump("RefreshClicked"); } }); } @@ -320,7 +323,7 @@ public class OverviewFragment extends Fragment { final JSONObject boluscalcJSON = new JSONObject(); try { - boluscalcJSON.put("eventTime", DateUtil.toISOString(new Date())); + boluscalcJSON.put("eventTime", DateUtil.toISOString(new Date())); boluscalcJSON.put("targetBGLow", wizard.targetBGLow); boluscalcJSON.put("targetBGHigh", wizard.targetBGHigh); boluscalcJSON.put("isf", wizard.sens); @@ -477,18 +480,13 @@ public class OverviewFragment extends Fragment { } @Subscribe - public void onStatusEvent(final EventDanaRConnectionStatus s) { + public void onStatusEvent(final EventPumpStatusChanged s) { Activity activity = getActivity(); if (activity != null) activity.runOnUiThread(new Runnable() { @Override public void run() { - if (s.sStatus == EventDanaRConnectionStatus.CONNECTING) - updatePumpStatus(String.format(getString(R.string.danar_history_connectingfor), s.sSecondsElapsed)); - else if (s.sStatus == EventDanaRConnectionStatus.PERFORMING) - updatePumpStatus(s.sAction); - else if (s.sStatus == EventDanaRConnectionStatus.DISCONNECTED) - updatePumpStatus(null); + updatePumpStatus(s.textStatus()); } }); } @@ -517,30 +515,15 @@ public class OverviewFragment extends Fragment { private void updatePumpStatus(String status) { PumpInterface pump = MainApp.getConfigBuilder(); - if (status != null) { + if (!status.equals("")) { pumpStatusView.setText(status); - pumpStatusView.setVisibility(View.VISIBLE); - } else if (pump.isBusy()) { - pumpStatusView.setText(R.string.pumpbusy); - pumpStatusView.setVisibility(View.VISIBLE); - } else if (pump.isSuspended()) { - // disable all treatment buttons because we are not able to check constraints without profile - wizardButton.setVisibility(View.INVISIBLE); - treatmentButton.setVisibility(View.INVISIBLE); - quickWizardButton.setVisibility(View.INVISIBLE); - pumpStatusView.setText(R.string.pumpsuspendedclicktorefresh); - pumpStatusView.setVisibility(View.VISIBLE); - } else if (!pump.isInitialized()) { - // disable all treatment buttons because we are not able to check constraints without profile - wizardButton.setVisibility(View.INVISIBLE); - treatmentButton.setVisibility(View.INVISIBLE); - quickWizardButton.setVisibility(View.INVISIBLE); - pumpStatusView.setText(R.string.waitingforpumpclicktorefresh); - pumpStatusView.setVisibility(View.VISIBLE); + pumpStatusLayout.setVisibility(View.VISIBLE); + loopStatusLayout.setVisibility(View.GONE); } else { wizardButton.setVisibility(View.VISIBLE); treatmentButton.setVisibility(View.VISIBLE); - pumpStatusView.setVisibility(View.GONE); + pumpStatusLayout.setVisibility(View.GONE); + loopStatusLayout.setVisibility(View.VISIBLE); } } @@ -552,10 +535,12 @@ public class OverviewFragment extends Fragment { if (MainApp.getConfigBuilder() == null || MainApp.getConfigBuilder().getActiveProfile() == null || MainApp.getConfigBuilder().getActiveProfile().getProfile() == null) {// app not initialized yet pumpStatusView.setText(R.string.noprofileset); - pumpStatusView.setVisibility(View.VISIBLE); + pumpStatusLayout.setVisibility(View.VISIBLE); + loopStatusLayout.setVisibility(View.GONE); return; } else { - pumpStatusView.setVisibility(View.GONE); + pumpStatusLayout.setVisibility(View.GONE); + loopStatusLayout.setVisibility(View.VISIBLE); } // Skip if not initialized yet @@ -1003,7 +988,7 @@ public class OverviewFragment extends Fragment { bgGraph.getGridLabelRenderer().setVerticalLabelsSecondScaleColor(ContextCompat.getColor(MainApp.instance(), R.color.background_material_dark)); // same color as backround = hide } - updatePumpStatus(null); + //updatePumpStatus(null); } //Notifications diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java index 58068f75a4..0e46b6a219 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java @@ -158,12 +158,12 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { } @Override - public Date lastStatusTime() { + public Date lastDataTime() { return new Date(); } @Override - public void updateStatus(String reason) { + public void refreshDataFromPump(String reason) { // do nothing } diff --git a/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java b/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java index 006982f4bd..434d488086 100644 --- a/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java +++ b/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java @@ -39,7 +39,7 @@ public class KeepAliveReceiver extends BroadcastReceiver { boolean isBasalOutdated = false; boolean isStatusOutdated = false; - Date lastConnection = pump.lastStatusTime(); + Date lastConnection = pump.lastDataTime(); if (lastConnection.getTime() + 30 * 60 * 1000L < new Date().getTime()) isStatusOutdated = true; if (Math.abs(profile.getBasal(NSProfile.secondsFromMidnight()) - pump.getBaseBasalRate()) > pump.getPumpDescription().basalStep) @@ -58,7 +58,7 @@ public class KeepAliveReceiver extends BroadcastReceiver { Thread t = new Thread(new Runnable() { @Override public void run() { - pump.updateStatus("KeepAlive. Status outdated."); + pump.refreshDataFromPump("KeepAlive. Status outdated."); } }); t.start(); @@ -66,7 +66,7 @@ public class KeepAliveReceiver extends BroadcastReceiver { Thread t = new Thread(new Runnable() { @Override public void run() { - pump.updateStatus("KeepAlive. Basal outdated."); + pump.refreshDataFromPump("KeepAlive. Basal outdated."); } }); t.start(); diff --git a/app/src/main/res/layout/overview_fragment.xml b/app/src/main/res/layout/overview_fragment.xml index 939f506890..26d53c7e9a 100644 --- a/app/src/main/res/layout/overview_fragment.xml +++ b/app/src/main/res/layout/overview_fragment.xml @@ -21,6 +21,7 @@ + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textColor="@color/mdtp_white" /> + android:textAppearance="?android:attr/textAppearanceMedium" /> + android:gravity="center_horizontal" + android:orientation="horizontal"> #3F51B5 #303F9F #FF4081 - #ff2630 + #00695c #121212 #779ECB From d030427b0f18e47f987d24dff021267713fcddb1 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sun, 19 Feb 2017 20:41:20 +0100 Subject: [PATCH 015/140] adjust devicestatus upload --- .../plugins/ConfigBuilder/ConfigBuilderPlugin.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java index 0e988d6862..7f4a60113a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java @@ -482,7 +482,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain carbs = applyCarbsConstraints(carbs); BolusProgressDialog bolusProgressDialog = null; - if (context != null ) { + if (context != null) { bolusProgressDialog = new BolusProgressDialog(); bolusProgressDialog.setInsulin(insulin); bolusProgressDialog.show(((AppCompatActivity) context).getSupportFragmentManager(), "BolusProgress"); @@ -966,6 +966,8 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain requested.put("temp", "absolute"); deviceStatus.enacted.put("requested", requested); } + } else { + log.debug("OpenAPS data too old to upload"); } if (activePump != null) { deviceStatus.device = "openaps://" + deviceID(); @@ -973,11 +975,9 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain if (pumpstatus != null) { deviceStatus.pump = getJSONStatus(); } - - deviceStatus.created_at = DateUtil.toISOString(new Date()); - - deviceStatus.sendToNSClient(); } + deviceStatus.created_at = DateUtil.toISOString(new Date()); + deviceStatus.sendToNSClient(); } catch (JSONException e) { e.printStackTrace(); } From c9a6a44e4b85a887bba2aa12ea8f7baaca7ed06d Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sun, 19 Feb 2017 20:48:10 +0100 Subject: [PATCH 016/140] adjust upload timing --- .../androidaps/plugins/DanaR/Services/ExecutionService.java | 2 +- .../plugins/DanaRKorean/Services/ExecutionService.java | 2 +- .../info/nightscout/androidaps/plugins/Loop/LoopPlugin.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java index 78a0a1f0bb..323b139bda 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java @@ -341,7 +341,7 @@ public class ExecutionService extends Service { danaRPump.lastConnection = now; MainApp.bus().post(new EventDanaRNewStatus()); MainApp.bus().post(new EventInitializationChanged()); - MainApp.getConfigBuilder().uploadDeviceStatus(60); + MainApp.getConfigBuilder().uploadDeviceStatus(15); if (danaRPump.dailyTotalUnits > danaRPump.maxDailyTotalUnits * Constants.dailyLimitWarning ) { log.debug("Approaching daily limit: " + danaRPump.dailyTotalUnits + "/" + danaRPump.maxDailyTotalUnits); Notification reportFail = new Notification(Notification.APPROACHING_DAILY_LIMIT, MainApp.sResources.getString(R.string.approachingdailylimit), Notification.URGENT); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java index 56650c4fcd..1a0267dd67 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java @@ -332,7 +332,7 @@ public class ExecutionService extends Service { danaRKoreanPump.lastConnection = now; MainApp.bus().post(new EventDanaRNewStatus()); MainApp.bus().post(new EventInitializationChanged()); - MainApp.getConfigBuilder().uploadDeviceStatus(60); + MainApp.getConfigBuilder().uploadDeviceStatus(15); if (danaRKoreanPump.dailyTotalUnits > danaRKoreanPump.maxDailyTotalUnits * Constants.dailyLimitWarning ) { log.debug("Approaching daily limit: " + danaRKoreanPump.dailyTotalUnits + "/" + danaRKoreanPump.maxDailyTotalUnits); Notification reportFail = new Notification(Notification.APPROACHING_DAILY_LIMIT, MainApp.sResources.getString(R.string.approachingdailylimit), Notification.URGENT); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java index 76eb14eb1a..59ddcfc3b8 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java @@ -228,7 +228,7 @@ public class LoopPlugin implements PluginBase { } MainApp.bus().post(new EventLoopUpdateGui()); - MainApp.getConfigBuilder().uploadDeviceStatus(120); + MainApp.getConfigBuilder().uploadDeviceStatus(60); } finally { if (Config.logFunctionCalls) log.debug("invoke end"); From 3b1b732d8f6eae383f47e4fbdebbbb7707289e6f Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sun, 19 Feb 2017 20:56:12 +0100 Subject: [PATCH 017/140] nclient log collection --- .../NSClientInternal/services/NSClientService.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java index 3b7f57c7d4..854933f4f0 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java @@ -509,7 +509,7 @@ public class NSClientService extends Service { message.put("_id", dbr._id); message.put("data", dbr.data); mSocket.emit("dbUpdate", message, ack); - MainApp.bus().post(new EventNSClientNewLog("DBUPDATE", "Sent " + dbr._id)); + MainApp.bus().post(new EventNSClientNewLog("DBUPDATE " + dbr.collection, "Sent " + dbr._id)); } catch (JSONException e) { e.printStackTrace(); } @@ -523,7 +523,7 @@ public class NSClientService extends Service { message.put("_id", dbr._id); message.put("data", dbr.data); mSocket.emit("dbUpdateUnset", message, ack); - MainApp.bus().post(new EventNSClientNewLog("DBUPDATEUNSET", "Sent " + dbr._id)); + MainApp.bus().post(new EventNSClientNewLog("DBUPDATEUNSET " + dbr.collection, "Sent " + dbr._id)); } catch (JSONException e) { e.printStackTrace(); } @@ -536,7 +536,7 @@ public class NSClientService extends Service { message.put("collection", dbr.collection); message.put("_id", dbr._id); mSocket.emit("dbRemove", message, ack); - MainApp.bus().post(new EventNSClientNewLog("DBREMOVE", "Sent " + dbr._id)); + MainApp.bus().post(new EventNSClientNewLog("DBREMOVE " + dbr.collection, "Sent " + dbr._id)); } catch (JSONException e) { e.printStackTrace(); } @@ -559,7 +559,7 @@ public class NSClientService extends Service { message.put("collection", dbr.collection); message.put("data", dbr.data); mSocket.emit("dbAdd", message, ack); - MainApp.bus().post(new EventNSClientNewLog("DBADD", "Sent " + dbr.nsClientID)); + MainApp.bus().post(new EventNSClientNewLog("DBADD " + dbr.collection, "Sent " + dbr.nsClientID)); } catch (JSONException e) { e.printStackTrace(); } From 1c522d4a4dc08983defe70f58f02e094477b2ea2 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Sun, 19 Feb 2017 22:42:31 +0100 Subject: [PATCH 018/140] wear 5 minute steps for duration of temp targets --- .../androidaps/interaction/actions/TempTargetActivity.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wear/src/main/java/info/nightscout/androidaps/interaction/actions/TempTargetActivity.java b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/TempTargetActivity.java index b636869b60..d5f53be4f6 100644 --- a/wear/src/main/java/info/nightscout/androidaps/interaction/actions/TempTargetActivity.java +++ b/wear/src/main/java/info/nightscout/androidaps/interaction/actions/TempTargetActivity.java @@ -78,10 +78,10 @@ public class TempTargetActivity extends ViewSelectorActivity { final TextView textView = (TextView) view.findViewById(R.id.label); textView.setText("duration"); if (time == null) { - time = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, 60d, 0d, 24 * 60d, 1d, new DecimalFormat("0"), false); + time = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, 60d, 0d, 24 * 60d, 5d, new DecimalFormat("0"), false); } else { double def = SafeParse.stringToDouble(time.editText.getText().toString()); - time = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 0d, 24 * 60d, 1d, new DecimalFormat("0"), false); + time = new PlusMinusEditText(view, R.id.amountfield, R.id.plusbutton, R.id.minusbutton, def, 0d, 24 * 60d, 5d, new DecimalFormat("0"), false); } setLabelToPlusMinusView(view, "duration"); container.addView(view); From 9ea19fff9b0ace2487969150ddbbed4e57261405 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sun, 19 Feb 2017 23:41:42 +0100 Subject: [PATCH 019/140] detect last received date --- .../services/NSClientService.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java index 854933f4f0..de623268e9 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java @@ -10,7 +10,6 @@ import android.os.HandlerThread; import android.os.IBinder; import android.os.PowerManager; import android.preference.PreferenceManager; -import android.widget.Toast; import com.google.common.base.Charsets; import com.google.common.hash.Hashing; @@ -59,8 +58,8 @@ import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientS import info.nightscout.androidaps.plugins.Overview.Notification; import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification; import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; +import info.nightscout.utils.DateUtil; import info.nightscout.utils.SP; -import info.nightscout.utils.SafeParse; import io.socket.client.IO; import io.socket.client.Socket; import io.socket.emitter.Emitter; @@ -95,6 +94,8 @@ public class NSClientService extends Service { private boolean uploading = false; public Date lastReception = new Date(); + public long latestDateInReceivedData = 0; + private String nsAPIhashCode = ""; public static UploadQueue uploadQueue = new UploadQueue(); @@ -252,6 +253,7 @@ public class NSClientService extends Service { authMessage.put("history", nsHours); authMessage.put("status", true); // receive status authMessage.put("pingme", true); // send mi pings to keep alive + authMessage.put("from", latestDateInReceivedData); // send data newer than authMessage.put("secret", nsAPIhashCode); } catch (JSONException e) { e.printStackTrace(); @@ -411,6 +413,11 @@ public class NSClientService extends Service { // remove from upload queue if Ack is failing UploadQueue.removeID(jsonTreatment); + //Find latest date in treatment + if (treatment.getMills() != null && treatment.getMills() < new Date().getTime()) + if (treatment.getMills() > latestDateInReceivedData) + latestDateInReceivedData = treatment.getMills(); + if (treatment.getAction() == null) { if (!isCurrent(treatment)) continue; addedTreatments.put(jsonTreatment); @@ -485,9 +492,14 @@ public class NSClientService extends Service { // Handle new sgv here // remove from upload queue if Ack is failing UploadQueue.removeID(jsonSgv); + //Find latest date in sgv + if (sgv.getMills() != null && sgv.getMills() < new Date().getTime()) + if (sgv.getMills() > latestDateInReceivedData) + latestDateInReceivedData = sgv.getMills(); } bs.handleNewSgv(sgvs, MainApp.instance().getApplicationContext(), isDelta); } + MainApp.bus().post(new EventNSClientNewLog("LAST", DateUtil.dateAndTimeString(latestDateInReceivedData))); } catch (JSONException e) { e.printStackTrace(); } From d84632a8a482a91f2289bfc0f562aa046cb44a08 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Mon, 20 Feb 2017 08:32:10 +0100 Subject: [PATCH 020/140] uploader battery in device status --- .../ConfigBuilder/ConfigBuilderPlugin.java | 9 ++++++ .../androidaps/plugins/Loop/DeviceStatus.java | 2 ++ .../info/nightscout/utils/BatteryLevel.java | 28 +++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 app/src/main/java/info/nightscout/utils/BatteryLevel.java diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java index 7f4a60113a..a10c182ad4 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java @@ -56,6 +56,7 @@ import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotificati import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.NSClientInternal.data.DbLogger; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; +import info.nightscout.utils.BatteryLevel; import info.nightscout.utils.DateUtil; /** @@ -976,6 +977,14 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain deviceStatus.pump = getJSONStatus(); } } + + int batteryLevel = BatteryLevel.getBatteryLevel(); + if (batteryLevel != BatteryLevel.lastUploadedLevel) { + JSONObject uploaderBattery = new JSONObject(); + uploaderBattery.put("uploaderBattery", batteryLevel); + deviceStatus.uploaderBattery = uploaderBattery; + BatteryLevel.lastUploadedLevel = batteryLevel; + } deviceStatus.created_at = DateUtil.toISOString(new Date()); deviceStatus.sendToNSClient(); } catch (JSONException e) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/DeviceStatus.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/DeviceStatus.java index 77e1d322c5..0d4f5b423f 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/DeviceStatus.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/DeviceStatus.java @@ -378,6 +378,7 @@ public class DeviceStatus { public JSONObject enacted = null; public JSONObject suggested = null; public JSONObject iob = null; + public JSONObject uploaderBattery = null; public String created_at = null; public JSONObject mongoRecord () { @@ -391,6 +392,7 @@ public class DeviceStatus { if (enacted != null) openaps.put("enacted", enacted); if (suggested != null) openaps.put("suggested", suggested); if (iob != null) openaps.put("iob", iob); + if (uploaderBattery != null) openaps.put("uploaderBattery", uploaderBattery); record.put("openaps", openaps); } if (created_at != null) record.put("created_at" , created_at); diff --git a/app/src/main/java/info/nightscout/utils/BatteryLevel.java b/app/src/main/java/info/nightscout/utils/BatteryLevel.java new file mode 100644 index 0000000000..44f6b6e0e5 --- /dev/null +++ b/app/src/main/java/info/nightscout/utils/BatteryLevel.java @@ -0,0 +1,28 @@ +package info.nightscout.utils; + +import android.content.Intent; +import android.content.IntentFilter; +import android.os.BatteryManager; + +import info.nightscout.androidaps.MainApp; + +/** + * Created by mike on 20.02.2017. + */ + +public class BatteryLevel { + static public int lastUploadedLevel = 0; + + static public int getBatteryLevel() { + Intent batteryIntent = MainApp.instance().registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); + if (batteryIntent != null) { + int level = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); + int scale = batteryIntent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); + if (level == -1 || scale == -1) { + return 50; + } + return (int) (((float) level / (float) scale) * 100.0f); + } else return 50; + } + +} From 620058426841963e1f439b852c9f749bf7b01561 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Mon, 20 Feb 2017 09:46:55 +0100 Subject: [PATCH 021/140] hours to fetch fixed --- .../NSClientInternal/services/NSClientService.java | 4 +--- app/src/main/res/values/strings.xml | 3 --- app/src/main/res/xml/pref_nsclientinternal.xml | 12 ------------ 3 files changed, 1 insertion(+), 18 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java index de623268e9..272959b21c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java @@ -88,7 +88,7 @@ public class NSClientService extends Service { static public String nsURL = ""; private String nsAPISecret = ""; private String nsDevice = ""; - private Integer nsHours = 3; + private Integer nsHours = 24; private final Integer timeToWaitForResponseInMs = 30000; private boolean uploading = false; @@ -155,7 +155,6 @@ public class NSClientService extends Service { public void onStatusEvent(EventPreferenceChange ev) { if (ev.isChanged(R.string.key_nsclientinternal_url) || ev.isChanged(R.string.key_nsclientinternal_api_secret) || - ev.isChanged(R.string.key_nsclientinternal_hours) || ev.isChanged(R.string.key_nsclientinternal_paused) ) { destroy(); @@ -293,7 +292,6 @@ public class NSClientService extends Service { nsEnabled = MainApp.getSpecificPlugin(NSClientInternalPlugin.class).isEnabled(PluginBase.GENERAL); nsURL = SP.getString(R.string.key_nsclientinternal_url, ""); nsAPISecret = SP.getString(R.string.key_nsclientinternal_api_secret, ""); - nsHours = SP.getInt(R.string.key_nsclientinternal_hours, 3); nsDevice = SP.getString("careportal_enteredby", ""); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3803aa1300..58e2375142 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -515,8 +515,6 @@ Internal NSClient Nightscout URL Enter Nightscout URL - Hours to fetch - Enter hours to fetch from NS (max 48) NS API secret NS API secret Enter NS API secret (min 12 chars) @@ -531,7 +529,6 @@ Paused nsclientinternal_url nsclientinternal_api_secret - nsclientinternal_hours danar_bt_name danar_password danar_useextended diff --git a/app/src/main/res/xml/pref_nsclientinternal.xml b/app/src/main/res/xml/pref_nsclientinternal.xml index 5f7efd868d..f6ea0cb48e 100644 --- a/app/src/main/res/xml/pref_nsclientinternal.xml +++ b/app/src/main/res/xml/pref_nsclientinternal.xml @@ -21,18 +21,6 @@ android:defaultValue="" android:inputType="textPassword"> - \ No newline at end of file From 18e2dcffcf8aa75d238a088ec7ffd2d96fee7413 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Mon, 20 Feb 2017 13:10:07 +0100 Subject: [PATCH 022/140] make things scrollable --- app/src/main/res/layout/actions_fragment.xml | 5 +++++ app/src/main/res/layout/danar_fragment.xml | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/app/src/main/res/layout/actions_fragment.xml b/app/src/main/res/layout/actions_fragment.xml index 7eb751ac1d..c5841def5b 100644 --- a/app/src/main/res/layout/actions_fragment.xml +++ b/app/src/main/res/layout/actions_fragment.xml @@ -4,6 +4,10 @@ android:layout_height="match_parent" tools:context="info.nightscout.androidaps.plugins.Actions.ActionsFragment"> + + + diff --git a/app/src/main/res/layout/danar_fragment.xml b/app/src/main/res/layout/danar_fragment.xml index 2a1decfdd9..aeb76f241a 100644 --- a/app/src/main/res/layout/danar_fragment.xml +++ b/app/src/main/res/layout/danar_fragment.xml @@ -5,6 +5,10 @@ tools:context="info.nightscout.androidaps.plugins.DanaR.DanaRFragment"> + + + From 686e16de8d8923e68b7c987651845257e1101844 Mon Sep 17 00:00:00 2001 From: AdrianLxM Date: Mon, 20 Feb 2017 13:31:47 +0100 Subject: [PATCH 023/140] scrollview match parent in width --- app/src/main/res/layout/actions_fragment.xml | 2 +- app/src/main/res/layout/danar_fragment.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/layout/actions_fragment.xml b/app/src/main/res/layout/actions_fragment.xml index c5841def5b..45c57e0107 100644 --- a/app/src/main/res/layout/actions_fragment.xml +++ b/app/src/main/res/layout/actions_fragment.xml @@ -5,7 +5,7 @@ tools:context="info.nightscout.androidaps.plugins.Actions.ActionsFragment"> + android:layout_width="match_parent"> Date: Mon, 20 Feb 2017 14:49:38 +0100 Subject: [PATCH 024/140] dismiss bolus progress via events --- .../ConfigBuilder/ConfigBuilderPlugin.java | 17 +++-------------- .../Overview/Dialogs/BolusProgressDialog.java | 8 ++++++++ .../EventDismissBolusprogressIfRunning.java | 15 +++++++++++++++ .../androidaps/plugins/Wear/WearPlugin.java | 15 +++++++++++++++ app/src/main/res/values/strings.xml | 1 + 5 files changed, 42 insertions(+), 14 deletions(-) create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/Overview/events/EventDismissBolusprogressIfRunning.java diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java index a10c182ad4..8c6d9f5c35 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java @@ -52,6 +52,7 @@ import info.nightscout.androidaps.plugins.OpenAPSMA.DetermineBasalResultMA; import info.nightscout.androidaps.plugins.Overview.Dialogs.BolusProgressDialog; import info.nightscout.androidaps.plugins.Overview.Dialogs.BolusProgressHelperActivity; import info.nightscout.androidaps.plugins.Overview.Notification; +import info.nightscout.androidaps.plugins.Overview.events.EventDismissBolusprogressIfRunning; import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification; import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.NSClientInternal.data.DbLogger; @@ -448,13 +449,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain BolusProgressDialog.bolusEnded = true; - if (bolusProgressDialog != null && BolusProgressDialog.running) { - try { - bolusProgressDialog.dismiss(); - } catch (Exception e) { - e.printStackTrace(); // TODO: handle this better - } - } + MainApp.bus().post(new EventDismissBolusprogressIfRunning(result)); if (result.success) { Treatment t = new Treatment(); @@ -501,13 +496,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain BolusProgressDialog.bolusEnded = true; - if (bolusProgressDialog != null && BolusProgressDialog.running) { - try { - bolusProgressDialog.dismiss(); - } catch (Exception e) { - e.printStackTrace(); // TODO: handle this better - } - } + MainApp.bus().post(new EventDismissBolusprogressIfRunning(result)); if (Config.logCongigBuilderActions) log.debug("deliverTreatment insulin: " + insulin + " carbs: " + carbs + " success: " + result.success + " enacted: " + result.enacted + " bolusDelivered: " + result.bolusDelivered); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java index a5d45128be..31ffa468d8 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/BolusProgressDialog.java @@ -20,6 +20,7 @@ import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.events.EventPumpStatusChanged; import info.nightscout.androidaps.interfaces.PumpInterface; +import info.nightscout.androidaps.plugins.Overview.events.EventDismissBolusprogressIfRunning; import info.nightscout.androidaps.plugins.Overview.events.EventOverviewBolusProgress; import info.nightscout.androidaps.plugins.DanaR.events.EventDanaRBolusStart; @@ -127,6 +128,13 @@ public class BolusProgressDialog extends DialogFragment implements View.OnClickL started = true; } + @Subscribe + public void onStatusEvent(final EventDismissBolusprogressIfRunning ev) { + if(BolusProgressDialog.running){ + dismiss(); + } + } + @Subscribe public void onStatusEvent(final EventPumpStatusChanged c) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/events/EventDismissBolusprogressIfRunning.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/events/EventDismissBolusprogressIfRunning.java new file mode 100644 index 0000000000..9d8435eaf1 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/events/EventDismissBolusprogressIfRunning.java @@ -0,0 +1,15 @@ +package info.nightscout.androidaps.plugins.Overview.events; + +import info.nightscout.androidaps.data.PumpEnactResult; + +/** + * Created by adrian on 20/02/17. + */ + +public class EventDismissBolusprogressIfRunning { + public final PumpEnactResult result; + + public EventDismissBolusprogressIfRunning(PumpEnactResult result) { + this.result = result; + } +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java index c9520ac82c..0884cdf55e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/WearPlugin.java @@ -17,6 +17,7 @@ import info.nightscout.androidaps.events.EventTreatmentChange; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.Loop.LoopPlugin; import info.nightscout.androidaps.plugins.Loop.events.EventNewOpenLoopNotification; +import info.nightscout.androidaps.plugins.Overview.events.EventDismissBolusprogressIfRunning; import info.nightscout.androidaps.plugins.Overview.events.EventOverviewBolusProgress; import info.nightscout.androidaps.plugins.Wear.wearintegration.WatchUpdaterService; import info.nightscout.utils.ToastUtils; @@ -177,6 +178,20 @@ public class WearPlugin implements PluginBase { } + @Subscribe + public void onStatusEvent(final EventDismissBolusprogressIfRunning ev) { + String status; + if(ev.result.success){ + status = MainApp.sResources.getString(R.string.success); + } else { + status = MainApp.sResources.getString(R.string.nosuccess); + } + Intent intent = new Intent(ctx, WatchUpdaterService.class).setAction(WatchUpdaterService.ACTION_SEND_BOLUSPROGRESS); + intent.putExtra("progresspercent", 100); + intent.putExtra("progressstatus", status); + ctx.startService(intent); + } + public void requestActionConfirmation(String title, String message, String actionstring){ Intent intent = new Intent(ctx, WatchUpdaterService.class).setAction(WatchUpdaterService.ACTION_SEND_ACTIONCONFIRMATIONREQUEST); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 58e2375142..c1e7737ac4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -540,4 +540,5 @@ Wear settings Show detailed IOB Break down IOB into bolus and basal IOB on the watchface + not successful - please check phone From 34ed92f8aa976927eb256a5d54880383160dbae5 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Tue, 21 Feb 2017 10:00:08 +0100 Subject: [PATCH 025/140] fix displaying delta when not available --- .../androidaps/plugins/Overview/OverviewFragment.java | 3 +++ app/src/main/res/values/strings.xml | 1 + 2 files changed, 4 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index ac9035b7fd..f2b32d7033 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -720,6 +720,9 @@ public class OverviewFragment extends Fragment { deltaView.setText("Δ " + NSProfile.toUnitsString(glucoseStatus.delta, glucoseStatus.delta * Constants.MGDL_TO_MMOLL, units) + " " + units); avgdeltaView.setText("øΔ15m: " + NSProfile.toUnitsString(glucoseStatus.short_avgdelta, glucoseStatus.short_avgdelta * Constants.MGDL_TO_MMOLL, units) + " øΔ40m: " + NSProfile.toUnitsString(glucoseStatus.long_avgdelta, glucoseStatus.long_avgdelta * Constants.MGDL_TO_MMOLL, units)); + } else { + deltaView.setText(MainApp.sResources.getString(R.string.notavailable)); + avgdeltaView.setText(""); } BgReading.units = profile.getUnits(); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c1e7737ac4..26d946581c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -541,4 +541,5 @@ Show detailed IOB Break down IOB into bolus and basal IOB on the watchface not successful - please check phone + Not available From 3f84a6321350fa84b9d8f0e5c3ad92c713fc8db2 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Tue, 21 Feb 2017 10:00:44 +0100 Subject: [PATCH 026/140] add delta sign --- .../androidaps/plugins/Overview/OverviewFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index f2b32d7033..44494c0bbb 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -721,7 +721,7 @@ public class OverviewFragment extends Fragment { avgdeltaView.setText("øΔ15m: " + NSProfile.toUnitsString(glucoseStatus.short_avgdelta, glucoseStatus.short_avgdelta * Constants.MGDL_TO_MMOLL, units) + " øΔ40m: " + NSProfile.toUnitsString(glucoseStatus.long_avgdelta, glucoseStatus.long_avgdelta * Constants.MGDL_TO_MMOLL, units)); } else { - deltaView.setText(MainApp.sResources.getString(R.string.notavailable)); + deltaView.setText("Δ " + MainApp.sResources.getString(R.string.notavailable)); avgdeltaView.setText(""); } From 99b66ab3934307ffb7c616babb283ae762e2b77d Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Tue, 21 Feb 2017 10:36:29 +0100 Subject: [PATCH 027/140] connect counter --- .../plugins/NSClientInternal/services/NSClientService.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java index 272959b21c..23a8eb0ae0 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java @@ -79,6 +79,7 @@ public class NSClientService extends Service { public static boolean isConnected = false; public static boolean hasWriteAuth = false; private static Integer dataCounter = 0; + private static Integer connectCounter = 0; public static String nightscoutVersionName = ""; @@ -222,7 +223,8 @@ public class NSClientService extends Service { private Emitter.Listener onConnect = new Emitter.Listener() { @Override public void call(Object... args) { - MainApp.bus().post(new EventNSClientNewLog("NSCLIENT", "connect event. ID: " + mSocket.id())); + connectCounter++; + MainApp.bus().post(new EventNSClientNewLog("NSCLIENT", "connect #" + connectCounter + " event. ID: " + mSocket.id())); sendAuthMessage(new NSAuthAck()); } }; From 615af399f844d6a8dbbff034a8db07a2597d8952 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Tue, 21 Feb 2017 11:17:46 +0100 Subject: [PATCH 028/140] remove ping me --- .../plugins/NSClientInternal/services/NSClientService.java | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java index 23a8eb0ae0..4b36061849 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java @@ -253,7 +253,6 @@ public class NSClientService extends Service { authMessage.put("client", "Android_" + nsDevice); authMessage.put("history", nsHours); authMessage.put("status", true); // receive status - authMessage.put("pingme", true); // send mi pings to keep alive authMessage.put("from", latestDateInReceivedData); // send data newer than authMessage.put("secret", nsAPIhashCode); } catch (JSONException e) { From a508b0bbc5caef0dc004b58afc86594aa9a6702a Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Tue, 21 Feb 2017 13:33:52 +0100 Subject: [PATCH 029/140] do not postpone status upload --- .../ConfigBuilder/ConfigBuilderPlugin.java | 26 +------------------ .../DanaR/Services/ExecutionService.java | 2 +- .../Services/ExecutionService.java | 2 +- .../androidaps/plugins/Loop/LoopPlugin.java | 2 +- .../plugins/Overview/OverviewFragment.java | 2 +- 5 files changed, 5 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java index 8c6d9f5c35..9d82370f4a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java @@ -81,9 +81,6 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain static ArrayList pluginList; - private static final ScheduledExecutorService worker = Executors.newSingleThreadScheduledExecutor(); - private static ScheduledFuture scheduledPost = null; - PowerManager.WakeLock mWakeLock; public ConfigBuilderPlugin() { @@ -815,11 +812,6 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain return maxIobAfterConstrain; } - @Subscribe - public void onStatusEvent(final EventNewBG ev) { - uploadDeviceStatus(120); - } - public void uploadTempBasalStartAbsolute(Double absolute, double durationInMinutes) { try { Context context = MainApp.instance().getApplicationContext(); @@ -923,7 +915,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain } } - public void doUploadDeviceStatus() { + public void uploadDeviceStatus() { DeviceStatus deviceStatus = new DeviceStatus(); try { LoopPlugin.LastRun lastRun = LoopPlugin.lastRun; @@ -981,22 +973,6 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain } } - static public void uploadDeviceStatus(int sec) { - class PostRunnable implements Runnable { - public void run() { - MainApp.getConfigBuilder().doUploadDeviceStatus(); - scheduledPost = null; - } - } - // prepare task for execution - // cancel waiting task to prevent sending multiple posts - if (scheduledPost != null) - scheduledPost.cancel(false); - Runnable task = new PostRunnable(); - scheduledPost = worker.schedule(task, sec, TimeUnit.SECONDS); - log.debug("Scheduling devicestatus upload in " + sec + " sec"); - } - public void uploadBolusWizardRecord(Treatment t, double glucose, String glucoseType, int carbTime, JSONObject boluscalc) { JSONObject data = new JSONObject(); try { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java index 323b139bda..a6e7a2b278 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java @@ -341,7 +341,7 @@ public class ExecutionService extends Service { danaRPump.lastConnection = now; MainApp.bus().post(new EventDanaRNewStatus()); MainApp.bus().post(new EventInitializationChanged()); - MainApp.getConfigBuilder().uploadDeviceStatus(15); + MainApp.getConfigBuilder().uploadDeviceStatus(); if (danaRPump.dailyTotalUnits > danaRPump.maxDailyTotalUnits * Constants.dailyLimitWarning ) { log.debug("Approaching daily limit: " + danaRPump.dailyTotalUnits + "/" + danaRPump.maxDailyTotalUnits); Notification reportFail = new Notification(Notification.APPROACHING_DAILY_LIMIT, MainApp.sResources.getString(R.string.approachingdailylimit), Notification.URGENT); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java index 1a0267dd67..2d8e04109d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java @@ -332,7 +332,7 @@ public class ExecutionService extends Service { danaRKoreanPump.lastConnection = now; MainApp.bus().post(new EventDanaRNewStatus()); MainApp.bus().post(new EventInitializationChanged()); - MainApp.getConfigBuilder().uploadDeviceStatus(15); + MainApp.getConfigBuilder().uploadDeviceStatus(); if (danaRKoreanPump.dailyTotalUnits > danaRKoreanPump.maxDailyTotalUnits * Constants.dailyLimitWarning ) { log.debug("Approaching daily limit: " + danaRKoreanPump.dailyTotalUnits + "/" + danaRKoreanPump.maxDailyTotalUnits); Notification reportFail = new Notification(Notification.APPROACHING_DAILY_LIMIT, MainApp.sResources.getString(R.string.approachingdailylimit), Notification.URGENT); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java index 59ddcfc3b8..a357d519b9 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java @@ -228,7 +228,7 @@ public class LoopPlugin implements PluginBase { } MainApp.bus().post(new EventLoopUpdateGui()); - MainApp.getConfigBuilder().uploadDeviceStatus(60); + MainApp.getConfigBuilder().uploadDeviceStatus(); } finally { if (Config.logFunctionCalls) log.debug("invoke end"); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index ac9035b7fd..ea3d8d551a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -272,7 +272,7 @@ public class OverviewFragment extends Fragment { finalLastRun.setByPump = applyResult; finalLastRun.lastEnact = new Date(); finalLastRun.lastOpenModeAccept = new Date(); - MainApp.getConfigBuilder().uploadDeviceStatus(15); + MainApp.getConfigBuilder().uploadDeviceStatus(); ObjectivesPlugin objectivesPlugin = (ObjectivesPlugin) MainApp.getSpecificPlugin(ObjectivesPlugin.class); if (objectivesPlugin != null) { objectivesPlugin.manualEnacts++; From 4b6276c0b17e56290efb4d3cb131bad307e200fb Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Tue, 21 Feb 2017 13:45:33 +0100 Subject: [PATCH 030/140] uploader battery always in json --- .../plugins/ConfigBuilder/ConfigBuilderPlugin.java | 10 ++++------ .../java/info/nightscout/utils/BatteryLevel.java | 14 ++++++++++---- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java index 9d82370f4a..f3df77fe64 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java @@ -960,12 +960,10 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain } int batteryLevel = BatteryLevel.getBatteryLevel(); - if (batteryLevel != BatteryLevel.lastUploadedLevel) { - JSONObject uploaderBattery = new JSONObject(); - uploaderBattery.put("uploaderBattery", batteryLevel); - deviceStatus.uploaderBattery = uploaderBattery; - BatteryLevel.lastUploadedLevel = batteryLevel; - } + JSONObject uploaderBattery = new JSONObject(); + uploaderBattery.put("uploaderBattery", batteryLevel); + deviceStatus.uploaderBattery = uploaderBattery; + deviceStatus.created_at = DateUtil.toISOString(new Date()); deviceStatus.sendToNSClient(); } catch (JSONException e) { diff --git a/app/src/main/java/info/nightscout/utils/BatteryLevel.java b/app/src/main/java/info/nightscout/utils/BatteryLevel.java index 44f6b6e0e5..ea55dd9e69 100644 --- a/app/src/main/java/info/nightscout/utils/BatteryLevel.java +++ b/app/src/main/java/info/nightscout/utils/BatteryLevel.java @@ -4,6 +4,9 @@ import android.content.Intent; import android.content.IntentFilter; import android.os.BatteryManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import info.nightscout.androidaps.MainApp; /** @@ -11,18 +14,21 @@ import info.nightscout.androidaps.MainApp; */ public class BatteryLevel { + private static Logger log = LoggerFactory.getLogger(BatteryLevel.class); static public int lastUploadedLevel = 0; static public int getBatteryLevel() { + int batteryLevel = 0; Intent batteryIntent = MainApp.instance().registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); if (batteryIntent != null) { int level = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1); int scale = batteryIntent.getIntExtra(BatteryManager.EXTRA_SCALE, -1); - if (level == -1 || scale == -1) { - return 50; + if (level != -1 && scale != -1) { + batteryLevel = (int) (((float) level / (float) scale) * 100.0f); } - return (int) (((float) level / (float) scale) * 100.0f); - } else return 50; + } + log.debug("Battery level: " + batteryLevel); + return batteryLevel; } } From efc1988374646d0493f45b754ad2ae4b993b7072 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Tue, 21 Feb 2017 14:12:28 +0100 Subject: [PATCH 031/140] uploader battery fix --- .../androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java | 4 +--- .../info/nightscout/androidaps/plugins/Loop/DeviceStatus.java | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java index f3df77fe64..362e5727c9 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java @@ -960,9 +960,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain } int batteryLevel = BatteryLevel.getBatteryLevel(); - JSONObject uploaderBattery = new JSONObject(); - uploaderBattery.put("uploaderBattery", batteryLevel); - deviceStatus.uploaderBattery = uploaderBattery; + deviceStatus.uploaderBattery = batteryLevel; deviceStatus.created_at = DateUtil.toISOString(new Date()); deviceStatus.sendToNSClient(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/DeviceStatus.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/DeviceStatus.java index 0d4f5b423f..0d72464b73 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/DeviceStatus.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/DeviceStatus.java @@ -378,7 +378,7 @@ public class DeviceStatus { public JSONObject enacted = null; public JSONObject suggested = null; public JSONObject iob = null; - public JSONObject uploaderBattery = null; + public int uploaderBattery = 0; public String created_at = null; public JSONObject mongoRecord () { @@ -392,9 +392,9 @@ public class DeviceStatus { if (enacted != null) openaps.put("enacted", enacted); if (suggested != null) openaps.put("suggested", suggested); if (iob != null) openaps.put("iob", iob); - if (uploaderBattery != null) openaps.put("uploaderBattery", uploaderBattery); record.put("openaps", openaps); } + if (uploaderBattery != 0) record.put("uploaderBattery", uploaderBattery); if (created_at != null) record.put("created_at" , created_at); } catch (JSONException e) { e.printStackTrace(); From 87ad140eb55e005877ba99f3444a53b27c9013fc Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Wed, 22 Feb 2017 14:11:05 +0100 Subject: [PATCH 032/140] SMS logging and resource refactor --- .../nightscout/androidaps/MainActivity.java | 27 ++++++++++--------- .../SmsCommunicatorPlugin.java | 23 +++++++++------- app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/pref_smscommunicator.xml | 4 +-- 4 files changed, 31 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/MainActivity.java b/app/src/main/java/info/nightscout/androidaps/MainActivity.java index 603b0e2699..0f676470c3 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/MainActivity.java @@ -140,7 +140,8 @@ public class MainActivity extends AppCompatActivity { .setMessage(R.string.reset_db_confirm) .setNegativeButton(android.R.string.cancel, null) .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { - @Override public void onClick(DialogInterface dialog, int which) { + @Override + public void onClick(DialogInterface dialog, int which) { MainApp.getDbHelper().resetDatabases(); } }) @@ -208,11 +209,12 @@ public class MainActivity extends AppCompatActivity { //check for sms permission if enable in prefernces @Subscribe public void onStatusEvent(final EventPreferenceChange ev) { - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1) { - SharedPreferences smssettings = PreferenceManager.getDefaultSharedPreferences(this); - synchronized (this){ - if (smssettings.getBoolean("smscommunicator_remotecommandsallowed", false)) { - setAskForSMS(); + if (ev.isChanged(R.string.key_smscommunicator_remotecommandsallowed)) { + if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1) { + synchronized (this) { + if (SP.getBoolean(R.string.key_smscommunicator_remotecommandsallowed, false)) { + setAskForSMS(); + } } } } @@ -223,16 +225,15 @@ public class MainActivity extends AppCompatActivity { } @Override - protected void onResume(){ + protected void onResume() { super.onResume(); askForSMSPermissions(); } - private synchronized void askForSMSPermissions(){ + private synchronized void askForSMSPermissions() { if (askForSMS) { //only when settings were changed an MainActivity resumes. askForSMS = false; - SharedPreferences smssettings = PreferenceManager.getDefaultSharedPreferences(this); - if (smssettings.getBoolean("smscommunicator_remotecommandsallowed", false)) { + if (SP.getBoolean(R.string.smscommunicator_remotecommandsallowed, false)) { if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1) { askForPermission(new String[]{Manifest.permission.RECEIVE_SMS, Manifest.permission.SEND_SMS, @@ -244,7 +245,7 @@ public class MainActivity extends AppCompatActivity { private void askForPermission(String[] permission, Integer requestCode) { boolean test = false; - for (int i=0; i < permission.length; i++) { + for (int i = 0; i < permission.length; i++) { test = test || (ContextCompat.checkSelfPermission(this, permission[i]) != PackageManager.PERMISSION_GRANTED); } if (test) { @@ -276,10 +277,10 @@ public class MainActivity extends AppCompatActivity { public boolean dispatchTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { View v = getCurrentFocus(); - if ( v instanceof EditText) { + if (v instanceof EditText) { Rect outRect = new Rect(); v.getGlobalVisibleRect(outRect); - if (!outRect.contains((int)event.getRawX(), (int)event.getRawY())) { + if (!outRect.contains((int) event.getRawX(), (int) event.getRawY())) { v.clearFocus(); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(v.getWindowToken(), 0); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java index e216764a3d..02d09d6ecc 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java @@ -160,15 +160,17 @@ public class SmsCommunicatorPlugin implements PluginBase { @Subscribe public void processSettings(final EventPreferenceChange ev) { - String settings = SP.getString("smscommunicator_allowednumbers", ""); + if (ev.isChanged(R.string.key_smscommunicator_allowednumbers)) { + String settings = SP.getString(R.string.key_smscommunicator_allowednumbers, ""); - String pattern = ";"; + String pattern = ";"; - String[] substrings = settings.split(pattern); - for (String number : substrings) { - String cleaned = number.replaceAll("\\s+", ""); - allowedNumbers.add(cleaned); - log.debug("Found allowed number: " + cleaned); + String[] substrings = settings.split(pattern); + for (String number : substrings) { + String cleaned = number.replaceAll("\\s+", ""); + allowedNumbers.add(cleaned); + log.debug("Found allowed number: " + cleaned); + } } } @@ -317,7 +319,7 @@ public class SmsCommunicatorPlugin implements PluginBase { break; case "BASAL": if (splited.length > 1) { - boolean remoteCommandsAllowed = SP.getBoolean("smscommunicator_remotecommandsallowed", false); + boolean remoteCommandsAllowed = SP.getBoolean(R.string.key_smscommunicator_remotecommandsallowed, false); if (splited[1].toUpperCase().equals("CANCEL") || splited[1].toUpperCase().equals("STOP")) { if (remoteCommandsAllowed) { passCode = generatePasscode(); @@ -353,7 +355,7 @@ public class SmsCommunicatorPlugin implements PluginBase { } else if (splited.length > 1) { amount = SafeParse.stringToDouble(splited[1]); amount = MainApp.getConfigBuilder().applyBolusConstraints(amount); - boolean remoteCommandsAllowed = SP.getBoolean("smscommunicator_remotecommandsallowed", false); + boolean remoteCommandsAllowed = SP.getBoolean(R.string.key_smscommunicator_remotecommandsallowed, false); if (amount > 0d && remoteCommandsAllowed) { passCode = generatePasscode(); reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_bolusreplywithcode), amount, passCode); @@ -370,7 +372,7 @@ public class SmsCommunicatorPlugin implements PluginBase { case "CAL": if (splited.length > 1) { amount = SafeParse.stringToDouble(splited[1]); - boolean remoteCommandsAllowed = SP.getBoolean("smscommunicator_remotecommandsallowed", false); + boolean remoteCommandsAllowed = SP.getBoolean(R.string.key_smscommunicator_remotecommandsallowed, false); if (amount > 0d && remoteCommandsAllowed) { passCode = generatePasscode(); reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_calibrationreplywithcode), amount, passCode); @@ -478,6 +480,7 @@ public class SmsCommunicatorPlugin implements PluginBase { sms.text = stripAccents(sms.text); if (sms.text.length() > 140) sms.text = sms.text.substring(0, 139); try { + log.debug("Sending SMS to " + sms.phoneNumber + ": " + sms.text); smsManager.sendTextMessage(sms.phoneNumber, null, sms.text, null, null); messages.add(sms); } catch (IllegalArgumentException e) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 26d946581c..5c717d3061 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -542,4 +542,6 @@ Break down IOB into bolus and basal IOB on the watchface not successful - please check phone Not available + smscommunicator_allowednumbers + smscommunicator_remotecommandsallowed diff --git a/app/src/main/res/xml/pref_smscommunicator.xml b/app/src/main/res/xml/pref_smscommunicator.xml index 23816e8e29..0f9440a615 100644 --- a/app/src/main/res/xml/pref_smscommunicator.xml +++ b/app/src/main/res/xml/pref_smscommunicator.xml @@ -7,12 +7,12 @@ From d9225ccc8a2ca137002814437c18aa34070893a1 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Wed, 22 Feb 2017 15:23:16 +0100 Subject: [PATCH 033/140] fix null object reference --- .../plugins/SmsCommunicator/SmsCommunicatorPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java index 02d09d6ecc..1dfa9ed2ac 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java @@ -160,7 +160,7 @@ public class SmsCommunicatorPlugin implements PluginBase { @Subscribe public void processSettings(final EventPreferenceChange ev) { - if (ev.isChanged(R.string.key_smscommunicator_allowednumbers)) { + if (ev == null || ev.isChanged(R.string.key_smscommunicator_allowednumbers)) { String settings = SP.getString(R.string.key_smscommunicator_allowednumbers, ""); String pattern = ";"; From 15d6de470180f3f63ccbdec80c3954cfb02bcdea Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Wed, 22 Feb 2017 20:29:41 +0100 Subject: [PATCH 034/140] age from product flavor to prefs --- app/build.gradle | 14 +---------- .../androidaps/AgreementActivity.java | 8 +++---- .../nightscout/androidaps/MainActivity.java | 3 ++- .../androidaps/PreferencesActivity.java | 5 ++-- .../plugins/DanaR/comm/MsgBolusStart.java | 3 ++- .../DanaR/comm/MsgSetExtendedBolusStart.java | 3 ++- .../plugins/SafetyFragment/SafetyPlugin.java | 3 ++- .../info/nightscout/utils/HardLimits.java | 24 +++++++++++++++++++ .../main/java/info/nightscout/utils/SP.java | 12 ++++++++++ app/src/main/res/values/arrays.xml | 12 ++++++++++ app/src/main/res/values/strings.xml | 10 ++++++++ app/src/main/res/xml/pref_age.xml | 13 ++++++++++ 12 files changed, 87 insertions(+), 23 deletions(-) create mode 100644 app/src/main/java/info/nightscout/utils/HardLimits.java create mode 100644 app/src/main/res/xml/pref_age.xml diff --git a/app/build.gradle b/app/build.gradle index b0f2c864ec..d87426d444 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -57,19 +57,7 @@ android { } } productFlavors { - flavorDimensions "standard", "limits", "wear" - adult { - dimension "limits" - buildConfigField "int", "MAXBOLUS", "17" - } - teenage { - dimension "limits" - buildConfigField "int", "MAXBOLUS", "10" - } - child { - dimension "limits" - buildConfigField "int", "MAXBOLUS", "5" - } + flavorDimensions "standard", "wear" full { dimension "standard" buildConfigField "boolean", "APS", "true" diff --git a/app/src/main/java/info/nightscout/androidaps/AgreementActivity.java b/app/src/main/java/info/nightscout/androidaps/AgreementActivity.java index a8486e1d78..3a30659884 100644 --- a/app/src/main/java/info/nightscout/androidaps/AgreementActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/AgreementActivity.java @@ -9,18 +9,18 @@ import android.view.View; import android.widget.Button; import android.widget.CheckBox; +import info.nightscout.utils.SP; + public class AgreementActivity extends Activity { boolean IUnderstand; CheckBox agreeCheckBox; Button saveButton; - SharedPreferences prefs; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_agreement); - prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); - IUnderstand = prefs.getBoolean("I_understand", false); + IUnderstand = SP.getBoolean(R.string.key_i_understand, false); setContentView(R.layout.activity_agreement); agreeCheckBox = (CheckBox)findViewById(R.id.agreementCheckBox); agreeCheckBox.setChecked(IUnderstand); @@ -32,7 +32,7 @@ public class AgreementActivity extends Activity { saveButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { - prefs.edit().putBoolean("I_understand", agreeCheckBox.isChecked()).apply(); + SP.putBoolean(R.string.key_i_understand, agreeCheckBox.isChecked()); Intent intent = new Intent(getApplicationContext(), MainActivity.class); startActivity(intent); diff --git a/app/src/main/java/info/nightscout/androidaps/MainActivity.java b/app/src/main/java/info/nightscout/androidaps/MainActivity.java index 0f676470c3..5fcaf2ee13 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/MainActivity.java @@ -198,7 +198,8 @@ public class MainActivity extends AppCompatActivity { } private void checkEula() { - boolean IUnderstand = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getBoolean("I_understand", false); + //SP.removeBoolean(R.string.key_i_understand); + boolean IUnderstand = SP.getBoolean(R.string.key_i_understand, false); if (!IUnderstand) { Intent intent = new Intent(getApplicationContext(), AgreementActivity.class); startActivity(intent); diff --git a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java index 99b7ee76bc..21fd349822 100644 --- a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java @@ -70,7 +70,7 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre } } - private static void initSummary(Preference p) { + public static void initSummary(Preference p) { if (p instanceof PreferenceGroup) { PreferenceGroup pGrp = (PreferenceGroup) p; for (int i = 0; i < pGrp.getPreferenceCount(); i++) { @@ -86,8 +86,9 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.pref_password); - addPreferencesFromResource(R.xml.pref_quickwizard); + addPreferencesFromResource(R.xml.pref_age); addPreferencesFromResource(R.xml.pref_language); + addPreferencesFromResource(R.xml.pref_quickwizard); if (Config.CAREPORTALENABLED) addPreferencesFromResource(R.xml.pref_careportal); addPreferencesFromResource(R.xml.pref_treatments); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgBolusStart.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgBolusStart.java index bf6af2841b..3ae5b97b69 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgBolusStart.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgBolusStart.java @@ -6,6 +6,7 @@ import org.slf4j.LoggerFactory; import info.nightscout.androidaps.BuildConfig; import info.nightscout.androidaps.Config; import info.nightscout.androidaps.MainApp; +import info.nightscout.utils.HardLimits; public class MsgBolusStart extends MessageBase { private static Logger log = LoggerFactory.getLogger(MsgBolusStart.class); @@ -20,7 +21,7 @@ public class MsgBolusStart extends MessageBase { // HARDCODED LIMIT amount = MainApp.getConfigBuilder().applyBolusConstraints(amount); if (amount < 0) amount = 0d; - if (amount > BuildConfig.MAXBOLUS) amount = BuildConfig.MAXBOLUS; + if (amount > HardLimits.maxBolus()) amount = HardLimits.maxBolus(); AddParamInt((int) (amount * 100)); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSetExtendedBolusStart.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSetExtendedBolusStart.java index 894227e07d..9c37fda333 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSetExtendedBolusStart.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/comm/MsgSetExtendedBolusStart.java @@ -6,6 +6,7 @@ import org.slf4j.LoggerFactory; import info.nightscout.androidaps.BuildConfig; import info.nightscout.androidaps.Config; import info.nightscout.androidaps.MainApp; +import info.nightscout.utils.HardLimits; public class MsgSetExtendedBolusStart extends MessageBase { private static Logger log = LoggerFactory.getLogger(MsgSetExtendedBolusStart.class); @@ -22,7 +23,7 @@ public class MsgSetExtendedBolusStart extends MessageBase { if (halfhours > 16) halfhours = 16; amount = MainApp.getConfigBuilder().applyBolusConstraints(amount); if (amount < 0d) amount = 0d; - if (amount > BuildConfig.MAXBOLUS) amount = BuildConfig.MAXBOLUS; + if (amount > HardLimits.maxBolus()) amount = HardLimits.maxBolus(); AddParamInt((int) (amount * 100)); AddParamByte(halfhours); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SafetyFragment/SafetyPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SafetyFragment/SafetyPlugin.java index 9cbda6bf06..83ace20c71 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SafetyFragment/SafetyPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SafetyFragment/SafetyPlugin.java @@ -11,6 +11,7 @@ import info.nightscout.androidaps.R; import info.nightscout.androidaps.interfaces.ConstraintsInterface; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; +import info.nightscout.utils.HardLimits; import info.nightscout.utils.Round; import info.nightscout.utils.SP; @@ -176,7 +177,7 @@ public class SafetyPlugin implements PluginBase, ConstraintsInterface { } catch (Exception e) { insulin = 0d; } - if (insulin > BuildConfig.MAXBOLUS) insulin = Double.valueOf(BuildConfig.MAXBOLUS); + if (insulin > HardLimits.maxBolus()) insulin = HardLimits.maxBolus(); return insulin; } diff --git a/app/src/main/java/info/nightscout/utils/HardLimits.java b/app/src/main/java/info/nightscout/utils/HardLimits.java new file mode 100644 index 0000000000..ff92cf2e87 --- /dev/null +++ b/app/src/main/java/info/nightscout/utils/HardLimits.java @@ -0,0 +1,24 @@ +package info.nightscout.utils; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; + +/** + * Created by mike on 22.02.2017. + */ + +public class HardLimits { + final static double MAXBOLUS_ADULT = 17d; + final static double MAXBOLUS_TEENAGE = 10d; + final static double MAXBOLUS_CHILD = 5d; + + public static double maxBolus() { + String age = SP.getString(R.string.key_age, ""); + + if (age.equals(MainApp.sResources.getString(R.string.key_adult))) return MAXBOLUS_ADULT; + if (age.equals(MainApp.sResources.getString(R.string.key_teenage))) return MAXBOLUS_TEENAGE; + if (age.equals(MainApp.sResources.getString(R.string.key_child))) return MAXBOLUS_CHILD; + return MAXBOLUS_ADULT; + } + +} diff --git a/app/src/main/java/info/nightscout/utils/SP.java b/app/src/main/java/info/nightscout/utils/SP.java index 3626d7c69e..cce1df9474 100644 --- a/app/src/main/java/info/nightscout/utils/SP.java +++ b/app/src/main/java/info/nightscout/utils/SP.java @@ -76,6 +76,12 @@ public class SP { editor.apply(); } + static public void removeBoolean(int resourceID) { + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.remove(MainApp.sResources.getString(resourceID)); + editor.apply(); + } + static public void putString(String key, String value) { SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString(key, value); @@ -87,4 +93,10 @@ public class SP { editor.putString(MainApp.sResources.getString(resourceID), value); editor.apply(); } + + static public void removeString(int resourceID) { + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.remove(MainApp.sResources.getString(resourceID)); + editor.apply(); + } } diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index fe14a6a11b..bd89f7efc2 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -28,4 +28,16 @@ ko el + + + @string/child + @string/teenage + @string/adult + + + @string/key_child + @string/key_teenage + @string/key_adult + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5c717d3061..e1cfe1a3d4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -544,4 +544,14 @@ Not available smscommunicator_allowednumbers smscommunicator_remotecommandsallowed + Patient age + Child + Teenage + Adult + age + child + teenage + adult + Please select patient age to setup safety limits + I_understand diff --git a/app/src/main/res/xml/pref_age.xml b/app/src/main/res/xml/pref_age.xml new file mode 100644 index 0000000000..75496fcb41 --- /dev/null +++ b/app/src/main/res/xml/pref_age.xml @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file From b0c828c93e3415dd330dbe9aa5cafec29acdff0b Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 23 Feb 2017 20:00:33 +0100 Subject: [PATCH 035/140] nsclient build variant --- app/build.gradle | 51 +++-- app/src/main/AndroidManifest.xml | 2 +- .../info/nightscout/androidaps/Config.java | 14 +- .../nightscout/androidaps/MainActivity.java | 13 +- .../info/nightscout/androidaps/MainApp.java | 21 +- .../androidaps/PreferencesActivity.java | 44 ++-- .../ConfigBuilder/ConfigBuilderPlugin.java | 200 ++++++++++++------ .../androidaps/plugins/Loop/LoopPlugin.java | 2 +- .../Overview/Dialogs/WizardDialog.java | 11 +- .../plugins/Overview/OverviewFragment.java | 11 +- .../VirtualPump/VirtualPumpPlugin.java | 11 +- .../PersistentNotificationPlugin.java | 18 +- .../info/nightscout/utils/BolusWizard.java | 19 +- .../main/res/drawable/notification_icon.png | Bin 3418 -> 0 bytes .../{ic_launcher.png => blueowl.png} | Bin app/src/main/res/mipmap-hdpi/yellowowl.png | Bin 0 -> 4769 bytes .../{ic_launcher.png => blueowl.png} | Bin app/src/main/res/mipmap-mdpi/yellowowl.png | Bin 0 -> 3127 bytes .../{ic_launcher.png => blueowl.png} | Bin app/src/main/res/mipmap-xhdpi/yellowowl.png | Bin 0 -> 7137 bytes .../{ic_launcher.png => blueowl.png} | Bin app/src/main/res/mipmap-xxhdpi/yellowowl.png | Bin 0 -> 12994 bytes .../{ic_launcher.png => blueowl.png} | Bin app/src/main/res/mipmap-xxxhdpi/yellowowl.png | Bin 0 -> 20028 bytes app/src/main/res/values-bg/strings.xml | 1 - app/src/main/res/values-cs/strings.xml | 1 - app/src/main/res/values-de/strings.xml | 1 - app/src/main/res/values-es/strings.xml | 1 - app/src/main/res/values-ko/strings.xml | 1 - app/src/main/res/values/strings.xml | 1 - 30 files changed, 275 insertions(+), 148 deletions(-) delete mode 100644 app/src/main/res/drawable/notification_icon.png rename app/src/main/res/mipmap-hdpi/{ic_launcher.png => blueowl.png} (100%) create mode 100644 app/src/main/res/mipmap-hdpi/yellowowl.png rename app/src/main/res/mipmap-mdpi/{ic_launcher.png => blueowl.png} (100%) create mode 100644 app/src/main/res/mipmap-mdpi/yellowowl.png rename app/src/main/res/mipmap-xhdpi/{ic_launcher.png => blueowl.png} (100%) create mode 100644 app/src/main/res/mipmap-xhdpi/yellowowl.png rename app/src/main/res/mipmap-xxhdpi/{ic_launcher.png => blueowl.png} (100%) create mode 100644 app/src/main/res/mipmap-xxhdpi/yellowowl.png rename app/src/main/res/mipmap-xxxhdpi/{ic_launcher.png => blueowl.png} (100%) create mode 100644 app/src/main/res/mipmap-xxxhdpi/yellowowl.png diff --git a/app/build.gradle b/app/build.gradle index d87426d444..3a9a8c6445 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,7 +44,8 @@ android { minSdkVersion 21 targetSdkVersion 23 versionCode 1100 - versionName "1.1g" + version "1.1g" + buildConfigField "String", "VERSION", '"' + version + '"' buildConfigField "String", "BUILDVERSION", generateGitBuild() } lintOptions { @@ -60,26 +61,50 @@ android { flavorDimensions "standard", "wear" full { dimension "standard" + resValue "string", "app_name", "AndroidAPS" + versionName version + manifestPlaceholders = [ + appIcon: "@mipmap/blueowl" + ] buildConfigField "boolean", "APS", "true" buildConfigField "boolean", "PUMPDRIVERS", "true" + buildConfigField "boolean", "NSCLIENTOLNY", "false" buildConfigField "boolean", "CLOSEDLOOP", "true" } - pumpcontrol { - dimension "standard" - buildConfigField "boolean", "APS", "false" - buildConfigField "boolean", "PUMPDRIVERS", "true" - buildConfigField "boolean", "CLOSEDLOOP", "false" - } - careportal { - dimension "standard" - buildConfigField "boolean", "APS", "false" - buildConfigField "boolean", "PUMPDRIVERS", "false" - buildConfigField "boolean", "CLOSEDLOOP", "false" - } openloop { dimension "standard" + resValue "string", "app_name", "AndroidAPS" + versionName version + manifestPlaceholders = [ + appIcon: "@mipmap/blueowl" + ] buildConfigField "boolean", "APS", "true" buildConfigField "boolean", "PUMPDRIVERS", "true" + buildConfigField "boolean", "NSCLIENTOLNY", "false" + buildConfigField "boolean", "CLOSEDLOOP", "false" + } + pumpcontrol { + dimension "standard" + resValue "string", "app_name", "AndroidAPS" + versionName version + manifestPlaceholders = [ + appIcon: "@mipmap/blueowl" + ] + buildConfigField "boolean", "APS", "false" + buildConfigField "boolean", "PUMPDRIVERS", "true" + buildConfigField "boolean", "NSCLIENTOLNY", "false" + buildConfigField "boolean", "CLOSEDLOOP", "false" + } + nsclient { + dimension "standard" + resValue "string", "app_name", "NSClient" + versionName version + "-nsclient" + manifestPlaceholders = [ + appIcon: "@mipmap/yellowowl" + ] + buildConfigField "boolean", "APS", "false" + buildConfigField "boolean", "PUMPDRIVERS", "false" + buildConfigField "boolean", "NSCLIENTOLNY", "true" buildConfigField "boolean", "CLOSEDLOOP", "false" } wear { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 310ad6d42c..2694197809 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -24,7 +24,7 @@ diff --git a/app/src/main/java/info/nightscout/androidaps/Config.java b/app/src/main/java/info/nightscout/androidaps/Config.java index de4dc5d49b..7f094281f8 100644 --- a/app/src/main/java/info/nightscout/androidaps/Config.java +++ b/app/src/main/java/info/nightscout/androidaps/Config.java @@ -11,12 +11,22 @@ public class Config { public static final boolean LOOPENABLED = APS; public static final boolean WEAR = BuildConfig.WEAR; - public static final boolean CAREPORTALENABLED = true; - public static final boolean SMSCOMMUNICATORENABLED = true; public static final boolean DANAR = true && BuildConfig.PUMPDRIVERS; public static final boolean DANARKOREAN = true && BuildConfig.PUMPDRIVERS; + public static final boolean ACTION = !BuildConfig.NSCLIENTOLNY; + public static final boolean VIRTUALPUMP = !BuildConfig.NSCLIENTOLNY; + public static final boolean MDI = !BuildConfig.NSCLIENTOLNY; + public static final boolean OTHERPROFILES = !BuildConfig.NSCLIENTOLNY; + public static final boolean TEMPBASALS = !BuildConfig.NSCLIENTOLNY; + public static final boolean SAFETY = !BuildConfig.NSCLIENTOLNY; + + public static final boolean SMSCOMMUNICATORENABLED = !BuildConfig.NSCLIENTOLNY; + + + public static final boolean ALLPREFERENCES = !BuildConfig.NSCLIENTOLNY; + public static final boolean detailedLog = true; public static final boolean logFunctionCalls = true; public static final boolean logIncommingBG = true; diff --git a/app/src/main/java/info/nightscout/androidaps/MainActivity.java b/app/src/main/java/info/nightscout/androidaps/MainActivity.java index 5fcaf2ee13..715756259a 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/MainActivity.java @@ -4,12 +4,10 @@ import android.Manifest; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; -import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.graphics.Rect; import android.os.Build; import android.os.Bundle; -import android.preference.PreferenceManager; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v4.view.ViewPager; @@ -65,18 +63,17 @@ public class MainActivity extends AppCompatActivity { log.debug("onCreate"); // show version in toolbar - try { - setTitle(getString(R.string.app_name) + " " + getPackageManager().getPackageInfo(getPackageName(), 0).versionName); - } catch (PackageManager.NameNotFoundException e) { - e.printStackTrace(); - } + setTitle(getString(R.string.app_name) + " " + BuildConfig.VERSION); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); registerBus(); try { getSupportActionBar().setDisplayShowHomeEnabled(true); - getSupportActionBar().setIcon(R.mipmap.ic_launcher); + if (BuildConfig.NSCLIENTOLNY) + getSupportActionBar().setIcon(R.mipmap.yellowowl); + else + getSupportActionBar().setIcon(R.mipmap.blueowl); } catch (NullPointerException e) { // no action } diff --git a/app/src/main/java/info/nightscout/androidaps/MainApp.java b/app/src/main/java/info/nightscout/androidaps/MainApp.java index 09014619cb..d3a8298a22 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainApp.java +++ b/app/src/main/java/info/nightscout/androidaps/MainApp.java @@ -78,29 +78,28 @@ public class MainApp extends Application { pluginsList = new ArrayList<>(); // Register all tabs in app here pluginsList.add(OverviewFragment.getPlugin()); - pluginsList.add(ActionsFragment.getPlugin()); + if (Config.ACTION) pluginsList.add(ActionsFragment.getPlugin()); if (Config.DANAR) pluginsList.add(DanaRFragment.getPlugin()); if (Config.DANARKOREAN) pluginsList.add(DanaRKoreanFragment.getPlugin()); - if (Config.CAREPORTALENABLED) pluginsList.add(CareportalFragment.getPlugin()); - pluginsList.add(MDIFragment.getPlugin()); - pluginsList.add(VirtualPumpFragment.getPlugin()); + pluginsList.add(CareportalFragment.getPlugin()); + if (Config.MDI) pluginsList.add(MDIFragment.getPlugin()); + if (Config.VIRTUALPUMP) pluginsList.add(VirtualPumpFragment.getPlugin()); if (Config.LOOPENABLED) pluginsList.add(LoopFragment.getPlugin()); if (Config.OPENAPSENABLED) pluginsList.add(OpenAPSMAFragment.getPlugin()); if (Config.OPENAPSENABLED) pluginsList.add(OpenAPSAMAFragment.getPlugin()); pluginsList.add(NSProfileFragment.getPlugin()); - pluginsList.add(SimpleProfileFragment.getPlugin()); - pluginsList.add(LocalProfileFragment.getPlugin()); - pluginsList.add(CircadianPercentageProfileFragment.getPlugin()); + if (Config.OTHERPROFILES) pluginsList.add(SimpleProfileFragment.getPlugin()); + if (Config.OTHERPROFILES) pluginsList.add(LocalProfileFragment.getPlugin()); + if (Config.OTHERPROFILES) pluginsList.add(CircadianPercentageProfileFragment.getPlugin()); if (Config.APS) pluginsList.add(TempTargetRangeFragment.getPlugin()); pluginsList.add(TreatmentsFragment.getPlugin()); - pluginsList.add(TempBasalsFragment.getPlugin()); - pluginsList.add(SafetyFragment.getPlugin()); + if (Config.TEMPBASALS) pluginsList.add(TempBasalsFragment.getPlugin()); + if (Config.SAFETY) pluginsList.add(SafetyFragment.getPlugin()); if (Config.APS) pluginsList.add(ObjectivesFragment.getPlugin()); pluginsList.add(SourceXdripFragment.getPlugin()); pluginsList.add(SourceNSClientFragment.getPlugin()); pluginsList.add(SourceMM640gFragment.getPlugin()); - if (Config.SMSCOMMUNICATORENABLED) - pluginsList.add(SmsCommunicatorFragment.getPlugin()); + if (Config.SMSCOMMUNICATORENABLED) pluginsList.add(SmsCommunicatorFragment.getPlugin()); if (Config.WEAR) pluginsList.add(WearFragment.getPlugin(this)); pluginsList.add(new PersistentNotificationPlugin(this)); diff --git a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java index 21fd349822..132ac5d059 100644 --- a/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/PreferencesActivity.java @@ -57,7 +57,7 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre } if (pref instanceof EditTextPreference) { EditTextPreference editTextPref = (EditTextPreference) pref; - if (pref.getKey().contains("password")) { + if (pref.getKey().contains("password")|| pref.getKey().contains("secret")) { pref.setSummary("******"); } else if (editTextPref.getText() != null && !editTextPref.getText().equals("")) { ((EditTextPreference) pref).setDialogMessage(editTextPref.getDialogMessage()); @@ -85,20 +85,28 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); - addPreferencesFromResource(R.xml.pref_password); - addPreferencesFromResource(R.xml.pref_age); + if (Config.ALLPREFERENCES) { + addPreferencesFromResource(R.xml.pref_password); + addPreferencesFromResource(R.xml.pref_age); + } addPreferencesFromResource(R.xml.pref_language); - addPreferencesFromResource(R.xml.pref_quickwizard); - if (Config.CAREPORTALENABLED) - addPreferencesFromResource(R.xml.pref_careportal); - addPreferencesFromResource(R.xml.pref_treatments); + if (Config.ALLPREFERENCES) { + addPreferencesFromResource(R.xml.pref_quickwizard); + } + addPreferencesFromResource(R.xml.pref_careportal); + if (Config.ALLPREFERENCES) { + addPreferencesFromResource(R.xml.pref_treatments); + } if (Config.APS) addPreferencesFromResource(R.xml.pref_closedmode); - if (Config.OPENAPSENABLED) + if (Config.OPENAPSENABLED) { addPreferencesFromResource(R.xml.pref_openapsma); - if (MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class) != null && MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class).isEnabled(PluginBase.APS)) - addPreferencesFromResource(R.xml.pref_openapsama); - addPreferencesFromResource(R.xml.pref_profile); + if (MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class) != null && MainApp.getSpecificPlugin(OpenAPSAMAPlugin.class).isEnabled(PluginBase.APS)) + addPreferencesFromResource(R.xml.pref_openapsama); + } + if (Config.ALLPREFERENCES) { + addPreferencesFromResource(R.xml.pref_profile); + } if (Config.DANAR) { DanaRPlugin danaRPlugin = (DanaRPlugin) MainApp.getSpecificPlugin(DanaRPlugin.class); DanaRKoreanPlugin danaRKoreanPlugin = (DanaRKoreanPlugin) MainApp.getSpecificPlugin(DanaRKoreanPlugin.class); @@ -119,13 +127,17 @@ public class PreferencesActivity extends PreferenceActivity implements SharedPre } if (Config.SMSCOMMUNICATORENABLED) addPreferencesFromResource(R.xml.pref_smscommunicator); - addPreferencesFromResource(R.xml.pref_others); - addPreferencesFromResource(R.xml.pref_advanced); + if (Config.ALLPREFERENCES) { + addPreferencesFromResource(R.xml.pref_others); + addPreferencesFromResource(R.xml.pref_advanced); + } initSummary(getPreferenceScreen()); - WearPlugin wearPlugin = (WearPlugin) MainApp.getSpecificPlugin(WearPlugin.class); - if (wearPlugin != null && wearPlugin.isEnabled(PluginBase.GENERAL)) { - addPreferencesFromResource(R.xml.pref_wear); + if (Config.WEAR) { + WearPlugin wearPlugin = (WearPlugin) MainApp.getSpecificPlugin(WearPlugin.class); + if (wearPlugin != null && wearPlugin.isEnabled(PluginBase.GENERAL)) { + addPreferencesFromResource(R.xml.pref_wear); + } } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java index 362e5727c9..f780596e59 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java @@ -269,7 +269,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain // PluginBase.PUMP pluginsInCategory = MainApp.getSpecificPluginsList(PluginBase.PUMP); activePump = (PumpInterface) getTheOneEnabledInArray(pluginsInCategory, PluginBase.PUMP); - if (Config.logConfigBuilder) + if (Config.logConfigBuilder && activePump != null) log.debug("Selected pump interface: " + ((PluginBase) activePump).getName()); for (PluginBase p : pluginsInCategory) { if (!p.getName().equals(((PluginBase) activePump).getName())) { @@ -293,7 +293,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain // PluginBase.TEMPBASAL pluginsInCategory = MainApp.getSpecificPluginsList(PluginBase.TEMPBASAL); activeTempBasals = (TempBasalsInterface) getTheOneEnabledInArray(pluginsInCategory, PluginBase.TEMPBASAL); - if (Config.logConfigBuilder) + if (Config.logConfigBuilder && activeTempBasals != null) log.debug("Selected tempbasal interface: " + ((PluginBase) activeTempBasals).getName()); for (PluginBase p : pluginsInCategory) { if (!p.getName().equals(((PluginBase) activeTempBasals).getName())) { @@ -337,27 +337,37 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain */ @Override public boolean isInitialized() { - return activePump.isInitialized(); + if (activePump != null) + return activePump.isInitialized(); + else return true; } @Override public boolean isSuspended() { - return activePump.isSuspended(); + if (activePump != null) + return activePump.isSuspended(); + else return false; } @Override public boolean isBusy() { - return activePump.isBusy(); + if (activePump != null) + return activePump.isBusy(); + else return false; } @Override public boolean isTempBasalInProgress() { - return activePump.isTempBasalInProgress(); + if (activePump != null) + return activePump.isTempBasalInProgress(); + else return false; } @Override public boolean isExtendedBoluslInProgress() { - return activePump.isExtendedBoluslInProgress(); + if (activePump != null) + return activePump.isExtendedBoluslInProgress(); + else return false; } @Override @@ -378,87 +388,129 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain if (isThisProfileSet(profile)) { log.debug("Correct profile already set"); return NOT_NEEDED; - } else { + } else if (activePump != null) { return activePump.setNewBasalProfile(profile); - } + } else + return SUCCESS; } @Override public boolean isThisProfileSet(NSProfile profile) { - return activePump.isThisProfileSet(profile); + if (activePump != null) + return activePump.isThisProfileSet(profile); + else return true; } @Override public Date lastDataTime() { - return activePump.lastDataTime(); + if (activePump != null) + return activePump.lastDataTime(); + else return new Date(); } @Override public void refreshDataFromPump(String reason) { - activePump.refreshDataFromPump(reason); + if (activePump != null) + activePump.refreshDataFromPump(reason); } @Override public double getBaseBasalRate() { - return activePump.getBaseBasalRate(); + if (activePump != null) + return activePump.getBaseBasalRate(); + else + return 0d; } @Override public double getTempBasalAbsoluteRate() { - return activePump.getTempBasalAbsoluteRate(); + if (activePump != null) + return activePump.getTempBasalAbsoluteRate(); + else + return 0d; } @Override public double getTempBasalRemainingMinutes() { - return activePump.getTempBasalRemainingMinutes(); + if (activePump != null) + return activePump.getTempBasalRemainingMinutes(); + else + return 0d; } @Override public TempBasal getTempBasal(Date time) { - return activePump.getTempBasal(time); + if (activePump != null) + return activePump.getTempBasal(time); + else + return null; } @Override public TempBasal getTempBasal() { - return activePump.getTempBasal(); + if (activePump != null) + return activePump.getTempBasal(); + else + return null; } @Override public TempBasal getExtendedBolus() { - return activePump.getExtendedBolus(); + if (activePump != null) + return activePump.getExtendedBolus(); + else + return null; } public PumpEnactResult deliverTreatmentFromBolusWizard(Context context, Double insulin, Integer carbs, Double glucose, String glucoseType, int carbTime, JSONObject boluscalc) { mWakeLock.acquire(); - insulin = applyBolusConstraints(insulin); - carbs = applyCarbsConstraints(carbs); + PumpEnactResult result; + if (activePump != null) { + insulin = applyBolusConstraints(insulin); + carbs = applyCarbsConstraints(carbs); - BolusProgressDialog bolusProgressDialog = null; - if (context != null) { - bolusProgressDialog = new BolusProgressDialog(); - bolusProgressDialog.setInsulin(insulin); - bolusProgressDialog.show(((AppCompatActivity) context).getSupportFragmentManager(), "BolusProgress"); - } + BolusProgressDialog bolusProgressDialog = null; + if (context != null) { + bolusProgressDialog = new BolusProgressDialog(); + bolusProgressDialog.setInsulin(insulin); + bolusProgressDialog.show(((AppCompatActivity) context).getSupportFragmentManager(), "BolusProgress"); + } - MainApp.bus().post(new EventBolusRequested(insulin)); + MainApp.bus().post(new EventBolusRequested(insulin)); - PumpEnactResult result = activePump.deliverTreatment(insulin, carbs, context); + result = activePump.deliverTreatment(insulin, carbs, context); - BolusProgressDialog.bolusEnded = true; + BolusProgressDialog.bolusEnded = true; - MainApp.bus().post(new EventDismissBolusprogressIfRunning(result)); + MainApp.bus().post(new EventDismissBolusprogressIfRunning(result)); - if (result.success) { + if (result.success) { + Treatment t = new Treatment(); + t.insulin = result.bolusDelivered; + if (carbTime == 0) + t.carbs = (double) result.carbsDelivered; // with different carbTime record will come back from nightscout + t.created_at = new Date(); + t.mealBolus = result.carbsDelivered > 0; + MainApp.getDbHelper().create(t); + t.setTimeIndex(t.getTimeIndex()); + t.carbs = (double) result.carbsDelivered; + uploadBolusWizardRecord(t, glucose, glucoseType, carbTime, boluscalc); + } + } else { + if (Config.logCongigBuilderActions) + log.debug("Creating treatment: " + insulin + " carbs: " + carbs); Treatment t = new Treatment(); - t.insulin = result.bolusDelivered; - if (carbTime == 0) - t.carbs = (double) result.carbsDelivered; // with different carbTime record will come back from nightscout + t.insulin = insulin; + t.carbs = (double) carbs; t.created_at = new Date(); - t.mealBolus = result.carbsDelivered > 0; + t.mealBolus = t.carbs > 0; MainApp.getDbHelper().create(t); t.setTimeIndex(t.getTimeIndex()); - t.carbs = (double) result.carbsDelivered; - uploadBolusWizardRecord(t, glucose, glucoseType, carbTime, boluscalc); + t.sendToNSClient(); + result = new PumpEnactResult(); + result.success = true; + result.bolusDelivered = insulin; + result.carbsDelivered = carbs; } mWakeLock.release(); return result; @@ -471,42 +523,60 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain public PumpEnactResult deliverTreatment(Double insulin, Integer carbs, Context context, boolean createTreatment) { mWakeLock.acquire(); - insulin = applyBolusConstraints(insulin); - carbs = applyCarbsConstraints(carbs); + PumpEnactResult result; + if (activePump != null) { + insulin = applyBolusConstraints(insulin); + carbs = applyCarbsConstraints(carbs); - BolusProgressDialog bolusProgressDialog = null; - if (context != null) { - bolusProgressDialog = new BolusProgressDialog(); - bolusProgressDialog.setInsulin(insulin); - bolusProgressDialog.show(((AppCompatActivity) context).getSupportFragmentManager(), "BolusProgress"); + BolusProgressDialog bolusProgressDialog = null; + if (context != null) { + bolusProgressDialog = new BolusProgressDialog(); + bolusProgressDialog.setInsulin(insulin); + bolusProgressDialog.show(((AppCompatActivity) context).getSupportFragmentManager(), "BolusProgress"); + } else { + Intent i = new Intent(); + i.putExtra("insulin", insulin.doubleValue()); + i.setClass(MainApp.instance(), BolusProgressHelperActivity.class); + i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + MainApp.instance().startActivity(i); + } + + MainApp.bus().post(new EventBolusRequested(insulin)); + + result = activePump.deliverTreatment(insulin, carbs, context); + + BolusProgressDialog.bolusEnded = true; + + MainApp.bus().post(new EventDismissBolusprogressIfRunning(result)); + + if (Config.logCongigBuilderActions) + log.debug("deliverTreatment insulin: " + insulin + " carbs: " + carbs + " success: " + result.success + " enacted: " + result.enacted + " bolusDelivered: " + result.bolusDelivered); + + if (result.success && createTreatment) { + Treatment t = new Treatment(); + t.insulin = result.bolusDelivered; + t.carbs = (double) result.carbsDelivered; + t.created_at = new Date(); + t.mealBolus = t.carbs > 0; + MainApp.getDbHelper().create(t); + t.setTimeIndex(t.getTimeIndex()); + t.sendToNSClient(); + } } else { - Intent i = new Intent(); - i.putExtra("insulin", insulin.doubleValue()); - i.setClass(MainApp.instance(), BolusProgressHelperActivity.class); - i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - MainApp.instance().startActivity(i); - } - - MainApp.bus().post(new EventBolusRequested(insulin)); - - PumpEnactResult result = activePump.deliverTreatment(insulin, carbs, context); - - BolusProgressDialog.bolusEnded = true; - - MainApp.bus().post(new EventDismissBolusprogressIfRunning(result)); - - if (Config.logCongigBuilderActions) - log.debug("deliverTreatment insulin: " + insulin + " carbs: " + carbs + " success: " + result.success + " enacted: " + result.enacted + " bolusDelivered: " + result.bolusDelivered); - - if (result.success && createTreatment) { + if (Config.logCongigBuilderActions) + log.debug("Creating treatment: " + insulin + " carbs: " + carbs); Treatment t = new Treatment(); - t.insulin = result.bolusDelivered; - t.carbs = (double) result.carbsDelivered; + t.insulin = insulin; + t.carbs = (double) carbs; t.created_at = new Date(); t.mealBolus = t.carbs > 0; MainApp.getDbHelper().create(t); t.setTimeIndex(t.getTimeIndex()); t.sendToNSClient(); + result = new PumpEnactResult(); + result.success = true; + result.bolusDelivered = insulin; + result.carbsDelivered = carbs; } mWakeLock.release(); return result; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java index a357d519b9..c73b4a7f1f 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java @@ -196,7 +196,7 @@ public class LoopPlugin implements PluginBase { if (result.changeRequested && allowNotification) { NotificationCompat.Builder builder = new NotificationCompat.Builder(MainApp.instance().getApplicationContext()); - builder.setSmallIcon(R.drawable.notification_icon) + builder.setSmallIcon(R.drawable.notif_icon) .setContentTitle(MainApp.sResources.getString(R.string.openloop_newsuggestion)) .setContentText(resultAfterConstraints.toString()) .setAutoCancel(true) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java index 2fc8764a9d..f6b319664c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java @@ -309,12 +309,15 @@ public class WizardDialog extends DialogFragment implements OnClickListener { } // IOB calculation - TreatmentsInterface treatments = MainApp.getConfigBuilder().getActiveTreatments(); - TempBasalsInterface tempBasals = MainApp.getConfigBuilder().getActiveTempBasals(); + TreatmentsInterface treatments = ConfigBuilderPlugin.getActiveTreatments(); treatments.updateTotalIOB(); - tempBasals.updateTotalIOB(); IobTotal bolusIob = treatments.getLastCalculation(); - IobTotal basalIob = tempBasals.getLastCalculation(); + TempBasalsInterface tempBasals = ConfigBuilderPlugin.getActiveTempBasals(); + IobTotal basalIob = new IobTotal(new Date().getTime()); + if (tempBasals != null) { + tempBasals.updateTotalIOB(); + basalIob = tempBasals.getLastCalculation().round(); + } bolusIobInsulin.setText(DecimalFormatter.to2Decimal(-bolusIob.iob) + "U"); basalIobInsulin.setText(DecimalFormatter.to2Decimal(-basalIob.basaliob) + "U"); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index 2c68363954..7d2950b554 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -741,10 +741,13 @@ public class OverviewFragment extends Fragment { timeAgoView.setText(String.format(MainApp.sResources.getString(R.string.minago), agoMin)); // iob - MainApp.getConfigBuilder().getActiveTreatments().updateTotalIOB(); - IobTotal bolusIob = MainApp.getConfigBuilder().getActiveTreatments().getLastCalculation().round(); - MainApp.getConfigBuilder().getActiveTempBasals().updateTotalIOB(); - IobTotal basalIob = MainApp.getConfigBuilder().getActiveTempBasals().getLastCalculation().round(); + ConfigBuilderPlugin.getActiveTreatments().updateTotalIOB(); + IobTotal bolusIob = ConfigBuilderPlugin.getActiveTreatments().getLastCalculation().round(); + IobTotal basalIob = new IobTotal(new Date().getTime()); + if (ConfigBuilderPlugin.getActiveTempBasals() != null) { + ConfigBuilderPlugin.getActiveTempBasals().updateTotalIOB(); + basalIob = ConfigBuilderPlugin.getActiveTempBasals().getLastCalculation().round(); + } String iobtext = getString(R.string.treatments_iob_label_string) + " " + DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob) + "U (" + getString(R.string.bolus) + ": " + DecimalFormatter.to2Decimal(bolusIob.iob) + "U " diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java index 0e46b6a219..f84adf737e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java @@ -21,6 +21,7 @@ import info.nightscout.androidaps.db.TempBasal; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PumpDescription; import info.nightscout.androidaps.interfaces.PumpInterface; +import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.Overview.events.EventOverviewBolusProgress; import info.nightscout.androidaps.plugins.VirtualPump.events.EventVirtualPumpUpdateGui; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; @@ -169,7 +170,7 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { @Override public double getBaseBasalRate() { - NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); + NSProfile profile = ConfigBuilderPlugin.getActiveProfile().getProfile(); if (profile == null) return defaultBasalValue; return profile.getBasal(profile.secondsFromMidnight()); @@ -182,7 +183,7 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { if (getTempBasal().isAbsolute) { return getTempBasal().absolute; } else { - NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); + NSProfile profile = ConfigBuilderPlugin.getActiveProfile().getProfile(); if (profile == null) return defaultBasalValue; Double baseRate = profile.getBasal(profile.secondsFromMidnight()); @@ -193,12 +194,12 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { @Override public TempBasal getTempBasal() { - return MainApp.getConfigBuilder().getActiveTempBasals().getTempBasal(new Date()); + return ConfigBuilderPlugin.getActiveTempBasals().getTempBasal(new Date()); } @Override public TempBasal getExtendedBolus() { - return MainApp.getConfigBuilder().getActiveTempBasals().getExtendedBolus(new Date()); + return ConfigBuilderPlugin.getActiveTempBasals().getExtendedBolus(new Date()); } @Override @@ -210,7 +211,7 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { @Override public TempBasal getTempBasal(Date time) { - return MainApp.getConfigBuilder().getActiveTempBasals().getTempBasal(time); + return ConfigBuilderPlugin.getActiveTempBasals().getTempBasal(time); } @Override diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/persistentnotification/PersistentNotificationPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/persistentnotification/PersistentNotificationPlugin.java index 37b2d5b99d..a229d906e8 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/persistentnotification/PersistentNotificationPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/persistentnotification/PersistentNotificationPlugin.java @@ -11,6 +11,8 @@ import android.support.v7.app.NotificationCompat; import com.squareup.otto.Subscribe; +import java.util.Date; + import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainActivity; import info.nightscout.androidaps.MainApp; @@ -28,6 +30,7 @@ import info.nightscout.androidaps.events.EventTreatmentChange; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.data.IobTotal; +import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.utils.DecimalFormatter; @@ -38,7 +41,7 @@ import info.nightscout.utils.DecimalFormatter; public class PersistentNotificationPlugin implements PluginBase{ private static final int ONGOING_NOTIFICATION_ID = 4711; - static boolean fragmentEnabled = false; + static boolean fragmentEnabled = true; private final Context ctx; public PersistentNotificationPlugin(Context ctx) { @@ -131,10 +134,13 @@ public class PersistentNotificationPlugin implements PluginBase{ } //IOB - MainApp.getConfigBuilder().getActiveTreatments().updateTotalIOB(); - IobTotal bolusIob = MainApp.getConfigBuilder().getActiveTreatments().getLastCalculation().round(); - MainApp.getConfigBuilder().getActiveTempBasals().updateTotalIOB(); - IobTotal basalIob = MainApp.getConfigBuilder().getActiveTempBasals().getLastCalculation().round(); + ConfigBuilderPlugin.getActiveTreatments().updateTotalIOB(); + IobTotal bolusIob = ConfigBuilderPlugin.getActiveTreatments().getLastCalculation().round(); + IobTotal basalIob = new IobTotal(new Date().getTime()); + if (ConfigBuilderPlugin.getActiveTempBasals() != null) { + ConfigBuilderPlugin.getActiveTempBasals().updateTotalIOB(); + basalIob = ConfigBuilderPlugin.getActiveTempBasals().getLastCalculation().round(); + } String line2 = ctx.getString(R.string.treatments_iob_label_string) + " " + DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob) + "U (" + ctx.getString(R.string.bolus) + ": " + DecimalFormatter.to2Decimal(bolusIob.iob) + "U " + ctx.getString(R.string.basal) + ": " + DecimalFormatter.to2Decimal(basalIob.basaliob) + "U)"; @@ -151,7 +157,7 @@ public class PersistentNotificationPlugin implements PluginBase{ builder.setOngoing(true); builder.setCategory(NotificationCompat.CATEGORY_STATUS); builder.setSmallIcon(R.drawable.ic_notification); - Bitmap largeIcon = BitmapFactory.decodeResource(ctx.getResources(), R.mipmap.ic_launcher); + Bitmap largeIcon = BitmapFactory.decodeResource(ctx.getResources(), R.mipmap.blueowl); builder.setLargeIcon(largeIcon); builder.setContentTitle(line1); builder.setContentText(line2); diff --git a/app/src/main/java/info/nightscout/utils/BolusWizard.java b/app/src/main/java/info/nightscout/utils/BolusWizard.java index c3607cc89a..308da980e8 100644 --- a/app/src/main/java/info/nightscout/utils/BolusWizard.java +++ b/app/src/main/java/info/nightscout/utils/BolusWizard.java @@ -2,10 +2,13 @@ package info.nightscout.utils; import org.json.JSONObject; +import java.util.Date; + import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.interfaces.TempBasalsInterface; import info.nightscout.androidaps.interfaces.TreatmentsInterface; import info.nightscout.androidaps.data.IobTotal; +import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; /** @@ -48,7 +51,7 @@ public class BolusWizard { this.bg = bg; this.correction = correction; - NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); + NSProfile profile = ConfigBuilderPlugin.getActiveProfile().getProfile(); // Insulin from BG sens = profile.getIsf(specificProfile, NSProfile.secondsFromMidnight()); @@ -66,12 +69,16 @@ public class BolusWizard { insulinFromCarbs = carbs / ic; // Insulin from IOB - TreatmentsInterface treatments = MainApp.getConfigBuilder().getActiveTreatments(); - TempBasalsInterface tempBasals = MainApp.getConfigBuilder().getActiveTempBasals(); + // IOB calculation + TreatmentsInterface treatments = ConfigBuilderPlugin.getActiveTreatments(); treatments.updateTotalIOB(); - tempBasals.updateTotalIOB(); - bolusIob = treatments.getLastCalculation(); - basalIob = tempBasals.getLastCalculation(); + IobTotal bolusIob = treatments.getLastCalculation(); + TempBasalsInterface tempBasals = ConfigBuilderPlugin.getActiveTempBasals(); + IobTotal basalIob = new IobTotal(new Date().getTime()); + if (tempBasals != null) { + tempBasals.updateTotalIOB(); + basalIob = tempBasals.getLastCalculation().round(); + } insulingFromBolusIOB = includeBolusIOB ? -bolusIob.iob : 0d; insulingFromBasalsIOB = includeBasalIOB ? -basalIob.basaliob : 0d; diff --git a/app/src/main/res/drawable/notification_icon.png b/app/src/main/res/drawable/notification_icon.png deleted file mode 100644 index cde69bcccec65160d92116f20ffce4fce0b5245c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3418 zcmZ{nX*|@A^T0p5j$I+^%FVhdvMbgt%d+mG98ubwNv_tpITppba^GiieBBZGI>I89 zGgm8TA>_)DlEu&W;s3#ZUNiH4&CF{a%siTjzG;eOzQB6{003qKeT?}z_5U*{{kgZ; zdV@U&tqa-&4FGisjMN8o=P}$t-`oTM2oeB5d9mHPgTYJx4jup)+5a;Tke$m708DocFzDL>U$$}s6FGiy_I1?O zHXq`q884|^O4Q*%V#vwxqCz-#8i`Gu)2LeB0{%%VKunOF%9~JcFB9MM>N00M`E~;o zBU%)O5u-D6NF~OQV7TV#JAN;=Lylgxy0kncoQpGq<<_gxw`FC=C-cV#$L|(47Hatl ztq3Jngq00x#}HGW@_tj{&A?lwOwrVX4@d66vLVyj1H@i}VD2YXd)n03?U5?cKtFz4 zW#@+MLeDVP>fY0F2IzT;r5*MAJ2}P8Z{g3utX0<+ZdAC)Tvm-4uN!I7|BTw&G%RQn zR+A5VFx(}r<1q9^N40XzP=Jp?i=jlS7}T~tB4CsWx!XbiHSm zLu}yar%t>-3jlutK=wdZhES->*1X({YI;DN?6R=C*{1U6%wG`0>^?u}h0hhqns|SeTmV=s;Gxx5F9DtK>{>{f-`SpJ`dO26Ujk?^%ucsuCPe zIUk1(@I3D^7{@jmXO2@<84|}`tDjB}?S#k$ik;jC))BH8>8mQWmZ zF#V|$gW|Xc_wmmkoI-b5;4AWxkA>>0t4&&-eC-J_iP(tLT~c6*(ZnSFlhw%}0IbiJ ztgnrZwP{RBd(6Ds`dM~k;rNFgkbU&Yo$KR#q&%Kno^YXF5ONJwGwZ*wEr4wYkGiXs z$&?qX!H5sV*m%5t@3_>ijaS5hp#^Pu>N_9Q?2grdNp({IZnt|P9Xyh);q|BuoqeUJ zfk(AGX4odIVADHEmozF|I{9j>Vj^jCU}K)r>^%9#E#Y6B0i#f^iYsNA!b|kVS$*zE zx7+P?0{oudeZ2(ke=YEjn#+_cdu_``g9R95qet28SG>}@Me!D6&}un*e#CyvlURrg8d;i$&-0B?4{eYEgzwotp*DOQ_<=Ai21Kzb0u zegCN%3bdwxj!ZTLvBvexHmpTw{Z3GRGtvkwEoKB1?!#+6h1i2JR%4>vOkPN_6`J}N zk}zeyY3dPV+IAyn;zRtFH5e$Mx}V(|k+Ey#=nMg-4F#%h(*nDZDK=k1snlh~Pd3dA zV!$BoX_JfEGw^R6Q2kpdKD_e0m*NX?M5;)C zb3x+v?J1d#jRGr=*?(7Habkk1F_#72_iT7{IQFl<;hkqK83fA8Q8@(oS?WYuQd4z^ z)7eB?N01v=oS47`bBcBnKvI&)yS8`W8qHi(h2na?c6%t4mU(}H(n4MO zHIpFdsWql()UNTE8b=|ZzY*>$Z@O5m9QCnhOiM%)+P0S06prr6!VET%*HTeL4iu~!y$pN!mOo5t@1 z?$$q-!uP(+O-%7<+Zn5i=)2OftC+wOV;zAU8b`M5f))CrM6xu94e2s78i&zck@}%= zZq2l!$N8~@63!^|`{<=A&*fg;XN*7CndL&;zE(y+GZVs-IkK~}+5F`?ergDp=9x1w z0hkii!N(o!iiQr`k`^P2LvljczPcM`%7~2n#|K7nJq_e0Ew;UsXV_~3)<;L?K9$&D zUzgUOr{C6VLl{Aon}zp`+fH3>$*~swkjCw|e>_31G<=U0@B*~hIE)|WSb_MaE41Prxp-2eEg!gcon$fN6Ctl7A_lV8^@B9B+G~0=IYgc%VsprfC`e zoBn&O3O)3MraW#z{h3bWm;*HPbp*h+I*DoB%Y~(Fqp9+x;c>K2+niydO5&@E?SoiX_zf+cI09%%m$y=YMA~rg!xP*>k zmYxKS-|3r*n0J4y`Nt1eO@oyT0Xvj*E3ssVNZAqQnj-Uq{N_&3e45Gg5pna+r~Z6^ z>4PJ7r(gO~D0TctJQyMVyMIwmzw3rbM!};>C@8JA<&6j3+Y9zHUw?tT_-uNh^u@np zM?4qmcc4MZjY1mWLK!>1>7uZ*%Pe%=DV|skj)@OLYvwGXuYBoZvbB{@l}cHK!~UHm z4jV&m&uQAOLsZUYxORkW4|>9t3L@*ieU&b0$sAMH&tKidc%;nb4Z=)D7H<-`#%$^# zi`>amtzJ^^#zB2e%o*wF!gZBqML9>Hq9jqsl-|a}yD&JKsX{Op$7)_=CiZvqj;xN& zqb@L;#4xW$+icPN?@MB|{I!>6U(h!Wxa}14Z0S&y|A5$zbH(DXuE?~WrqNv^;x}vI z0PWfSUuL7Yy``H~*?|%z zT~ZWYq}{X;q*u-}CT;zc_NM|2MKT8)cMy|d>?i^^k)O*}hbEcCrU5Bk{Tjf1>$Q=@ zJ9=R}%vW$~GFV_PuXqE4!6AIuC?Tn~Z=m#Kbj3bUfpb82bxsJ=?2wL>EGp=wsj zAPVwM=CffcycEF; z@kPngVDwPM>T-Bj4##H9VONhbq%=SG;$AjQlV^HOH7!_vZk=}TMt*8qFI}bI=K9g$fgD9$! zO%cK1_+Wbk0Ph}E$BR2}4wO<_b0{qtIA1ll>s*2^!7d2e`Y>$!z54Z4FmZ*vyO}EP z@p&MG_C_?XiKBaP#_XrmRYszF;Hyz#2xqG%yr991pez^qN!~gT_Jc=PPCq^8V(Y9K zz33S+Mzi#$R}ncqe!oJ3>{gacj44kx(SOuC%^9~vT}%7itrC3b;ZPfX;R`D2AlGgN zw$o4-F77!eWU0$?^MhG9zxO@&zDcF;@w2beXEa3SL^htWYY{5k?ywyq7u&)~Nys;@ z8ZNIzUw$#ci&^bZ9mp@A;7y^*XpdWlzy%auO1hU=UfNvfHtiPM@+99# z!uo2`>!*MzphecTjN4x6H)xLeeDVEO#@1oDp`*QsBvmky=JpY@fC0$yIexO%f>c-O zAzUA{ch#N&l;RClb~;`@dqeLPh?e-Mr)T-*?Sr{32|n(}m>4}4c3_H3*U&Yj)grth z{%F0z7YPyjux9hfqa+J|`Y%4gwrZ_TZCQq~0wUR8}9@Jj4lh( z#~%AcbKZ++&f1e^G8LPQ)*Yy?lp5^z4pDTI@b^hlv06?GC%{ZywJcy}3U@zS3|M{M zGPp|cq4Zu~9o_cEZiiNyU*tc73=#Mf>7uzue|6Qo_e!U;oJ)Z$DP~(hOcRy&hR{`J zP7cNIgc)F%E2?p%{%&sxXGDb0yF#zac5fr2x>b)NZz8prv~HBhw^q=R$nZ~@&zdBi z)cEDu+cc1?-;ZLm?^x5Ov#XRhw9{zr;Q#0*wglhWD={Pn$Qm$;z?Vx)_f>igNB!id zmTlMmkp@8kP212#@jq=m%g4ZEl$*a_T;5nHrbt-6D0@eqFP7u+P`;X_Qk68bzwA0h zf{EW5xAV5fD)il-cV&zFmPG|KV4^Z{YJe-g^>uL2l7Ep|NeA2#;k$yerpffdlXY<2 znDODl8(v(24^8Cs3wr(UajK*lY*9yAqcS>92eFVk{AX0cM!{)_2Bp8OaPYpn&gR?zLEpa?icze0T3}e|w)ZXz<)} zML_c$pWG364v+&6c@EHXfS!y*obn(=fd;W~d9p`6W21wRrO`lfG%JSyDGIb24a|;i z^xyb*XV#W0K-M?7ecZP_6f{<#cmV=1hv3=*E!6@HFc zym7*(q|S&PilPKPx?#R%dH;ce&3lZ9K4!w@-_5vl-}&2=C9r5X?cTx5}0!N=0fU?ZMo@f(RZO_EnU(Mjp)>gJ`Su|~Wo6;v!-u$b?HbOWJ&U79kBaZDO{)O{12h=Y(-mD>>7mO<`p{}MMni_8PrRA+ zcC!$}PUX>>bFMKrfU*)}eCD{jDU-}*m^2#boCPR716Z~t6N@)y!jzRg%G=u;wQAME zlqpltu3bB4Z-;Nb`3AFQ&BCcurv!M?T(rQj5IrUgbcKg|p1sMGWrptB4P|ko9;xG$ z7`V_W@&b@K;gENPwzxJY_FVE8uSP(GHXfz@wCI)-<>_J>y z9L}FVuX@8{JfqbjFfdT?RHsgz@cQeo3$QGiR1u(l@WBT-a^#3QtV=5$=1g!yF>j|l zNdWX~qIqLbZ{a}&3($(KnFwE=sfN`nue^eT2M>ZCB#mU-t5+`(DtWaA4H{tU)~$Hy zrI*y94vtVe?3J0J)-|%nKEU-FL!r$LF^A6Jit5eyo0GzrwVQ(;qy76p`q%S+2hfWnUIhm7PWWpUb{fGY10N1CQLw$ z8a2dt3Q3M<$R;HviTjo+RZ5I!He~jbUex#%Eg~0t!qq-T1rN~mKNK_#Nd<)=7r$=Z zI^q7#8a?d0@4iELc(}-H(q4P*HQ|LVTeeiQpELK|y?Zx$^ync#Bru28d*bEFcDbnF z0h+!f1FIq}C0h0B)x{#^8_l^OzIBEMLrroAuOUeEw1EQ$V*mdAXw|9}Hf`D@?jxlE zuj8UqQ&ZvT=_x$PmZhYm2qAj<^l9=CNqL5+6 z@MJb)5?~0Do22m`lO|2VqD70uuYA0K6T7|a>7s)5pq&Se7&Rk9og9g{fB*jKTW9(u zXz#xJu2={cC5usd3^fv^z^9*n3LhUIaUYfwyoR1bRn7agZrvIkJ9Y&5jU@^}xPSjX zzWw%FELpNdBmjD^^u`@Kb|54qM4i{NX>RD&#wHOJEI?ysr(^rRY}L%ST)%#OF)_a7 zVZ(-@PoF+$(V~S-7iY+9+qO-F6M#CRcXs^TnPO%wg1q)Dc-&Dk3&Ti>a07})oapOjCq91+qky=OHym=Ep|NJwku*;Pz zr+N&t6k8qx1`JRaMY5%bEMB}=9nWw*dGe&VwtV^W;#zvsj2Sb;{e})5Dt<@rqPIz_ zURi_K&1{1H%?cKvs;yJh1{isVA;CAzFrn9wk80PhEl7CZzJ2J~vnLD&g9s-AAU%tE zh>KjkdbPR&3QLA3(>v|hv191mxijwGy(_fPC!c(RE?v5aP`q&Af+$~p`spWCdy&YQ z6liR)B^-aa!IIfx68_U4;!V%M%+;zx$l z`|rOmxI`MgfvI0+#NNGoi*QuEqIz{vr1H7+qM9{p3NoiIqLnUPT4Y9Px8jNbpmP68 zQM-iX54tvu1t|d_AoM6^B65jLy}X9R%j_lrB42IZyjfjPzkdCMi1hdO7r%S!t+zz= zFReHF=s-xh*V8Ubak#ql)iBbF9a%hXWw z=FP*XQKQ5Q`0cmfL>>0aFTV(27~*_}to!_m0rC5b0HBurQ*rK6Hc692`NqjPTp)Wv z3=^4w5)%`}TPJw3Wx+*En>J0neJ)TM$2M)+RP>T^j_2Q`r*Qn-xpM`l(PR0d=&{oC zc)ywf8bog@0+Jp&&44eXvpa`eAp6ZUPC6nY0-t~Wxmwk$tAF$jfut59+0s*T0>mu1 zefxHyf$XJuHrv>#q?`x~3ln!{Ey#9@v^QF~V0F074Yh(L>E&B9@$U#rrl2vTxELBU z(~B>@2rn-$P`FY4Gc@G34s{YkiVGu|64;yo(IZ&&GCbS1Z7Xz+9M4c?(~aO#nNyTj ztXNSzJ32aAaGbQMBU~}^9h-fRf(7Wrxh!-XYEUP_a2PjkoceS3?%hSE;=-8H>(#3# z>M&-tAAa~j=p4xtlmpzcunsYq_2@n17={+J7RM7zj;FL>#LYt2@Vbx zDw%1TJR1Oy0WO$=wlOnNUXA4pIcMg~nU6KeyzuYM&ST- zCCQ8y{nB7aw@i)u?@O01wYmRJ5@pCy)REAgHMU_{@iW`8jL2!^EAD78#HB@V^hC|7 zx$cb>4nUmHz)%DBAGWA!mH|}A6pAzwCxsy^Y->Ar?wnBCY-O;G!Cg`kH0wDMFY791 zMk;0N1{m+b&H=+q_Mg~`;?^|5m*KU2k;CI?g$K~Jn`SiWnFbzSps|=_BaFt$4<0;N z6r0=u&Dn70UOlrNy^A`A3#YiG3b$_V^Ir56ZWFPPUB7<4+IVAEk;O3ij)xbHZ1u#8 z<(`q9Rp}M|CL8ee5sMeGqsOczJ9`9-{6nH<6;9n_T~Im-HS!k;oKMP85fp=n?b~h5&U7y@FxL{xxeR_Ijv) ztc{*>sw9492aqQ*tV<6zx~Q0C*fGPg{XuYSl_(57)_3xB8pD@$o|F%j zD`;?Vy(hdqpTXlV1mWikS?E06pmNceF=Mb`!2$sg-#&LJ*utREYgkyyEgDwn^eU3K zJ!7|kM_|ZLH1596nKMUxPwv^Z)B_D_JAGiWa6L#aYE*bSb{@#y4r0;DCK=0#t5>fI z^-CSZ76!8zL(W#3&IuBA5JQwInxVz-S;k1~5afb&vm9nF>)RF$K)=Liq4x&{^&B*J zP^o++DO3Nj)5za3^>eW-F4@?(SAWsln6=}DY8#ZhZVM#z4nr!q-8y=#^^ifWo zDl2*q;tWXGy~Z1G{IrFz*(f8q<}5+DSgLBCJhOMWiuDz}PLe(Q+LQ}&*P?Eq7CV=C zz{|raVtzIN;w;#4>^07S4`0sH2$XSz^$rb+{oQiQK~- z*fiGz&FbeVwB)0ThJ)nOsjBC$&OpQ#%kdb7*N71#M7NLHhyZ=|*=Isw^LtxHh0M&y z@`E16lN%f_y=_2O9cGMn&+U+u-LNfmp=fU=J;oYv_{Z$s5AJxdEh>!#CKsO5DE_F4 zq_F^|Y>>tiWS>V^I*IwTqV*s->EEuI1s`3#Zt)Uo7-|_ATCBxbI>^TkkSKC9u(TjROL(c$Sh7?-7rNFHL~Q9A2} z8rvJ(gxs=ai?}WKwb)}`F~c3jee$e#>`l!A&{gw>pgw6s^7mPd1K!L1d@%TF0mPZ! zxv!w#Bm+*K&pvg}qr+6n(zr80wJg&)4YTi3-P`&^< zx6gaNzaQSu>j&x_dDF!!X1p6}K*I0Y`iJ}U^rkPq_~J3J*uq#l(*uD4Pn5B2h8RCk zckYsTRhxlnqw)pN{x$Bs>ILdHQB)CaJ6pJp@UZ!JHv0!nG2nbcHc0X$z8p}sk_KyL zdZ4=f!{GUPHg&01t1+dfDY~!Yj3b6m&sY-^1_XyW`-wx#hkE(S{7>xm+E>HlJe7-}`T}UvWZaE;08~e8u z1!i0SXu#3O!hKseL+#MPo=eJ=*4AO|!y|1^)3__UBg%+v`;55tr-ITYHR#?}hwkn5 zs95Hyhn4tO3*4f*l4L$JcWv63=s27T3qx{PnC*X_kn3{WwS!w!6!?j_QsHA<+XYl~ z`KP-(+{|VuIm6BRW7XncSy-}9k0LDRS~+>adtl^c)4Q=vH;^E4f-AnwJN#*<&k<;x>EDG8ML zcK?TmQ;Q7>g3gcxPelj4(ImL(zt;3Rm^CICJ<203HumqNoO5AL0c15Ouh&1TKsx-d vFLL7lUlv?oFXA~s4xoJw&~t#EEc*Tfe}nPvaKJDg00000NkvXXu0mjfwD&hN literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/blueowl.png similarity index 100% rename from app/src/main/res/mipmap-mdpi/ic_launcher.png rename to app/src/main/res/mipmap-mdpi/blueowl.png diff --git a/app/src/main/res/mipmap-mdpi/yellowowl.png b/app/src/main/res/mipmap-mdpi/yellowowl.png new file mode 100644 index 0000000000000000000000000000000000000000..962fd4a84875fb5bc03468843982c3db310c2b24 GIT binary patch literal 3127 zcmV-749N3|P)^U(8h*YrXEZfeC7Plsi)vj{u6d5>medr(RSjL{7BMu0Vi_XFl(xnq)I}4b=rYgM zmY6P?w zRZB6C$6rxwCdHz6WLN!1)&u@{{@C1;Jp;h~LdMxZZ@t~T$fde^0??HdnW_RmrMqzQ zoC6nrbm7`<7t-&$@Y^FG*A5uZR^;a9=KYLL z3)BhGAhMSpJv-=OGL{AdV6k9LjW9D~Qu0$f4*(OE$wJy_?P{u`AV39d%F`Vv1m&j; z7ZQ@~*u2}0CuYFk-ye+|H%7yT4N;>;4OFgN8D3sq$jQmU{rmTE>((utJ9iFe&YZ!M zCr{w-3k>L{M`TYuss&2Q6*UwUaA*`5vU8Am`Ih<3@S(Wxj#cv1{VnwL z_1A-4DH;vR1CssPg1>z6suOXmZ8)CdgvrYr-Me>3&z?Qes#Pll1Oybjq?wtSIC0_x zl9Q9MYu7GVb1Y~bszvlr1O8sS&@}GfaViS5mK;3#?zFA>z!=+)?pTWiaA3Xh^|~SY z(;5vb6a-**0DF!*5TB5XtG86tu3Z}wCQLv?L#sr|(&(j^ zUXop@SFavw)v5)%-HxQBBrICA2&t*5s8wA-RHPAITkBxZ7s8(h;OJ>{^C2-P6@Vgl zVAl}`rp8;5`4DK?vZVyjs8J(ax^xL^*RI9aUw@6eckdRv168Y5#XIl3gZJNmA8)<& z7S5hMi-{8_;@fY(MLe{Ub=KCnlx#G@4x>ZqehLw<;$1R;0+CyO*0`R_?et2I{=ppSiCM5OA_qx z^Yh1&B})()87VZ0j*gbZbT}N6tdAc*E*3|*a^)nsbvm8w-2D0TC1(;65-@)Jcw}Wg z!T3l$CJZq`^9P2q1E97KpPnPU@7J#%mM>op21B~sym?cCAb^aF3{jfhyLZc9m&*l> zMkC79ty?$w8yFZU0GQCPz4jVND}o+9dNj6d*&_L{dbXF;jNeDu0W95U6V(X}48r>L z>(Rb_d--iuRV85wM61;zC@2WQ!NIt9?;a8p6R~ycRsr0nPag?9Jw09Cbvm6Ac(rQP zMASJBA3lu1g9jrcBOQ~688CK`!E*rmMdjdFiW36|4#b)@YhW-KWYzZU*&|9*zI=HJ z%1xiHUAv-6l`673R3B1n|Ni{~*w4>T!17%xROil}WjAd$8-@-YicOm~p-re3TjRYv z2cStrHhxN1F=x&kOqnu8=)&zLJ$m=<4OU$ae!g$tKK%Ui&ypiPK0dHmEZDelBVKvs z6?E#b!mXcA*(}iJ!;C#bN5ysi+pD;8dcI=KzF+nPIj-=rd^0Ad$_ZM~`CI zuwi)k@S(^j^MI?#pjWM0g^-XCbnMs>hYlUW_3PK=-R$ga0Z9H+PAgWdC_CDwO&gI_ z0ws-nynvgBd_4!CN((czTAgsZM~@!(^2;xU1_K5Rz`}(KWmkNCeMK7Id+$9QJa|y( zGh)OD0Ye&vg@s|mh7BUQX0sXd=FP*TNt3X7^JbynyYId$3(>c4UpSo(+&k$(0D&#c zP&8TrK+CXt^=jdA|Ni}jRx@VI5Z|+4!2;2A?hfk$17xwI`m}A^R%*vbAAKaWnmKbO zKK}S)p<-56mh2EM2I-`_oXGGbfSMi6c#;i#@x>Ri#XEQIl~>dkeSu+1|Z-^C-mcOq(`Ms(N^MxYPqyX+Iy}`T-B_Kxm(Aq-Cg* zWL#Bp`oj-D6gm+QRmq*itN~nQKI4wC&~at?Z`J~L5>s`UQ#*F-z_Mk_P_t%D*)6^w z9H<~A$%9GUZG;79F1s*h%oxPS$BWv~#C`SER{|h3G*ncD#cSKPZAeQ?ljm*#42<=G zibXn6wNg@21OSa7D?5QjMMVji#&2q{d!@JMl6dqiE4J@qk9wt;QpM+Px+-IWicadm>uDfFCGd)>Nq=+L2qJY#=Ai8hB?ZW9R1J8a_U+rE^=#-_;Ak_dSFbL9h{=2Y{CRms{&Ux8;tm`*fEEokSUS}UL6x65Eb$Bg zu4dA{r^%da*Ge8x@4xxx8>tCRn>H0SArSV;^h6xoB|6U=H*QGatkOUH@Pp9q?YG|+ zsU`mndM6f4GNMoCLQS#f06ci4A}ZF31K&Bte9;q83dw0!XG$d7Oj-tlV1;H8qn#!I zN-m|ARhK!#-hdv6<}j?87N1Ntp;Gxmr(K={z!lwb(1GZMR%BTeDOR)-M~)m38nBV! zuFxB?PoOa)HS!PAj`VBSuASJ3#fuli&s)X(Nhb6NEAkM~vjCo$Rm8;SV%t84C=n}f z{rdGq0@>iR-K6{E?yyay|8Wl%JW3~}_`-z?Qkkhhy*uj=8)byQZ;@w>o&~^QQg6Bt zy~v7`OD-usXv4f!HUz&KBGh5C&nBN>*onCZKmY8r&%|+3cKQ5H+D%LuX28(C2JpbQ zgz;hkaKhgns~9=cDh)q<4?$3Um2G63$#(nt=6Dk%~oq||i z901O=^RPpt)nbLH4y`kjo9aV_Vk5(5p2^B%L|Slf6A&L`LU{WUuO8e${x1MU9_|*k z&AcO6zr%*lH`(wgOD9bWWt7K{)Opqk9vjl|(Q#JrcVhHF0|xgnl=g1m&jHxG)~{B* zn(C>Nj@JtUVLoi#V@K?YTs(XXp$i)yHacuv*r++O?_nKRO*Mxzyq>I0}N`PORH*Lwte_S=m7I=FR0GjP-yA zxa@PIA`KYQtJEvcDdd7ft5FP(v(yJ`cbG%tR^V1*A7~?zp59y*b;V>jo#eBj>dQ)m zUZ;qcaUcJcs1*RRb5yL{V#o5$1fhzxpmp%`Q7~$N0VDeB;p0`hi!ry4;@md7%G#40 zHrVnnm5ZA1_OvJfO8qxbD{g{!Y;YA#OT7+SRfVc3rMoXSXRAouYe&+4JJQls1P3YT z(@BqrE_(R-{F&gN&gpQ%c{|N@GCJNe^-?NQe~%^a`nR}iR-P4BZWW3eL4VWwsH!vX z3*320T@I^*tBY z9s^YIBG_YqJqD;^4OH>v_jte_15~jFs`&Ed_5jC`S8wh~;>La#%JFy;M9v!|VMjb2UYekT{|Z+)ZgQT&XhcjCB<`HoFbYFmi3rmQ2Ob& zkd~~-)3P5z=HDAPJKDO_QD&xNE}RtaQQg|oe)YX--o&dT5A~|u;eNGf>Q$V-tXGWs zc>B!RlC$3Nc&7(4y<_ThPEEDCisnpFDa~4S+gCMO2IZM1M=c!3k@F9%`^+pyyV9lQ ztAqOJ^E}O69Mp!*<-5@S`$#9X^Q%XDzuL9-sb;d2lo-_`N29v}$9Q(1c6C-(PR|3o zbLJOUc(<0<3$FqCId&_*MC46A#E=OxOgfw?iQ18sj)lcgj zh03S*Vy|#eV~@`3?pN0n{5q(SSG8(-^taL~;}N)3$LmobGe>KFUYT}cx4zmIjVDBH zfQ?`7^^niw3=W1Ilpj}FAtxtS`uVqzW__8bcR$V5nzfFC5%7fH?^k?$y!aal27}7Z z&Q@-&3Bx6d*CRDMz@u}z#i>VopAKo_Qvw0Ba>S9x+(O{b?aqj{=cNy-umOOYz^heL z6{y#+#v+eLM>&p3!WE9Jgs(rhIhwUFPt!ih)z_;+%FZdO36IC4efHT$2OfB!_TPVh z^Y6NK>#9bL8pa4nPEL-}($chj`*v;FvPFOV@rVBV-~VdUrcDZkidvJraMWR5^*kj` z-B0vu|9vXW8;oxL-0rM+YJB?f<3CV_)nQ3CF4Y691s6?CXxgN4++ru>?9GCcc0SCrG*O@YS*q^MJ`gmuGHyRzj|L7r^65N$y@P&8uWTSzHK|5ZJ#Yk zJE_lL{Se6uqA@_|<4HAI9({;sq2o9;E5iUwRs=O_VvZIr3l>@RtnBXHyX&;mPSa6G z9i@X0K3KJC)hd^*|N84M{qoB%TD5AGKK$@Qee}^sMGO&$la4*YtJ|-N*GcUvysnG^ zcIv8e(g+^x3rom8Ur{}$0fHqxsCTr$*ECM1AuHEeJ)!+{Z86{^s%N#w#gS?%F64*}8#ZXkk|lcXx#u)@?p%{Mtl&%sHS*}r-tjuOTZN+Q zZV%Yu?0S1vcDMV-5m_8>@_l?Oa5^{*?H{X1-uDa?f z6YEK?g+q)@wi`EY)UUt(YQhX*h0uf7kRJ{@=pbV_pRedj<~Wr8`|rQ&_19n5lTSWr z@`YP!*OVT)BVIjwl-uyT4Up=jz4>u=w+Egy1}K#^h{gjd#Q^h{2Gws^RuN2(!iNnT zrVB2(AdG6Z#^@#~**Z$rptMLrkAOU3cGo zx7Ms#Q{dNiYf0k1o8a{luiT7?nL7ADECT>6R z#1mS)cyT#&Asv16(Yo!n+jREXXRBt-nngV0v(G-$z4zX$rAwC@PqNawxkrx=O3=}V zl{qKGo&h#)ag;JHOEcyLm1|g}-E#QhhilxpaXRUwlfpkk38|^62DOYBF+%g_&o7ta z3xB9hn>HFec(B^HZ*L&1JG_CC`uFc&z{q}|)af{%h7X8WqXuPyMzLjpj7&!_PRrG} z$vH~>D_<>5nlv%Vuv@oo;UBWKw z=BZDgKKkK@AHtX1D_Oe!qBz}rSwJ8IK>5p-Ei)c5ZQ3-Yr>9q@?!)IwNJ!9GXPu>f{rah0yLJU~4vG2p+i%ylZTUq> z%Y!{i>6@SqZKJLcV#femwmW*}^&CAvH8&i3fSSZy!hxGc`1adx_3*eW;2+O-Y-#}L58b?eq?^XAP_JbTeY z>esI?!X1AnB_$~@FVEx{R(Z>oEp^X5_Xr?hbHdJ@J9YWxmm9QY1x7XH)&!l=$uD2z zbPyW`NZsXV%!@giFf}*KXoA&WeDOt{bIv*8RR?qR^UptP_3G6oIqtRBULs7eDp3}p z2xUPjfLOlx;){s6f$LDnVQiEOb&;H$Y>Wyogki}qJ9g|))22;LKCqk;N}oA%rY^eZ zqHx7bk#@z|e%;kOUiIrn^n%zhz?yX-T|O|g!0HE=j~O$@tbV)VPzXjKG?i5K;w3;* zh&JFTc>Wa?35s$jC6c#iA-3vY;$J{`g~o@k!+5 z7K}w$f@OuSIPSRPOzyFtwc2Lo25Qu(QTP~s|H2C|m~dnB z3kJvI1`Qe%K8{|&_cLe;mMB$kfW{ru!rTwZG$kd)G(K$1W?BJ61Jt8?g`hwRtWl#z znMnpKhaGm9-gx5;lS~ne2mIuCU?Np6g24zO6j7YR#&Rlbyn%dU(F~s z4HN1X6!gd=j~FFb0a1|;?!W(j*;S0!D1LDsNP68wx% zWM%yL@h0543BpYaV%z}xbw~?Wz=RzP;C5q@B%#H<(&_Q?pwt3x;q!zq!kAkrpdxAu zP!R(9x$CaGOrghltPn!*7+cZWpM#D_zIdV){tZ|-_uO*}7#ri0o2Iv09LCFL3E(#OtEThVg_oWP#WbFR#qsIFbWV6AuQk#6l~BDZUcaP_&?05y%r4X z`RAXn_3PJ%&q)Gi0RVw*G6t2A^hxlxL&vr72n=9{yAl(mwXL?9l<%YG8YUBsJgnMB1 zb5EclD=40%PDjk0m&hmg-FIL3xP9tL%ioW219b0|p%rWLJ76db80xN88MY$9q8wJa z6;}Vsl`9QBap<9kh7%&crxqZ5kvu_2AQ!g*NVX(hplHvYJqyqa6kQZn+yhmyn`5FD z0FBX@2ddhsA*w?F9FH}hHi@!@Hmw!=m%vHuW2b3 zXMj&W`NUv-Jb(fa(ygRE10f02HFoS+Q^Zk2fX=K?5Q5$aPgbrx$FIll$}i%Ix!`z!yknt4d~`eOKk{L zy#c;j7Sy?Y{)R!4X^=pAvEto=dk-Bt)cgoEf)WT*#CPfk=m?-HR5BH?TOt|29*c27 zH~h^s255`Wg3_ssE#jhf;9lIs9W782vl}kIG9p3U+s8N?NB1yahpGco{}V51Gqm=RgMP~-YlsD@Psb)hmxDMrzDgeF$R9(a>iKCSnRNFg_!KZejIPB^Rb3A{l{P0b;Sd4GJTX z6UWOUG=YGbjHtMUq)cH)7_veF9(+r@_No!%ElFmAKA4lIn}%eCDG6v`cy$u38ye!? z5MZ<`zx(dHGI;`tl}eiPk({X?$|9gLs%hY7;d_D=rGmEOku>E;-W{(CPl*#7I!ckM z_W*8g_1cgw?w6rWTk~%fQVdvExRCVj}a$ITsnx}MSEnuwlf}xY+OjMpIsTFGmlJ%L#8eA!-GUBQ@AG07^o3qzq>2uz79iQr<`(1xaMFSalo|!-FQiy zk|S^Ojtv9wKwo|v)WFBG^y~V9?Mdc$N_u$04<3LwQ1wy+REE&ny!6sbO{L4GjnXIz zh&ng=IbeT}9_|-!wzEdDu{(AQ@cX8aMo!Gpln?XqJQEPicUs1=B;`UAkeq2VQmwj+ zp|Ti+s+tB1^#(L^Npy!jCrKBi1~Y5roUT3%x;|b9HI5j5_(<#+fZZ_DX65SsG1=zb z4^~KUpdKr%dSX7S(mfVJZ9vt^9xmV|I~$<~sE|t&5EmQ};f8tvQjSWvFw)_gT+jV; zC~gWyE6It{JvRk()j5Gk=*NB}b_~EBu{Z32u~}O1O@2`Z0S9EXWj~6hNyDl~VN6K7 z1p|?!K_@hE;D_iZ)5Nzh5v8MKXl~#s6gP!cal^TE$M8bi8?b{Lm{#@%#;RrJ`nZg=`HOQDB1AzTAgM$6QqD^~y6UHxW{ za2Z#B>>7YOW6SF8j}$D-nBzeKpdTxcax_9{Lt3Gke!~qnm?0~Rl33YL-0q^Ow46X= z#`6C5II3QnG49phU~lQ^A&F|=CL-@s+~s031aYU-1;fW@Yy2De+g7QFFTC(Vv%7_a zix89X0AeyLnw3ji5k->=tT4Y%!yoP@lHf7$OiVx6oWtY=$cr%+x99Zg>DPm|CPa(- z3tu{R4ZxkQ{XL{h`e*95Kk^X~O&Xvfn=jlOFE9XOE6@md3H@D*h8QKmBdC<4VNcnl zK@ZtI8bc3)5f^vWTd%hC?lVbheqdBpZ}swk-AF}x?ZaFRcr?Fh&+24_(-@(FZ-w|y zvmVsKbe)B)pdH2v>14TgwU^`tBybGnp30ydit=g9yA3$(j(GJtKQ0>1r=-ipwg+(6 z6l7Nq%GB(I`IQ-{28Hkn0h;H#jpdkH0shF{Ltrixq{L)HB%y|2x*8)|(%R{lPdb2(bzWtN`t67`SJ{9xZX+tK}V=zdZHw@5|~M7qG29Q&wze2-eXY@ ztDWg=!WR?SR(NybjPXfod2qQyk3CiOFaUS^+|(RB{B%x%SJ;5@F#{?PAl1hM zcvvdrw`b;Q#Dr{Z-I4$J6iw`IVXo8)l`4Ea^ExFpXc$Y!Nc4Q&Q`Zz+&=_utqfRa9 z_NxQB^o%&wDt*+XEOx102H?qfd+yj*ay0q+dHNM?ALrc>s?@ zZ2)8X*o16-@7iNb4xleULbXtmgbd>ehXZ>`egN@MoYBa!L>@{0F{Upn4hrBhV|DG9y;do0&hB>a$Vz&7_rzg= z7N>QLpYM^wp3+MB0*7dxX6eeH?irO`VB0I7W6F*36*_6;1iN$IJy6SWym*!7%86}! z|76^EKZ-HH=B>_-S7)SkAO5VCRqXBQyT8K3)2XfMygaJL-1vZ6G05ieRQww>qA>v9 zB{SzM;Au_~BhaL$KTHh(um9zjUluqedwK_68*lb>MVRT2=2oIQhBxFh;P=b=;Obrj zGrO!_ugxhba#B)C{+7LnWyqWq`8%g5dBK#VVNDx)Z}Is&xuKBb$1qXdRRs?Mp3Yj3 zXR77zek}O*b;}hMZs4=>VK+}d*#xIB|=0l009j=Jk4|XL9!Ds3=5n!DwA61yi&lgFLmR5rj~i6y z#3OV-?@JSVH)*J2YuEJF^Z6WhF8^a+Wmq7?g`_RpcGDIg&Ck=CwQM_;njh#`?cZIh8x?W2ryq-C6(MqjtSW`PT>=I+#rG_7#Em{L`T%bvP z)mgViyx1YBPEFN3;V3mouHo|&|NbRMh^fmk6P%GA%w4!ln|JIIUwDwwq`uPDZ4u-; zTYMtwC0YaU-~j1BgBq$Szmhklns3u%cCRewh$#hD(#@dcyau(Et30J|N)xZFMfp*E zzi?TV$MGmVP^*>#2|>jZ+`myYK(+tGCJxvc~{bY=S)o*kgby)<6|sevb!Ku>t-M XEvI*HJ>T1;00000NkvXXu0mjf_%hOV literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/blueowl.png similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_launcher.png rename to app/src/main/res/mipmap-xxhdpi/blueowl.png diff --git a/app/src/main/res/mipmap-xxhdpi/yellowowl.png b/app/src/main/res/mipmap-xxhdpi/yellowowl.png new file mode 100644 index 0000000000000000000000000000000000000000..8f6166d44ed430becb9df8e89580cf3531cf5d49 GIT binary patch literal 12994 zcmV;zGCj?SP)kL4?Z@k=|#^$}5SmkT};-uz$oz%PqNzMPx*W#r~Enn$t<&VBrua!2G`HF9R z9U>8_sK8T`VyQ(_Pc55!YTq`bPVGE(-X^3SwhgIEr;u8<@Z{xWMzejgipP0S2&qiI zmdMj=Nn_h=Sp6_Bx?Qu{Ua8iPYj0%PTTS}=o_B|&U4BBkzxf3ZxA6TBz7{S?YTiO$ z-!4w-yYGFiSm|rUDqpMC_*%P;kF>tjS81747LyVQDY^0XL!J~4OVNl_SSU3rlo}U# zYFg~6SyN9fno6x>T=VPo1{*w0(z=I&B?N>z1Cvq1rA{ZjSfz8~L+8>X&S=g)TPl1XXRYF|rN_*(M4uP?t%>dW~_&6$_f z+;5TwP=F+t18}w8O6syrNL{xtmr8uLZXHtFR-Rfk+pJ*XRWO`16!Id;q_1^r{ZqOO zUHedNL6r3ZTRpl_@=V?co|x||n#+aBbq}P1NMt(zdge$ZX^{HY*rv~+p$o{iz01TtcVTmepKni+Hj(*0ED##li$dB zK1OZ%zQ0+)6HiF<7AEz^w1nQ67B>Z5)O&TMaJZ;w@q&_{v z>enNp9k&aaziq~W{EaUAL0{Z;+nPOYc}b;qO*6fx>;P15aU~YM(e#(mi0<2{wl>R@ z01o)gN3)aq;M0UYnw>DJYSn59P-QZBD;hOwq{6~N6%-UG4Dk_sD4|#^rqa?(w;kq)qS^+_Sr3Lcv8V;lGmY-7hkp7kIY}3ICt==>u;S@qVT|y z|5?#BeZ1@d%N&UFC`bUpO zqiWo^v6?h#qT=FW^Y5afA_Jag&6=72=l2Nam!x<+Zosp4?OLr`waS3Ve)vE8DJv_h z_TosSUAlyHaNme}?Hx9f3F~cBlWosaJQi1E-onJ>J}0a{$oGx2F|#)#8!zJ{+DY4Ox1HLwX=5Z$z+$OzGT--&B>MjQ?=^q^e9fIZSF>i#(#IcvY(5JYF2sna z{szz=5$V8v!a8bbM8o?=)T~KX?{bZzO(kGrns) znn<5X4;6OqwqwDEzV8=<-fX~_&C_FMI~_#X3ZL{Sg}H1fBm&)%$T8R z)28XuPd_#PU)g{oHE$wq+aaU_yN7kch^V&h;Hgnj#!HgTG;)j|3VGh5C5d$tr>;BT zqH8s)q(pv6NoG61@BF_LM)f(1qe zroGRo)UlnXK0U%lt##WetgTyTyet_%3TqY)d*0$@$=J9_WqmHaAvR;oDEY^ZRYuG) z<2&65pwPqD7wy5DveYvy&SCMqH1-7}MJI=`AaWZ}aBOwe7as8WnZ$ z!3V2%@7_k@AYnGefHVF0wm@VvFT$*DOu+LnpC35z!HV;y}Edpk^MvOZ7Kl0^m<&+ zz8cf`Hxfqbq@x6g28>(=VktCtQx{BWbT;5l1uwbf6icvT?5 zOh;m%g7~any;|$mt@}w@V2#0%;7q7LK#H|yt+cAnjmeMY_RTln7vCwpDX!_nksIVPsUjyGPWnj?`HYK#x3EI_R2vfgV=h71{^e*OBXMT-_ysw;>umK0Xgci(-dWy_YC-%&9vHh+h+SapM1 z#5V-t1~{A_z+$y+z4g{VefWE21RRiZ{yJ5oyBU!%v_FH2mz5o9EM!i6KkvuGNO-3jbG9beI-)pbEwD;b7t9$qE>eQ)| zQJGkEmGLb=$+aJT_+dT!?6Zbob6@Gkafd{7)R2e{=pHd$7UZ0X?Z?lTf7 zzNu7LodO6a;pbl^HTs2^#*B|?<&Wu?6^?V%QAg>RV~#Nv7gC}!2>^+G_uY5(!V53x zgAYD1QU_-sk_K>P>RskK0GJQz4YdZ4h7TXE0}njVNX2vmZiK^e`SRs@;)y5p^wUr4 z_19ld`(4cZkpm+-^~k7p=@QN$muh7KL7 z?YG}PtyvC0;2N*I@`~}#z(MBCn`hKjO}xf6kw*4ANIujW4oRGoNTk7o2OFt`YI6tD zj(eFjX_B6K<{7>8(o1Qrvo4)H_3jbYZ%!ys$9B03ebie3k*o9iw7712xJ+L!NR6VS z9(LVzSN-Z&zcS##zY`qR6TEowVxuZ7=a@5Rjsec57?5}F3r>bK!Vd+I7_NkbT*HU% zy6djA&PP;N`?j8bdt!kG_X=y9_PKHR*GmAwd*1mlp=<9e)hBb3TIWy$-f|p)=bUqn zMvfe5-gXx}a14m>tFOMQC!c)M@Qif6mrVgA?swR*VMfK`kFw<61rcCJ0^N4oZ3aZH zbR^)~ZKsgVJ-I-GdPRh}U)xbH0W|xoq{h7#(;cH@CbnfW0_|k+Rs)=K&pp>zK5(Ak zfXiT2J@UvS8b5x#@dW?y!wslR;Qxl1aG=k`(Ze4;6U;zEiH{WbH+D9LKRNiY2 zipL#yoOuRZ4#DT(UQxA>>U-|F$2c5a^S-E18ggJ*=bu`rF5A>D@LI0`M3n@R=c$Qt zeLSb4^kI_mt^DUd{}Gl~+qP|g!i5D7YU=vyuh-bIV~vl;M%05Kv*886R@0P=OaaLC z@DcF|M)mEr`PrdE2lF!g-~aue@sz`pf}DtFdGpOT4bMXzyZo)|_MVP7D5~Q}MAe~f z_728+10bZ&*WV^}*)64-{z*b>)>T|K-r6IMI6}Yq&2LOJJ;)ze5d0~(-g>JhPo8W% zy>KI&s$u;?yvcA3d_Oqu@Id2G%;n%(9Xob3))vl9xQ|s+a2(Vr_ljEqOOgQZ?|%0? zZL`fb6#xWa@LAn)#~sE9z|;?p#zoSuJA`!kxrN$e=j?q$^#(wTmzA6CH$PBrwg-tb zPC7*W-~ax1!y9;Gg9F}!X%1m#fmj$~Rl$rx-fq+xJ|Vut8_t^zkO(Dw{`u!-VKY^E zNDl6Y#59O8(SN|p^$B-yFE(WaPyk|^H$kWXWeUi|BpN#3XcjGCsF5YM&>(^a(ommW2LvUD7AWf{)sfko! zfq1iVF5)L5tB~K3P}Q0I00)rZLfCD$-He}ya0b$mV5@tN>Fx&raV;C5bsdd(#R1LV z{`NPcmhlw@2h|+|dxdrC5e25|Bb!k#07P#3bFam9+07dac(BBRgE#cozy7t3Jo3nF z=BV0ZEH~jTfBf;sP09t*sH(6A-sVFNIYcL(c%tz%SCzq7?G04(g%@9ZQUCq#f6aXb z2l>-2nn@R*S*Vi^jmmkiYINCp0ibUdCN*|KTsJ*XW-2IxAq(D0c+Yv~oo9$=T?|X6 z;YX-6{6<)Ds1JY?95?~@+;dNza>^+tOo7U>Dz&osTW#+dRf|P-%{AAgq{rf+{`IJ+ zPC6`V3K%mT^#VY|x=4zD=9P+3a4avl&sk@krISxSxkh<6b^@(bK?R_W_#J|a>ZwY- zz<~hLlqpk8fD@?%s2K1Ra*Z&*Nf*H!cB@4ovCz=LDA9X%aAG^%rck$G%miw6+us^peZli$43aTue%Zn@#3BZw}5as5DW z3LK3r1Qs5WgI$krfQ#fIXv+eB_St8~$qC>w=Y!Wro!Tr& zd^}iSJSPrCp3w~o2cH)(Q{e&k;u=Ado<#fs`-gSa1%(-#^IJTCXnJt_=$NLwSCRif zOsU_x>86`Z#$ROwmB~cnAmTCSF{8=DA#e%l#-wJEthX8`BY?y2gOmVF{2eoVz<>dU z6bE^VEoEjgZQ__+Sb)RvTp!7Y>cWkHbOUUh3ozSI1zZLIkxb1jSs63+l%aO}H#NEe<~pn>~m#)Gza0KtErn2;JcvnA$s3BA>{0QJy zr;<1x3CQt;XYBE(opzd$gy~Xpu?TOt;RX|EMLh<`t~+=->F}sdKRPoWw8aDHvYSdZ z`MvUt!{8wK3iF+^9G9c;J#v@fC#X0U3@Z)ux~5eUoCApf2*`*2*T4Q{q!pk&>7FMzU3~GyrhEtqC73yLra2E1$tK95{@j6tBdl@fop+i% z?%>$2gQuZ=BKpU96;oTPdy%$y0G)Qpdec#3;gX5~VlnW*9&o?`CY}@=s46C#zawqP zv4Ic+fSSDd!E+(W03&8Q3GSQ^Fp}4tF4e*UkL$DO=A)DMfE>Gk1INI$NRG$fIX zkPRdoD=jzx+dJ>PqpPmE%49DFN4r+iKHb9l?^Ts^#q_GNyfT%-!YwkXe#DvUOh2FH zD=R)8d<6bO=AlcVv93^CSZJu75hF(Ylqzb^Vr$old9gtJ4zIHDF&9Lb{-`2|D*Op+ z2WjG}G0p>k335W*;W#Wf=XKSN?c@PK8CaEkACBevqOh_c;=B|*6EB6!hak>ad4K-% zpG|RMaL`__%eEoCcvrcFSktk^OQ2rIt~Cvy+~_;ui~H}tKc%*d1;j7&=%bGs@qgik z7aG+O99A_zR*@9Mw|LV527rXzx^FkfQ>O(VvYu#)5?xRrvEU+b6;vxuMF8v$$TA%3 z%P+q)Qic1*szlAAa?=5hSlmDU@elLDAW_MCVptH{nlb=}^b3wgMN-?Ap57gsnz&yT zn6`KT?RLl-10J_m;bDgzrqQEEr@XBI0p5c{jR|J)T=RG7(xs*|2Js`TG@FqKIYlMH zb2z^{Ahjg5L(Ffy@kZ^x|Nce_1qV(%7MgTg2>1EtpKm{^fROe z%nn36fm3pt-5@1zKZ}f{zns=)h2yaBr~!O6)+xyG91A!h zsqi3zrAVyczy*M$LOKFOR9(>Q$6v#Du$Bmd;_tD8XMxY*G5`cfnP7Jiq!xr6dpd&zZ0u-(>v%H@y(M}yUb^U$?+2wwmWfJq1i|4eY;zahMV*7F*tAy01zy&Q%^nBsJ!67>Oumtcq}yc z=}IWbKlkQl5eC0UQ2+qKS?Ug47f43_&h^~@EceYbrYjcs?#%`Up!P^0r{c6K2}GXo zm@#7v(M<;+-g+cgZ2$y8M{TgkefspNu)drh)rq74gxLZJ5)MFI1AvPGAOK7b6xVkF zRG9?g*aionZThdN&<&nRfES=1SV(u^K*L|dPfB;-2tnTqF)sd&HB(tPFk6(!LfJ}D zdmWsEs7S1&GtWHJ#L0q#>_vjBI3TgWNGJ;qR4Bj(WHyH8J_FBp!37r>0Fef32V4yv z2Dc*b2%sRLTmb#{x4$*gIrx0GIn}pQ8khv?I&_WJmsZR|$9-g~d{ zLZfPkYzK)jlZrzQXB&LQ74r~oNGt>uei0<#a1cNXKsYZ8l@35iH|ouBAVP+N0LJ2i zr(J#Z)yA&_(1HW$irNG~05IsRgn$D;tV=9QtT0>;mIK*{KG#Ib2D^w5P{ox0;^hVg zpuG-Tqg88^QUiv0Zn;Qsfe0w##KVk5$_yMhFvT3k|AMEM9BLLbm?%%IjD<%%xr4<= zah!A~ail1nZzy?BC!hD@w|TUkiJ#P2L1;S9I>0abwdzJL^uNgR|X)! z3xKHmf<$AIqng|}7!nN?hSX%hYq$r1K))QS_D1)5n7aCe9 zv#4#QLa`Oklv+!}(U!9n5}i%nh((Q7yZxytEEeo{n(^B(|`I2dn# zNlA%WL>8*XsTW+eL2rLZqwtEhJix(`hAJTd862dmVrfySfHc7p!Xpg7$h7Y>{0Q(s zs_|SC27#2<1V998k!TbN4+5d zX&oFK^qB6qZ&){6lG?1Hs(aYtLmB_Rr_}U({&a3d0AYPFk$?kL5gd?Y-axnjs)wK_ z4maASz=z;XH5n`xpuz0se5euBVkQ7W-C)VF*n~bH$HDMJRrdh^G4=7B0|+=1fP$oB zM7UuT;&2!ifDMTi96M~|>9D~OU3^9Z%LjV!+472vX`fWA$UvIl3xbEZ3H69_CJ=Mh zCe9-Xh;acVh$NPhPV|{3U!pL zkxKy8^qz1BU@%Zw!f;b*QD2lUkqZ=5*?gBxeh(cK(Nz~@W`S{Ry#NrUJphR0`rzO# z#FQs(0)m=ukTOAFk@ytqAs1c801#Fc1Rfq19MqB_C5Xkjaju$z#r+;?7M~BXw{(1u z@59?jP@}=HH!^SxHa50nm$6%C~NsFts8Nf_xG&Cw7ImIo*Iyz=iNm z)7jKbvdU&r;V%FO@Va3NvH&3VI2_#?^=z)iGh+VZg1~gItP+Il5kMu(;_{#V`-ROG zQGh7ZQ7cxd-41~@nP7Z7s7x#|{82VU zfwhM92j_y&*0#$%Kqcx=K$e(WWu?tXRWcLEa>Vp^uY3H6h-vS#@9vp5nW`56TDHPB zTUTCrXKH^S!WdMiqE6iGLkk8L77~5;-FKTdC`@u?xj;1mko^v1miSdLodPupU~4-d z)>xSYP00%au$6^DNJ$|JlF*JVQL@*EK>z;as7^VeAgdh?>ji+wNTjXrr8jOc8>+b5 zbQ2c>K=@TE8(1Z%6!;028;-hM@S)lQCEf8zQWDw7dBT^)i&52{V@Oq;i?&OMJtrN? znm3jHa&~!#vTXWA*9!nKAycO(bnC-qnlUSplG=e4Mk$P&z#d#2+dP4qaikCvj^&bR z)6BX6Oz@njLnIr|L$4vLBCG0dMv#>pXm=wP`bFbFJoC5$4eOJc1JT}7y#df?UnVtn zd`wSHNHyoNOh}u6yfUhqY+LqBm5Theb7NctqWI&7A*mu6hHYrOSQ2^+7_{+*7Kr7F68YiAly9!smm@TV0zt zNG3dmtUan&F@asvcT)m~YuQ%7wu1-cxiX8(-kaUDm)vMxh@gdux}qNbqB9CLaKA{_ z&Bp5ufG8}Sw;-wWuGnDwL2jp3_zzYH{vfwcbUHAg(pUf{9uuEr`OP`7=rGku)2Oab zqrFcEGhqu-TnYLH2RYDeb8yq8McSil*zES4&8Rm3;^C1(H$7OUiEqUQDYK#Sd8=(d^)y_STW7IEM1(Y(|RMwid1V)OI|Bd=0d=VV&+erQQ ziSxoLzPe?CBomP*08Cm3l9Mon-AA>$on z9Z{omXjVrW*|}t3BccR3s_$g*8>=23X=RqvKo0i{Dj!^e|D3X%Dl?9GzV46 zJ(GLwN+7O>?}xxC7Nnc-)~{z+#~u>VFL1CBr^ zWZL!M5+%oSVbbAB#L`&gsyw~+x_||5HeiBt*e2yc0KvUbRS;xAL#U&w7R2`4NE-l( zR~hL7khnLz(e8ls+YAGDJ1Qj3na4$S>~OXK&n$T?y|J-{x4299P;enqT`#`2eDf7I zw1GuKa1|iAd&JxJDgN-|Z>;W93c%y@< zt5(fob&)(z&^9>i<|>!{u26>$iV9D3ZAZP7K*YvAo|DjBV`2tK#K(dIl>s;?Lq-w= z)dfVDv<~*zB4W<;}Pyg4U#MT25XN zg^O<9Gu5Yq4+!h@V+yq2o^1D7`#Y_d0AgC`oA~wz30-wpsi_$Ywtzt$5ktboPeGyE z2AFbUI0SW8a2j|Co?qMmSVfrDR<%{<4bF6l05CB)?t!vuep2a*^#`}YTEntJdSd1W zhm}&7UV5of!@;x-z|yv5dEm5v&xk2w&c&#=078u|U7plmZz$FKA1Ab;;{GDWT((m3c+7kJi4dy*4qvps4&WHP#chOTYAH}P;mq~S>Wng_1Z2OwhJrQWAXU_9 z4t^YfV|fhc=Gqi7Vy(fS>_GZZs)JO;;ps{ry0GrHV@OwCP^2!~gv@Tuxft~pKuk_) znRMS%WqM&!Jf&{TI_zu_o?HHGdnwY43P)VJf#gCmQAdVE!Xn~#*K&gZ+iD8blC8T3 zFnEgr42uu{!ZqM-hGMUc^drL(SA<*ZhWh|jN39!@%FQBRkN89SNA#S7^k^!=uWWaJCn4ThSpMSXAO?kkWK%9e@xOW&@p6cuK?R&2TOL4O!-Ay2=Z97b&Z#CmfA#g9lU=VCRK!kB2-TJ~*PY zPr&lZeuLcxV}%7DblrMiV_%Nz!KcbJ%PD{6d#D5&EYPdR)_?K;*7~7hgIpTI7?llL zz1T8p7T4W=8)qXx#3zHKuzP@I;5W0~KeThUpq}cJ1uxgppC5d{|V) zjl7(YXFC`5S_0XJobhQwPfv`SO?i<@K|;-&jY*7SG2OOMNDWGXsoFqtxQkAD2xdOH zMv&~FDg=b6KNc4tR;HS&<042K01klMrkY4bKtqUzYq^;WJ!5XnFl z1gec%tZcFy;Zsq)p)ZN16oN!60$4XsDs51q*vk*a7#Um=B)}q}Js=b^{jj ziLwC?*TD-804Yl%8!@OJ;ZazNfBfSg%}+Px)v~!XVnDeT}o=oYfh$;dMcz1Ce2Bi>E2d5$};{b*29#0qne+>CLwgCdyLTbTv zFsVtL?mQ^iVSuK;k;B^?A+PYA5Sk-&ppDmO4+FD zJ{t^x;5}q1QU*Qo&A7h&wqn8=(gQM#8pBj}n-f5MQ4;`yPyzu_{6wT(u=&dWNM-qM zJQNU8XGThFW%cY;EeukTG+eR}@q)W<20YRv$)noHRdOX<$F`mZ9T3(fXBVn@6R%FB zPrWze(=E_@GZPy9LQIc7A5Xh}NEOO}+#sb*_kgTIs`33mypasS!S^7`01=?ExY-Pv zUg2@390?xe#@`6~Vja4>?$~P$?HxAN7W?lNHqxlBMuU++b^^&-e139V_lzmi?63S3 z-w@70BoNh}B%RqL;^z0=}s1OE7)%H zrymnFUS|TPbv+s+fN(BCq%XULLKZzpKd|yB9f~^=@5zR z*?>7Sbv z(}PdP^!eA02-;YOg#>~RAqlFsM9TAau+j)85D3j?kl+UQ!sq0snQ%V4lMtB#>9`de z=bn0G)HKWN*f#r0i%jmlK}sMdh-m$i?~~h8-xz<0K3}?1Sc6u0Plg9 zpjO;0z?v)w4otEGh|LjRaWf#<1coR(RVDbPT#qw(&V74Cbn%%5YTqWL!pvL!)Z{i( zzSCd<#7tn?zc4wju@ho??d?QLF(Ti=l*T_qYq)eB;%&jSG=!HRIdJS{QyuiIgm30ggHL>BB7V3#&ypVv6S>zzD}3|5W!7QWkJh}MaD8B)Ir3Z zg!fFM>?EeKrv)8E+1C5qgBdE;G=8WP5#Q2?4Lw5;jP=kj~B3uem%ywr5P-%wid?2u}b#cb@$ zt!(Anq;BA&!8=TrVPzoR$2@&F3V5Pay;XQ5=8sNd| zqA}+2Bcj@SmvEg0N~;4;UWKKZp|$IM5paEUTug6FPo$7))DOU+Ll`B}c#eamJvPM@ zwSxq)8=-J1z=Nel`YRv;JVA>N-ws5XqDJ<#hxerH!%-yl-8XE&!_Q1R%hv=HnS3WN zfzr$tUTQ!@GXBS(CsTSZqPj>XvwN2!NrIdE+Q>a-H+%>SjX^~${vOm5;qIu1o;qem4)GN@kA)GSPveU?m#+H)AG95gYf z5|kP(x5)wVFw!n=x#bpf6(kl`SFo?4HOuj4+Z_k7zFf(JzlV-Jk$k`W2VakjD{tI6cYbQT3=cBt79`~ZB2qhoJ|aMXc~4pg1BW4rYOWs% z>2up{x0$+kRA0It)x^2j&w{e#)?0aXn&Xp+M9KrGirIodPoI_0bFaoVW_(Pm*C<62 zA$f@0ll+B6g?S(3HCR+OZbgV9SXYnqvAZ792ps%nJ~Zjj&8 zxszwMVZzhAxh<}A_m~Gz4OSZe5a#`q_Y!()VoVd?Odq+&OefSqDk|+`+&xR}rBG=k z+fy?}D;XS)?!ed6r$^W{0UyvaqUO!KO&;f}!PIR2+W0%KXuR8zgTn9lz8~G3p^WM# z3qG`brLWiCjq9liaZPzYk>X_J9QcUnoI$xXAquy346W~|b|rI>W}SpQ+<~+3!0sU( zc2HEq`$W`gtDh%$xbJ`jiaj!}bnrFz#NXc}v9K{?6h8J?MgQ}+g04poE1(N@>@AtE~!`FP3YE#XyWOc@P|7{fhA^!Bnqa)lIlUcjI2e9pl=o?)<5#xy1_R-s1HVsQf%y4r8cOn;@lZKB}z&ZDk)LHklt$f zz|~FO4u`d^?~CTnKkFGooh@3H)XP&7x@T;ezH;iz>>Lrn$7x718k^uUXuAt=2#~tL zQF~m6w$d4+3N);5MB8_)n`+VwF;d;vlb)y0?5~oG&M8^f?~}P=FDqWFijBIfIZMU> z0w@Cps9^GB6@U3k@z^Gfy@Bj5K-ZP(?s#+m-88RSk<{3i;-)M9j9KaDib6$7rtL;> zRJRf*<7c`-CF$^f5#uQA*e;Zl9)@*2SD}y>-%#pDX3R>wd&D{GM+_LCwUZ}rA^@Fv zsEY0yr$*!NX>|IYJBR-j4lC~aKYsw(Mfr4YQm?!n*R!w0($<*qJ<>pIZ5a;2%65GQ zJcAF2=!kbBFSPYlZjXz;>t*o!Y*l8j7wKXLW>S8TZU&>mVpZo05j>s$hP-MT3{ zYnF=JG*hdWA1r>QT`O<9P-x4LLO~FXn-nu1>lG_gJHl4CFk}!CZtUH7@8u4RzUsp0@L_!l z?xgvn=aoyMTyznw>%~Bw&0m}}oBral{>ItlrMm00>B*r3qdM-8sCL|L(^XSccVAWg z-GYZE`5(_oYW(YE=U;Pg?5S>@w0714t(J@s*dzerbt~%BO3fE6SMg1k6rIv@&+uP6 zZtbb4z%wk~_kEA;D{Aw=b$u+^i(fBH>ZK`hz4~@sGv|;LR`pdQ5oy;hAr0&m)}e!< z>fF(*lm0!qe0I;1?|Gg9Mp?`cQ&0ESjQF*e-CTNit43P8e7$I8iuz*h>Ks7a2No9< zOvUY*tND^uYV?<1M~58PGkVe1t-THe4I39#y~AKGC#bgPqGbB558`^~!-VE7^tEh7 zQma-=8%oRPvarxovtpTG==PmLrtJ!888pD$QU=embcL^Z3;e}Xr-F~%`tb9F=6#zq4oF6eW-_Mvo;!!tuV+LZ+x`5dj=6D9ULx+t z*R0j56|1%Qi+PDRuD!c-^y>9m-Lz1pt4l>I_cb)e%|?CI20&H{(Y3e{lBiWvHC?`1 zk!aL3B?+}^9&5hOZfX-Q42KgLxu!M;eCp>lLm_#|vP69PEPcOZxmHG_(PS(Zi??d3 z`0~|;^B{TX{Rer@$ojG~maPP`;6sK3q9Q!f{A}4ojY@rm)~=NojYhW|8DBp!WS%M( zizSPTW`CTPar?X;)8|w@x3+N)&#go&XUxCZORb zzw`fDNuFFuAon}~Cinp~c>vWZPAWZl5I`100LFeeuvXy7l>`btfeV(r)Y&}XajzN# zQ%-=BYY9}@H01&G^8!%L?HIe*$bfO0;i4eNw?05z=j&iT{+Kb(F|ttd{iEdT%j07*qoM6N<$ Eg58YYYybcN literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/blueowl.png similarity index 100% rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher.png rename to app/src/main/res/mipmap-xxxhdpi/blueowl.png diff --git a/app/src/main/res/mipmap-xxxhdpi/yellowowl.png b/app/src/main/res/mipmap-xxxhdpi/yellowowl.png new file mode 100644 index 0000000000000000000000000000000000000000..304b0975dd33add82a2aad4151fe87ef83f8efd3 GIT binary patch literal 20028 zcmb@O)n6OW*T+K$Zo#2g@Zeh9DemqNq&UUhg1b{(0);{glt3v3N^$qL6fdsDtvLMn zUOfN7bFsS@v#*`mopa{wocCuYL0eM^5Bmi+006*KQGTWSeC_)0z(jvO>n^!s000nx z$}3s@0L#N-j6D6V*1;8l*Cs*rx}>tNbYxJ_J|uqs>Ns7!mrzina+Jbmr28gOO`k*sFmy(Tko;y^|@wUf@pJZR!$MrLkHDD;4E1WS&&qT3GSX z?H);%9L%vbhPWvjei|P7i&x@0w>cckRpPp^KAdw{a`v~$l_Hc@Tt zIZm|uXW=(C%r3(~ubT;Gt7FvtI-POr`&n+ex`Q!=O7v%~jv>9NkavX>qtXjup9)J0 zzLB2bzq1>kQ+29)UyG(1fCkkDzSaEhDke^0xVHN+H*3I*y(+zir$@E4l^`(Uzs?N| z&l|emIr3-cYV@;JG^{f`JMHZzZv2@6BC&zP%Yy?&4Ih3b&-ZX*RazJpH}X z7CT$)u}g7H^UiUNZ_;kT18*3`4JttjMu4RpxsuE07V)ev*>KBLm`m_D*+lljJ|N%x zIU0UnSK_+-cQ|&uq;@$kUCBJr4R%YK8Va~^;6*}+Yb2w6rMHb$@uIaMf z3N_P-@htV&_}%WC_55l2ioX4G@@L69{paGh{P`n_dzV+0E(1&szgF znzgk{-py~u@Bj8C`9C?9h6MK8#V6JPHkj6MiT%g>(4#g~9PT@)j%c}i(ssI2!PhHpAu+ zOZ_S*xX~+xRbac7{~^@q{e;Ho3=Ko@Kf`UZ@W;rPX_gtk{_%(JErT*X4~Vg z-hn;>_IwsFA4?>I?Pfn&GzMS2c?aIw+Ui-k9#$ibev#6Bkg<3jmJE{x?Zi1&f3vR?hpJC4t}SQXrQ4@f;NW{E@BvRxEV`q%SX8y zNc-udVyq>maLD6W;3xIqmA5x^4s04($c49Gu1T?+36BO+sMO-{X(~eR{{3urGjsY; z9uxS|Wk$U~(5Z3dwq{Go>7EzUdWJkQ6=SZ=x5jn8Q9;OknUhM$HU0Uvp^pYNcKwN@ z+fV*SOD5I#RAX8YT+T?Eze`dqlHUd@tm<2emc`$kVZ8iJg#ZMPv|qDw@O#Hubl&+8 zvMnlo(tm+Ys)X{-w&oanMpSo^n<_10O8-~8&y5Mxe# zw$+L)5p?>2+)qQbVYatN0^z5fjR6;L8H^KODHr4*1Y}g0zus$5?ahC#3iLf(Fc9-QaEzu+PV<5s zV28uS+O><)Yj;o@b2LaYjnxXtwUsweFY)(h>ayN)7>#5ytJyu?-)#4H;urug(d!Du ze}4MHxPz-X)U}M2rH25$i{(n(SRXYE4rZO?62JOqRl)jn>B3+YuFXC^NV=uEla`ZN zVwBK+>G4O3l_nPwT3oAw4RBKl?D@Gxc>^os@Rsu0`hI26yTf?jO4gGEvt3*K;^M#= zvNKVKiY1UhmNNplW!gnM z!UjtSx{4ni9_+6$%WYAq_>D+zER)Zz8_Cwnv-In}I?~jlkW}6LsH2F&juw?z2AFWU zQW*~Xns7c6<$G5YWMfklV41K(d8N+?0sD$FHL#4UkB)BqY<%<1p<07WZHO6y_d<{t z?9c^A;rCdT5#7qxt5D139w3Hok^bU%r)QyxIF0OK=9KP{cA4SKmk4ZZzgiAfB!ny8 zke#9^1ZccSFy|Fy>qYO|>U-nq^rMMlJ>z&0=k}WpT+7IQWbnI@-w%SY(h`rAy7fPP zo!PTYXz|~#ciKYHi;5`B^hf}S-u(s1oaO}?!`|lkpS#}1l-k){l`K6EyIxmfxo3ev0H8rbX?6 zFyD=Vl-NQnf94F@p2O>8}hlp1j~Rmw0tq& zk2=5!EcbL5nm^rqw6HD}EXoBQ?#q3eMswM5LwN9;TrvM8j)sC&6vMi6(7v?2jp=gn zTfBg;TSMgZuLf!Si!P4-EXov1h2APxX%?&7;QXrs??%YjZV~dowt-nAyP$v^I_qDx zpX@zJ6RTr(%S6$-KTzJ`{vnp9E zl<(uo!B}E1Xa9O8Gdf&o3_&*V@Kt6+ssS7Bow`fGrG(h;@g?!vv{2Tymh~2{wAldq ztgpvxSt_^oW_8~W#1)j7?>GI@6o@#YbSR={E%wPwKmjuua*w91@|ZQNOI@#`p7(qN za-4u(I65CrbYpjx2y0^mRP_54(W#=Ci~pOm)j)=w4YN{h0fe@60gnTLWlhH6cZNe#!cQ;?$Je<{axzpt|Kj&-!%N#s02ky#+;Y1#f_k9B3CYM8k7BVwNL67aF zQ}a!B<)10kqPlIq`z+&y!jmeCUK7yEyW>uG#8gdvhjZAr>3Cs$0?L~<2{wn~oazaL zh%Ow7A&<7RlxE(0o4#eyIgE2S2V~IxhPthUa$O7*TKowxNSZ|E(1l%>jTMW}8i(e+ zHP^RkK$Dt1)ka@OX@8-Ok4;|R)p>c_1EDdb6Nv+^;Z%p4)wospiqWhf08q z#spGM&wqBHY6iKOWW|)a$j+UjYrh8#%19u7oDR}GwXzhg`VtRzSw7sYJmvT=2M+du z`Xss)BxJ_H*}G`H#IZDgrv~`katvA+&`ws&3k)1BOT`x7I?=VnoCbfppnlv_vB#?MLF%-%C&l9gL;OwiQgjuoIc9q zvsKqlp518cHLexndKLRmD^Hyd?p^mt>>^VoHvIa8ZZS5Y6*!3h{$l^&6^RK#BD_KGt00HE5+Uwc~9{1YMb##&4Su{ ziC0f)gAe%h#AIu2^?)PHVoko!78-5tucMo~XI!b^odLY2Bh%o*$!$Bka?s;{o$BIz z>pSuODU>PJ<7xHb*}fLCg+W>7rk~~ClVHMEZErplN3hrKrB{LbqxqRvJJ%CAk_qA5 zG3wJs(=iPOSQ~S#7j@6Kp!KUPMwZ}6T z1m?d+FfYo=Xx0e+ot$|zgb6QsM41Py#d!5#u~N8$eV!zIIHd_5E@!QTKhce*ZH*dn z=w+}5Kv$CJWmZo?cHa`BU2iFQhzx4-L0T6aoZKoHE(ro(i2?g9m^ z$dMHnZ6vX)!!*0*Q#AVZ#a~0R2@Nyen*`pwNrSppIq}F~>_Z5uHsEi`33hW3>o^%P z#>1g|xB!;GEtczY`jX6~?FPS>w)rO!aVPXk!|wJnWfZVCR8uiy*#%Vtr;b4&!3cC+*S&mu) zFjDeR=cJp}b7bU<+t{DI$}p+`ENRzWgdFsHQ40L{lFIYrMglt&@zj%Pfho}MeB5#O z=|c)VW?v@5HIf-KJBMx`^>Xs~hZC+{f^{lfqYEw5;ht_pKiL$Lo$g%@NY#89ZK(8V zN}wz03UdGWo`!2!(fZUG3S3SMenlE+8q`lcPnGXlT9Jd)(~bEJQX04RvKBk*}54e~f2 z=^O{yE9C3uX4NHn1EnvfN=?|b_QyXVliej-}RA<&d+>c9k4rL^AymH=`+qSJTwIS4J`@hcx{a6FP)FFayHM~mciw9okK<* ze+v)6T9TTh@xxpIbJW$P1j&%H*M8Qmg!x&v0`>YIyCADzN{3q3q+We5HG|_Y zk`F4zZh^6bK3I26hZp>#EYs(FPlnP>9bARauU?g^)u zm}Ck3oG&S8Of&gWIYqJ97IpK0K5(v}iyulUtT4}sO)e4IqA>36SF1Yu6IpM#BVC9B z0w_of&jF7zg)NaI+HC{cLPIELSOIZ~V^r(G)u|7^N+0dKP@8|ZMC4h2v-;ll>XRss zNiFt|=eGHTeCLIvH!3euN02O} zf9kG6hqtkzhYx;axMs?2!olHiDdaBeZCnn!JDdyz@Jd_u8P-Jez7sh)!K6Ql@*dQ4 zYE0VrYbQPq;_#bQ`K?+nho4Tp84_U{v&?gZ7fR^A68d$Is!JSwkV_Y5y8OeCQ9XMG zPf@Ah9VNN-Z%Z`e|Liqfm@7@firYnqI)I~L0F!F&W>EUEp`knmKbhfo8b|oyms#}% zI$0U0vXC{`+H!=b7@M3+9I^{34*DE`Q_IJ5Mle;MO(Spd_r(0kgkuxf<2X(@sC50( zntVwFRpHf%&WlJV1g0K6JhTr#BzJ;yOZ;I(bsZ;$o)yJ!w#*pH?p9VL;FcZ3IT7XZ z)Xx(}uO)ezts}E&s5w<8Y?(8T!Ryk5S@Vy*Yf%p~#3JxtO1A5g*J_>qzvwtDQ27lr zodIT3#NzvnqysLwC^U=-h_SH}1jsvRWeH9uhX$|qXJfWw@`7sOwa?1Wbj2ql4RXbp z)aVVtsnw01>d)?;jhB?v=;)PvzF8m|eiTC|<-}q%Du`T$a_=Nz$Rb3wYzPoK#>4T; zz7trLXuu3&?OoCk_6uzDFh4m(eDxs{)FdK|X-l;09UQj&n=%e}4HdIf=^mNaj4F(c zovSCv%C|+%mv6@rnwC{;5Oq=u8B`BR1z%&Q4h$_2Gfsz+$T{93b`VyKWB}zYv9{r3 znsMCzD`T7(?nhhO?gU@V9yZU_Fv3ocrxVM^@1w3)5h5FVRi#2$d?QlvZzGc`=JKls zH4-jTa>=B$MFvCbzhj>icD~Ioc>3UNzVBhi2_ZN>_&g~jM{PLUGal19Q_E5$F;n7& zx~un`Liv%%4%e*|69vAH)@pVFz~pPDhZB!q!Q++tVc?d zDm#tpxweN6!}u~#aAM_7KDg2eZSwoG>EJ!JDjC+a@)SILLRrk9-%68|O7I5wIts=1G%4St}oRqtzm zP=>A(33}}tv%fE4I$-DVPtJjI6mj^EI}b8ZosXCG1B@q>?EKCARi!Z4tBVGabM2Yt5L zLRx|{n^eypd8t!sl&*&fz`Lib5ol1#h(`Wb-Bn58cc5%hu)|5QcKQW#_>TC>ut|9t zHk?=L@p=RO2oS1GyPklQDe#W^{R59r#Qz8tH~Ywe%y7Hz6sKqGh6smGD?T8Rf~`fH z+XfRhMfZ4u@k@o=TyRX-y?~}#{Pfh7(2CjU&;Z_%dzfkQjKLayN!>(1{)Ip8gsac< z&dishYDe_kK1bhh;SiBAENlR0LpL)B_&)loC&y8dqHN|pWjlIe92|iwRE==O$s&!% z>Y7=3IP%A9ni`ovXzx;oV^4H#!5+;INOq#Vyi)_HIYnD6Ndb|77=^%-?8m*??qimQ z7z_v_zQDy6Pk3OsXzPltrxqVBuVd%)Pw}{N|7y8ftxjkL`XzP#<*_mfd*%IL@i)D> zag2MqrQaDCQD1Jy-NS5o8{Ias2$B(34$^n|Ye=jR>(J{W4UdL5uz<)d*3yulm>>dk zdhklbDr#$hPM1ALco+M5=v0jK)6FE_?Bnwzeud=3hAysu>so_yT+>Y|27di_yFe1# zN8#}tsQl&GF3d@RvP7#9+L1^i&og=%?ns-7yUwS(PCPE>QS}Y9cp6>_p6?ewQRZPJ za4thNwO3>vmUAq$fzcKJg5cbYe%NMz_|e2fZb2xq4G0SYY@TamfVPDCt`sfVag~vb zKvkG~SsopI&kMQN>)V8nu)}XTlCa-|oQ;Fs_o##NSa3`zloLE>%4W2PIvB|q52Zu% zmcH&LNUm!1JcqIyQ%5KaV-`h)qPKkopok=nG{7o-f})?O1<6{Tf60@t?tY|&*{$P8 zz9}?PFbRA1-ooR-4NzeSEYdOY#?`d~@b(O#RNU|jvt#@g)fxm+hR25cBjlQa?x?hAQn@1rp`sufp#Z3b$x)9haDVwq#lV_l5Qiu)kf z0v-mGBWExKNb>}e&t!eV|{BM5gK5gekx@NWm*W_*)5i4g93`H8^&^?5c@ zUj{+~zay!|`YDNK*h$4EQ%Qn2L>!=7$?m6p!FYiHOuv_LLMNBQdyMK~N7oC=hZh2-)JW;(JcK*)n2l8(Z{E50T*biDDlOve1IFcK^DXFtC0@%1L?Jq zGDyznp@qr;QwsLD&-3U0W7B1J#1{r=*0HmHh&4xeZVnvFk!EA6@Fka+9@+ekatnLaToPB2J z&zP6!=DxMMJ1y=U6-DHh5(TuV*EH+w zN-sjpB*F_gN3n`V40b)|W#a>Ql>w#-km9nY8OO1v6^jQ|(hnbQ#CHm`P~bA436FbF z1yj$7VfRMOAcNx|Dnf$S@=*bT7ZsITj=-P6=5eG#Dmh`bMm1^!{*iq$V?SFP%>e4FqTE`wj=Dy*xeZ42B1L#-@XQGeV@a`1eRnlLLDSVb z=yAmGOhHD9rXRuWbj)2n5ix|XYTuFN=|B{9aVF(?Rs4R(W|Z;yUiCkxD_6Skp^I`P zfV3FitR~xFMn|Y@HqbEvH!}QP>;ZId=)$2~H(r&kYij>1-_Q1G7X}zzgu_6SkCl&%vh~S?F%p)5tIaTF}a8b%a!8|CqY_CvYQP-BMq&uqR zDP1pJo#=qCNwPgXj+QWNXdKlcg&HakgTW`=7oU{EOXNR6x~bhc zt!)Obp~UkcH;sRoR}Rb2fijGN&FDBOv(@oHnH7fiP2m$D6lK=l<$9LLHHh{EVA?X+ zx{l_<9(^bl5zhn|4u$XB;7d?l=?lz+HNtH-NKaG2IM!QJ$%;J1oiC=tadA;c@XX6? z@!Uzx1^aj*HS&vj5;u3%^zU`KR~M!KaJa@k{P>yd%OIHZHbutohsxfa?%JBKJKUUugMi8%*5sjGLvqtBX` zPh%$O8O1r@S>Tcthk=fu;AV(cK7>{%CpDQBg%_ysk~KmwQGb_rVHIuf5rAavqx3lU z*b4x1Rf|)gtp@u<;Zjh~QAfIG%Uq$=?2i9_K!NiWad47uk+*r{mShAm@9LV(3!P~0 zrz5P~?$8i`(4c_|huN0^||teOxhtQr%E!U(fN-aq2*b+ZGsF|3s+2*da%nLgwD z2~!=R-Jp_WpQ91=(C)DW`P7v;E>W44q9)3%CJ8eS5(<$ zwEG7%qDX&Th?CeQ=fXgeYvGq~0B@LLO2~6iL1W}Y$u~iOXi>+K`cbRSS0i5eXtC9O zJdN1KMwT1wQ2WL#5A+t7p=Wr)l=-K_!ONGnwc z?5j`Twm9udcsEQ( zC9u3z5|zzMX|JbcD~Ze` zXRSsLg-eoxeD1PXU}L~DxlV!p<6nOl2+ituK(pyVk* zXw2;*>RTaB&6-?4X;Hq+qH>zO&6s7W*y{e#8n%cBqm9;VTX^GBS`wNi+FZE3M7iGgc#IO6D$y8VjULj(-Q5c2UZP6thk{? z;r->K5pxn6+Yiwfr2eW)3+FsZvi)^7TQ%}}-uW2*1KQ?-^QKVOlK+dfiB>Ir9(h3~ zwgyt1fN%Dv21~a8pvxRYvm>e28EvXZxKi1-<&B5c%4*>H%M)6`gI}mJ>ZFF;5wl&v zQ+l#LN|te+_^jatLS#4FFPZH-c}M6IkZ*v~*pJ!dw zN_+FGH!UsDD9@XMg*t${hUO?SPt{n6wkm^b5+SX`s}qjoB)1zi#;!$>m%c6;kPzRn z>%#k`4hq-@ds!JX^2xUp&Wi?@>~&m~bVF@uG5o`GokX59ROvv<3`iw`jZn|JW(ht- zHI3cPeFE4;tknl1njc}EfZiD}L6`jrc5mZb(x9iEFX7ioR`=y)u5LIv*sgeZrpl%6 zuP4%Al<0VK@(Cic;T_bN(`-A+Tqc z3Slm;Ec*rjgbEhSHC8siVdmV;Y&;LX?n0rQb6BsRWNmW#jWmvXT1@3Q;lM~Ulm`)- zc}u@L^3fcrJk?l)6B`8(TS?8_)PaEWAmn~w4?+EQ%AL_gKZLm-f=IVcm1t!K-=*c} zWs)!Z)p?;j5jLYsZ&!N4AH^ZggWatFSn#(Il-OTmAx3DL6ry zUp|6%4H~X3t1Y}Rr)Bq|56o98!Gy+B}cgdsC8uUlL@9QBdMPNQUxi8pP z-=*FN|KR@D>QTDufbfatW82g|BL#kp{5dC&4`9)_62>W6`Mtx8dneEAxR|404S%kR z(RCkR>+#ar^eC9*#aY)sWl&8G)&s zJO3PFBSU+}9JV^U7-9F7*-H=F`3K947_PY=fpP?g;rD~#d3Kr|4;|BIa>pof6vc97 z#F}!^DTv~m`>B&}`^}4N@h*>A@)ea)`N{0j#FvyN4s1!Qp@IVlkl;6xM#iMh zgqQ$8P82`Z&wH5)Mr)@sDyE1dMFLz7pLeb{L_qJkQlx0bGi3I0rOMjpRvG!SL+%#k z`u!Q3c(Afecx=Ud)#G>R;7F4C@~g~PUF!)!g^w1H3jA+Mva9)LN~{mJd&&JIUogN}nO2`@i-y z0shyTrUU8-xoOQfT?+KAA#JwZ?{bmW9jHqw$SgVl{u{atS>fnfNb|M=+XM&6yBt@fQh178X@_ghVBbFQ)Sqna^_A30x%1R z_3y|#)pc$8(UZ6TimwI+MJ@OM+zsK1y)RVf$KovXt&Im8 zU3_1-k6i6No5Da@uIj)@%<5@gmG~joDQ^vV1$eyy1)faiAoizb_#QfYZ&}BZLS#s5 zhfuHG*+Wsh$y&}P!>jDJCB&&-A>+WjL>ae`zgFx-fZI+jV*6Dq8u@r~h`0I?U=4XW zU>E^8kY*#M%~GA7#G zmXEq|2$?<6J%8sU#wPB>q%U#vW$SO3F&^9phg=LH%1@aJ^vf1D#(qfF6p4|}pLpH>dY(eqD6 zJ)DsY`C4}E8(Z`SEAwao4kY&Ir)9P9)cN$92^6ISPGl3Ngw?cUvX+sfYI}Gi65-E@aBl7y$Z^-qZHEnp0O#Vd=4XsBg3zbTGR!$H1;TZ z8Qmi2X70N!%^v&t`nSHR-JgNvu?Hw)cxchV+@B}Gw z@_w&|N17USLeh4RjB;h~sm`&g3kRp|`$G=e^-nm&zMIn1}8gWfeI0lNb-pHNBmaG z85X42{g3iB{TLr%4W~lwU>HdOJ~yX$G(Zu4EsJU|i8%-#LA#5(>wXGIU1d05Z2vIy zEN0!hRmapgDi2yB6=nh4`gS7i}J!4dxk$1XGu- zMz-TAz+Ackh{uyGvGy6N=VASzCC1Hyde^6MwqJ2{`jIS5lm1zL71#N?@L6yFnrb_r zt}W24*}tn34(%*Lz=QGR9rC%Ogpnawl1cRQk228ifjB=J3VVyqWc%o zIv`WJ8fyh?uwT~b$mfQxLcO2p*mWkyCN-}J?N)JL%E4fqZCpr@7(D7jxWfu3C}ome z{9WN@cLhWpO3XaaYM*Hs1BV@A%@O+5O3@}o7ojio(TH`Y(xWh;>Z~HUMV(9HLmfjf z&=(pz?9acU+r(PxT&*R24>&=NE^uR1zuROrJHg!4m&FxR@!+9a&&F#GB zOY-e!jj?O36c}SP?Q(z^{LRrLrIF|fNe}r>I91(E<0Gil{e}k?j{S5J+5EfwL!L>g zuvLa2EutxvQKsD4I0IwIKg%hn%q*GS^z+W*C?j$m6Rk(96aEI`ATA^jR1L3~j@UH( zg!U@3G)@YQ9VKIkd6ix}S@GoQ*tl0NP}$5gP32a{HrFmm#BNs9V#%+)pLG#z z!BP!o>SE0`WCwJz2)XFes{=0L`R3j%2TQGCx>BfcD6kKsSz(^n2a*ky{=z-*WLXOV zV&K}m0D>#hSprE=cz9u508~kBezO76HHG24R}r}=6X1Z`n2sqIf)1^3>lD2KcZXk( zR}KfBq{eUg!MM*^bGp|}Trhlrr%oRy-8b#EuU-hlfUmy5o|I9rNr5&I`l`{gZSMvv z?0!72Lh4wsWKXF??-Y=a=Tden++Y*zV(-Bwgb-2hm~CRiji2!^VUy(`9jb>b1kZ;V z8D&oeDt+2fI4N-XoD#Al!vn}#$&-sC2S%c01wbJyD&H8HCyNM>Bh3q6i2hrml$)wP z)Zd$xsjg}u_z$#?j#$mgnHd-4<$-!7riJ`87P=wBI2Vi!XsyN%i zq1M{*fUJM=LEsZkUit1I8Y#7&MBAU{@+XvJK4d}Tw^G@-BC+dhf2t#Ti08?)6Z`0D z36`XH>_%^aq188(Gt%7hcdY93=k&%IK$4(ezR3*9Q_u4F0S?eztSH$jAd9G)WUKOB zchri!wsIw_0N=b8d4ZsyvcwvQ(c^+4OAr+wjf+PPy{UW-cM|x>Ju{8(@V!;DXw!%6N{ zc9-Z{&C#wvR5N+|TsTFN8;9603o=T~m@Zu-Vot&-#gJyFNVhT?VzQxT1Q%9N0teg( zD&JsFkWut2VX_D(p$*okm2`0;qh5}F6&Hw5yi{0d_S!s<#fo|;6!!esw#|CLr-ZFt z4eYu<3G((@NY*bE6rd4%h0_ACuX+X7V1RR)vR15M*vZPUG225)eC0g0!YDwq1jpge z+y*Oxbr7>qO|_7|*bYkE?cT5r2ZlqJP=D%NVxuL>VVn~L@Q_f{JawTGP#n+=u<#uu zX2wN?67@{)v{h;v%-k#S$&|@i4&9N3=VU09+HKAYH%g-N$_YV1>SYcT6t9K>O|R3x z$SQx>SHeOTJcl38L)7<XX%-&^lU@R86y9^-cC%Iw)|91( zU00%cBQ*|=%BKc%)Bsnr9~kZ5?Q=|Oj3f*WRGQ_oyZCc%dMeT)(!Xtn6Kwq)1K)0J zY@Mx(v&}dD(M)1E;C*>9qstEnCKgfz)#AI-+a`k9T;x*lP#t_PS`W>2AnS48jyo2a z=3J@93@%<=KG>DaGvYD7U!9y`iv0x$}FJ2QFU%*;(5iEl z;t3sB@mop}Su1X@2SUh3h|8k9F~W^vw=b;FRxr-{t~NpuGH%5-GIWmSHWYbu&T&I7 za}-?L_sG#ZBnpm4~rI> zezdNw=8A|}l}m{%#exm9YCEY+IhidKmG}Fqo8m88RF==iS2674?hss#+$^?}gHsRq zMwAjTRCvtlq*n;;_m-CV1j5iSQ${_N1}mF16((zUkJCt2VQ<*Fd8u4D@0o1<@+(3! zopn}qJP2_h7psnKgIzzS@os`6NtIA(FkysmA|2}<8j2awoK0=;-eQxm+eICP%#H?H z?W4LKO=>#zb}McqX6X{DU$P zTtr)ThX)YNtCJrOYd{d}B=lpP_nM!6t6P$N3m%({mq(aUoWJ_6)qBfe)ed#?c;YLz z`B`E8W#;aggi_K^243+qeDe$D_vLN?NTO1jw9e2Hq-&tf0Ju&-OigEQUpAlK;IW^A zwTq3zfZMzS&z*<+l|V2m(B_CumWQO;ty}kpVAK{XI!bCxiigC)IQrR!7Fn4fSC=fUQ{bN}t4SU&yhm z;M_dpZP*JW2HF%BQS)Tab^2$>p28XTY_`}4jdBp4)Jyt7|CD@K3pR!Ysn>_ctLGQ_ zA#NZ1^uEpnD(IZV_-`KFY#M0Mdd zP=F=CIUD^}$!bWB-mkcUi&rw@@L8bj-dNLx`%&?n%a}Hg%nMC0w--QaONSCo2SvXq zYbZ5lR;M5S$8e%0{m}G5lz|p&RJ_TF-d>5^`C*bSQ?TFNfOkcD#clNJN*U$sPg&x9 zC}C>^fq9^Vm*1F}`1q8py_vB|Ef)&wSUT6-^dzAVLkR2*f*_*4v$Ta_XE&TD5wl+< zGqnhHr~LasX)o3%myrU}TSWZWzpv~qy)z#e9<&mNhh(!wS=FnI@GPD^_`LgIxp!cZ zL91P#JFO!xljd6^&Fkivx0TAN%P7Y5&#K5NE@Q{{Dct|5Yczf)sC&*CpUTz81w^~@ zs1xLr&P7B1Osao~izwL=XKS*pQfr)Po|g&{&aR4(V$3@G!o!5OA-`%S|12}^58>@X zoOw;Ue!HCrb_#U=#6idN`5OQPX3v(P7)>H=CLQw(3jkzlf{OJ+b$LJ}A8&>HH$)k_!Cyfa9MoT_bNW@VE>Vdr5dN{H z#$<_Gj_x!r$s+J^ys2IMe*qm0;_^FfS}1K$h@h8%lriI!AJhK}I|D@-T)NK|vxUgQ zQUcBIg)9p3Xt06uWdARej0|;fL2r_9*QcCPnC3Q*ZQnCtTh`|5QW89U9D@zc{Xd%i21wuDooB*}m$T8jfeAJzg17RM?> zi_%O(JP-zl!1v&Onp+rZ#VpgX-eO=D0XK6zIW{mWY$I>7x-dR{ddB6{6XSB;kZhqF z!e4{3y^#V`rI6=4Ht_({_1>z;Ba6HWymDTz~^DZadpfg%nQr~KC(vfJ3Q85$+l!#n+CqAJiyHK$7gW32DJ zT`I})aPhvG664j zM^vCfvl3?n*&bCS-2sMdGcSVeutGaYeFX=xxvUzDNP`-JxRtodns0 z8EKg?!!?;=>V?8Q0o_;x#`F(RJ?fte6ofDcEHow99T>wxX^16=BM|=JKE}KUUSG4! zTIN8Nscm8Tsq^W5d`!+bB_YH6$4vly7_UeHs{7&5OT2c2C$Ef8%d6v4vVM~nnj{1J z!vbmI3htgM6Sf`afkFhUj3?0!F)BOZ`eA{BpV2Z0l3SEkP~gT3=o40F#2&s_`?Cfn z4Z6wWN%GL%liv6vS3LjrzfCPfo2t09D-x8y{&K#q1L?s z_+9rG2sYqz%?LT2U6eUc+YhA*_aC-}5#`Lsc5zW97VTs5a0DTB}X|4$ysRGwenFHetDRY4DZ_(5_)Dzu`_1Gc> zDAt{<=y8BT7qlIn+yi|9R<%Q`%0jL+swd$3Mv}oqY`9l(N&KU{QSL20aoN3gEgDpT8ut?$H-^U;NmMGXLDJ zk{Yu_7;SdQ6(H8Puf%7~k`kJxmQQFnrnE%*9?1%zLPq&CeZ?fpULBv7&09U$wllW~ z(n`tfQC`3y7VVQHy1@GkuMI0}=DiK-iLvx#c}EURm~n<3+Sd4<-h#p}Is&P@eK++|L@}h_p}uJV1?6fMk;< zQp(Ofn>S0{fBnAnhh4kGZ*1Gr@!~Pb5Dy&bo`5H~ZKo$=r@AtAZrW_f5!OtTPw@5c zEt_Ha<1(~Ab^Qrx)w~!stI%&hH1AX4&t$yVypKI+{$h9ZcYe9|$IY6_o=iq|Zrv(W z1JbcwBNTwUga=57NGUt@Y}_c!390+U@9O^g=nk<9*nFW*iIeg?FX4IFnBYiN2F(_; z7s1pyuFPKG%EF}?6BC4$O$5bE_vt7V5fT5Or0YzhBaai5ij%P z_B}d`fx(gcdUz>fYupg3GrM60Q=8kjJ~9JdHH5x+D86BfC!enHXYcq;+0SW< zXi_R=TlX611N&1H3e*_lB0YAE14zXn_;nlAkp|n#q$HV4CU3jmJF|C>k}tPu>GWVY z6O)LUPYI5VVeXE=g(qO(7PUhkFUy#XIrzDDL&o$RlR4g7mel|lvj+9E2BJ-iEW2}T zrPG3b);T0DJ5lP$#^Q2D*5isi4jM4Obl<@$mv{K$7$B6fzvP^ z^J2C!gn94WVe$qZEcHVO|NDzvS-#pcrPY*EC{f{i5aCR zJ@N|M0>Q46*}2=>v2&NVdGj`J*^*`HaesI;{dO{$EUQx|<)%_nURGvUA1pu6r)bu{ z*b1OtfLH)1gc6k2sUxNJ5>j`|E^(5{B!1jM8O}IGj_S}p-XxwmvXf}yBWt!F(Z+BYul$9Bw*B5^W`&T;n)e9~*{xCU#eE~5_031RQ z_?c`{UrNN2*sfF(-_LuC{r!jRK}KI(sXJgoqWZ}cX;W|OE>q+N%;6`(&rcP8V#rDb zzWy^Uwg9S7D=UN&_+P{bC`i11QWD9e#1hF!5h^7*hxdoQbV|HbTHIabCSRm4gdc(T zzxP- zD-~{I@%O02{Qh - AndroidAPS Closed Loop Open Loop APS режим diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 001d624c96..cbee44bd58 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -1,6 +1,5 @@ - AndroidAPS Uzavřená smyčka Otevřená smyčka Typ smyčky diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 77af750cf3..098b987309 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -1,6 +1,5 @@ - AndroidAPS APS Modus BZ verfügbar in NS Abbrechen diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 7d28d6ef7f..f9b70d30d4 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -1,5 +1,4 @@ - AndroidAPS Seguridad tratamientos Máximo Bolo permitido [U] Máximos carbohidratos permitidos [g] diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 9c947244c0..d05c3c6715 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -1,6 +1,5 @@ - AndroidAPS Treatments 안전설정 최대 허용 식사주입인슐린 [U] 최대 허용 탄수화물 [g] diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e1cfe1a3d4..a750eb054c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,5 +1,4 @@ - AndroidAPS Tratments safety Max allowed bolus [U] Max allowed carbs [g] From ade45d5b4ce8bc3c8d27a94ad2c5f083cf16aae4 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 23 Feb 2017 23:13:38 +0100 Subject: [PATCH 036/140] hide unlock button if not needed --- .../androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java index 4b0ce3bd0a..a4772d0f10 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java @@ -113,6 +113,8 @@ public class ConfigBuilderFragment extends Fragment implements FragmentBase { }, null); } }); + } else { + unlock.setVisibility(View.GONE); } return view; } From e25fb9845dc6a8a1b4109d15f895b3fe3cfafcd4 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 23 Feb 2017 23:32:26 +0100 Subject: [PATCH 037/140] hide unneeded labels in nsclient mode --- .../plugins/ConfigBuilder/ConfigBuilderFragment.java | 12 ++++++++++++ app/src/main/res/layout/configbuilder_fragment.xml | 3 +++ 2 files changed, 15 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java index a4772d0f10..62fe0042e3 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java @@ -44,14 +44,17 @@ public class ConfigBuilderFragment extends Fragment implements FragmentBase { ListView bgsourceListView; ListView pumpListView; + TextView pumpLabel; ListView loopListView; TextView loopLabel; ListView treatmentsListView; ListView tempsListView; + TextView tempsLabel; ListView profileListView; ListView apsListView; TextView apsLabel; ListView constraintsListView; + TextView constraintsLabel; ListView generalListView; TextView nsclientVerView; TextView nightscoutVerView; @@ -77,14 +80,17 @@ public class ConfigBuilderFragment extends Fragment implements FragmentBase { View view = inflater.inflate(R.layout.configbuilder_fragment, container, false); bgsourceListView = (ListView) view.findViewById(R.id.configbuilder_bgsourcelistview); pumpListView = (ListView) view.findViewById(R.id.configbuilder_pumplistview); + pumpLabel = (TextView) view.findViewById(R.id.configbuilder_pumplabel); loopListView = (ListView) view.findViewById(R.id.configbuilder_looplistview); loopLabel = (TextView) view.findViewById(R.id.configbuilder_looplabel); treatmentsListView = (ListView) view.findViewById(R.id.configbuilder_treatmentslistview); tempsListView = (ListView) view.findViewById(R.id.configbuilder_tempslistview); + tempsLabel = (TextView) view.findViewById(R.id.configbuilder_tempslabel); profileListView = (ListView) view.findViewById(R.id.configbuilder_profilelistview); apsListView = (ListView) view.findViewById(R.id.configbuilder_apslistview); apsLabel = (TextView) view.findViewById(R.id.configbuilder_apslabel); constraintsListView = (ListView) view.findViewById(R.id.configbuilder_constraintslistview); + constraintsLabel = (TextView) view.findViewById(R.id.configbuilder_constraintslabel); generalListView = (ListView) view.findViewById(R.id.configbuilder_generallistview); nsclientVerView = (TextView) view.findViewById(R.id.configbuilder_nsclientversion); nightscoutVerView = (TextView) view.findViewById(R.id.configbuilder_nightscoutversion); @@ -125,6 +131,8 @@ public class ConfigBuilderFragment extends Fragment implements FragmentBase { setListViewHeightBasedOnChildren(bgsourceListView); pumpDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsList(PluginBase.PUMP), PluginBase.PUMP); pumpListView.setAdapter(pumpDataAdapter); + if (MainApp.getSpecificPluginsList(PluginBase.PUMP).size() == 0) + pumpLabel.setVisibility(View.GONE); setListViewHeightBasedOnChildren(pumpListView); loopDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsList(PluginBase.LOOP), PluginBase.LOOP); loopListView.setAdapter(loopDataAdapter); @@ -137,6 +145,8 @@ public class ConfigBuilderFragment extends Fragment implements FragmentBase { tempsDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsList(PluginBase.TEMPBASAL), PluginBase.TEMPBASAL); tempsListView.setAdapter(tempsDataAdapter); setListViewHeightBasedOnChildren(tempsListView); + if (MainApp.getSpecificPluginsList(PluginBase.TEMPBASAL).size() == 0) + tempsLabel.setVisibility(View.GONE); profileDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsListByInterface(ProfileInterface.class), PluginBase.PROFILE); profileListView.setAdapter(profileDataAdapter); setListViewHeightBasedOnChildren(profileListView); @@ -148,6 +158,8 @@ public class ConfigBuilderFragment extends Fragment implements FragmentBase { constraintsDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsListByInterface(ConstraintsInterface.class), PluginBase.CONSTRAINTS); constraintsListView.setAdapter(constraintsDataAdapter); setListViewHeightBasedOnChildren(constraintsListView); + if (MainApp.getSpecificPluginsList(PluginBase.CONSTRAINTS).size() == 0) + constraintsLabel.setVisibility(View.GONE); generalDataAdapter = new PluginCustomAdapter(getContext(), R.layout.configbuilder_simpleitem, MainApp.getSpecificPluginsList(PluginBase.GENERAL), PluginBase.GENERAL); generalListView.setAdapter(generalDataAdapter); setListViewHeightBasedOnChildren(generalListView); diff --git a/app/src/main/res/layout/configbuilder_fragment.xml b/app/src/main/res/layout/configbuilder_fragment.xml index 587724e775..5be24ddefb 100644 --- a/app/src/main/res/layout/configbuilder_fragment.xml +++ b/app/src/main/res/layout/configbuilder_fragment.xml @@ -43,6 +43,7 @@ Date: Fri, 24 Feb 2017 13:02:44 +0100 Subject: [PATCH 038/140] queue in db --- .../androidaps/db/DatabaseHelper.java | 68 ++++++++++ .../data => db}/DbRequest.java | 44 +++++-- .../NSClientInternalFragment.java | 2 +- .../plugins/NSClientInternal/UploadQueue.java | 116 +++++------------- .../receivers/DBAccessReceiver.java | 2 +- .../services/NSClientService.java | 53 ++++---- 6 files changed, 169 insertions(+), 116 deletions(-) rename app/src/main/java/info/nightscout/androidaps/{plugins/NSClientInternal/data => db}/DbRequest.java (73%) diff --git a/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java b/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java index 47b8aa222f..17ee574678 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java +++ b/app/src/main/java/info/nightscout/androidaps/db/DatabaseHelper.java @@ -39,6 +39,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { public static final String DATABASE_TEMPTARGETS = "TempTargets"; public static final String DATABASE_TREATMENTS = "Treatments"; public static final String DATABASE_DANARHISTORY = "DanaRHistory"; + public static final String DATABASE_DBREQUESTS = "DBRequests"; private static final int DATABASE_VERSION = 5; @@ -62,6 +63,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { TableUtils.createTableIfNotExists(connectionSource, Treatment.class); TableUtils.createTableIfNotExists(connectionSource, BgReading.class); TableUtils.createTableIfNotExists(connectionSource, DanaRHistoryRecord.class); + TableUtils.createTableIfNotExists(connectionSource, DbRequest.class); } catch (SQLException e) { log.error("Can't create database", e); throw new RuntimeException(e); @@ -77,6 +79,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { TableUtils.dropTable(connectionSource, Treatment.class, true); TableUtils.dropTable(connectionSource, BgReading.class, true); TableUtils.dropTable(connectionSource, DanaRHistoryRecord.class, true); + TableUtils.dropTable(connectionSource, DbRequest.class, true); onCreate(database, connectionSource); } catch (SQLException e) { log.error("Can't drop databases", e); @@ -122,6 +125,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { TableUtils.dropTable(connectionSource, Treatment.class, true); TableUtils.dropTable(connectionSource, BgReading.class, true); TableUtils.dropTable(connectionSource, DanaRHistoryRecord.class, true); + //DbRequests can be cleared from NSClient fragment TableUtils.createTableIfNotExists(connectionSource, TempBasal.class); TableUtils.createTableIfNotExists(connectionSource, TempTarget.class); TableUtils.createTableIfNotExists(connectionSource, Treatment.class); @@ -172,6 +176,14 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { return getDao(DanaRHistoryRecord.class); } + public Dao getDaoDbRequest() throws SQLException { + return getDao(DbRequest.class); + } + + public long size(String database) { + return DatabaseUtils.queryNumEntries(getReadableDatabase(), database); + } + public List getBgreadingsDataFromTime(long mills, boolean ascending) { try { Dao daoBgreadings = getDaoBgReadings(); @@ -189,6 +201,62 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { return new ArrayList(); } + // DbRequests handling + + public void create(DbRequest dbr) { + try { + getDaoDbRequest().create(dbr); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + public int delete(DbRequest dbr) { + try { + return getDaoDbRequest().delete(dbr); + } catch (SQLException e) { + e.printStackTrace(); + } + return 0; + } + + public int deleteDbRequest(String nsClientId) { + try { + return getDaoDbRequest().deleteById(nsClientId); + } catch (SQLException e) { + e.printStackTrace(); + } + return 0; + } + + public int deleteDbRequestbyMongoId(String action, String id) { + try { + QueryBuilder queryBuilder = getDaoDbRequest().queryBuilder(); + Where where = queryBuilder.where(); + where.eq("_id", id).and().eq("action", action); + queryBuilder.limit(10L); + PreparedQuery preparedQuery = queryBuilder.prepare(); + List dbList = getDaoDbRequest().query(preparedQuery); + if (dbList.size() != 1) { + log.error("deleteDbRequestbyMongoId query size: " + dbList.size()); + } else { + //log.debug("Treatment findTreatmentById found: " + trList.get(0).log()); + return delete(dbList.get(0)); + } + } catch (SQLException e) { + e.printStackTrace(); + } + return 0; + } + + public void deleteAllDbRequests() { + try { + TableUtils.clearTable(connectionSource, DbRequest.class); + } catch (SQLException e) { + e.printStackTrace(); + } + } + // TREATMENT HANDLING public boolean isDataUnchanged(long time) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/DbRequest.java b/app/src/main/java/info/nightscout/androidaps/db/DbRequest.java similarity index 73% rename from app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/DbRequest.java rename to app/src/main/java/info/nightscout/androidaps/db/DbRequest.java index ed7de35f49..0ecc5d4f32 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/DbRequest.java +++ b/app/src/main/java/info/nightscout/androidaps/db/DbRequest.java @@ -1,23 +1,47 @@ -package info.nightscout.androidaps.plugins.NSClientInternal.data; +package info.nightscout.androidaps.db; import com.google.common.base.Charsets; import com.google.common.hash.Hashing; +import com.j256.ormlite.field.DatabaseField; +import com.j256.ormlite.table.DatabaseTable; import org.json.JSONException; import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Created by mike on 27.02.2016. *

* Allowed actions "dbAdd" || "dbUpdate" || "dbUpdateUnset" || "dbRemove" */ +@DatabaseTable(tableName = DatabaseHelper.DATABASE_DBREQUESTS) public class DbRequest { - public String action = null; - public String collection = null; - public JSONObject data = null; - public String _id = null; + private static Logger log = LoggerFactory.getLogger(DbRequest.class); + + public String getNsClientID() { + return nsClientID; + } + + public void setNsClientID(String nsClientID) { + this.nsClientID = nsClientID; + } + + @DatabaseField(id = true, useGetSet = true) public String nsClientID = null; + @DatabaseField + public String action = null; + + @DatabaseField + public String collection = null; + + @DatabaseField + public String data = null; + + @DatabaseField + public String _id = null; + public DbRequest() { } @@ -25,7 +49,7 @@ public class DbRequest { public DbRequest(String action, String collection, String nsClientID, JSONObject data) { this.action = action; this.collection = collection; - this.data = data; + this.data = data.toString(); this.nsClientID = nsClientID; this._id = ""; } @@ -34,7 +58,7 @@ public class DbRequest { public DbRequest(String action, String collection, String nsClientID, String _id, JSONObject data) { this.action = action; this.collection = collection; - this.data = data; + this.data = data.toString(); this.nsClientID = nsClientID; this._id = _id; } @@ -43,7 +67,7 @@ public class DbRequest { public DbRequest(String action, String collection, String nsClientID, String _id) { this.action = action; this.collection = collection; - this.data = new JSONObject(); + this.data = new JSONObject().toString(); this.nsClientID = nsClientID; this._id = _id; } @@ -57,7 +81,7 @@ public class DbRequest { try { object.put("action", action); object.put("collection", collection); - object.put("data", data); + object.put("data", new JSONObject(data)); if (_id != null) object.put("_id", _id); if (nsClientID != null) object.put("nsClientID", nsClientID); } catch (JSONException e) { @@ -74,7 +98,7 @@ public class DbRequest { if (jsonObject.has("collection")) result.collection = jsonObject.getString("collection"); if (jsonObject.has("data")) - result.data = jsonObject.getJSONObject("data"); + result.data = jsonObject.getJSONObject("data").toString(); if (jsonObject.has("_id")) result._id = jsonObject.getString("_id"); if (jsonObject.has("nsClientID")) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java index 42ddcc9ba8..65d095c75f 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java @@ -106,7 +106,7 @@ public class NSClientInternalFragment extends Fragment implements FragmentBase, getPlugin().clearLog(); break; case R.id.nsclientinternal_clearqueue: - getPlugin().queue().reset(); + getPlugin().queue().clearQueue(); break; case R.id.nsclientinternal_showqueue: MainApp.bus().post(new EventNSClientNewLog("QUEUE", getPlugin().queue().textList())); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java index ded00ffb85..f6f44e7a5d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java @@ -1,7 +1,6 @@ package info.nightscout.androidaps.plugins.NSClientInternal; -import android.content.SharedPreferences; -import android.preference.PreferenceManager; +import com.j256.ormlite.dao.CloseableIterator; import org.json.JSONArray; import org.json.JSONException; @@ -9,13 +8,14 @@ import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.sql.SQLException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import info.nightscout.androidaps.MainApp; -import info.nightscout.androidaps.plugins.NSClientInternal.broadcasts.BroadcastQueueStatus; -import info.nightscout.androidaps.plugins.NSClientInternal.data.DbRequest; +import info.nightscout.androidaps.db.DatabaseHelper; +import info.nightscout.androidaps.db.DbRequest; import info.nightscout.androidaps.plugins.NSClientInternal.services.NSClientService; import info.nightscout.utils.SP; @@ -25,37 +25,30 @@ import info.nightscout.utils.SP; public class UploadQueue { private static Logger log = LoggerFactory.getLogger(UploadQueue.class); - public static HashMap queue = null; - - public UploadQueue() { - loadMap(); - } - public static String status() { - return "QUEUE: " + queue.size(); + return "QUEUE: " + MainApp.getDbHelper().size(DatabaseHelper.DATABASE_DBREQUESTS); } - public static int size() { - return queue.size(); + public static long size() { + return MainApp.getDbHelper().size(DatabaseHelper.DATABASE_DBREQUESTS); } public static void add(final DbRequest dbr) { NSClientService.handler.post(new Runnable() { @Override public void run() { - log.debug("QUEUE adding: " + dbr.data.toString()); - queue.put(dbr.hash(), dbr); - saveMap(); + log.debug("QUEUE adding: " + dbr.data); + MainApp.getDbHelper().create(dbr); } }); } - public static void reset() { + public static void clearQueue() { NSClientService.handler.post(new Runnable() { @Override public void run() { - log.debug("QUEUE Reset"); - queue.clear(); + log.debug("QUEUE ClearQueue"); + MainApp.getDbHelper().deleteAllDbRequests(); log.debug(status()); } }); @@ -66,31 +59,18 @@ public class UploadQueue { @Override public void run() { try { - long id = -1L; + String id; if (record.has("NSCLIENT_ID")) { - id = record.getLong("NSCLIENT_ID"); + id = record.getString("NSCLIENT_ID"); } else { return; } - Iterator> iter = queue.entrySet().iterator(); - while (iter.hasNext()) { - DbRequest dbr = iter.next().getValue(); - JSONObject data = dbr.data; - long nsclientId = -1; - if (data.has("NSCLIENT_ID")) { - nsclientId = data.getLong("NSCLIENT_ID"); - if (nsclientId == id) { - log.debug("Removing item from UploadQueue"); - iter.remove(); - log.debug(UploadQueue.status()); - return; - } - } + if (MainApp.getDbHelper().deleteDbRequest(id) == 1) { + log.debug("Removed item from UploadQueue. " + UploadQueue.status()); } } catch (JSONException e) { e.printStackTrace(); } - saveMap(); } }); } @@ -99,59 +79,29 @@ public class UploadQueue { NSClientService.handler.post(new Runnable() { @Override public void run() { - Iterator> iter = queue.entrySet().iterator(); - while (iter.hasNext()) { - DbRequest dbr = iter.next().getValue(); - if (dbr.action.equals(action) && dbr._id.equals(_id)) { - log.debug("Removing item from UploadQueue"); - iter.remove(); - return; - } else { - log.debug("Failed removing item from UploadQueue"); - } - } - saveMap(); + MainApp.getDbHelper().deleteDbRequestbyMongoId(action, _id); } }); } - final static String KEY = "UploadQueue"; - - private static void saveMap() { - JSONArray jsonArray = new JSONArray(); - Iterator> iter = queue.entrySet().iterator(); - while (iter.hasNext()) { - DbRequest dbr = iter.next().getValue(); - jsonArray.put(dbr.toJSON()); - } - SP.putString(KEY, jsonArray.toString()); - } - - private void loadMap() { - queue = new HashMap(); - try { - String jsonString = SP.getString(KEY, (new JSONArray()).toString()); - JSONArray jsonArray = new JSONArray(jsonString); - for (int i=0; i < jsonArray.length(); i++) { - JSONObject jsonObject = jsonArray.getJSONObject(i); - DbRequest dbr = DbRequest.fromJSON(jsonObject); - queue.put(dbr.hash(), dbr); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - public String textList() { - Iterator> iter = queue.entrySet().iterator(); String result = ""; - - while (iter.hasNext()) { - DbRequest dbr = iter.next().getValue(); - result += "
"; - result += dbr.action.toUpperCase() + " "; - result += dbr.collection + ": "; - result += dbr.data.toString(); + CloseableIterator iterator = null; + try { + iterator = MainApp.getDbHelper().getDaoDbRequest().closeableIterator(); + try { + while (iterator.hasNext()) { + DbRequest dbr = iterator.next(); + result += "
"; + result += dbr.action.toUpperCase() + " "; + result += dbr.collection + ": "; + result += dbr.data; + } + } finally { + iterator.close(); + } + } catch (SQLException e) { + e.printStackTrace(); } return result; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java index 5f715ad78e..44c6587fb1 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/receivers/DBAccessReceiver.java @@ -17,7 +17,7 @@ import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.plugins.NSClientInternal.NSClientInternalPlugin; import info.nightscout.androidaps.plugins.NSClientInternal.UploadQueue; -import info.nightscout.androidaps.plugins.NSClientInternal.data.DbRequest; +import info.nightscout.androidaps.db.DbRequest; public class DBAccessReceiver extends BroadcastReceiver { private static Logger log = LoggerFactory.getLogger(DBAccessReceiver.class); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java index 4b36061849..7cdab59fca 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java @@ -13,6 +13,7 @@ import android.preference.PreferenceManager; import com.google.common.base.Charsets; import com.google.common.hash.Hashing; +import com.j256.ormlite.dao.CloseableIterator; import com.squareup.otto.Subscribe; import org.json.JSONArray; @@ -22,6 +23,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.net.URISyntaxException; +import java.sql.SQLException; import java.util.Date; import java.util.Iterator; import java.util.Map; @@ -47,7 +49,7 @@ import info.nightscout.androidaps.plugins.NSClientInternal.broadcasts.BroadcastP import info.nightscout.androidaps.plugins.NSClientInternal.broadcasts.BroadcastSgvs; import info.nightscout.androidaps.plugins.NSClientInternal.broadcasts.BroadcastStatus; import info.nightscout.androidaps.plugins.NSClientInternal.broadcasts.BroadcastTreatment; -import info.nightscout.androidaps.plugins.NSClientInternal.data.DbRequest; +import info.nightscout.androidaps.db.DbRequest; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSCal; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSSgv; @@ -518,7 +520,7 @@ public class NSClientService extends Service { JSONObject message = new JSONObject(); message.put("collection", dbr.collection); message.put("_id", dbr._id); - message.put("data", dbr.data); + message.put("data", new JSONObject(dbr.data)); mSocket.emit("dbUpdate", message, ack); MainApp.bus().post(new EventNSClientNewLog("DBUPDATE " + dbr.collection, "Sent " + dbr._id)); } catch (JSONException e) { @@ -532,7 +534,7 @@ public class NSClientService extends Service { JSONObject message = new JSONObject(); message.put("collection", dbr.collection); message.put("_id", dbr._id); - message.put("data", dbr.data); + message.put("data", new JSONObject(dbr.data)); mSocket.emit("dbUpdateUnset", message, ack); MainApp.bus().post(new EventNSClientNewLog("DBUPDATEUNSET " + dbr.collection, "Sent " + dbr._id)); } catch (JSONException e) { @@ -568,7 +570,7 @@ public class NSClientService extends Service { if (!isConnected || !hasWriteAuth) return; JSONObject message = new JSONObject(); message.put("collection", dbr.collection); - message.put("data", dbr.data); + message.put("data", new JSONObject(dbr.data)); mSocket.emit("dbAdd", message, ack); MainApp.bus().post(new EventNSClientNewLog("DBADD " + dbr.collection, "Sent " + dbr.nsClientID)); } catch (JSONException e) { @@ -632,7 +634,7 @@ public class NSClientService extends Service { } public void resend(final String reason) { - if (UploadQueue.queue.size() == 0) + if (UploadQueue.size() == 0) return; if (!isConnected || !hasWriteAuth) return; @@ -643,26 +645,35 @@ public class NSClientService extends Service { @Override public void run() { Logger log = LoggerFactory.getLogger(UploadQueue.class); - Iterator> iter = UploadQueue.queue.entrySet().iterator(); - if (mSocket == null || !mSocket.connected()) return; - while (iter.hasNext()) { - DbRequest dbr = iter.next().getValue(); - if (dbr.action.equals("dbAdd")) { - NSAddAck addAck = new NSAddAck(); - dbAdd(dbr, addAck); - } else if (dbr.action.equals("dbRemove")) { - NSUpdateAck removeAck = new NSUpdateAck(dbr.action, dbr._id); - dbRemove(dbr, removeAck); - } else if (dbr.action.equals("dbUpdate")) { - NSUpdateAck updateAck = new NSUpdateAck(dbr.action, dbr._id); - dbUpdate(dbr, updateAck); - } else if (dbr.action.equals("dbUpdateUnset")) { - NSUpdateAck updateUnsetAck = new NSUpdateAck(dbr.action, dbr._id); - dbUpdateUnset(dbr, updateUnsetAck); + CloseableIterator iterator = null; + try { + iterator = MainApp.getDbHelper().getDaoDbRequest().closeableIterator(); + try { + while (iterator.hasNext()) { + DbRequest dbr = iterator.next(); + if (dbr.action.equals("dbAdd")) { + NSAddAck addAck = new NSAddAck(); + dbAdd(dbr, addAck); + } else if (dbr.action.equals("dbRemove")) { + NSUpdateAck removeAck = new NSUpdateAck(dbr.action, dbr._id); + dbRemove(dbr, removeAck); + } else if (dbr.action.equals("dbUpdate")) { + NSUpdateAck updateAck = new NSUpdateAck(dbr.action, dbr._id); + dbUpdate(dbr, updateAck); + } else if (dbr.action.equals("dbUpdateUnset")) { + NSUpdateAck updateUnsetAck = new NSUpdateAck(dbr.action, dbr._id); + dbUpdateUnset(dbr, updateUnsetAck); + } + } + } finally { + iterator.close(); } + } catch (SQLException e) { + e.printStackTrace(); } + MainApp.bus().post(new EventNSClientNewLog("QUEUE", "Resend ended: " + reason)); } }); From 2fceb0b8913945390530285ba33f3d6f5549da75 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sat, 25 Feb 2017 20:59:46 +0100 Subject: [PATCH 039/140] 1.1h --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 3a9a8c6445..8bc6419394 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,7 +44,7 @@ android { minSdkVersion 21 targetSdkVersion 23 versionCode 1100 - version "1.1g" + version "1.1h" buildConfigField "String", "VERSION", '"' + version + '"' buildConfigField "String", "BUILDVERSION", generateGitBuild() } From 9e03087a77afb13b2f88ce3e1e0841f2964874ea Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Tue, 28 Feb 2017 14:36:44 +0100 Subject: [PATCH 040/140] nsclient tweaking --- .../NSClientInternalFragment.java | 17 ++++++++++++++++- .../NSClientInternalPlugin.java | 6 ------ .../services/NSClientService.java | 7 +++++++ 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java index 65d095c75f..88e4f6eb13 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java @@ -2,6 +2,9 @@ package info.nightscout.androidaps.plugins.NSClientInternal; import android.app.Activity; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; import android.graphics.Paint; import android.os.Bundle; import android.support.v4.app.Fragment; @@ -106,7 +109,19 @@ public class NSClientInternalFragment extends Fragment implements FragmentBase, getPlugin().clearLog(); break; case R.id.nsclientinternal_clearqueue: - getPlugin().queue().clearQueue(); + final Context context = getContext(); + AlertDialog.Builder builder = new AlertDialog.Builder(context); + + builder.setTitle(this.getContext().getString(R.string.confirmation)); + builder.setMessage("Clear queue? All data in queue will be lost!"); + builder.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + getPlugin().queue().clearQueue(); + updateGUI(); + } + }); + builder.setNegativeButton(getString(R.string.cancel), null); + builder.show(); break; case R.id.nsclientinternal_showqueue: MainApp.bus().post(new EventNSClientNewLog("QUEUE", getPlugin().queue().textList())); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java index 46830deadc..1849bf7149 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java @@ -156,12 +156,6 @@ public class NSClientInternalPlugin implements PluginBase { log.debug(ev.action + " " + ev.logText); } - @Subscribe - public void onStatusEvent(final EventNSClientRestart ev) { - if (nsClientService != null) - nsClientService.restart(); - } - @Subscribe public void onStatusEvent(final EventNSClientStatus ev) { status = ev.status; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java index 7cdab59fca..c109873faa 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/services/NSClientService.java @@ -56,6 +56,7 @@ import info.nightscout.androidaps.plugins.NSClientInternal.data.NSSgv; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSStatus; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSTreatment; import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientNewLog; +import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientRestart; import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientStatus; import info.nightscout.androidaps.plugins.Overview.Notification; import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotification; @@ -173,6 +174,12 @@ public class NSClientService extends Service { } } + @Subscribe + public void onStatusEvent(final EventNSClientRestart ev) { + latestDateInReceivedData = 0; + restart(); + } + public static void setNsProfile(NSProfile profile) { nsProfile = profile; } From d4070cf99ae0fbe96d41967ebcc740a6eab13096 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Wed, 1 Mar 2017 19:14:42 +0100 Subject: [PATCH 041/140] check for null --- .../androidaps/plugins/Overview/Dialogs/CalibrationDialog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java index 0c2b9068bf..bb06b1ed9d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java @@ -54,7 +54,7 @@ public class CalibrationDialog extends DialogFragment implements View.OnClickLis okButton.setOnClickListener(this); NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); - Double bg = NSProfile.fromMgdlToUnits(GlucoseStatus.getGlucoseStatusData() != null ? GlucoseStatus.getGlucoseStatusData().glucose : 0d, profile.getUnits()); + Double bg = profile != null ? NSProfile.fromMgdlToUnits(GlucoseStatus.getGlucoseStatusData() != null ? GlucoseStatus.getGlucoseStatusData().glucose : 0d, profile.getUnits()) : 0d; if (profile.getUnits().equals(Constants.MMOL)) bgText = new PlusMinusEditText(view, R.id.overview_calibration_bg, R.id.overview_calibration_bg_plus, R.id.overview_calibration_bg_minus, bg, 0d, 30d, 0.1d, new DecimalFormat("0.0"), false); else From 6ecaad7d6952f25a824f31bd10e2364db26a5bc0 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 2 Mar 2017 20:19:35 +0100 Subject: [PATCH 042/140] make sure service is running --- .../plugins/NSClientInternal/UploadQueue.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java index f6f44e7a5d..96ea4fcea4 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java @@ -1,5 +1,8 @@ package info.nightscout.androidaps.plugins.NSClientInternal; +import android.content.Context; +import android.content.Intent; + import com.j256.ormlite.dao.CloseableIterator; import org.json.JSONArray; @@ -33,7 +36,15 @@ public class UploadQueue { return MainApp.getDbHelper().size(DatabaseHelper.DATABASE_DBREQUESTS); } + private static void startService() { + if (NSClientService.handler == null) { + Context context = MainApp.instance(); + context.startService(new Intent(context, NSClientService.class)); + } + } + public static void add(final DbRequest dbr) { + startService(); NSClientService.handler.post(new Runnable() { @Override public void run() { @@ -44,6 +55,7 @@ public class UploadQueue { } public static void clearQueue() { + startService(); NSClientService.handler.post(new Runnable() { @Override public void run() { @@ -55,6 +67,7 @@ public class UploadQueue { } public static void removeID(final JSONObject record) { + startService(); NSClientService.handler.post(new Runnable() { @Override public void run() { @@ -76,6 +89,7 @@ public class UploadQueue { } public static void removeID(final String action, final String _id) { + startService(); NSClientService.handler.post(new Runnable() { @Override public void run() { From 73fbac1baef6398f421b5d6674c7590152f3622a Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 2 Mar 2017 20:33:46 +0100 Subject: [PATCH 043/140] fix crash --- .../plugins/SmsCommunicator/SmsCommunicatorPlugin.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java index 1dfa9ed2ac..4258907547 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java @@ -469,8 +469,8 @@ public class SmsCommunicatorPlugin implements PluginBase { } public void sendSMSToAllNumbers(Sms sms) { - for (int i = 0; i < allowedNumbers.size(); i++) { - sms.phoneNumber = allowedNumbers.get(i); + for (String number: allowedNumbers) { + sms.phoneNumber = number; sendSMS(sms); } } From d841ff50987c2fa85c7b205b71897f8e82a3f2da Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 2 Mar 2017 20:40:09 +0100 Subject: [PATCH 044/140] prevent null pointer exception --- .../androidaps/plugins/DanaR/Services/ExecutionService.java | 2 +- .../plugins/DanaRKorean/Services/ExecutionService.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java index a6e7a2b278..37ff192c9d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/Services/ExecutionService.java @@ -113,7 +113,7 @@ public class ExecutionService extends Service { String action = intent.getAction(); if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)) { log.debug("Device has disconnected " + device.getName());//Device has disconnected - if (mBTDevice != null && mBTDevice.getName().equals(device.getName())) { + if (mBTDevice != null && mBTDevice.getName() != null && mBTDevice.getName().equals(device.getName())) { if (mSerialIOThread != null) { mSerialIOThread.disconnect("BT disconnection broadcast"); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java index 2d8e04109d..bbe4906b10 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/Services/ExecutionService.java @@ -106,7 +106,7 @@ public class ExecutionService extends Service { String action = intent.getAction(); if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)) { log.debug("Device has disconnected " + device.getName());//Device has disconnected - if (mBTDevice != null && mBTDevice.getName().equals(device.getName())) { + if (mBTDevice != null && mBTDevice.getName() != null && mBTDevice.getName().equals(device.getName())) { if (mSerialIOThread != null) { mSerialIOThread.disconnect("BT disconnection broadcast"); } From 3d521eb75c2be3eff8f65ead4cea5224f012815c Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 2 Mar 2017 20:59:18 +0100 Subject: [PATCH 045/140] nsclient: try to send data immediately --- .../androidaps/plugins/NSClientInternal/UploadQueue.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java index 96ea4fcea4..cae7d6b9b2 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/UploadQueue.java @@ -50,6 +50,10 @@ public class UploadQueue { public void run() { log.debug("QUEUE adding: " + dbr.data); MainApp.getDbHelper().create(dbr); + NSClientInternalPlugin plugin = (NSClientInternalPlugin) MainApp.getSpecificPlugin(NSClientInternalPlugin.class); + if (plugin != null) { + plugin.resend("newdata"); + } } }); } From 8c8af1755b3fb9a575644eb9b37ccd500dd2d5c3 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 2 Mar 2017 21:14:08 +0100 Subject: [PATCH 046/140] 1.3rc1 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 8bc6419394..a7ce7865b1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,7 +44,7 @@ android { minSdkVersion 21 targetSdkVersion 23 versionCode 1100 - version "1.1h" + version "1.3rc1" buildConfigField "String", "VERSION", '"' + version + '"' buildConfigField "String", "BUILDVERSION", generateGitBuild() } From 5a45bd3751a345b642695293adac3132d76bd3ba Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 2 Mar 2017 21:17:24 +0100 Subject: [PATCH 047/140] remove sample data --- .../nightscout/sampleData/cgm/glucose.json | 15002 ---------------- .../nightscout/sampleData/cgm/ns-glucose.json | 15002 ---------------- .../nightscout/sampleData/enact/enacted.json | 31 - .../sampleData/enact/suggested.json | 1 - .../sampleData/monitor/battery.json | 4 - .../sampleData/monitor/carbhistory.json | 1 - .../sampleData/monitor/clock-zoned.json | 1 - .../nightscout/sampleData/monitor/clock.json | 1 - .../sampleData/monitor/edison-battery.json | 4 - .../sampleData/monitor/glucose.json | 15002 ---------------- .../nightscout/sampleData/monitor/iob.json | 1 - .../nightscout/sampleData/monitor/meal.json | 1 - .../nightscout/sampleData/monitor/mmtune.json | 131 - .../sampleData/monitor/pumphistory-zoned.json | 936 - .../sampleData/monitor/pumphistory.json | 936 - .../sampleData/monitor/reservoir.json | 1 - .../nightscout/sampleData/monitor/status.json | 5 - .../sampleData/monitor/temp_basal.json | 5 - .../sampleData/settings/autosens.json | 1 - .../sampleData/settings/basal_profile.json | 140 - .../sampleData/settings/bg_targets.json | 16 - .../sampleData/settings/bg_targets_raw.json | 15 - .../sampleData/settings/carb_ratios.json | 31 - .../settings/insulin_sensitivities.json | 28 - .../settings/insulin_sensitivities_raw.json | 27 - .../nightscout/sampleData/settings/model.json | 1 - .../sampleData/settings/profile.json | 1 - .../settings/pumphistory-24h-zoned.json | 4075 ----- .../sampleData/settings/pumphistory-24h.json | 4075 ----- .../sampleData/settings/settings.json | 27 - .../sampleData/settings/temptargets.json | 1 - .../nightscout/sampleData/upload/index.html | 1 - .../sampleData/upload/latest-treatments.json | 31 - .../sampleData/upload/ns-status.json | 1 - .../nightscout/sampleData/upload/pebble.json | 1 - 35 files changed, 55537 deletions(-) delete mode 100644 app/src/main/java/info/nightscout/sampleData/cgm/glucose.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/cgm/ns-glucose.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/enact/enacted.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/enact/suggested.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/monitor/battery.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/monitor/carbhistory.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/monitor/clock-zoned.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/monitor/clock.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/monitor/edison-battery.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/monitor/glucose.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/monitor/iob.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/monitor/meal.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/monitor/mmtune.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/monitor/pumphistory-zoned.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/monitor/pumphistory.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/monitor/reservoir.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/monitor/status.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/monitor/temp_basal.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/settings/autosens.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/settings/basal_profile.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/settings/bg_targets.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/settings/bg_targets_raw.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/settings/carb_ratios.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/settings/insulin_sensitivities.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/settings/insulin_sensitivities_raw.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/settings/model.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/settings/profile.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/settings/pumphistory-24h-zoned.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/settings/pumphistory-24h.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/settings/settings.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/settings/temptargets.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/upload/index.html delete mode 100644 app/src/main/java/info/nightscout/sampleData/upload/latest-treatments.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/upload/ns-status.json delete mode 100644 app/src/main/java/info/nightscout/sampleData/upload/pebble.json diff --git a/app/src/main/java/info/nightscout/sampleData/cgm/glucose.json b/app/src/main/java/info/nightscout/sampleData/cgm/glucose.json deleted file mode 100644 index c4c0130106..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/cgm/glucose.json +++ /dev/null @@ -1,15002 +0,0 @@ -[ - { - "filtered": 217664, - "direction": "DoubleDown", - "noise": 1, - "dateString": "2017-01-04T16:36:41.224000+01:00", - "sgv": 148, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 191424, - "delta": -20.713, - "date": 1483544201224, - "rssi": 100, - "_id": "586d168bdbab07be5f2e153b", - "type": "sgv", - "glucose": 148 - }, - { - "filtered": 226528, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T16:31:41.395000+01:00", - "sgv": 169, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 210592, - "delta": -13.679, - "date": 1483543901395, - "rssi": 100, - "_id": "586d155fdbab07be5f2e151c", - "type": "sgv", - "glucose": 169 - }, - { - "filtered": 226528, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T16:31:41.395000+01:00", - "sgv": 169, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 210592, - "delta": -20.713, - "date": 1483543901395, - "rssi": 100, - "_id": "586d168bdbab07be5f2e153c", - "type": "sgv", - "glucose": 169 - }, - { - "filtered": 230624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:26:41.244000+01:00", - "sgv": 183, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 223264, - "delta": -4.631, - "date": 1483543601244, - "rssi": 100, - "_id": "586d1433dbab07be5f2e14fc", - "type": "sgv", - "glucose": 183 - }, - { - "filtered": 230624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:26:41.244000+01:00", - "sgv": 183, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 223264, - "delta": -13.679, - "date": 1483543601244, - "rssi": 100, - "_id": "586d155fdbab07be5f2e151d", - "type": "sgv", - "glucose": 183 - }, - { - "filtered": 230624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:26:41.244000+01:00", - "sgv": 183, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 223264, - "delta": -20.713, - "date": 1483543601244, - "rssi": 100, - "_id": "586d168bdbab07be5f2e153d", - "type": "sgv", - "glucose": 183 - }, - { - "filtered": 231808, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:16:41.221000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231840, - "delta": 0.173, - "date": 1483543001221, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14db", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 231808, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:16:41.221000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231840, - "delta": -4.631, - "date": 1483543001221, - "rssi": 100, - "_id": "586d1433dbab07be5f2e14fd", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 231808, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:16:41.221000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231840, - "delta": -13.679, - "date": 1483543001221, - "rssi": 100, - "_id": "586d155fdbab07be5f2e151e", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 231808, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:16:41.221000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231840, - "delta": -20.713, - "date": 1483543001221, - "rssi": 100, - "_id": "586d168bdbab07be5f2e153e", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 230944, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:11:41.253000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231680, - "delta": -0.207, - "date": 1483542701253, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14bb", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 230944, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:11:41.253000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231680, - "delta": 0.173, - "date": 1483542701253, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14dc", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 230944, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:11:41.253000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231680, - "delta": -4.631, - "date": 1483542701253, - "rssi": 100, - "_id": "586d1433dbab07be5f2e14fe", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 230944, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:11:41.253000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231680, - "delta": -13.679, - "date": 1483542701253, - "rssi": 100, - "_id": "586d155fdbab07be5f2e151f", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 230944, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:11:41.253000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231680, - "delta": -20.713, - "date": 1483542701253, - "rssi": 100, - "_id": "586d168bdbab07be5f2e153f", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 229536, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:06:41.161000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231872, - "delta": 1.348, - "date": 1483542401161, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e149a", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 229536, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:06:41.161000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231872, - "delta": -0.207, - "date": 1483542401161, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14bc", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 229536, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:06:41.161000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231872, - "delta": 0.173, - "date": 1483542401161, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14dd", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 229536, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:06:41.161000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231872, - "delta": -4.631, - "date": 1483542401161, - "rssi": 100, - "_id": "586d1433dbab07be5f2e14ff", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 229536, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:06:41.161000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231872, - "delta": -13.679, - "date": 1483542401161, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1520", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 229536, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:06:41.161000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231872, - "delta": -20.713, - "date": 1483542401161, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1540", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": 1.936, - "date": 1483542101177, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1478", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": 1.348, - "date": 1483542101177, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e149b", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": -0.207, - "date": 1483542101177, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14bd", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": 0.173, - "date": 1483542101177, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14de", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": -4.631, - "date": 1483542101177, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1500", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": -13.679, - "date": 1483542101177, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1521", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": -20.713, - "date": 1483542101177, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1541", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": 1.262, - "date": 1483541801241, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1459", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": 1.936, - "date": 1483541801241, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1479", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": 1.348, - "date": 1483541801241, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e149c", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": -0.207, - "date": 1483541801241, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14be", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": 0.173, - "date": 1483541801241, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14df", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": -4.631, - "date": 1483541801241, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1501", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": -13.679, - "date": 1483541801241, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1522", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": -20.713, - "date": 1483541801241, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1542", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": -0.658, - "date": 1483541201285, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1435", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": 1.262, - "date": 1483541201285, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e145a", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": 1.936, - "date": 1483541201285, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e147b", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": 1.348, - "date": 1483541201285, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e149d", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": -0.207, - "date": 1483541201285, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14bf", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": 0.173, - "date": 1483541201285, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e0", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": -4.631, - "date": 1483541201285, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1502", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": -13.679, - "date": 1483541201285, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1524", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": -20.713, - "date": 1483541201285, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1543", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": 2.933, - "date": 1483540901755, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1415", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": -0.658, - "date": 1483540901755, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1436", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": 1.262, - "date": 1483540901755, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e145b", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": 1.936, - "date": 1483540901755, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e147a", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": 1.348, - "date": 1483540901755, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e149e", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": -0.207, - "date": 1483540901755, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c0", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": 0.173, - "date": 1483540901755, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e1", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": -4.631, - "date": 1483540901755, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1503", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": -13.679, - "date": 1483540901755, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1523", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": -20.713, - "date": 1483540901755, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1544", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": -6.913, - "date": 1483540601273, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13f6", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": 2.933, - "date": 1483540601273, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1416", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": -0.658, - "date": 1483540601273, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1437", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": 1.262, - "date": 1483540601273, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e145c", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": 1.936, - "date": 1483540601273, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e147c", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": 1.348, - "date": 1483540601273, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e149f", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": -0.207, - "date": 1483540601273, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c1", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": 0.173, - "date": 1483540601273, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e2", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": -4.631, - "date": 1483540601273, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1504", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": -13.679, - "date": 1483540601273, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1525", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": -20.713, - "date": 1483540601273, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1545", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -3.87, - "date": 1483540301318, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13d7", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -6.913, - "date": 1483540301318, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13f7", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": 2.933, - "date": 1483540301318, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1417", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -0.658, - "date": 1483540301318, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1438", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": 1.262, - "date": 1483540301318, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e145d", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": 1.936, - "date": 1483540301318, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e147d", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": 1.348, - "date": 1483540301318, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a0", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -0.207, - "date": 1483540301318, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c2", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": 0.173, - "date": 1483540301318, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e3", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -4.631, - "date": 1483540301318, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1505", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -13.679, - "date": 1483540301318, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1526", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -20.713, - "date": 1483540301318, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1546", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -2.869, - "date": 1483540001288, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13b6", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -3.87, - "date": 1483540001288, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13d8", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -6.913, - "date": 1483540001288, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13f9", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": 2.933, - "date": 1483540001288, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1418", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -0.658, - "date": 1483540001288, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1439", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": 1.262, - "date": 1483540001288, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e145e", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": 1.936, - "date": 1483540001288, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e147e", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": 1.348, - "date": 1483540001288, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a1", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -0.207, - "date": 1483540001288, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c3", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": 0.173, - "date": 1483540001288, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e4", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -4.631, - "date": 1483540001288, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1506", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -13.679, - "date": 1483540001288, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1527", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -20.713, - "date": 1483540001288, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1547", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -10.022, - "date": 1483539701330, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e1396", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -2.869, - "date": 1483539701330, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13ba", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -3.87, - "date": 1483539701330, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13d9", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -6.913, - "date": 1483539701330, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13f8", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": 2.933, - "date": 1483539701330, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1419", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -0.658, - "date": 1483539701330, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e143a", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": 1.262, - "date": 1483539701330, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e145f", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": 1.936, - "date": 1483539701330, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e147f", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": 1.348, - "date": 1483539701330, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a2", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -0.207, - "date": 1483539701330, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c4", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": 0.173, - "date": 1483539701330, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e5", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -4.631, - "date": 1483539701330, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1507", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -13.679, - "date": 1483539701330, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1528", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -20.713, - "date": 1483539701330, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1548", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -9.038, - "date": 1483539101287, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1375", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -10.022, - "date": 1483539101287, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e1397", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -2.869, - "date": 1483539101287, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13b7", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -3.87, - "date": 1483539101287, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13da", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -6.913, - "date": 1483539101287, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13fa", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": 2.933, - "date": 1483539101287, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e141a", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -0.658, - "date": 1483539101287, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e143b", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": 1.262, - "date": 1483539101287, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1460", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": 1.936, - "date": 1483539101287, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1480", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": 1.348, - "date": 1483539101287, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a3", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -0.207, - "date": 1483539101287, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c5", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": 0.173, - "date": 1483539101287, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e6", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -4.631, - "date": 1483539101287, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1508", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -13.679, - "date": 1483539101287, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1529", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -20.713, - "date": 1483539101287, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1549", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": 6.496, - "date": 1483538501333, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1355", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -9.038, - "date": 1483538501333, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1376", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -10.022, - "date": 1483538501333, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e1398", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -2.869, - "date": 1483538501333, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13b8", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -3.87, - "date": 1483538501333, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13db", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -6.913, - "date": 1483538501333, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13fb", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": 2.933, - "date": 1483538501333, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e141b", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -0.658, - "date": 1483538501333, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e143c", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": 1.262, - "date": 1483538501333, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1461", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": 1.936, - "date": 1483538501333, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1481", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": 1.348, - "date": 1483538501333, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a4", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -0.207, - "date": 1483538501333, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c6", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": 0.173, - "date": 1483538501333, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e7", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -4.631, - "date": 1483538501333, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1509", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -13.679, - "date": 1483538501333, - "rssi": 100, - "_id": "586d155fdbab07be5f2e152a", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -20.713, - "date": 1483538501333, - "rssi": 100, - "_id": "586d168bdbab07be5f2e154a", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 11.613, - "date": 1483538201284, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1336", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 6.496, - "date": 1483538201284, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1356", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -9.038, - "date": 1483538201284, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1377", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -10.022, - "date": 1483538201284, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e1399", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -2.869, - "date": 1483538201284, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13b9", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -3.87, - "date": 1483538201284, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13dc", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -6.913, - "date": 1483538201284, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13fc", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 2.933, - "date": 1483538201284, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e141c", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -0.658, - "date": 1483538201284, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e143d", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 1.262, - "date": 1483538201284, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1462", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 1.936, - "date": 1483538201284, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1482", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 1.348, - "date": 1483538201284, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a5", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -0.207, - "date": 1483538201284, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c7", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 0.173, - "date": 1483538201284, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e8", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -4.631, - "date": 1483538201284, - "rssi": 100, - "_id": "586d1433dbab07be5f2e150a", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -13.679, - "date": 1483538201284, - "rssi": 100, - "_id": "586d155fdbab07be5f2e152b", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -20.713, - "date": 1483538201284, - "rssi": 100, - "_id": "586d168bdbab07be5f2e154b", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 11.911, - "date": 1483537901316, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1317", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 11.613, - "date": 1483537901316, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1337", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 6.496, - "date": 1483537901316, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1357", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -9.038, - "date": 1483537901316, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1378", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -10.022, - "date": 1483537901316, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e139a", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -2.869, - "date": 1483537901316, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13bb", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -3.87, - "date": 1483537901316, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13de", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -6.913, - "date": 1483537901316, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13fd", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 2.933, - "date": 1483537901316, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e141d", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -0.658, - "date": 1483537901316, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e143e", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 1.262, - "date": 1483537901316, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1463", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 1.936, - "date": 1483537901316, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1483", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 1.348, - "date": 1483537901316, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a6", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -0.207, - "date": 1483537901316, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c8", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 0.173, - "date": 1483537901316, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e9", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -4.631, - "date": 1483537901316, - "rssi": 100, - "_id": "586d1433dbab07be5f2e150b", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -13.679, - "date": 1483537901316, - "rssi": 100, - "_id": "586d155fdbab07be5f2e152c", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -20.713, - "date": 1483537901316, - "rssi": 100, - "_id": "586d168bdbab07be5f2e154c", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 17.921, - "date": 1483537601014, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12f7", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 11.911, - "date": 1483537601014, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1318", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 11.613, - "date": 1483537601014, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1338", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 6.496, - "date": 1483537601014, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1358", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -9.038, - "date": 1483537601014, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1379", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -10.022, - "date": 1483537601014, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e139b", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -2.869, - "date": 1483537601014, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13bd", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -3.87, - "date": 1483537601014, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13dd", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -6.913, - "date": 1483537601014, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13fe", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 2.933, - "date": 1483537601014, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e141e", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -0.658, - "date": 1483537601014, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e143f", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 1.262, - "date": 1483537601014, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1464", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 1.936, - "date": 1483537601014, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1484", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 1.348, - "date": 1483537601014, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a7", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -0.207, - "date": 1483537601014, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c9", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 0.173, - "date": 1483537601014, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14ea", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -4.631, - "date": 1483537601014, - "rssi": 100, - "_id": "586d1433dbab07be5f2e150c", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -13.679, - "date": 1483537601014, - "rssi": 100, - "_id": "586d155fdbab07be5f2e152d", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -20.713, - "date": 1483537601014, - "rssi": 100, - "_id": "586d168bdbab07be5f2e154d", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 14.55, - "date": 1483537301326, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12d8", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 17.921, - "date": 1483537301326, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12f8", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 11.911, - "date": 1483537301326, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1319", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 11.613, - "date": 1483537301326, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1339", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 6.496, - "date": 1483537301326, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1359", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -9.038, - "date": 1483537301326, - "rssi": 100, - "_id": "586d029fdbab07be5f2e137a", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -10.022, - "date": 1483537301326, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e139c", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -2.869, - "date": 1483537301326, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13bc", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -3.87, - "date": 1483537301326, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13df", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -6.913, - "date": 1483537301326, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13ff", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 2.933, - "date": 1483537301326, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1420", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -0.658, - "date": 1483537301326, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1440", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 1.262, - "date": 1483537301326, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1465", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 1.936, - "date": 1483537301326, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1485", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 1.348, - "date": 1483537301326, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a8", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -0.207, - "date": 1483537301326, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14ca", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 0.173, - "date": 1483537301326, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14eb", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -4.631, - "date": 1483537301326, - "rssi": 100, - "_id": "586d1433dbab07be5f2e150d", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -13.679, - "date": 1483537301326, - "rssi": 100, - "_id": "586d155fdbab07be5f2e152e", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -20.713, - "date": 1483537301326, - "rssi": 100, - "_id": "586d168bdbab07be5f2e154e", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 21.457, - "date": 1483537001325, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12b9", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 14.55, - "date": 1483537001325, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12d9", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 17.921, - "date": 1483537001325, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12f9", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 11.911, - "date": 1483537001325, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e131a", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 11.613, - "date": 1483537001325, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e133a", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 6.496, - "date": 1483537001325, - "rssi": 100, - "_id": "586d0047dbab07be5f2e135a", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -9.038, - "date": 1483537001325, - "rssi": 100, - "_id": "586d029fdbab07be5f2e137b", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -10.022, - "date": 1483537001325, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e139d", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -2.869, - "date": 1483537001325, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13be", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -3.87, - "date": 1483537001325, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e0", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -6.913, - "date": 1483537001325, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1400", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 2.933, - "date": 1483537001325, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e141f", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -0.658, - "date": 1483537001325, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1441", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 1.262, - "date": 1483537001325, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1466", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 1.936, - "date": 1483537001325, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1486", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 1.348, - "date": 1483537001325, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14aa", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -0.207, - "date": 1483537001325, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14cb", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 0.173, - "date": 1483537001325, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14ec", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -4.631, - "date": 1483537001325, - "rssi": 100, - "_id": "586d1433dbab07be5f2e150e", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -13.679, - "date": 1483537001325, - "rssi": 100, - "_id": "586d155fdbab07be5f2e152f", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -20.713, - "date": 1483537001325, - "rssi": 100, - "_id": "586d168bdbab07be5f2e154f", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 16.247, - "date": 1483536701263, - "rssi": 100, - "_id": "586cf940dbab07be5f2e1297", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 21.457, - "date": 1483536701263, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12ba", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 14.55, - "date": 1483536701263, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12da", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 17.921, - "date": 1483536701263, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12fa", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 11.911, - "date": 1483536701263, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e131b", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 11.613, - "date": 1483536701263, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e133b", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 6.496, - "date": 1483536701263, - "rssi": 100, - "_id": "586d0047dbab07be5f2e135b", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -9.038, - "date": 1483536701263, - "rssi": 100, - "_id": "586d029fdbab07be5f2e137c", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -10.022, - "date": 1483536701263, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e139e", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -2.869, - "date": 1483536701263, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13bf", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -3.87, - "date": 1483536701263, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e1", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -6.913, - "date": 1483536701263, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1401", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 2.933, - "date": 1483536701263, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1421", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -0.658, - "date": 1483536701263, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1443", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 1.262, - "date": 1483536701263, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1467", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 1.936, - "date": 1483536701263, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1490", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 1.348, - "date": 1483536701263, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a9", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -0.207, - "date": 1483536701263, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14cc", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 0.173, - "date": 1483536701263, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14ed", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -4.631, - "date": 1483536701263, - "rssi": 100, - "_id": "586d1433dbab07be5f2e150f", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -13.679, - "date": 1483536701263, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1530", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -20.713, - "date": 1483536701263, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1551", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 3.904, - "date": 1483536401340, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1275", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 16.247, - "date": 1483536401340, - "rssi": 100, - "_id": "586cf940dbab07be5f2e1298", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 21.457, - "date": 1483536401340, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12b8", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 14.55, - "date": 1483536401340, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12db", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 17.921, - "date": 1483536401340, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12fb", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 11.911, - "date": 1483536401340, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e131c", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 11.613, - "date": 1483536401340, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e133c", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 6.496, - "date": 1483536401340, - "rssi": 100, - "_id": "586d0047dbab07be5f2e135c", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -9.038, - "date": 1483536401340, - "rssi": 100, - "_id": "586d029fdbab07be5f2e137d", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -10.022, - "date": 1483536401340, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e139f", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -2.869, - "date": 1483536401340, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c0", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -3.87, - "date": 1483536401340, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e3", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -6.913, - "date": 1483536401340, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1402", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 2.933, - "date": 1483536401340, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1422", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -0.658, - "date": 1483536401340, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1442", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 1.262, - "date": 1483536401340, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1468", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 1.936, - "date": 1483536401340, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e148a", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 1.348, - "date": 1483536401340, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14ab", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -0.207, - "date": 1483536401340, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14cd", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 0.173, - "date": 1483536401340, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14ee", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -4.631, - "date": 1483536401340, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1510", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -13.679, - "date": 1483536401340, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1531", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -20.713, - "date": 1483536401340, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1550", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 5.385, - "date": 1483536101258, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1252", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 3.904, - "date": 1483536101258, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1276", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 16.247, - "date": 1483536101258, - "rssi": 100, - "_id": "586cf940dbab07be5f2e1299", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 21.457, - "date": 1483536101258, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12b7", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 14.55, - "date": 1483536101258, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12dc", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 17.921, - "date": 1483536101258, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12fc", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 11.911, - "date": 1483536101258, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e131d", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 11.613, - "date": 1483536101258, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e133d", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 6.496, - "date": 1483536101258, - "rssi": 100, - "_id": "586d0047dbab07be5f2e135d", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -9.038, - "date": 1483536101258, - "rssi": 100, - "_id": "586d029fdbab07be5f2e137e", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -10.022, - "date": 1483536101258, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a6", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -2.869, - "date": 1483536101258, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c1", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -3.87, - "date": 1483536101258, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e2", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -6.913, - "date": 1483536101258, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1403", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 2.933, - "date": 1483536101258, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1423", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -0.658, - "date": 1483536101258, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1444", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 1.262, - "date": 1483536101258, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e146b", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 1.936, - "date": 1483536101258, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1487", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 1.348, - "date": 1483536101258, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14ad", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -0.207, - "date": 1483536101258, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14ce", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 0.173, - "date": 1483536101258, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14ef", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -4.631, - "date": 1483536101258, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1512", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -13.679, - "date": 1483536101258, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1532", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -20.713, - "date": 1483536101258, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1552", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 1.686, - "date": 1483535802855, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1233", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 5.385, - "date": 1483535802855, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1253", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 3.904, - "date": 1483535802855, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1277", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 16.247, - "date": 1483535802855, - "rssi": 100, - "_id": "586cf940dbab07be5f2e129a", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 21.457, - "date": 1483535802855, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12bb", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 14.55, - "date": 1483535802855, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12dd", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 17.921, - "date": 1483535802855, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12fd", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 11.911, - "date": 1483535802855, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e131e", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 11.613, - "date": 1483535802855, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e133e", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 6.496, - "date": 1483535802855, - "rssi": 100, - "_id": "586d0047dbab07be5f2e135e", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -9.038, - "date": 1483535802855, - "rssi": 100, - "_id": "586d029fdbab07be5f2e137f", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -10.022, - "date": 1483535802855, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a3", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -2.869, - "date": 1483535802855, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c2", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -3.87, - "date": 1483535802855, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e4", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -6.913, - "date": 1483535802855, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1404", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 2.933, - "date": 1483535802855, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1424", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -0.658, - "date": 1483535802855, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1445", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 1.262, - "date": 1483535802855, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1469", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 1.936, - "date": 1483535802855, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1488", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 1.348, - "date": 1483535802855, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14ac", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -0.207, - "date": 1483535802855, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14cf", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 0.173, - "date": 1483535802855, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f0", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -4.631, - "date": 1483535802855, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1511", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -13.679, - "date": 1483535802855, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1533", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -20.713, - "date": 1483535802855, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1553", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 1.314, - "date": 1483535501468, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1213", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 1.686, - "date": 1483535501468, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1234", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 5.385, - "date": 1483535501468, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1254", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 3.904, - "date": 1483535501468, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1278", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 16.247, - "date": 1483535501468, - "rssi": 100, - "_id": "586cf940dbab07be5f2e129b", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 21.457, - "date": 1483535501468, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12bc", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 14.55, - "date": 1483535501468, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12de", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 17.921, - "date": 1483535501468, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12fe", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 11.911, - "date": 1483535501468, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e131f", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 11.613, - "date": 1483535501468, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e133f", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 6.496, - "date": 1483535501468, - "rssi": 100, - "_id": "586d0047dbab07be5f2e135f", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -9.038, - "date": 1483535501468, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1380", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -10.022, - "date": 1483535501468, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a0", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -2.869, - "date": 1483535501468, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c4", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -3.87, - "date": 1483535501468, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e5", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -6.913, - "date": 1483535501468, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1405", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 2.933, - "date": 1483535501468, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1426", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -0.658, - "date": 1483535501468, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1446", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 1.262, - "date": 1483535501468, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e146a", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 1.936, - "date": 1483535501468, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1489", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 1.348, - "date": 1483535501468, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14af", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -0.207, - "date": 1483535501468, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d0", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 0.173, - "date": 1483535501468, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f1", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -4.631, - "date": 1483535501468, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1513", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -13.679, - "date": 1483535501468, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1534", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -20.713, - "date": 1483535501468, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1554", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 2.554, - "date": 1483535201718, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f1", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.314, - "date": 1483535201718, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1214", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.686, - "date": 1483535201718, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1235", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 5.385, - "date": 1483535201718, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1255", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 3.904, - "date": 1483535201718, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1279", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 16.247, - "date": 1483535201718, - "rssi": 100, - "_id": "586cf940dbab07be5f2e129c", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 21.457, - "date": 1483535201718, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12bd", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 14.55, - "date": 1483535201718, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12df", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 17.921, - "date": 1483535201718, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12ff", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 11.911, - "date": 1483535201718, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1320", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 11.613, - "date": 1483535201718, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1340", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 6.496, - "date": 1483535201718, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1360", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -9.038, - "date": 1483535201718, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1381", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -10.022, - "date": 1483535201718, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a1", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -2.869, - "date": 1483535201718, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c3", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -3.87, - "date": 1483535201718, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e6", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -6.913, - "date": 1483535201718, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1406", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 2.933, - "date": 1483535201718, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1425", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -0.658, - "date": 1483535201718, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1447", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.262, - "date": 1483535201718, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e146c", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.936, - "date": 1483535201718, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e148b", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.348, - "date": 1483535201718, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14ae", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -0.207, - "date": 1483535201718, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d1", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 0.173, - "date": 1483535201718, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f2", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -4.631, - "date": 1483535201718, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1514", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -13.679, - "date": 1483535201718, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1535", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -20.713, - "date": 1483535201718, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1555", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 1.87, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d2", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 2.554, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f2", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 1.314, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1215", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 1.686, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1236", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 5.385, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1256", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 3.904, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf814dbab07be5f2e127a", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 16.247, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf940dbab07be5f2e129d", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 21.457, - "date": 1483534901296, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12be", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 14.55, - "date": 1483534901296, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e0", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 17.921, - "date": 1483534901296, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1300", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 11.911, - "date": 1483534901296, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1321", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 11.613, - "date": 1483534901296, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1341", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 6.496, - "date": 1483534901296, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1361", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -9.038, - "date": 1483534901296, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1382", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -10.022, - "date": 1483534901296, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a2", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -2.869, - "date": 1483534901296, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c5", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -3.87, - "date": 1483534901296, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e8", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -6.913, - "date": 1483534901296, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1407", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 2.933, - "date": 1483534901296, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1427", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -0.658, - "date": 1483534901296, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1448", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 1.262, - "date": 1483534901296, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e146d", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 1.936, - "date": 1483534901296, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e148c", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 1.348, - "date": 1483534901296, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b0", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -0.207, - "date": 1483534901296, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d2", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 0.173, - "date": 1483534901296, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f3", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -4.631, - "date": 1483534901296, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1515", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -13.679, - "date": 1483534901296, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1536", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -20.713, - "date": 1483534901296, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1556", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 0.069, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b0", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 1.87, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d3", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 2.554, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f3", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 1.314, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1216", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 1.686, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1237", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 5.385, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1257", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 3.904, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf814dbab07be5f2e127b", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 16.247, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf940dbab07be5f2e129e", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 21.457, - "date": 1483534601873, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12bf", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 14.55, - "date": 1483534601873, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e1", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 17.921, - "date": 1483534601873, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1301", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 11.911, - "date": 1483534601873, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1322", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 11.613, - "date": 1483534601873, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1343", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 6.496, - "date": 1483534601873, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1362", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -9.038, - "date": 1483534601873, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1383", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -10.022, - "date": 1483534601873, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -2.869, - "date": 1483534601873, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c6", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -3.87, - "date": 1483534601873, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e7", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -6.913, - "date": 1483534601873, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1408", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 2.933, - "date": 1483534601873, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1428", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -0.658, - "date": 1483534601873, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1449", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 1.262, - "date": 1483534601873, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e146e", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 1.936, - "date": 1483534601873, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e148d", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 1.348, - "date": 1483534601873, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b1", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -0.207, - "date": 1483534601873, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d3", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 0.173, - "date": 1483534601873, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -4.631, - "date": 1483534601873, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1517", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -13.679, - "date": 1483534601873, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1537", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -20.713, - "date": 1483534601873, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1558", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 0.207, - "date": 1483534301597, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1192", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 0.069, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b1", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 1.87, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 2.554, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 1.314, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1217", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 1.686, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1238", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 5.385, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1258", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 3.904, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf814dbab07be5f2e127c", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 16.247, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf940dbab07be5f2e129f", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 21.457, - "date": 1483534301597, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c0", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 14.55, - "date": 1483534301597, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 17.921, - "date": 1483534301597, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1302", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 11.911, - "date": 1483534301597, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1323", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 11.613, - "date": 1483534301597, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1342", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 6.496, - "date": 1483534301597, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1363", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -9.038, - "date": 1483534301597, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1384", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -10.022, - "date": 1483534301597, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -2.869, - "date": 1483534301597, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c7", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -3.87, - "date": 1483534301597, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e9", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -6.913, - "date": 1483534301597, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1409", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 2.933, - "date": 1483534301597, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1429", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -0.658, - "date": 1483534301597, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e144b", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 1.262, - "date": 1483534301597, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1470", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 1.936, - "date": 1483534301597, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e148f", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 1.348, - "date": 1483534301597, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -0.207, - "date": 1483534301597, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 0.173, - "date": 1483534301597, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -4.631, - "date": 1483534301597, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1516", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -13.679, - "date": 1483534301597, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1538", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -20.713, - "date": 1483534301597, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1557", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 2.177, - "date": 1483534001427, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1173", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 0.207, - "date": 1483534001427, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1193", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 0.069, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 1.87, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 2.554, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 1.314, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1218", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 1.686, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1239", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 5.385, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1259", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 3.904, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf814dbab07be5f2e127d", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 16.247, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a0", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 21.457, - "date": 1483534001427, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c1", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 14.55, - "date": 1483534001427, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 17.921, - "date": 1483534001427, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1303", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 11.911, - "date": 1483534001427, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1324", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 11.613, - "date": 1483534001427, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1344", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 6.496, - "date": 1483534001427, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1364", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -9.038, - "date": 1483534001427, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1385", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -10.022, - "date": 1483534001427, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a7", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -2.869, - "date": 1483534001427, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c8", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -3.87, - "date": 1483534001427, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13ea", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -6.913, - "date": 1483534001427, - "rssi": 100, - "_id": "586d087bdbab07be5f2e140a", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 2.933, - "date": 1483534001427, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e142a", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -0.658, - "date": 1483534001427, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e144a", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 1.262, - "date": 1483534001427, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e146f", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 1.936, - "date": 1483534001427, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e148e", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 1.348, - "date": 1483534001427, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b3", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -0.207, - "date": 1483534001427, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 0.173, - "date": 1483534001427, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f6", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -4.631, - "date": 1483534001427, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1519", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -13.679, - "date": 1483534001427, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1539", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 2.523, - "date": 1483533701407, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1153", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 2.177, - "date": 1483533701407, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1174", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 0.207, - "date": 1483533701407, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1194", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 0.069, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b3", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 1.87, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d6", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 2.554, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f6", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 1.314, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf490dbab07be5f2e121c", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 1.686, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e123a", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 5.385, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e125a", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 3.904, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf814dbab07be5f2e127e", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 16.247, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a1", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 21.457, - "date": 1483533701407, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c2", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 14.55, - "date": 1483533701407, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e3", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 17.921, - "date": 1483533701407, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1304", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 11.911, - "date": 1483533701407, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1325", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 11.613, - "date": 1483533701407, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1345", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 6.496, - "date": 1483533701407, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1367", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -9.038, - "date": 1483533701407, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1386", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -10.022, - "date": 1483533701407, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a8", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -2.869, - "date": 1483533701407, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13ca", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -3.87, - "date": 1483533701407, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13eb", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -6.913, - "date": 1483533701407, - "rssi": 100, - "_id": "586d087bdbab07be5f2e140b", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 2.933, - "date": 1483533701407, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e142b", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -0.658, - "date": 1483533701407, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e144c", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 1.262, - "date": 1483533701407, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1471", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 1.936, - "date": 1483533701407, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1491", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 1.348, - "date": 1483533701407, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b6", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -0.207, - "date": 1483533701407, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d6", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 0.173, - "date": 1483533701407, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f7", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -4.631, - "date": 1483533701407, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1518", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -3.597, - "date": 1483533401451, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1133", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.523, - "date": 1483533401451, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1154", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.177, - "date": 1483533401451, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1175", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 0.207, - "date": 1483533401451, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1195", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 0.069, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b4", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.87, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d7", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.554, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f7", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.314, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1219", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.686, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e123b", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 5.385, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e125b", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 3.904, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf814dbab07be5f2e127f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 16.247, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a2", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 21.457, - "date": 1483533401451, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c3", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 14.55, - "date": 1483533401451, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e5", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 17.921, - "date": 1483533401451, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1305", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 11.911, - "date": 1483533401451, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1326", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 11.613, - "date": 1483533401451, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1346", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 6.496, - "date": 1483533401451, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1365", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -9.038, - "date": 1483533401451, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1387", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -10.022, - "date": 1483533401451, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13ac", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -2.869, - "date": 1483533401451, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c9", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -3.87, - "date": 1483533401451, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13ec", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -6.913, - "date": 1483533401451, - "rssi": 100, - "_id": "586d087bdbab07be5f2e140c", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.933, - "date": 1483533401451, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e142c", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -0.658, - "date": 1483533401451, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e144d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.262, - "date": 1483533401451, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1472", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.936, - "date": 1483533401451, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1492", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.348, - "date": 1483533401451, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b7", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -0.207, - "date": 1483533401451, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d7", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 0.173, - "date": 1483533401451, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f8", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.658, - "date": 1483533101684, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1114", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -3.597, - "date": 1483533101684, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1134", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 2.523, - "date": 1483533101684, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1155", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 2.177, - "date": 1483533101684, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1176", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 0.207, - "date": 1483533101684, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1196", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 0.069, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b5", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.87, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d8", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 2.554, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f8", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.314, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf490dbab07be5f2e121b", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.686, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e123c", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 5.385, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e125e", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 3.904, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1280", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 16.247, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a3", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 21.457, - "date": 1483533101684, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c4", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 14.55, - "date": 1483533101684, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e6", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 17.921, - "date": 1483533101684, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1306", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 11.911, - "date": 1483533101684, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1328", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 11.613, - "date": 1483533101684, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1347", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 6.496, - "date": 1483533101684, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1368", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -9.038, - "date": 1483533101684, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1388", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -10.022, - "date": 1483533101684, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a9", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -2.869, - "date": 1483533101684, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13cc", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -3.87, - "date": 1483533101684, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13ed", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -6.913, - "date": 1483533101684, - "rssi": 100, - "_id": "586d087bdbab07be5f2e140d", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 2.933, - "date": 1483533101684, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e142d", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -0.658, - "date": 1483533101684, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e144e", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.262, - "date": 1483533101684, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1473", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.936, - "date": 1483533101684, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1493", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.348, - "date": 1483533101684, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b4", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -0.207, - "date": 1483533101684, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d8", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.935, - "date": 1483532801480, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f3", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.658, - "date": 1483532801480, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1115", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -3.597, - "date": 1483532801480, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1135", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 2.523, - "date": 1483532801480, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1156", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 2.177, - "date": 1483532801480, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1177", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 0.207, - "date": 1483532801480, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1197", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 0.069, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b6", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.87, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d9", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 2.554, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f9", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.314, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf490dbab07be5f2e121a", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.686, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e123d", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 5.385, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e125c", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 3.904, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1282", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 16.247, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a4", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 21.457, - "date": 1483532801480, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c5", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 14.55, - "date": 1483532801480, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e7", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 17.921, - "date": 1483532801480, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1307", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 11.911, - "date": 1483532801480, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1327", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 11.613, - "date": 1483532801480, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1348", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 6.496, - "date": 1483532801480, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1366", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -9.038, - "date": 1483532801480, - "rssi": 100, - "_id": "586d029fdbab07be5f2e138a", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -10.022, - "date": 1483532801480, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13ad", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -2.869, - "date": 1483532801480, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13cb", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -3.87, - "date": 1483532801480, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13ee", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -6.913, - "date": 1483532801480, - "rssi": 100, - "_id": "586d087bdbab07be5f2e140e", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 2.933, - "date": 1483532801480, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e142e", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -0.658, - "date": 1483532801480, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e144f", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.262, - "date": 1483532801480, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1474", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.936, - "date": 1483532801480, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1494", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.348, - "date": 1483532801480, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b5", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -3.417, - "date": 1483532501420, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10d4", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.935, - "date": 1483532501420, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f4", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.658, - "date": 1483532501420, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1116", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -3.597, - "date": 1483532501420, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1136", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.523, - "date": 1483532501420, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1157", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.177, - "date": 1483532501420, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1178", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 0.207, - "date": 1483532501420, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1198", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 0.069, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b7", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.87, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11da", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.554, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11fa", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.314, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf490dbab07be5f2e121d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.686, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1241", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 5.385, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e125d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 3.904, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1281", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 16.247, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a5", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 21.457, - "date": 1483532501420, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c6", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 14.55, - "date": 1483532501420, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e8", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 17.921, - "date": 1483532501420, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1308", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 11.911, - "date": 1483532501420, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1329", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 11.613, - "date": 1483532501420, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1349", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 6.496, - "date": 1483532501420, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1369", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -9.038, - "date": 1483532501420, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1389", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -10.022, - "date": 1483532501420, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13aa", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -2.869, - "date": 1483532501420, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13cd", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -3.87, - "date": 1483532501420, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13ef", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -6.913, - "date": 1483532501420, - "rssi": 100, - "_id": "586d087bdbab07be5f2e140f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.933, - "date": 1483532501420, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e142f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -0.658, - "date": 1483532501420, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1450", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.262, - "date": 1483532501420, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1475", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.936, - "date": 1483532501420, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1495", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -1.417, - "date": 1483532201043, - "rssi": 100, - "_id": "586ce7acdbab07be5f2e10cb", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -3.417, - "date": 1483532201043, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10d7", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 1.935, - "date": 1483532201043, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f7", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 1.658, - "date": 1483532201043, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1118", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -3.597, - "date": 1483532201043, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1137", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 2.523, - "date": 1483532201043, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1158", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 2.177, - "date": 1483532201043, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e117b", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 0.207, - "date": 1483532201043, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1199", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 0.069, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b8", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 1.87, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11db", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 2.554, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11fb", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 1.314, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf490dbab07be5f2e121e", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 1.686, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e123e", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 5.385, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e125f", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 3.904, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1283", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 16.247, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a6", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 21.457, - "date": 1483532201043, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c7", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 14.55, - "date": 1483532201043, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e9", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 17.921, - "date": 1483532201043, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1309", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 11.911, - "date": 1483532201043, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e132b", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 11.613, - "date": 1483532201043, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e134a", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 6.496, - "date": 1483532201043, - "rssi": 100, - "_id": "586d0047dbab07be5f2e136a", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -9.038, - "date": 1483532201043, - "rssi": 100, - "_id": "586d029fdbab07be5f2e138b", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -10.022, - "date": 1483532201043, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13ab", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -2.869, - "date": 1483532201043, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13ce", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -3.87, - "date": 1483532201043, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13f2", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -6.913, - "date": 1483532201043, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1410", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 2.933, - "date": 1483532201043, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1430", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -0.658, - "date": 1483532201043, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1451", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 1.262, - "date": 1483532201043, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1476", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 6.609, - "date": 1483531901044, - "rssi": 100, - "_id": "586ce67fdbab07be5f2e10ac", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -1.417, - "date": 1483531901044, - "rssi": 100, - "_id": "586ce7acdbab07be5f2e10cc", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -3.417, - "date": 1483531901044, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10d5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 1.935, - "date": 1483531901044, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 1.658, - "date": 1483531901044, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1117", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -3.597, - "date": 1483531901044, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1138", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 2.523, - "date": 1483531901044, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1159", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 2.177, - "date": 1483531901044, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1179", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 0.207, - "date": 1483531901044, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e119a", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 0.069, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b9", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 1.87, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11dc", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 2.554, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11fc", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 1.314, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1221", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 1.686, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e123f", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 5.385, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1260", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 3.904, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1284", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 16.247, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a7", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 21.457, - "date": 1483531901044, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c8", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 14.55, - "date": 1483531901044, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12ea", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 17.921, - "date": 1483531901044, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e130a", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 11.911, - "date": 1483531901044, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e132a", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 11.613, - "date": 1483531901044, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e134b", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 6.496, - "date": 1483531901044, - "rssi": 100, - "_id": "586d0047dbab07be5f2e136b", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -9.038, - "date": 1483531901044, - "rssi": 100, - "_id": "586d029fdbab07be5f2e138c", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -10.022, - "date": 1483531901044, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13ae", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -2.869, - "date": 1483531901044, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13cf", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -3.87, - "date": 1483531901044, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13f0", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -6.913, - "date": 1483531901044, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1411", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 2.933, - "date": 1483531901044, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1431", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -0.658, - "date": 1483531901044, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1452", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 1.069, - "date": 1483531601420, - "rssi": 100, - "_id": "586ce553dbab07be5f2e108d", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 6.609, - "date": 1483531601420, - "rssi": 100, - "_id": "586ce67fdbab07be5f2e10ad", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -1.417, - "date": 1483531601420, - "rssi": 100, - "_id": "586ce7acdbab07be5f2e10cd", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -3.417, - "date": 1483531601420, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10d6", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 1.935, - "date": 1483531601420, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f6", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 1.658, - "date": 1483531601420, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1119", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -3.597, - "date": 1483531601420, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1139", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 2.523, - "date": 1483531601420, - "rssi": 100, - "_id": "586ced88dbab07be5f2e115a", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 2.177, - "date": 1483531601420, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e117a", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 0.207, - "date": 1483531601420, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e119b", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 0.069, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11ba", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 1.87, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11dd", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 2.554, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11fd", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 1.314, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf490dbab07be5f2e121f", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 1.686, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1240", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 5.385, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1261", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 3.904, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1285", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 16.247, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a8", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 21.457, - "date": 1483531601420, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c9", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 14.55, - "date": 1483531601420, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12eb", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 17.921, - "date": 1483531601420, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e130b", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 11.911, - "date": 1483531601420, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e132c", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 11.613, - "date": 1483531601420, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e134c", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 6.496, - "date": 1483531601420, - "rssi": 100, - "_id": "586d0047dbab07be5f2e136c", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -9.038, - "date": 1483531601420, - "rssi": 100, - "_id": "586d029fdbab07be5f2e138d", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -10.022, - "date": 1483531601420, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13af", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -2.869, - "date": 1483531601420, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13d0", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -3.87, - "date": 1483531601420, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13f1", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -6.913, - "date": 1483531601420, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1412", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 2.933, - "date": 1483531601420, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1432", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -3.331, - "date": 1483531300848, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e106d", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 1.069, - "date": 1483531300848, - "rssi": 100, - "_id": "586ce553dbab07be5f2e108e", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 6.609, - "date": 1483531300848, - "rssi": 100, - "_id": "586ce67fdbab07be5f2e10ae", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -1.417, - "date": 1483531300848, - "rssi": 100, - "_id": "586ce7acdbab07be5f2e10ce", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -3.417, - "date": 1483531300848, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10d8", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 1.935, - "date": 1483531300848, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f8", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 1.658, - "date": 1483531300848, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e111a", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -3.597, - "date": 1483531300848, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e113a", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 2.523, - "date": 1483531300848, - "rssi": 100, - "_id": "586ced88dbab07be5f2e115b", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 2.177, - "date": 1483531300848, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e117c", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 0.207, - "date": 1483531300848, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e119c", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 0.069, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11bb", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 1.87, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11de", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 2.554, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11fe", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 1.314, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1220", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 1.686, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1242", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 5.385, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1262", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 3.904, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1286", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 16.247, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a9", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 21.457, - "date": 1483531300848, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12ca", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 14.55, - "date": 1483531300848, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12ec", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 17.921, - "date": 1483531300848, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e130c", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 11.911, - "date": 1483531300848, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e132d", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 11.613, - "date": 1483531300848, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e134e", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 6.496, - "date": 1483531300848, - "rssi": 100, - "_id": "586d0047dbab07be5f2e136d", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -9.038, - "date": 1483531300848, - "rssi": 100, - "_id": "586d029fdbab07be5f2e138f", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -10.022, - "date": 1483531300848, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13b0", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -2.869, - "date": 1483531300848, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13d1", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -3.87, - "date": 1483531300848, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13f3", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -6.913, - "date": 1483531300848, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1413", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.516, - "date": 1483531002068, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e104d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -3.331, - "date": 1483531002068, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e106e", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.069, - "date": 1483531002068, - "rssi": 100, - "_id": "586ce553dbab07be5f2e108f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 6.609, - "date": 1483531002068, - "rssi": 100, - "_id": "586ce67fdbab07be5f2e10af", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -1.417, - "date": 1483531002068, - "rssi": 100, - "_id": "586ce7acdbab07be5f2e10cf", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -3.417, - "date": 1483531002068, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10d9", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.935, - "date": 1483531002068, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f9", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.658, - "date": 1483531002068, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e111b", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -3.597, - "date": 1483531002068, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e113b", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 2.523, - "date": 1483531002068, - "rssi": 100, - "_id": "586ced88dbab07be5f2e115c", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 2.177, - "date": 1483531002068, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e117d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 0.207, - "date": 1483531002068, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e119d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 0.069, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11bc", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.87, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11df", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 2.554, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11ff", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.314, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1222", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.686, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1243", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 5.385, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1263", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 3.904, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1287", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 16.247, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12aa", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 21.457, - "date": 1483531002068, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12cb", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 14.55, - "date": 1483531002068, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12ed", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 17.921, - "date": 1483531002068, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e130d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 11.911, - "date": 1483531002068, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e132e", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 11.613, - "date": 1483531002068, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e134d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 6.496, - "date": 1483531002068, - "rssi": 100, - "_id": "586d0047dbab07be5f2e136e", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -9.038, - "date": 1483531002068, - "rssi": 100, - "_id": "586d029fdbab07be5f2e138e", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -10.022, - "date": 1483531002068, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13b1", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -2.869, - "date": 1483531002068, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13d2", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -3.87, - "date": 1483531002068, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13f4", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -1.417, - "date": 1483530701141, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e102e", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.516, - "date": 1483530701141, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e104e", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -3.331, - "date": 1483530701141, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e106f", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.069, - "date": 1483530701141, - "rssi": 100, - "_id": "586ce553dbab07be5f2e1090", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 6.609, - "date": 1483530701141, - "rssi": 100, - "_id": "586ce67fdbab07be5f2e10b0", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -3.417, - "date": 1483530701141, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10da", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.935, - "date": 1483530701141, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10fa", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.658, - "date": 1483530701141, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e111d", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -3.597, - "date": 1483530701141, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e113c", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 2.523, - "date": 1483530701141, - "rssi": 100, - "_id": "586ced88dbab07be5f2e115d", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 2.177, - "date": 1483530701141, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e117e", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 0.207, - "date": 1483530701141, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e119e", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 0.069, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11be", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.87, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e0", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 2.554, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1200", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.314, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1223", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.686, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1245", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 5.385, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1264", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 3.904, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1288", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 16.247, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12ab", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 21.457, - "date": 1483530701141, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12cc", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 14.55, - "date": 1483530701141, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12ee", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 17.921, - "date": 1483530701141, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e130e", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 11.911, - "date": 1483530701141, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e132f", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 11.613, - "date": 1483530701141, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1350", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 6.496, - "date": 1483530701141, - "rssi": 100, - "_id": "586d0047dbab07be5f2e136f", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -9.038, - "date": 1483530701141, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1390", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -10.022, - "date": 1483530701141, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13b3", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -2.869, - "date": 1483530701141, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13d3", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -2.218, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce0a4dbab07be5f2e100e", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -1.417, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e102f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.516, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e104f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -3.331, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e1070", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.069, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce553dbab07be5f2e1091", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 6.609, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce680dbab07be5f2e10b1", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -3.417, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10db", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.935, - "date": 1483530401170, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10fb", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.658, - "date": 1483530401170, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e111c", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -3.597, - "date": 1483530401170, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e113d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 2.523, - "date": 1483530401170, - "rssi": 100, - "_id": "586ced88dbab07be5f2e115e", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 2.177, - "date": 1483530401170, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e117f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 0.207, - "date": 1483530401170, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e119f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 0.069, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11bd", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.87, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e1", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 2.554, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1201", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.314, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1224", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.686, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1244", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 5.385, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1265", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 3.904, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1289", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 16.247, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12ac", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 21.457, - "date": 1483530401170, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12cd", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 14.55, - "date": 1483530401170, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12ef", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 17.921, - "date": 1483530401170, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e130f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 11.911, - "date": 1483530401170, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1330", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 11.613, - "date": 1483530401170, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e134f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 6.496, - "date": 1483530401170, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1370", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -9.038, - "date": 1483530401170, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1391", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -10.022, - "date": 1483530401170, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13b2", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -0.207, - "date": 1483530102052, - "rssi": 100, - "_id": "586cdf78dbab07be5f2e0fef", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -2.218, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce0a4dbab07be5f2e100f", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -1.417, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e1030", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.516, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e1051", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -3.331, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e1071", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.069, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce553dbab07be5f2e1092", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 6.609, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce680dbab07be5f2e10b2", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -3.417, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10dc", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.935, - "date": 1483530102052, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10fc", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.658, - "date": 1483530102052, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e111f", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -3.597, - "date": 1483530102052, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e113e", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 2.523, - "date": 1483530102052, - "rssi": 100, - "_id": "586ced88dbab07be5f2e115f", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 2.177, - "date": 1483530102052, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1180", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 0.207, - "date": 1483530102052, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e11a0", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 0.069, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11bf", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.87, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e2", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 2.554, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1202", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.314, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1225", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.686, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1246", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 5.385, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1266", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 3.904, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf814dbab07be5f2e128a", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 16.247, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12ad", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 21.457, - "date": 1483530102052, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12ce", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 14.55, - "date": 1483530102052, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12f0", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 17.921, - "date": 1483530102052, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1310", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 11.911, - "date": 1483530102052, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1331", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 11.613, - "date": 1483530102052, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1351", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 6.496, - "date": 1483530102052, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1371", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -9.038, - "date": 1483530102052, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1392", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -2.237, - "date": 1483529802048, - "rssi": 100, - "_id": "586cde4cdbab07be5f2e0fd1", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -0.207, - "date": 1483529802048, - "rssi": 100, - "_id": "586cdf78dbab07be5f2e0ff0", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -2.218, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce0a4dbab07be5f2e1010", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -1.417, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e1031", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.516, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e1050", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -3.331, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e1072", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.069, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce553dbab07be5f2e1093", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 6.609, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce680dbab07be5f2e10b3", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -3.417, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10dd", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.935, - "date": 1483529802048, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10fd", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.658, - "date": 1483529802048, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e111e", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -3.597, - "date": 1483529802048, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e113f", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 2.523, - "date": 1483529802048, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1160", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 2.177, - "date": 1483529802048, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1182", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 0.207, - "date": 1483529802048, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e11a1", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 0.069, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11c0", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.87, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e3", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 2.554, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1203", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.314, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1226", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.686, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1247", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 5.385, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1267", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 3.904, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf814dbab07be5f2e128b", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 16.247, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12ae", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 21.457, - "date": 1483529802048, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12cf", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 14.55, - "date": 1483529802048, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12f1", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 17.921, - "date": 1483529802048, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1311", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 11.911, - "date": 1483529802048, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1332", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 11.613, - "date": 1483529802048, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1353", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 6.496, - "date": 1483529802048, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1372", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -4.355, - "date": 1483529500848, - "rssi": 100, - "_id": "586cdd20dbab07be5f2e0fb2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -2.237, - "date": 1483529500848, - "rssi": 100, - "_id": "586cde4cdbab07be5f2e0fd2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -0.207, - "date": 1483529500848, - "rssi": 100, - "_id": "586cdf78dbab07be5f2e0ff1", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -2.218, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce0a4dbab07be5f2e1011", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -1.417, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e1032", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.516, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e1052", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -3.331, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e1073", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.069, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce553dbab07be5f2e1094", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 6.609, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce680dbab07be5f2e10b4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -3.417, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10df", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.935, - "date": 1483529500848, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10fe", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.658, - "date": 1483529500848, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1120", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -3.597, - "date": 1483529500848, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1140", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 2.523, - "date": 1483529500848, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1161", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 2.177, - "date": 1483529500848, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1181", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 0.207, - "date": 1483529500848, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e11a2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 0.069, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11c1", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.87, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 2.554, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1204", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.314, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1229", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.686, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1248", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 5.385, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1268", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 3.904, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf814dbab07be5f2e128c", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 16.247, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12af", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 21.457, - "date": 1483529500848, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12d0", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 14.55, - "date": 1483529500848, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12f2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 17.921, - "date": 1483529500848, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1312", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 11.911, - "date": 1483529500848, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1333", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 11.613, - "date": 1483529500848, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1352", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.002, - "date": 1483529200876, - "rssi": 100, - "_id": "586cdbf3dbab07be5f2e0f93", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -4.355, - "date": 1483529200876, - "rssi": 100, - "_id": "586cdd20dbab07be5f2e0fb3", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -2.237, - "date": 1483529200876, - "rssi": 100, - "_id": "586cde4cdbab07be5f2e0fd3", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -0.207, - "date": 1483529200876, - "rssi": 100, - "_id": "586cdf78dbab07be5f2e0ff2", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -2.218, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce0a4dbab07be5f2e1012", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -1.417, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e1033", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.516, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e1053", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -3.331, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e1074", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.069, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce553dbab07be5f2e1095", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 6.609, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce680dbab07be5f2e10b5", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -3.417, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10de", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.935, - "date": 1483529200876, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10ff", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.658, - "date": 1483529200876, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1121", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -3.597, - "date": 1483529200876, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1141", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 2.523, - "date": 1483529200876, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1162", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 2.177, - "date": 1483529200876, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1183", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 0.207, - "date": 1483529200876, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e11a3", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 0.069, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11c2", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.87, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e5", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 2.554, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1205", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.314, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1228", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.686, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1249", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 5.385, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1269", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 3.904, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf814dbab07be5f2e128d", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 16.247, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12b0", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 21.457, - "date": 1483529200876, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12d1", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 14.55, - "date": 1483529200876, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12f3", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 17.921, - "date": 1483529200876, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1313", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 11.911, - "date": 1483529200876, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1334", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 4.079, - "date": 1483528900865, - "rssi": 100, - "_id": "586cdac7dbab07be5f2e0f6e", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.002, - "date": 1483528900865, - "rssi": 100, - "_id": "586cdbf3dbab07be5f2e0f94", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -4.355, - "date": 1483528900865, - "rssi": 100, - "_id": "586cdd20dbab07be5f2e0fb4", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -2.237, - "date": 1483528900865, - "rssi": 100, - "_id": "586cde4cdbab07be5f2e0fd4", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -0.207, - "date": 1483528900865, - "rssi": 100, - "_id": "586cdf78dbab07be5f2e0ff3", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -2.218, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce0a4dbab07be5f2e1013", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -1.417, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e1034", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.516, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e1054", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -3.331, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e1075", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.069, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce553dbab07be5f2e10a1", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 6.609, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce680dbab07be5f2e10b6", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -3.417, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10e0", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.935, - "date": 1483528900865, - "rssi": 100, - "_id": "586cea04dbab07be5f2e1100", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.658, - "date": 1483528900865, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1122", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -3.597, - "date": 1483528900865, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1142", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 2.523, - "date": 1483528900865, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1163", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 2.177, - "date": 1483528900865, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1184", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 0.207, - "date": 1483528900865, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e11a4", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 0.069, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11c3", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.87, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e7", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 2.554, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1206", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.314, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1227", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.686, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e124a", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 5.385, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e126a", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 3.904, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf814dbab07be5f2e128e", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 16.247, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12b1", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 21.457, - "date": 1483528900865, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12d2", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 14.55, - "date": 1483528900865, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12f4", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 17.921, - "date": 1483528900865, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1314", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 161184, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:16:40.916000+01:00", - "sgv": 118, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163488, - "delta": 1.071, - "date": 1483528600916, - "rssi": 100, - "_id": "586cd99cdbab07be5f2e0f4f", - "type": "sgv", - "glucose": 118 - }, - { - "filtered": 161184, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:16:40.916000+01:00", - "sgv": 118, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163488, - "delta": 4.079, - "date": 1483528600916, - "rssi": 100, - "_id": "586cdac7dbab07be5f2e0f6f", - "type": "sgv", - "glucose": 118 - } -] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/cgm/ns-glucose.json b/app/src/main/java/info/nightscout/sampleData/cgm/ns-glucose.json deleted file mode 100644 index c4c0130106..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/cgm/ns-glucose.json +++ /dev/null @@ -1,15002 +0,0 @@ -[ - { - "filtered": 217664, - "direction": "DoubleDown", - "noise": 1, - "dateString": "2017-01-04T16:36:41.224000+01:00", - "sgv": 148, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 191424, - "delta": -20.713, - "date": 1483544201224, - "rssi": 100, - "_id": "586d168bdbab07be5f2e153b", - "type": "sgv", - "glucose": 148 - }, - { - "filtered": 226528, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T16:31:41.395000+01:00", - "sgv": 169, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 210592, - "delta": -13.679, - "date": 1483543901395, - "rssi": 100, - "_id": "586d155fdbab07be5f2e151c", - "type": "sgv", - "glucose": 169 - }, - { - "filtered": 226528, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T16:31:41.395000+01:00", - "sgv": 169, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 210592, - "delta": -20.713, - "date": 1483543901395, - "rssi": 100, - "_id": "586d168bdbab07be5f2e153c", - "type": "sgv", - "glucose": 169 - }, - { - "filtered": 230624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:26:41.244000+01:00", - "sgv": 183, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 223264, - "delta": -4.631, - "date": 1483543601244, - "rssi": 100, - "_id": "586d1433dbab07be5f2e14fc", - "type": "sgv", - "glucose": 183 - }, - { - "filtered": 230624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:26:41.244000+01:00", - "sgv": 183, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 223264, - "delta": -13.679, - "date": 1483543601244, - "rssi": 100, - "_id": "586d155fdbab07be5f2e151d", - "type": "sgv", - "glucose": 183 - }, - { - "filtered": 230624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:26:41.244000+01:00", - "sgv": 183, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 223264, - "delta": -20.713, - "date": 1483543601244, - "rssi": 100, - "_id": "586d168bdbab07be5f2e153d", - "type": "sgv", - "glucose": 183 - }, - { - "filtered": 231808, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:16:41.221000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231840, - "delta": 0.173, - "date": 1483543001221, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14db", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 231808, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:16:41.221000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231840, - "delta": -4.631, - "date": 1483543001221, - "rssi": 100, - "_id": "586d1433dbab07be5f2e14fd", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 231808, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:16:41.221000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231840, - "delta": -13.679, - "date": 1483543001221, - "rssi": 100, - "_id": "586d155fdbab07be5f2e151e", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 231808, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:16:41.221000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231840, - "delta": -20.713, - "date": 1483543001221, - "rssi": 100, - "_id": "586d168bdbab07be5f2e153e", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 230944, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:11:41.253000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231680, - "delta": -0.207, - "date": 1483542701253, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14bb", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 230944, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:11:41.253000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231680, - "delta": 0.173, - "date": 1483542701253, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14dc", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 230944, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:11:41.253000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231680, - "delta": -4.631, - "date": 1483542701253, - "rssi": 100, - "_id": "586d1433dbab07be5f2e14fe", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 230944, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:11:41.253000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231680, - "delta": -13.679, - "date": 1483542701253, - "rssi": 100, - "_id": "586d155fdbab07be5f2e151f", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 230944, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:11:41.253000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231680, - "delta": -20.713, - "date": 1483542701253, - "rssi": 100, - "_id": "586d168bdbab07be5f2e153f", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 229536, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:06:41.161000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231872, - "delta": 1.348, - "date": 1483542401161, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e149a", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 229536, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:06:41.161000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231872, - "delta": -0.207, - "date": 1483542401161, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14bc", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 229536, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:06:41.161000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231872, - "delta": 0.173, - "date": 1483542401161, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14dd", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 229536, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:06:41.161000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231872, - "delta": -4.631, - "date": 1483542401161, - "rssi": 100, - "_id": "586d1433dbab07be5f2e14ff", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 229536, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:06:41.161000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231872, - "delta": -13.679, - "date": 1483542401161, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1520", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 229536, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:06:41.161000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231872, - "delta": -20.713, - "date": 1483542401161, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1540", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": 1.936, - "date": 1483542101177, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1478", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": 1.348, - "date": 1483542101177, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e149b", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": -0.207, - "date": 1483542101177, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14bd", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": 0.173, - "date": 1483542101177, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14de", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": -4.631, - "date": 1483542101177, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1500", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": -13.679, - "date": 1483542101177, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1521", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": -20.713, - "date": 1483542101177, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1541", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": 1.262, - "date": 1483541801241, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1459", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": 1.936, - "date": 1483541801241, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1479", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": 1.348, - "date": 1483541801241, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e149c", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": -0.207, - "date": 1483541801241, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14be", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": 0.173, - "date": 1483541801241, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14df", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": -4.631, - "date": 1483541801241, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1501", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": -13.679, - "date": 1483541801241, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1522", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": -20.713, - "date": 1483541801241, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1542", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": -0.658, - "date": 1483541201285, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1435", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": 1.262, - "date": 1483541201285, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e145a", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": 1.936, - "date": 1483541201285, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e147b", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": 1.348, - "date": 1483541201285, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e149d", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": -0.207, - "date": 1483541201285, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14bf", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": 0.173, - "date": 1483541201285, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e0", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": -4.631, - "date": 1483541201285, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1502", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": -13.679, - "date": 1483541201285, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1524", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": -20.713, - "date": 1483541201285, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1543", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": 2.933, - "date": 1483540901755, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1415", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": -0.658, - "date": 1483540901755, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1436", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": 1.262, - "date": 1483540901755, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e145b", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": 1.936, - "date": 1483540901755, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e147a", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": 1.348, - "date": 1483540901755, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e149e", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": -0.207, - "date": 1483540901755, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c0", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": 0.173, - "date": 1483540901755, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e1", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": -4.631, - "date": 1483540901755, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1503", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": -13.679, - "date": 1483540901755, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1523", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": -20.713, - "date": 1483540901755, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1544", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": -6.913, - "date": 1483540601273, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13f6", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": 2.933, - "date": 1483540601273, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1416", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": -0.658, - "date": 1483540601273, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1437", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": 1.262, - "date": 1483540601273, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e145c", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": 1.936, - "date": 1483540601273, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e147c", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": 1.348, - "date": 1483540601273, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e149f", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": -0.207, - "date": 1483540601273, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c1", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": 0.173, - "date": 1483540601273, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e2", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": -4.631, - "date": 1483540601273, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1504", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": -13.679, - "date": 1483540601273, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1525", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": -20.713, - "date": 1483540601273, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1545", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -3.87, - "date": 1483540301318, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13d7", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -6.913, - "date": 1483540301318, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13f7", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": 2.933, - "date": 1483540301318, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1417", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -0.658, - "date": 1483540301318, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1438", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": 1.262, - "date": 1483540301318, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e145d", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": 1.936, - "date": 1483540301318, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e147d", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": 1.348, - "date": 1483540301318, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a0", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -0.207, - "date": 1483540301318, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c2", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": 0.173, - "date": 1483540301318, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e3", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -4.631, - "date": 1483540301318, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1505", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -13.679, - "date": 1483540301318, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1526", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -20.713, - "date": 1483540301318, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1546", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -2.869, - "date": 1483540001288, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13b6", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -3.87, - "date": 1483540001288, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13d8", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -6.913, - "date": 1483540001288, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13f9", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": 2.933, - "date": 1483540001288, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1418", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -0.658, - "date": 1483540001288, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1439", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": 1.262, - "date": 1483540001288, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e145e", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": 1.936, - "date": 1483540001288, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e147e", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": 1.348, - "date": 1483540001288, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a1", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -0.207, - "date": 1483540001288, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c3", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": 0.173, - "date": 1483540001288, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e4", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -4.631, - "date": 1483540001288, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1506", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -13.679, - "date": 1483540001288, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1527", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -20.713, - "date": 1483540001288, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1547", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -10.022, - "date": 1483539701330, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e1396", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -2.869, - "date": 1483539701330, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13ba", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -3.87, - "date": 1483539701330, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13d9", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -6.913, - "date": 1483539701330, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13f8", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": 2.933, - "date": 1483539701330, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1419", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -0.658, - "date": 1483539701330, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e143a", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": 1.262, - "date": 1483539701330, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e145f", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": 1.936, - "date": 1483539701330, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e147f", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": 1.348, - "date": 1483539701330, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a2", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -0.207, - "date": 1483539701330, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c4", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": 0.173, - "date": 1483539701330, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e5", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -4.631, - "date": 1483539701330, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1507", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -13.679, - "date": 1483539701330, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1528", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -20.713, - "date": 1483539701330, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1548", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -9.038, - "date": 1483539101287, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1375", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -10.022, - "date": 1483539101287, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e1397", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -2.869, - "date": 1483539101287, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13b7", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -3.87, - "date": 1483539101287, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13da", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -6.913, - "date": 1483539101287, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13fa", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": 2.933, - "date": 1483539101287, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e141a", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -0.658, - "date": 1483539101287, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e143b", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": 1.262, - "date": 1483539101287, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1460", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": 1.936, - "date": 1483539101287, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1480", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": 1.348, - "date": 1483539101287, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a3", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -0.207, - "date": 1483539101287, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c5", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": 0.173, - "date": 1483539101287, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e6", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -4.631, - "date": 1483539101287, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1508", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -13.679, - "date": 1483539101287, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1529", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -20.713, - "date": 1483539101287, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1549", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": 6.496, - "date": 1483538501333, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1355", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -9.038, - "date": 1483538501333, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1376", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -10.022, - "date": 1483538501333, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e1398", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -2.869, - "date": 1483538501333, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13b8", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -3.87, - "date": 1483538501333, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13db", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -6.913, - "date": 1483538501333, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13fb", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": 2.933, - "date": 1483538501333, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e141b", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -0.658, - "date": 1483538501333, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e143c", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": 1.262, - "date": 1483538501333, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1461", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": 1.936, - "date": 1483538501333, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1481", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": 1.348, - "date": 1483538501333, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a4", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -0.207, - "date": 1483538501333, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c6", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": 0.173, - "date": 1483538501333, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e7", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -4.631, - "date": 1483538501333, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1509", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -13.679, - "date": 1483538501333, - "rssi": 100, - "_id": "586d155fdbab07be5f2e152a", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -20.713, - "date": 1483538501333, - "rssi": 100, - "_id": "586d168bdbab07be5f2e154a", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 11.613, - "date": 1483538201284, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1336", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 6.496, - "date": 1483538201284, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1356", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -9.038, - "date": 1483538201284, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1377", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -10.022, - "date": 1483538201284, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e1399", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -2.869, - "date": 1483538201284, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13b9", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -3.87, - "date": 1483538201284, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13dc", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -6.913, - "date": 1483538201284, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13fc", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 2.933, - "date": 1483538201284, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e141c", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -0.658, - "date": 1483538201284, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e143d", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 1.262, - "date": 1483538201284, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1462", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 1.936, - "date": 1483538201284, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1482", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 1.348, - "date": 1483538201284, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a5", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -0.207, - "date": 1483538201284, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c7", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 0.173, - "date": 1483538201284, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e8", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -4.631, - "date": 1483538201284, - "rssi": 100, - "_id": "586d1433dbab07be5f2e150a", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -13.679, - "date": 1483538201284, - "rssi": 100, - "_id": "586d155fdbab07be5f2e152b", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -20.713, - "date": 1483538201284, - "rssi": 100, - "_id": "586d168bdbab07be5f2e154b", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 11.911, - "date": 1483537901316, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1317", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 11.613, - "date": 1483537901316, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1337", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 6.496, - "date": 1483537901316, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1357", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -9.038, - "date": 1483537901316, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1378", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -10.022, - "date": 1483537901316, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e139a", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -2.869, - "date": 1483537901316, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13bb", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -3.87, - "date": 1483537901316, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13de", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -6.913, - "date": 1483537901316, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13fd", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 2.933, - "date": 1483537901316, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e141d", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -0.658, - "date": 1483537901316, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e143e", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 1.262, - "date": 1483537901316, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1463", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 1.936, - "date": 1483537901316, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1483", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 1.348, - "date": 1483537901316, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a6", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -0.207, - "date": 1483537901316, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c8", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 0.173, - "date": 1483537901316, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e9", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -4.631, - "date": 1483537901316, - "rssi": 100, - "_id": "586d1433dbab07be5f2e150b", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -13.679, - "date": 1483537901316, - "rssi": 100, - "_id": "586d155fdbab07be5f2e152c", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -20.713, - "date": 1483537901316, - "rssi": 100, - "_id": "586d168bdbab07be5f2e154c", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 17.921, - "date": 1483537601014, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12f7", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 11.911, - "date": 1483537601014, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1318", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 11.613, - "date": 1483537601014, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1338", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 6.496, - "date": 1483537601014, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1358", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -9.038, - "date": 1483537601014, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1379", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -10.022, - "date": 1483537601014, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e139b", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -2.869, - "date": 1483537601014, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13bd", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -3.87, - "date": 1483537601014, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13dd", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -6.913, - "date": 1483537601014, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13fe", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 2.933, - "date": 1483537601014, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e141e", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -0.658, - "date": 1483537601014, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e143f", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 1.262, - "date": 1483537601014, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1464", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 1.936, - "date": 1483537601014, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1484", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 1.348, - "date": 1483537601014, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a7", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -0.207, - "date": 1483537601014, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c9", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 0.173, - "date": 1483537601014, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14ea", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -4.631, - "date": 1483537601014, - "rssi": 100, - "_id": "586d1433dbab07be5f2e150c", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -13.679, - "date": 1483537601014, - "rssi": 100, - "_id": "586d155fdbab07be5f2e152d", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -20.713, - "date": 1483537601014, - "rssi": 100, - "_id": "586d168bdbab07be5f2e154d", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 14.55, - "date": 1483537301326, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12d8", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 17.921, - "date": 1483537301326, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12f8", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 11.911, - "date": 1483537301326, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1319", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 11.613, - "date": 1483537301326, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1339", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 6.496, - "date": 1483537301326, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1359", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -9.038, - "date": 1483537301326, - "rssi": 100, - "_id": "586d029fdbab07be5f2e137a", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -10.022, - "date": 1483537301326, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e139c", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -2.869, - "date": 1483537301326, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13bc", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -3.87, - "date": 1483537301326, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13df", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -6.913, - "date": 1483537301326, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13ff", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 2.933, - "date": 1483537301326, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1420", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -0.658, - "date": 1483537301326, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1440", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 1.262, - "date": 1483537301326, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1465", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 1.936, - "date": 1483537301326, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1485", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 1.348, - "date": 1483537301326, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a8", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -0.207, - "date": 1483537301326, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14ca", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 0.173, - "date": 1483537301326, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14eb", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -4.631, - "date": 1483537301326, - "rssi": 100, - "_id": "586d1433dbab07be5f2e150d", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -13.679, - "date": 1483537301326, - "rssi": 100, - "_id": "586d155fdbab07be5f2e152e", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -20.713, - "date": 1483537301326, - "rssi": 100, - "_id": "586d168bdbab07be5f2e154e", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 21.457, - "date": 1483537001325, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12b9", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 14.55, - "date": 1483537001325, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12d9", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 17.921, - "date": 1483537001325, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12f9", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 11.911, - "date": 1483537001325, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e131a", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 11.613, - "date": 1483537001325, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e133a", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 6.496, - "date": 1483537001325, - "rssi": 100, - "_id": "586d0047dbab07be5f2e135a", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -9.038, - "date": 1483537001325, - "rssi": 100, - "_id": "586d029fdbab07be5f2e137b", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -10.022, - "date": 1483537001325, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e139d", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -2.869, - "date": 1483537001325, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13be", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -3.87, - "date": 1483537001325, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e0", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -6.913, - "date": 1483537001325, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1400", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 2.933, - "date": 1483537001325, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e141f", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -0.658, - "date": 1483537001325, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1441", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 1.262, - "date": 1483537001325, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1466", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 1.936, - "date": 1483537001325, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1486", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 1.348, - "date": 1483537001325, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14aa", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -0.207, - "date": 1483537001325, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14cb", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 0.173, - "date": 1483537001325, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14ec", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -4.631, - "date": 1483537001325, - "rssi": 100, - "_id": "586d1433dbab07be5f2e150e", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -13.679, - "date": 1483537001325, - "rssi": 100, - "_id": "586d155fdbab07be5f2e152f", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -20.713, - "date": 1483537001325, - "rssi": 100, - "_id": "586d168bdbab07be5f2e154f", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 16.247, - "date": 1483536701263, - "rssi": 100, - "_id": "586cf940dbab07be5f2e1297", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 21.457, - "date": 1483536701263, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12ba", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 14.55, - "date": 1483536701263, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12da", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 17.921, - "date": 1483536701263, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12fa", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 11.911, - "date": 1483536701263, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e131b", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 11.613, - "date": 1483536701263, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e133b", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 6.496, - "date": 1483536701263, - "rssi": 100, - "_id": "586d0047dbab07be5f2e135b", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -9.038, - "date": 1483536701263, - "rssi": 100, - "_id": "586d029fdbab07be5f2e137c", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -10.022, - "date": 1483536701263, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e139e", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -2.869, - "date": 1483536701263, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13bf", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -3.87, - "date": 1483536701263, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e1", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -6.913, - "date": 1483536701263, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1401", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 2.933, - "date": 1483536701263, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1421", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -0.658, - "date": 1483536701263, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1443", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 1.262, - "date": 1483536701263, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1467", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 1.936, - "date": 1483536701263, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1490", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 1.348, - "date": 1483536701263, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a9", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -0.207, - "date": 1483536701263, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14cc", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 0.173, - "date": 1483536701263, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14ed", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -4.631, - "date": 1483536701263, - "rssi": 100, - "_id": "586d1433dbab07be5f2e150f", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -13.679, - "date": 1483536701263, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1530", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -20.713, - "date": 1483536701263, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1551", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 3.904, - "date": 1483536401340, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1275", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 16.247, - "date": 1483536401340, - "rssi": 100, - "_id": "586cf940dbab07be5f2e1298", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 21.457, - "date": 1483536401340, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12b8", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 14.55, - "date": 1483536401340, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12db", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 17.921, - "date": 1483536401340, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12fb", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 11.911, - "date": 1483536401340, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e131c", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 11.613, - "date": 1483536401340, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e133c", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 6.496, - "date": 1483536401340, - "rssi": 100, - "_id": "586d0047dbab07be5f2e135c", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -9.038, - "date": 1483536401340, - "rssi": 100, - "_id": "586d029fdbab07be5f2e137d", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -10.022, - "date": 1483536401340, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e139f", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -2.869, - "date": 1483536401340, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c0", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -3.87, - "date": 1483536401340, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e3", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -6.913, - "date": 1483536401340, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1402", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 2.933, - "date": 1483536401340, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1422", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -0.658, - "date": 1483536401340, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1442", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 1.262, - "date": 1483536401340, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1468", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 1.936, - "date": 1483536401340, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e148a", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 1.348, - "date": 1483536401340, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14ab", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -0.207, - "date": 1483536401340, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14cd", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 0.173, - "date": 1483536401340, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14ee", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -4.631, - "date": 1483536401340, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1510", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -13.679, - "date": 1483536401340, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1531", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -20.713, - "date": 1483536401340, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1550", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 5.385, - "date": 1483536101258, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1252", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 3.904, - "date": 1483536101258, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1276", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 16.247, - "date": 1483536101258, - "rssi": 100, - "_id": "586cf940dbab07be5f2e1299", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 21.457, - "date": 1483536101258, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12b7", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 14.55, - "date": 1483536101258, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12dc", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 17.921, - "date": 1483536101258, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12fc", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 11.911, - "date": 1483536101258, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e131d", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 11.613, - "date": 1483536101258, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e133d", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 6.496, - "date": 1483536101258, - "rssi": 100, - "_id": "586d0047dbab07be5f2e135d", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -9.038, - "date": 1483536101258, - "rssi": 100, - "_id": "586d029fdbab07be5f2e137e", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -10.022, - "date": 1483536101258, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a6", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -2.869, - "date": 1483536101258, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c1", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -3.87, - "date": 1483536101258, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e2", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -6.913, - "date": 1483536101258, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1403", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 2.933, - "date": 1483536101258, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1423", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -0.658, - "date": 1483536101258, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1444", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 1.262, - "date": 1483536101258, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e146b", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 1.936, - "date": 1483536101258, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1487", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 1.348, - "date": 1483536101258, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14ad", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -0.207, - "date": 1483536101258, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14ce", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 0.173, - "date": 1483536101258, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14ef", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -4.631, - "date": 1483536101258, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1512", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -13.679, - "date": 1483536101258, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1532", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -20.713, - "date": 1483536101258, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1552", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 1.686, - "date": 1483535802855, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1233", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 5.385, - "date": 1483535802855, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1253", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 3.904, - "date": 1483535802855, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1277", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 16.247, - "date": 1483535802855, - "rssi": 100, - "_id": "586cf940dbab07be5f2e129a", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 21.457, - "date": 1483535802855, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12bb", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 14.55, - "date": 1483535802855, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12dd", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 17.921, - "date": 1483535802855, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12fd", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 11.911, - "date": 1483535802855, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e131e", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 11.613, - "date": 1483535802855, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e133e", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 6.496, - "date": 1483535802855, - "rssi": 100, - "_id": "586d0047dbab07be5f2e135e", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -9.038, - "date": 1483535802855, - "rssi": 100, - "_id": "586d029fdbab07be5f2e137f", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -10.022, - "date": 1483535802855, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a3", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -2.869, - "date": 1483535802855, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c2", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -3.87, - "date": 1483535802855, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e4", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -6.913, - "date": 1483535802855, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1404", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 2.933, - "date": 1483535802855, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1424", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -0.658, - "date": 1483535802855, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1445", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 1.262, - "date": 1483535802855, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1469", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 1.936, - "date": 1483535802855, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1488", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 1.348, - "date": 1483535802855, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14ac", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -0.207, - "date": 1483535802855, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14cf", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 0.173, - "date": 1483535802855, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f0", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -4.631, - "date": 1483535802855, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1511", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -13.679, - "date": 1483535802855, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1533", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -20.713, - "date": 1483535802855, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1553", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 1.314, - "date": 1483535501468, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1213", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 1.686, - "date": 1483535501468, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1234", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 5.385, - "date": 1483535501468, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1254", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 3.904, - "date": 1483535501468, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1278", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 16.247, - "date": 1483535501468, - "rssi": 100, - "_id": "586cf940dbab07be5f2e129b", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 21.457, - "date": 1483535501468, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12bc", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 14.55, - "date": 1483535501468, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12de", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 17.921, - "date": 1483535501468, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12fe", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 11.911, - "date": 1483535501468, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e131f", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 11.613, - "date": 1483535501468, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e133f", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 6.496, - "date": 1483535501468, - "rssi": 100, - "_id": "586d0047dbab07be5f2e135f", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -9.038, - "date": 1483535501468, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1380", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -10.022, - "date": 1483535501468, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a0", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -2.869, - "date": 1483535501468, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c4", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -3.87, - "date": 1483535501468, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e5", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -6.913, - "date": 1483535501468, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1405", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 2.933, - "date": 1483535501468, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1426", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -0.658, - "date": 1483535501468, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1446", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 1.262, - "date": 1483535501468, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e146a", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 1.936, - "date": 1483535501468, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1489", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 1.348, - "date": 1483535501468, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14af", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -0.207, - "date": 1483535501468, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d0", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 0.173, - "date": 1483535501468, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f1", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -4.631, - "date": 1483535501468, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1513", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -13.679, - "date": 1483535501468, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1534", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -20.713, - "date": 1483535501468, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1554", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 2.554, - "date": 1483535201718, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f1", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.314, - "date": 1483535201718, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1214", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.686, - "date": 1483535201718, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1235", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 5.385, - "date": 1483535201718, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1255", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 3.904, - "date": 1483535201718, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1279", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 16.247, - "date": 1483535201718, - "rssi": 100, - "_id": "586cf940dbab07be5f2e129c", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 21.457, - "date": 1483535201718, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12bd", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 14.55, - "date": 1483535201718, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12df", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 17.921, - "date": 1483535201718, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12ff", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 11.911, - "date": 1483535201718, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1320", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 11.613, - "date": 1483535201718, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1340", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 6.496, - "date": 1483535201718, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1360", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -9.038, - "date": 1483535201718, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1381", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -10.022, - "date": 1483535201718, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a1", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -2.869, - "date": 1483535201718, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c3", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -3.87, - "date": 1483535201718, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e6", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -6.913, - "date": 1483535201718, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1406", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 2.933, - "date": 1483535201718, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1425", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -0.658, - "date": 1483535201718, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1447", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.262, - "date": 1483535201718, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e146c", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.936, - "date": 1483535201718, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e148b", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.348, - "date": 1483535201718, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14ae", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -0.207, - "date": 1483535201718, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d1", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 0.173, - "date": 1483535201718, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f2", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -4.631, - "date": 1483535201718, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1514", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -13.679, - "date": 1483535201718, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1535", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -20.713, - "date": 1483535201718, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1555", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 1.87, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d2", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 2.554, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f2", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 1.314, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1215", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 1.686, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1236", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 5.385, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1256", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 3.904, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf814dbab07be5f2e127a", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 16.247, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf940dbab07be5f2e129d", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 21.457, - "date": 1483534901296, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12be", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 14.55, - "date": 1483534901296, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e0", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 17.921, - "date": 1483534901296, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1300", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 11.911, - "date": 1483534901296, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1321", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 11.613, - "date": 1483534901296, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1341", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 6.496, - "date": 1483534901296, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1361", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -9.038, - "date": 1483534901296, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1382", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -10.022, - "date": 1483534901296, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a2", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -2.869, - "date": 1483534901296, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c5", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -3.87, - "date": 1483534901296, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e8", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -6.913, - "date": 1483534901296, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1407", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 2.933, - "date": 1483534901296, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1427", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -0.658, - "date": 1483534901296, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1448", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 1.262, - "date": 1483534901296, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e146d", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 1.936, - "date": 1483534901296, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e148c", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 1.348, - "date": 1483534901296, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b0", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -0.207, - "date": 1483534901296, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d2", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 0.173, - "date": 1483534901296, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f3", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -4.631, - "date": 1483534901296, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1515", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -13.679, - "date": 1483534901296, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1536", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -20.713, - "date": 1483534901296, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1556", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 0.069, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b0", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 1.87, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d3", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 2.554, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f3", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 1.314, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1216", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 1.686, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1237", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 5.385, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1257", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 3.904, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf814dbab07be5f2e127b", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 16.247, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf940dbab07be5f2e129e", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 21.457, - "date": 1483534601873, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12bf", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 14.55, - "date": 1483534601873, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e1", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 17.921, - "date": 1483534601873, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1301", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 11.911, - "date": 1483534601873, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1322", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 11.613, - "date": 1483534601873, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1343", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 6.496, - "date": 1483534601873, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1362", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -9.038, - "date": 1483534601873, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1383", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -10.022, - "date": 1483534601873, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -2.869, - "date": 1483534601873, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c6", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -3.87, - "date": 1483534601873, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e7", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -6.913, - "date": 1483534601873, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1408", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 2.933, - "date": 1483534601873, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1428", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -0.658, - "date": 1483534601873, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1449", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 1.262, - "date": 1483534601873, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e146e", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 1.936, - "date": 1483534601873, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e148d", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 1.348, - "date": 1483534601873, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b1", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -0.207, - "date": 1483534601873, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d3", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 0.173, - "date": 1483534601873, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -4.631, - "date": 1483534601873, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1517", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -13.679, - "date": 1483534601873, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1537", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -20.713, - "date": 1483534601873, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1558", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 0.207, - "date": 1483534301597, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1192", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 0.069, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b1", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 1.87, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 2.554, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 1.314, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1217", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 1.686, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1238", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 5.385, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1258", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 3.904, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf814dbab07be5f2e127c", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 16.247, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf940dbab07be5f2e129f", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 21.457, - "date": 1483534301597, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c0", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 14.55, - "date": 1483534301597, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 17.921, - "date": 1483534301597, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1302", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 11.911, - "date": 1483534301597, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1323", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 11.613, - "date": 1483534301597, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1342", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 6.496, - "date": 1483534301597, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1363", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -9.038, - "date": 1483534301597, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1384", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -10.022, - "date": 1483534301597, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -2.869, - "date": 1483534301597, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c7", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -3.87, - "date": 1483534301597, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e9", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -6.913, - "date": 1483534301597, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1409", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 2.933, - "date": 1483534301597, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1429", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -0.658, - "date": 1483534301597, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e144b", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 1.262, - "date": 1483534301597, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1470", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 1.936, - "date": 1483534301597, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e148f", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 1.348, - "date": 1483534301597, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -0.207, - "date": 1483534301597, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 0.173, - "date": 1483534301597, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -4.631, - "date": 1483534301597, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1516", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -13.679, - "date": 1483534301597, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1538", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -20.713, - "date": 1483534301597, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1557", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 2.177, - "date": 1483534001427, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1173", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 0.207, - "date": 1483534001427, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1193", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 0.069, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 1.87, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 2.554, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 1.314, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1218", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 1.686, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1239", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 5.385, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1259", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 3.904, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf814dbab07be5f2e127d", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 16.247, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a0", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 21.457, - "date": 1483534001427, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c1", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 14.55, - "date": 1483534001427, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 17.921, - "date": 1483534001427, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1303", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 11.911, - "date": 1483534001427, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1324", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 11.613, - "date": 1483534001427, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1344", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 6.496, - "date": 1483534001427, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1364", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -9.038, - "date": 1483534001427, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1385", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -10.022, - "date": 1483534001427, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a7", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -2.869, - "date": 1483534001427, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c8", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -3.87, - "date": 1483534001427, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13ea", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -6.913, - "date": 1483534001427, - "rssi": 100, - "_id": "586d087bdbab07be5f2e140a", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 2.933, - "date": 1483534001427, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e142a", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -0.658, - "date": 1483534001427, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e144a", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 1.262, - "date": 1483534001427, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e146f", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 1.936, - "date": 1483534001427, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e148e", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 1.348, - "date": 1483534001427, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b3", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -0.207, - "date": 1483534001427, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 0.173, - "date": 1483534001427, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f6", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -4.631, - "date": 1483534001427, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1519", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -13.679, - "date": 1483534001427, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1539", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 2.523, - "date": 1483533701407, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1153", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 2.177, - "date": 1483533701407, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1174", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 0.207, - "date": 1483533701407, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1194", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 0.069, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b3", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 1.87, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d6", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 2.554, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f6", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 1.314, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf490dbab07be5f2e121c", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 1.686, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e123a", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 5.385, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e125a", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 3.904, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf814dbab07be5f2e127e", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 16.247, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a1", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 21.457, - "date": 1483533701407, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c2", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 14.55, - "date": 1483533701407, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e3", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 17.921, - "date": 1483533701407, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1304", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 11.911, - "date": 1483533701407, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1325", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 11.613, - "date": 1483533701407, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1345", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 6.496, - "date": 1483533701407, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1367", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -9.038, - "date": 1483533701407, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1386", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -10.022, - "date": 1483533701407, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a8", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -2.869, - "date": 1483533701407, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13ca", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -3.87, - "date": 1483533701407, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13eb", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -6.913, - "date": 1483533701407, - "rssi": 100, - "_id": "586d087bdbab07be5f2e140b", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 2.933, - "date": 1483533701407, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e142b", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -0.658, - "date": 1483533701407, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e144c", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 1.262, - "date": 1483533701407, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1471", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 1.936, - "date": 1483533701407, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1491", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 1.348, - "date": 1483533701407, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b6", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -0.207, - "date": 1483533701407, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d6", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 0.173, - "date": 1483533701407, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f7", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -4.631, - "date": 1483533701407, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1518", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -3.597, - "date": 1483533401451, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1133", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.523, - "date": 1483533401451, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1154", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.177, - "date": 1483533401451, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1175", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 0.207, - "date": 1483533401451, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1195", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 0.069, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b4", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.87, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d7", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.554, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f7", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.314, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1219", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.686, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e123b", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 5.385, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e125b", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 3.904, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf814dbab07be5f2e127f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 16.247, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a2", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 21.457, - "date": 1483533401451, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c3", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 14.55, - "date": 1483533401451, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e5", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 17.921, - "date": 1483533401451, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1305", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 11.911, - "date": 1483533401451, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1326", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 11.613, - "date": 1483533401451, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1346", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 6.496, - "date": 1483533401451, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1365", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -9.038, - "date": 1483533401451, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1387", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -10.022, - "date": 1483533401451, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13ac", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -2.869, - "date": 1483533401451, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c9", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -3.87, - "date": 1483533401451, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13ec", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -6.913, - "date": 1483533401451, - "rssi": 100, - "_id": "586d087bdbab07be5f2e140c", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.933, - "date": 1483533401451, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e142c", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -0.658, - "date": 1483533401451, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e144d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.262, - "date": 1483533401451, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1472", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.936, - "date": 1483533401451, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1492", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.348, - "date": 1483533401451, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b7", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -0.207, - "date": 1483533401451, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d7", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 0.173, - "date": 1483533401451, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f8", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.658, - "date": 1483533101684, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1114", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -3.597, - "date": 1483533101684, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1134", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 2.523, - "date": 1483533101684, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1155", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 2.177, - "date": 1483533101684, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1176", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 0.207, - "date": 1483533101684, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1196", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 0.069, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b5", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.87, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d8", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 2.554, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f8", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.314, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf490dbab07be5f2e121b", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.686, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e123c", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 5.385, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e125e", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 3.904, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1280", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 16.247, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a3", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 21.457, - "date": 1483533101684, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c4", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 14.55, - "date": 1483533101684, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e6", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 17.921, - "date": 1483533101684, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1306", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 11.911, - "date": 1483533101684, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1328", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 11.613, - "date": 1483533101684, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1347", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 6.496, - "date": 1483533101684, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1368", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -9.038, - "date": 1483533101684, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1388", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -10.022, - "date": 1483533101684, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a9", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -2.869, - "date": 1483533101684, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13cc", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -3.87, - "date": 1483533101684, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13ed", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -6.913, - "date": 1483533101684, - "rssi": 100, - "_id": "586d087bdbab07be5f2e140d", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 2.933, - "date": 1483533101684, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e142d", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -0.658, - "date": 1483533101684, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e144e", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.262, - "date": 1483533101684, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1473", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.936, - "date": 1483533101684, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1493", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.348, - "date": 1483533101684, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b4", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -0.207, - "date": 1483533101684, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d8", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.935, - "date": 1483532801480, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f3", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.658, - "date": 1483532801480, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1115", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -3.597, - "date": 1483532801480, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1135", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 2.523, - "date": 1483532801480, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1156", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 2.177, - "date": 1483532801480, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1177", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 0.207, - "date": 1483532801480, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1197", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 0.069, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b6", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.87, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d9", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 2.554, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f9", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.314, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf490dbab07be5f2e121a", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.686, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e123d", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 5.385, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e125c", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 3.904, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1282", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 16.247, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a4", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 21.457, - "date": 1483532801480, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c5", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 14.55, - "date": 1483532801480, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e7", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 17.921, - "date": 1483532801480, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1307", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 11.911, - "date": 1483532801480, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1327", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 11.613, - "date": 1483532801480, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1348", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 6.496, - "date": 1483532801480, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1366", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -9.038, - "date": 1483532801480, - "rssi": 100, - "_id": "586d029fdbab07be5f2e138a", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -10.022, - "date": 1483532801480, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13ad", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -2.869, - "date": 1483532801480, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13cb", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -3.87, - "date": 1483532801480, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13ee", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -6.913, - "date": 1483532801480, - "rssi": 100, - "_id": "586d087bdbab07be5f2e140e", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 2.933, - "date": 1483532801480, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e142e", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -0.658, - "date": 1483532801480, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e144f", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.262, - "date": 1483532801480, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1474", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.936, - "date": 1483532801480, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1494", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.348, - "date": 1483532801480, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b5", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -3.417, - "date": 1483532501420, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10d4", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.935, - "date": 1483532501420, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f4", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.658, - "date": 1483532501420, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1116", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -3.597, - "date": 1483532501420, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1136", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.523, - "date": 1483532501420, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1157", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.177, - "date": 1483532501420, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1178", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 0.207, - "date": 1483532501420, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1198", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 0.069, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b7", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.87, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11da", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.554, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11fa", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.314, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf490dbab07be5f2e121d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.686, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1241", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 5.385, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e125d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 3.904, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1281", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 16.247, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a5", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 21.457, - "date": 1483532501420, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c6", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 14.55, - "date": 1483532501420, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e8", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 17.921, - "date": 1483532501420, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1308", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 11.911, - "date": 1483532501420, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1329", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 11.613, - "date": 1483532501420, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1349", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 6.496, - "date": 1483532501420, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1369", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -9.038, - "date": 1483532501420, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1389", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -10.022, - "date": 1483532501420, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13aa", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -2.869, - "date": 1483532501420, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13cd", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -3.87, - "date": 1483532501420, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13ef", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -6.913, - "date": 1483532501420, - "rssi": 100, - "_id": "586d087bdbab07be5f2e140f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.933, - "date": 1483532501420, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e142f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -0.658, - "date": 1483532501420, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1450", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.262, - "date": 1483532501420, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1475", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.936, - "date": 1483532501420, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1495", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -1.417, - "date": 1483532201043, - "rssi": 100, - "_id": "586ce7acdbab07be5f2e10cb", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -3.417, - "date": 1483532201043, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10d7", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 1.935, - "date": 1483532201043, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f7", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 1.658, - "date": 1483532201043, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1118", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -3.597, - "date": 1483532201043, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1137", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 2.523, - "date": 1483532201043, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1158", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 2.177, - "date": 1483532201043, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e117b", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 0.207, - "date": 1483532201043, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1199", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 0.069, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b8", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 1.87, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11db", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 2.554, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11fb", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 1.314, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf490dbab07be5f2e121e", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 1.686, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e123e", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 5.385, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e125f", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 3.904, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1283", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 16.247, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a6", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 21.457, - "date": 1483532201043, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c7", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 14.55, - "date": 1483532201043, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e9", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 17.921, - "date": 1483532201043, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1309", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 11.911, - "date": 1483532201043, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e132b", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 11.613, - "date": 1483532201043, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e134a", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 6.496, - "date": 1483532201043, - "rssi": 100, - "_id": "586d0047dbab07be5f2e136a", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -9.038, - "date": 1483532201043, - "rssi": 100, - "_id": "586d029fdbab07be5f2e138b", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -10.022, - "date": 1483532201043, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13ab", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -2.869, - "date": 1483532201043, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13ce", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -3.87, - "date": 1483532201043, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13f2", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -6.913, - "date": 1483532201043, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1410", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 2.933, - "date": 1483532201043, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1430", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -0.658, - "date": 1483532201043, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1451", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 1.262, - "date": 1483532201043, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1476", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 6.609, - "date": 1483531901044, - "rssi": 100, - "_id": "586ce67fdbab07be5f2e10ac", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -1.417, - "date": 1483531901044, - "rssi": 100, - "_id": "586ce7acdbab07be5f2e10cc", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -3.417, - "date": 1483531901044, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10d5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 1.935, - "date": 1483531901044, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 1.658, - "date": 1483531901044, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1117", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -3.597, - "date": 1483531901044, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1138", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 2.523, - "date": 1483531901044, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1159", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 2.177, - "date": 1483531901044, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1179", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 0.207, - "date": 1483531901044, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e119a", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 0.069, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b9", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 1.87, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11dc", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 2.554, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11fc", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 1.314, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1221", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 1.686, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e123f", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 5.385, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1260", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 3.904, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1284", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 16.247, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a7", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 21.457, - "date": 1483531901044, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c8", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 14.55, - "date": 1483531901044, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12ea", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 17.921, - "date": 1483531901044, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e130a", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 11.911, - "date": 1483531901044, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e132a", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 11.613, - "date": 1483531901044, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e134b", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 6.496, - "date": 1483531901044, - "rssi": 100, - "_id": "586d0047dbab07be5f2e136b", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -9.038, - "date": 1483531901044, - "rssi": 100, - "_id": "586d029fdbab07be5f2e138c", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -10.022, - "date": 1483531901044, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13ae", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -2.869, - "date": 1483531901044, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13cf", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -3.87, - "date": 1483531901044, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13f0", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -6.913, - "date": 1483531901044, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1411", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 2.933, - "date": 1483531901044, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1431", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -0.658, - "date": 1483531901044, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1452", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 1.069, - "date": 1483531601420, - "rssi": 100, - "_id": "586ce553dbab07be5f2e108d", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 6.609, - "date": 1483531601420, - "rssi": 100, - "_id": "586ce67fdbab07be5f2e10ad", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -1.417, - "date": 1483531601420, - "rssi": 100, - "_id": "586ce7acdbab07be5f2e10cd", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -3.417, - "date": 1483531601420, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10d6", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 1.935, - "date": 1483531601420, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f6", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 1.658, - "date": 1483531601420, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1119", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -3.597, - "date": 1483531601420, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1139", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 2.523, - "date": 1483531601420, - "rssi": 100, - "_id": "586ced88dbab07be5f2e115a", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 2.177, - "date": 1483531601420, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e117a", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 0.207, - "date": 1483531601420, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e119b", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 0.069, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11ba", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 1.87, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11dd", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 2.554, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11fd", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 1.314, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf490dbab07be5f2e121f", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 1.686, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1240", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 5.385, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1261", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 3.904, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1285", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 16.247, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a8", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 21.457, - "date": 1483531601420, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c9", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 14.55, - "date": 1483531601420, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12eb", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 17.921, - "date": 1483531601420, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e130b", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 11.911, - "date": 1483531601420, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e132c", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 11.613, - "date": 1483531601420, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e134c", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 6.496, - "date": 1483531601420, - "rssi": 100, - "_id": "586d0047dbab07be5f2e136c", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -9.038, - "date": 1483531601420, - "rssi": 100, - "_id": "586d029fdbab07be5f2e138d", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -10.022, - "date": 1483531601420, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13af", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -2.869, - "date": 1483531601420, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13d0", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -3.87, - "date": 1483531601420, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13f1", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -6.913, - "date": 1483531601420, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1412", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 2.933, - "date": 1483531601420, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1432", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -3.331, - "date": 1483531300848, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e106d", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 1.069, - "date": 1483531300848, - "rssi": 100, - "_id": "586ce553dbab07be5f2e108e", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 6.609, - "date": 1483531300848, - "rssi": 100, - "_id": "586ce67fdbab07be5f2e10ae", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -1.417, - "date": 1483531300848, - "rssi": 100, - "_id": "586ce7acdbab07be5f2e10ce", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -3.417, - "date": 1483531300848, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10d8", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 1.935, - "date": 1483531300848, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f8", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 1.658, - "date": 1483531300848, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e111a", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -3.597, - "date": 1483531300848, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e113a", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 2.523, - "date": 1483531300848, - "rssi": 100, - "_id": "586ced88dbab07be5f2e115b", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 2.177, - "date": 1483531300848, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e117c", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 0.207, - "date": 1483531300848, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e119c", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 0.069, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11bb", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 1.87, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11de", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 2.554, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11fe", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 1.314, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1220", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 1.686, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1242", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 5.385, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1262", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 3.904, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1286", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 16.247, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a9", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 21.457, - "date": 1483531300848, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12ca", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 14.55, - "date": 1483531300848, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12ec", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 17.921, - "date": 1483531300848, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e130c", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 11.911, - "date": 1483531300848, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e132d", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 11.613, - "date": 1483531300848, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e134e", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 6.496, - "date": 1483531300848, - "rssi": 100, - "_id": "586d0047dbab07be5f2e136d", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -9.038, - "date": 1483531300848, - "rssi": 100, - "_id": "586d029fdbab07be5f2e138f", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -10.022, - "date": 1483531300848, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13b0", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -2.869, - "date": 1483531300848, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13d1", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -3.87, - "date": 1483531300848, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13f3", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -6.913, - "date": 1483531300848, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1413", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.516, - "date": 1483531002068, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e104d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -3.331, - "date": 1483531002068, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e106e", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.069, - "date": 1483531002068, - "rssi": 100, - "_id": "586ce553dbab07be5f2e108f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 6.609, - "date": 1483531002068, - "rssi": 100, - "_id": "586ce67fdbab07be5f2e10af", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -1.417, - "date": 1483531002068, - "rssi": 100, - "_id": "586ce7acdbab07be5f2e10cf", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -3.417, - "date": 1483531002068, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10d9", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.935, - "date": 1483531002068, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f9", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.658, - "date": 1483531002068, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e111b", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -3.597, - "date": 1483531002068, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e113b", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 2.523, - "date": 1483531002068, - "rssi": 100, - "_id": "586ced88dbab07be5f2e115c", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 2.177, - "date": 1483531002068, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e117d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 0.207, - "date": 1483531002068, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e119d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 0.069, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11bc", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.87, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11df", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 2.554, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11ff", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.314, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1222", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.686, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1243", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 5.385, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1263", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 3.904, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1287", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 16.247, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12aa", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 21.457, - "date": 1483531002068, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12cb", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 14.55, - "date": 1483531002068, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12ed", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 17.921, - "date": 1483531002068, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e130d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 11.911, - "date": 1483531002068, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e132e", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 11.613, - "date": 1483531002068, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e134d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 6.496, - "date": 1483531002068, - "rssi": 100, - "_id": "586d0047dbab07be5f2e136e", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -9.038, - "date": 1483531002068, - "rssi": 100, - "_id": "586d029fdbab07be5f2e138e", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -10.022, - "date": 1483531002068, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13b1", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -2.869, - "date": 1483531002068, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13d2", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -3.87, - "date": 1483531002068, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13f4", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -1.417, - "date": 1483530701141, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e102e", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.516, - "date": 1483530701141, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e104e", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -3.331, - "date": 1483530701141, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e106f", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.069, - "date": 1483530701141, - "rssi": 100, - "_id": "586ce553dbab07be5f2e1090", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 6.609, - "date": 1483530701141, - "rssi": 100, - "_id": "586ce67fdbab07be5f2e10b0", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -3.417, - "date": 1483530701141, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10da", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.935, - "date": 1483530701141, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10fa", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.658, - "date": 1483530701141, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e111d", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -3.597, - "date": 1483530701141, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e113c", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 2.523, - "date": 1483530701141, - "rssi": 100, - "_id": "586ced88dbab07be5f2e115d", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 2.177, - "date": 1483530701141, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e117e", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 0.207, - "date": 1483530701141, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e119e", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 0.069, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11be", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.87, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e0", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 2.554, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1200", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.314, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1223", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.686, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1245", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 5.385, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1264", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 3.904, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1288", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 16.247, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12ab", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 21.457, - "date": 1483530701141, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12cc", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 14.55, - "date": 1483530701141, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12ee", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 17.921, - "date": 1483530701141, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e130e", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 11.911, - "date": 1483530701141, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e132f", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 11.613, - "date": 1483530701141, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1350", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 6.496, - "date": 1483530701141, - "rssi": 100, - "_id": "586d0047dbab07be5f2e136f", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -9.038, - "date": 1483530701141, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1390", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -10.022, - "date": 1483530701141, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13b3", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -2.869, - "date": 1483530701141, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13d3", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -2.218, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce0a4dbab07be5f2e100e", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -1.417, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e102f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.516, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e104f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -3.331, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e1070", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.069, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce553dbab07be5f2e1091", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 6.609, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce680dbab07be5f2e10b1", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -3.417, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10db", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.935, - "date": 1483530401170, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10fb", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.658, - "date": 1483530401170, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e111c", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -3.597, - "date": 1483530401170, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e113d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 2.523, - "date": 1483530401170, - "rssi": 100, - "_id": "586ced88dbab07be5f2e115e", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 2.177, - "date": 1483530401170, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e117f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 0.207, - "date": 1483530401170, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e119f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 0.069, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11bd", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.87, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e1", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 2.554, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1201", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.314, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1224", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.686, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1244", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 5.385, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1265", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 3.904, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1289", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 16.247, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12ac", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 21.457, - "date": 1483530401170, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12cd", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 14.55, - "date": 1483530401170, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12ef", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 17.921, - "date": 1483530401170, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e130f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 11.911, - "date": 1483530401170, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1330", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 11.613, - "date": 1483530401170, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e134f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 6.496, - "date": 1483530401170, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1370", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -9.038, - "date": 1483530401170, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1391", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -10.022, - "date": 1483530401170, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13b2", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -0.207, - "date": 1483530102052, - "rssi": 100, - "_id": "586cdf78dbab07be5f2e0fef", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -2.218, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce0a4dbab07be5f2e100f", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -1.417, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e1030", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.516, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e1051", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -3.331, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e1071", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.069, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce553dbab07be5f2e1092", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 6.609, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce680dbab07be5f2e10b2", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -3.417, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10dc", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.935, - "date": 1483530102052, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10fc", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.658, - "date": 1483530102052, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e111f", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -3.597, - "date": 1483530102052, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e113e", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 2.523, - "date": 1483530102052, - "rssi": 100, - "_id": "586ced88dbab07be5f2e115f", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 2.177, - "date": 1483530102052, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1180", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 0.207, - "date": 1483530102052, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e11a0", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 0.069, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11bf", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.87, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e2", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 2.554, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1202", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.314, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1225", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.686, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1246", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 5.385, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1266", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 3.904, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf814dbab07be5f2e128a", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 16.247, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12ad", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 21.457, - "date": 1483530102052, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12ce", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 14.55, - "date": 1483530102052, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12f0", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 17.921, - "date": 1483530102052, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1310", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 11.911, - "date": 1483530102052, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1331", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 11.613, - "date": 1483530102052, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1351", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 6.496, - "date": 1483530102052, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1371", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -9.038, - "date": 1483530102052, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1392", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -2.237, - "date": 1483529802048, - "rssi": 100, - "_id": "586cde4cdbab07be5f2e0fd1", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -0.207, - "date": 1483529802048, - "rssi": 100, - "_id": "586cdf78dbab07be5f2e0ff0", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -2.218, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce0a4dbab07be5f2e1010", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -1.417, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e1031", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.516, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e1050", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -3.331, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e1072", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.069, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce553dbab07be5f2e1093", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 6.609, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce680dbab07be5f2e10b3", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -3.417, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10dd", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.935, - "date": 1483529802048, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10fd", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.658, - "date": 1483529802048, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e111e", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -3.597, - "date": 1483529802048, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e113f", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 2.523, - "date": 1483529802048, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1160", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 2.177, - "date": 1483529802048, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1182", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 0.207, - "date": 1483529802048, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e11a1", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 0.069, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11c0", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.87, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e3", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 2.554, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1203", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.314, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1226", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.686, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1247", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 5.385, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1267", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 3.904, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf814dbab07be5f2e128b", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 16.247, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12ae", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 21.457, - "date": 1483529802048, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12cf", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 14.55, - "date": 1483529802048, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12f1", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 17.921, - "date": 1483529802048, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1311", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 11.911, - "date": 1483529802048, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1332", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 11.613, - "date": 1483529802048, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1353", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 6.496, - "date": 1483529802048, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1372", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -4.355, - "date": 1483529500848, - "rssi": 100, - "_id": "586cdd20dbab07be5f2e0fb2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -2.237, - "date": 1483529500848, - "rssi": 100, - "_id": "586cde4cdbab07be5f2e0fd2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -0.207, - "date": 1483529500848, - "rssi": 100, - "_id": "586cdf78dbab07be5f2e0ff1", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -2.218, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce0a4dbab07be5f2e1011", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -1.417, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e1032", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.516, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e1052", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -3.331, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e1073", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.069, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce553dbab07be5f2e1094", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 6.609, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce680dbab07be5f2e10b4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -3.417, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10df", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.935, - "date": 1483529500848, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10fe", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.658, - "date": 1483529500848, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1120", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -3.597, - "date": 1483529500848, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1140", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 2.523, - "date": 1483529500848, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1161", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 2.177, - "date": 1483529500848, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1181", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 0.207, - "date": 1483529500848, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e11a2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 0.069, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11c1", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.87, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 2.554, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1204", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.314, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1229", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.686, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1248", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 5.385, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1268", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 3.904, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf814dbab07be5f2e128c", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 16.247, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12af", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 21.457, - "date": 1483529500848, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12d0", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 14.55, - "date": 1483529500848, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12f2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 17.921, - "date": 1483529500848, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1312", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 11.911, - "date": 1483529500848, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1333", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 11.613, - "date": 1483529500848, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1352", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.002, - "date": 1483529200876, - "rssi": 100, - "_id": "586cdbf3dbab07be5f2e0f93", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -4.355, - "date": 1483529200876, - "rssi": 100, - "_id": "586cdd20dbab07be5f2e0fb3", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -2.237, - "date": 1483529200876, - "rssi": 100, - "_id": "586cde4cdbab07be5f2e0fd3", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -0.207, - "date": 1483529200876, - "rssi": 100, - "_id": "586cdf78dbab07be5f2e0ff2", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -2.218, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce0a4dbab07be5f2e1012", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -1.417, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e1033", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.516, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e1053", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -3.331, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e1074", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.069, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce553dbab07be5f2e1095", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 6.609, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce680dbab07be5f2e10b5", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -3.417, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10de", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.935, - "date": 1483529200876, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10ff", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.658, - "date": 1483529200876, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1121", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -3.597, - "date": 1483529200876, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1141", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 2.523, - "date": 1483529200876, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1162", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 2.177, - "date": 1483529200876, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1183", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 0.207, - "date": 1483529200876, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e11a3", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 0.069, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11c2", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.87, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e5", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 2.554, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1205", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.314, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1228", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.686, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1249", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 5.385, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1269", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 3.904, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf814dbab07be5f2e128d", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 16.247, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12b0", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 21.457, - "date": 1483529200876, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12d1", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 14.55, - "date": 1483529200876, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12f3", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 17.921, - "date": 1483529200876, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1313", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 11.911, - "date": 1483529200876, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1334", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 4.079, - "date": 1483528900865, - "rssi": 100, - "_id": "586cdac7dbab07be5f2e0f6e", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.002, - "date": 1483528900865, - "rssi": 100, - "_id": "586cdbf3dbab07be5f2e0f94", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -4.355, - "date": 1483528900865, - "rssi": 100, - "_id": "586cdd20dbab07be5f2e0fb4", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -2.237, - "date": 1483528900865, - "rssi": 100, - "_id": "586cde4cdbab07be5f2e0fd4", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -0.207, - "date": 1483528900865, - "rssi": 100, - "_id": "586cdf78dbab07be5f2e0ff3", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -2.218, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce0a4dbab07be5f2e1013", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -1.417, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e1034", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.516, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e1054", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -3.331, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e1075", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.069, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce553dbab07be5f2e10a1", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 6.609, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce680dbab07be5f2e10b6", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -3.417, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10e0", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.935, - "date": 1483528900865, - "rssi": 100, - "_id": "586cea04dbab07be5f2e1100", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.658, - "date": 1483528900865, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1122", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -3.597, - "date": 1483528900865, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1142", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 2.523, - "date": 1483528900865, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1163", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 2.177, - "date": 1483528900865, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1184", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 0.207, - "date": 1483528900865, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e11a4", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 0.069, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11c3", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.87, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e7", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 2.554, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1206", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.314, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1227", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.686, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e124a", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 5.385, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e126a", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 3.904, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf814dbab07be5f2e128e", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 16.247, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12b1", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 21.457, - "date": 1483528900865, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12d2", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 14.55, - "date": 1483528900865, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12f4", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 17.921, - "date": 1483528900865, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1314", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 161184, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:16:40.916000+01:00", - "sgv": 118, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163488, - "delta": 1.071, - "date": 1483528600916, - "rssi": 100, - "_id": "586cd99cdbab07be5f2e0f4f", - "type": "sgv", - "glucose": 118 - }, - { - "filtered": 161184, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:16:40.916000+01:00", - "sgv": 118, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163488, - "delta": 4.079, - "date": 1483528600916, - "rssi": 100, - "_id": "586cdac7dbab07be5f2e0f6f", - "type": "sgv", - "glucose": 118 - } -] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/enact/enacted.json b/app/src/main/java/info/nightscout/sampleData/enact/enacted.json deleted file mode 100644 index c1460545c8..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/enact/enacted.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "bg": 148, - "temp": "absolute", - "snoozeBG": 17, - "recieved": true, - "predBGs": { - "IOB": [ - 148, - 128, - 109, - 91, - 75, - 59, - 45, - 39, - 39, - 39, - 39, - 39, - 39 - ] - }, - "rate": 0.0, - "reason": "COB: 0, Dev: -64, BGI: -8.24, ISF: 21, Target: 81; Eventual BG -34 < 81, setting -11.1U/hr", - "COB": 0, - "eventualBG": -34, - "timestamp": "2017-01-04T16:37:56.113148", - "duration": 30, - "tick": -21, - "IOB": 5.521 -} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/enact/suggested.json b/app/src/main/java/info/nightscout/sampleData/enact/suggested.json deleted file mode 100644 index e5a25dbb3f..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/enact/suggested.json +++ /dev/null @@ -1 +0,0 @@ -{"temp":"absolute","bg":148,"tick":-21,"eventualBG":-28,"snoozeBG":16,"predBGs":{"IOB":[148,128,109,92,75,60,46,39,39,39,39,39,39]},"COB":0,"IOB":5.248,"reason":"COB: 0, Dev: -64, BGI: -8.2, ISF: 21, Target: 81; Eventual BG -28 < 81, setting -11.3U/hr, but 28m left and 0 ~ req 0U/hr: no action required"} diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/battery.json b/app/src/main/java/info/nightscout/sampleData/monitor/battery.json deleted file mode 100644 index 4f4bc03804..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/monitor/battery.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "status": "normal", - "voltage": 1.45 -} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/carbhistory.json b/app/src/main/java/info/nightscout/sampleData/monitor/carbhistory.json deleted file mode 100644 index 1169f8d030..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/monitor/carbhistory.json +++ /dev/null @@ -1 +0,0 @@ -[{"_id":"586caa0edbab07be5f2e0a9d","carbs":60,"ratio":"7","bg":"98","glucose":98,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":98,"_byte[5]":2,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-04T08:53:23 head[2], body[13] op[0x5b]","timestamp":"2017-01-04T08:53:23+01:00","_body":"3c50071e5a025500000000575a","bg_target_high":90,"sensitivity":30,"carb_ratio":7,"food_estimate":8.5,"unabsorbed_insulin_total":0,"correction_estimate":0.2,"carb_input":60,"_head":"5b62","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":8.7,"_date":"1775080411","bg_target_low":90},"timestamp":"2017-01-04T08:53:23+01:00","created_at":"2017-01-04T08:53:23+01:00","eventType":"Carb Correction","notes":"Food estimate 8.5\nCorrection estimate 0.2\nBolus estimate 8.7\nTarget low 90\nTarget high 90\nHypothetical glucose delta 0\nGlucose was: 98","medtronic":"mm://openaps/mm-format-ns-treatments/Carb Correction","enteredBy":"openaps://medtronic/522","insulin":null},{"_id":"586c03acdbab07be5f2df99e","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-03T20:57:24 head[4], body[0] op[0x01]","timestamp":"2017-01-03T20:57:24+01:00","_body":"","appended":[{"_type":"UnabsorbedInsulinBolus","_description":"UnabsorbedInsulinBolus unknown head[23], body[0] op[0x5c]","_body":"","_head":"5c177894c0b4f8c07a20d0262ad0503ed07c98d0eca2d0","data":[{"amount":3,"age":148},{"amount":4.5,"age":248},{"amount":3.05,"age":288},{"amount":0.95,"age":298},{"amount":2,"age":318},{"amount":3.1,"age":408},{"amount":5.9,"age":418}],"_date":""}],"programmed":7,"duration":0,"amount":7,"_head":"01464600","type":"normal","_date":"1879540311"},"timestamp":"2017-01-03T20:57:24+01:00","created_at":"2017-01-03T20:57:24+01:00","carbs":55,"ratio":"9","bg":"90","glucose":90,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":90,"_byte[5]":0,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-03T20:57:24 head[2], body[13] op[0x5b]","timestamp":"2017-01-03T20:57:24+01:00","_body":"3750091e5a003d000004003d5a","bg_target_high":90,"sensitivity":30,"carb_ratio":9,"food_estimate":6.1,"unabsorbed_insulin_total":0.4,"correction_estimate":0,"carb_input":55,"_head":"5b5a","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":6.1,"_date":"1879140311","bg_target_low":90},"eventType":"Meal Bolus","insulin":7,"notes":"Normal bolus with wizard.\nProgrammed bolus 7\nDelivered bolus 7\nPercent delivered: 100%\nFood estimate 6.1\nCorrection estimate 0\nBolus estimate 6.1\nTarget low 90\nTarget high 90\nHypothetical glucose delta -210\nGlucose was: 90","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"},{"_id":"586bc94adbab07be5f2df3c1","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-03T16:50:06 head[4], body[0] op[0x01]","timestamp":"2017-01-03T16:50:06+01:00","_body":"","appended":[{"_type":"UnabsorbedInsulinBolus","_description":"UnabsorbedInsulinBolus unknown head[17], body[0] op[0x5c]","_body":"","_head":"5c117a29c02633c05047c07ca1c0ecabc0","data":[{"amount":3.05,"age":41},{"amount":0.95,"age":51},{"amount":2,"age":71},{"amount":3.1,"age":161},{"amount":5.9,"age":171}],"_date":""}],"programmed":4.5,"duration":0,"amount":4.5,"_head":"012d2d00","type":"normal","_date":"0672500311"},"timestamp":"2017-01-03T16:50:06+01:00","created_at":"2017-01-03T16:50:06+01:00","carbs":40,"ratio":"9","bg":"111","glucose":111,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":111,"_byte[5]":7,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-03T16:50:06 head[2], body[13] op[0x5b]","timestamp":"2017-01-03T16:50:06+01:00","_body":"2850091e5a072c000035002c5a","bg_target_high":90,"sensitivity":30,"carb_ratio":9,"food_estimate":4.4,"unabsorbed_insulin_total":5.3,"correction_estimate":0.7,"carb_input":40,"_head":"5b6f","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":4.4,"_date":"0672100311","bg_target_low":90},"eventType":"Meal Bolus","insulin":4.5,"notes":"Normal bolus with wizard.\nProgrammed bolus 4.5\nDelivered bolus 4.5\nPercent delivered: 100%\nFood estimate 4.4\nCorrection estimate 0.7\nBolus estimate 4.4\nTarget low 90\nTarget high 90\nHypothetical glucose delta -135\nGlucose was: 111","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/"},{"_id":"586ba38cdbab07be5f2def9f","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-03T14:04:52 head[4], body[0] op[0x01]","timestamp":"2017-01-03T14:04:52+01:00","_body":"","appended":[{"_type":"UnabsorbedInsulinBolus","_description":"UnabsorbedInsulinBolus unknown head[11], body[0] op[0x5c]","_body":"","_head":"5c0b503bd02263d0326dd1","data":[{"amount":2,"age":315},{"amount":0.85,"age":355},{"amount":1.25,"age":365}],"_date":""}],"programmed":9,"duration":0,"amount":9,"_head":"015a5a00","type":"normal","_date":"34444e0311"},"timestamp":"2017-01-03T14:04:52+01:00","created_at":"2017-01-03T14:04:52+01:00","carbs":70,"ratio":"9","bg":"130","glucose":130,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":130,"_byte[5]":13,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-03T14:04:52 head[2], body[13] op[0x5b]","timestamp":"2017-01-03T14:04:52+01:00","_body":"4650091e5a0d4d000000005a5a","bg_target_high":90,"sensitivity":30,"carb_ratio":9,"food_estimate":7.7,"unabsorbed_insulin_total":0,"correction_estimate":1.3,"carb_input":70,"_head":"5b82","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":9,"_date":"34440e0311","bg_target_low":90},"eventType":"Meal Bolus","insulin":9,"notes":"Normal bolus with wizard.\nProgrammed bolus 9\nDelivered bolus 9\nPercent delivered: 100%\nFood estimate 7.7\nCorrection estimate 1.3\nBolus estimate 9\nTarget low 90\nTarget high 90\nHypothetical glucose delta -270\nGlucose was: 130","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"},{"_id":"586b4fdbdbab07be5f2de63f","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-03T08:03:47 head[4], body[0] op[0x01]","timestamp":"2017-01-03T08:03:47+01:00","_body":"","programmed":8.5,"_head":"01555500","amount":8.5,"duration":0,"type":"normal","_date":"2f43480311"},"timestamp":"2017-01-03T08:03:47+01:00","created_at":"2017-01-03T08:03:47+01:00","carbs":60,"ratio":"7","bg":"90","glucose":90,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":90,"_byte[5]":0,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-03T08:03:47 head[2], body[13] op[0x5b]","timestamp":"2017-01-03T08:03:47+01:00","_body":"3c50071e5a005500000000555a","bg_target_high":90,"sensitivity":30,"carb_ratio":7,"food_estimate":8.5,"unabsorbed_insulin_total":0,"correction_estimate":0,"carb_input":60,"_head":"5b5a","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":8.5,"_date":"2f43080311","bg_target_low":90},"eventType":"Meal Bolus","insulin":8.5,"notes":"Normal bolus with wizard.\nProgrammed bolus 8.5\nDelivered bolus 8.5\nPercent delivered: 100%\nFood estimate 8.5\nCorrection estimate 0\nBolus estimate 8.5\nTarget low 90\nTarget high 90\nHypothetical glucose delta -255\nGlucose was: 90","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"},{"_id":"586aa57edbab07be5f2dd4e9","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-02T20:06:46 head[4], body[0] op[0x01]","timestamp":"2017-01-02T20:06:46+01:00","_body":"","appended":[{"_type":"UnabsorbedInsulinBolus","_description":"UnabsorbedInsulinBolus unknown head[29], body[0] op[0x5c]","_body":"","_head":"5c1d501bc02825c0282fc05043c05475c01c7fc05083d028a1d050c9d0","data":[{"amount":2,"age":27},{"amount":1,"age":37},{"amount":1,"age":47},{"amount":2,"age":67},{"amount":2.1,"age":117},{"amount":0.7,"age":127},{"amount":2,"age":387},{"amount":1,"age":417},{"amount":2,"age":457}],"_date":""}],"programmed":3.3,"duration":0,"amount":3.3,"_head":"01212100","type":"normal","_date":"2e46540211"},"timestamp":"2017-01-02T20:06:46+01:00","created_at":"2017-01-02T20:06:46+01:00","carbs":30,"ratio":"9","bg":"110","glucose":110,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":110,"_byte[5]":6,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-02T20:06:46 head[2], body[13] op[0x5b]","timestamp":"2017-01-02T20:06:46+01:00","_body":"1e50091e5a062100003800215a","bg_target_high":90,"sensitivity":30,"carb_ratio":9,"food_estimate":3.3,"unabsorbed_insulin_total":5.6,"correction_estimate":0.6,"carb_input":30,"_head":"5b6e","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":3.3,"_date":"2e46140211","bg_target_low":90},"eventType":"Meal Bolus","insulin":3.3,"notes":"Normal bolus with wizard.\nProgrammed bolus 3.3\nDelivered bolus 3.3\nPercent delivered: 100%\nFood estimate 3.3\nCorrection estimate 0.6\nBolus estimate 3.3\nTarget low 90\nTarget high 90\nHypothetical glucose delta -99\nGlucose was: 110","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"},{"_id":"586a89d5dbab07be5f2dd231","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-02T18:08:32 head[4], body[0] op[0x01]","timestamp":"2017-01-02T18:08:32+01:00","_body":"","appended":[{"_type":"UnabsorbedInsulinBolus","_description":"UnabsorbedInsulinBolus unknown head[11], body[0] op[0x5c]","_body":"","_head":"5c0b500dd0282bd05053d0","data":[{"amount":2,"age":269},{"amount":1,"age":299},{"amount":2,"age":339}],"_date":""}],"programmed":2.8,"duration":0,"amount":2.8,"_head":"011c1c00","type":"normal","_date":"2048520211"},"timestamp":"2017-01-02T18:08:32+01:00","created_at":"2017-01-02T18:08:32+01:00","carbs":25,"ratio":"9","bg":"94","glucose":94,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":94,"_byte[5]":1,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-02T18:08:32 head[2], body[13] op[0x5b]","timestamp":"2017-01-02T18:08:32+01:00","_body":"1950091e5a011b000000001c5a","bg_target_high":90,"sensitivity":30,"carb_ratio":9,"food_estimate":2.7,"unabsorbed_insulin_total":0,"correction_estimate":0.1,"carb_input":25,"_head":"5b5e","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":2.8,"_date":"2048120211","bg_target_low":90},"eventType":"Meal Bolus","insulin":2.8,"notes":"Normal bolus with wizard.\nProgrammed bolus 2.8\nDelivered bolus 2.8\nPercent delivered: 100%\nFood estimate 2.7\nCorrection estimate 0.1\nBolus estimate 2.8\nTarget low 90\nTarget high 90\nHypothetical glucose delta -84\nGlucose was: 94","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"},{"_id":"5869ed83dbab07be5f2dc96e","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-02T06:58:00 head[4], body[0] op[0x01]","timestamp":"2017-01-02T06:58:00+01:00","_body":"","programmed":8.5,"_head":"01555500","amount":8.5,"duration":0,"type":"normal","_date":"007a460211"},"timestamp":"2017-01-02T06:58:00+01:00","created_at":"2017-01-02T06:58:00+01:00","carbs":60,"ratio":"7","bg":"101","glucose":101,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":101,"_byte[5]":3,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-02T06:58:00 head[2], body[13] op[0x5b]","timestamp":"2017-01-02T06:58:00+01:00","_body":"3c50071e5a035500000000585a","bg_target_high":90,"sensitivity":30,"carb_ratio":7,"food_estimate":8.5,"unabsorbed_insulin_total":0,"correction_estimate":0.3,"carb_input":60,"_head":"5b65","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":8.8,"_date":"007a060211","bg_target_low":90},"eventType":"Meal Bolus","insulin":8.5,"notes":"Normal bolus with wizard.\nProgrammed bolus 8.5\nDelivered bolus 8.5\nPercent delivered: 100%\nFood estimate 8.5\nCorrection estimate 0.3\nBolus estimate 8.8\nTarget low 90\nTarget high 90\nHypothetical glucose delta -255\nGlucose was: 101","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"},{"_id":"58694d71dbab07be5f2db898","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-01T19:33:43 head[4], body[0] op[0x01]","timestamp":"2017-01-01T19:33:43+01:00","_body":"","appended":[{"_type":"UnabsorbedInsulinBolus","_description":"UnabsorbedInsulinBolus unknown head[26], body[0] op[0x5c]","_body":"","_head":"5c1a0e90c06a9ac078c2c050f4c0501cd028a8d050b2d050bcd0","data":[{"amount":0.35,"age":144},{"amount":2.65,"age":154},{"amount":3,"age":194},{"amount":2,"age":244},{"amount":2,"age":284},{"amount":1,"age":424},{"amount":2,"age":434},{"amount":2,"age":444}],"_date":""}],"programmed":9.5,"duration":0,"amount":9.5,"_head":"015f5f00","type":"normal","_date":"2b61530111"},"timestamp":"2017-01-01T19:33:43+01:00","created_at":"2017-01-01T19:33:43+01:00","carbs":85,"ratio":"9","bg":"105","glucose":105,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":105,"_byte[5]":5,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-01T19:33:43 head[2], body[13] op[0x5b]","timestamp":"2017-01-01T19:33:43+01:00","_body":"5550091e55055e000004005f5a","bg_target_high":90,"sensitivity":30,"carb_ratio":9,"food_estimate":9.4,"unabsorbed_insulin_total":0.4,"correction_estimate":0.5,"carb_input":85,"_head":"5b69","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":9.5,"_date":"2b61130111","bg_target_low":85},"eventType":"Meal Bolus","insulin":9.5,"notes":"Normal bolus with wizard.\nProgrammed bolus 9.5\nDelivered bolus 9.5\nPercent delivered: 100%\nFood estimate 9.4\nCorrection estimate 0.5\nBolus estimate 9.5\nTarget low 85\nTarget high 90\nHypothetical glucose delta -285\nGlucose was: 105","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"},{"_id":"586914b5dbab07be5f2db2ed","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-01T15:36:56 head[4], body[0] op[0x01]","timestamp":"2017-01-01T15:36:56+01:00","_body":"","appended":[{"_type":"UnabsorbedInsulinBolus","_description":"UnabsorbedInsulinBolus unknown head[23], body[0] op[0x5c]","_body":"","_head":"5c17502fc028bbc050c5c050cfc0281fd0c065d0806fd0","data":[{"amount":2,"age":47},{"amount":1,"age":187},{"amount":2,"age":197},{"amount":2,"age":207},{"amount":1,"age":287},{"amount":4.8,"age":357},{"amount":3.2,"age":367}],"_date":""}],"programmed":2,"duration":0,"amount":2,"_head":"01141400","type":"normal","_date":"38644f0111"},"timestamp":"2017-01-01T15:36:56+01:00","created_at":"2017-01-01T15:36:56+01:00","carbs":20,"ratio":"9","bg":"90","glucose":90,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":90,"_byte[5]":0,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-01T15:36:56 head[2], body[13] op[0x5b]","timestamp":"2017-01-01T15:36:56+01:00","_body":"1450091e55001600001100165a","bg_target_high":90,"sensitivity":30,"carb_ratio":9,"food_estimate":2.2,"unabsorbed_insulin_total":1.7,"correction_estimate":0,"carb_input":20,"_head":"5b5a","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":2.2,"_date":"38640f0111","bg_target_low":85},"eventType":"Meal Bolus","insulin":2,"notes":"Normal bolus with wizard.\nProgrammed bolus 2\nDelivered bolus 2\nPercent delivered: 100%\nFood estimate 2.2\nCorrection estimate 0\nBolus estimate 2.2\nTarget low 85\nTarget high 90\nHypothetical glucose delta -60\nGlucose was: 90","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"},{"_id":"5868c13edbab07be5f2dabdf","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2017-01-01T09:36:51 head[4], body[0] op[0x01]","timestamp":"2017-01-01T09:36:51+01:00","_body":"","programmed":8,"_head":"01505000","amount":8,"duration":0,"type":"normal","_date":"3364490111"},"timestamp":"2017-01-01T09:36:50+01:00","created_at":"2017-01-01T09:36:50+01:00","carbs":60,"ratio":"9","bg":"86","glucose":86,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":86,"_byte[5]":0,"unknown_byte[10]":0,"_description":"BolusWizard 2017-01-01T09:36:50 head[2], body[13] op[0x5b]","timestamp":"2017-01-01T09:36:50+01:00","_body":"3c50091e55004200000000425a","bg_target_high":90,"sensitivity":30,"carb_ratio":9,"food_estimate":6.6,"unabsorbed_insulin_total":0,"correction_estimate":0,"carb_input":60,"_head":"5b56","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":6.6,"_date":"3264090111","bg_target_low":85},"eventType":"Meal Bolus","insulin":8,"notes":"Normal bolus with wizard.\nProgrammed bolus 8\nDelivered bolus 8\nPercent delivered: 100%\nFood estimate 6.6\nCorrection estimate 0\nBolus estimate 6.6\nTarget low 85\nTarget high 90\nHypothetical glucose delta -240\nGlucose was: 86","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"},{"_id":"5867f162dbab07be5f2d9631","duration":0,"bolus":{"_type":"Bolus","_description":"Bolus 2016-12-31T18:49:42 head[4], body[0] op[0x01]","timestamp":"2016-12-31T18:49:42+01:00","_body":"","appended":[{"_type":"UnabsorbedInsulinBolus","_description":"UnabsorbedInsulinBolus unknown head[26], body[0] op[0x5c]","_body":"","_head":"5c1a5014c05096c028aac050bec0c804d06440d05090d0509ad0","data":[{"amount":2,"age":20},{"amount":2,"age":150},{"amount":1,"age":170},{"amount":2,"age":190},{"amount":5,"age":260},{"amount":2.5,"age":320},{"amount":2,"age":400},{"amount":2,"age":410}],"_date":""}],"programmed":6.5,"duration":0,"amount":6.5,"_head":"01414100","type":"normal","_date":"ea31521f10"},"timestamp":"2016-12-31T18:49:42+01:00","created_at":"2016-12-31T18:49:42+01:00","carbs":60,"ratio":"9","bg":"120","glucose":120,"glucoseType":"BolusWizard","wizard":{"unknown_byte[8]":0,"_type":"BolusWizard","bg":120,"_byte[5]":10,"unknown_byte[10]":0,"_description":"BolusWizard 2016-12-31T18:49:42 head[2], body[13] op[0x5b]","timestamp":"2016-12-31T18:49:42+01:00","_body":"3c50091e550a4200001700425a","bg_target_high":90,"sensitivity":30,"carb_ratio":9,"food_estimate":6.6,"unabsorbed_insulin_total":2.3,"correction_estimate":1,"carb_input":60,"_head":"5b78","unabsorbed_insulin_count":"??","_byte[7]":0,"bolus_estimate":6.6,"_date":"ea31121f10","bg_target_low":85},"eventType":"Meal Bolus","insulin":6.5,"notes":"Normal bolus with wizard.\nProgrammed bolus 6.5\nDelivered bolus 6.5\nPercent delivered: 100%\nFood estimate 6.6\nCorrection estimate 1\nBolus estimate 6.6\nTarget low 85\nTarget high 90\nHypothetical glucose delta -195\nGlucose was: 120","medtronic":"mm://openaps/mm-format-ns-treatments/Meal Bolus","enteredBy":"openaps://medtronic/522"}] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/clock-zoned.json b/app/src/main/java/info/nightscout/sampleData/monitor/clock-zoned.json deleted file mode 100644 index d8e4e2f4fe..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/monitor/clock-zoned.json +++ /dev/null @@ -1 +0,0 @@ -"2017-01-04T16:40:31+01:00" \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/clock.json b/app/src/main/java/info/nightscout/sampleData/monitor/clock.json deleted file mode 100644 index 233cee13ee..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/monitor/clock.json +++ /dev/null @@ -1 +0,0 @@ -"2017-01-04T16:40:31" \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/edison-battery.json b/app/src/main/java/info/nightscout/sampleData/monitor/edison-battery.json deleted file mode 100644 index 15da5e3d65..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/monitor/edison-battery.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "battery": 52, - "batteryVoltage": 3701 -} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/glucose.json b/app/src/main/java/info/nightscout/sampleData/monitor/glucose.json deleted file mode 100644 index c4c0130106..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/monitor/glucose.json +++ /dev/null @@ -1,15002 +0,0 @@ -[ - { - "filtered": 217664, - "direction": "DoubleDown", - "noise": 1, - "dateString": "2017-01-04T16:36:41.224000+01:00", - "sgv": 148, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 191424, - "delta": -20.713, - "date": 1483544201224, - "rssi": 100, - "_id": "586d168bdbab07be5f2e153b", - "type": "sgv", - "glucose": 148 - }, - { - "filtered": 226528, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T16:31:41.395000+01:00", - "sgv": 169, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 210592, - "delta": -13.679, - "date": 1483543901395, - "rssi": 100, - "_id": "586d155fdbab07be5f2e151c", - "type": "sgv", - "glucose": 169 - }, - { - "filtered": 226528, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T16:31:41.395000+01:00", - "sgv": 169, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 210592, - "delta": -20.713, - "date": 1483543901395, - "rssi": 100, - "_id": "586d168bdbab07be5f2e153c", - "type": "sgv", - "glucose": 169 - }, - { - "filtered": 230624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:26:41.244000+01:00", - "sgv": 183, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 223264, - "delta": -4.631, - "date": 1483543601244, - "rssi": 100, - "_id": "586d1433dbab07be5f2e14fc", - "type": "sgv", - "glucose": 183 - }, - { - "filtered": 230624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:26:41.244000+01:00", - "sgv": 183, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 223264, - "delta": -13.679, - "date": 1483543601244, - "rssi": 100, - "_id": "586d155fdbab07be5f2e151d", - "type": "sgv", - "glucose": 183 - }, - { - "filtered": 230624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:26:41.244000+01:00", - "sgv": 183, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 223264, - "delta": -20.713, - "date": 1483543601244, - "rssi": 100, - "_id": "586d168bdbab07be5f2e153d", - "type": "sgv", - "glucose": 183 - }, - { - "filtered": 231808, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:16:41.221000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231840, - "delta": 0.173, - "date": 1483543001221, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14db", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 231808, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:16:41.221000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231840, - "delta": -4.631, - "date": 1483543001221, - "rssi": 100, - "_id": "586d1433dbab07be5f2e14fd", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 231808, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:16:41.221000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231840, - "delta": -13.679, - "date": 1483543001221, - "rssi": 100, - "_id": "586d155fdbab07be5f2e151e", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 231808, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:16:41.221000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231840, - "delta": -20.713, - "date": 1483543001221, - "rssi": 100, - "_id": "586d168bdbab07be5f2e153e", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 230944, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:11:41.253000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231680, - "delta": -0.207, - "date": 1483542701253, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14bb", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 230944, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:11:41.253000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231680, - "delta": 0.173, - "date": 1483542701253, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14dc", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 230944, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:11:41.253000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231680, - "delta": -4.631, - "date": 1483542701253, - "rssi": 100, - "_id": "586d1433dbab07be5f2e14fe", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 230944, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:11:41.253000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231680, - "delta": -13.679, - "date": 1483542701253, - "rssi": 100, - "_id": "586d155fdbab07be5f2e151f", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 230944, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:11:41.253000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231680, - "delta": -20.713, - "date": 1483542701253, - "rssi": 100, - "_id": "586d168bdbab07be5f2e153f", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 229536, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:06:41.161000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231872, - "delta": 1.348, - "date": 1483542401161, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e149a", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 229536, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:06:41.161000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231872, - "delta": -0.207, - "date": 1483542401161, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14bc", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 229536, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:06:41.161000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231872, - "delta": 0.173, - "date": 1483542401161, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14dd", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 229536, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:06:41.161000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231872, - "delta": -4.631, - "date": 1483542401161, - "rssi": 100, - "_id": "586d1433dbab07be5f2e14ff", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 229536, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:06:41.161000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231872, - "delta": -13.679, - "date": 1483542401161, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1520", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 229536, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:06:41.161000+01:00", - "sgv": 192, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 231872, - "delta": -20.713, - "date": 1483542401161, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1540", - "type": "sgv", - "glucose": 192 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": 1.936, - "date": 1483542101177, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1478", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": 1.348, - "date": 1483542101177, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e149b", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": -0.207, - "date": 1483542101177, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14bd", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": 0.173, - "date": 1483542101177, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14de", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": -4.631, - "date": 1483542101177, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1500", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": -13.679, - "date": 1483542101177, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1521", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 227968, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T16:01:41.177000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230624, - "delta": -20.713, - "date": 1483542101177, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1541", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": 1.262, - "date": 1483541801241, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1459", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": 1.936, - "date": 1483541801241, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1479", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": 1.348, - "date": 1483541801241, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e149c", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": -0.207, - "date": 1483541801241, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14be", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": 0.173, - "date": 1483541801241, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14df", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": -4.631, - "date": 1483541801241, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1501", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": -13.679, - "date": 1483541801241, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1522", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:56:41.241000+01:00", - "sgv": 189, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 228832, - "delta": -20.713, - "date": 1483541801241, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1542", - "type": "sgv", - "glucose": 189 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": -0.658, - "date": 1483541201285, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1435", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": 1.262, - "date": 1483541201285, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e145a", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": 1.936, - "date": 1483541201285, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e147b", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": 1.348, - "date": 1483541201285, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e149d", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": -0.207, - "date": 1483541201285, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14bf", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": 0.173, - "date": 1483541201285, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e0", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": -4.631, - "date": 1483541201285, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1502", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": -13.679, - "date": 1483541201285, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1524", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 226464, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:46:41.285000+01:00", - "sgv": 186, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 226496, - "delta": -20.713, - "date": 1483541201285, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1543", - "type": "sgv", - "glucose": 186 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": 2.933, - "date": 1483540901755, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1415", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": -0.658, - "date": 1483540901755, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1436", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": 1.262, - "date": 1483540901755, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e145b", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": 1.936, - "date": 1483540901755, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e147a", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": 1.348, - "date": 1483540901755, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e149e", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": -0.207, - "date": 1483540901755, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c0", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": 0.173, - "date": 1483540901755, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e1", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": -4.631, - "date": 1483540901755, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1503", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": -13.679, - "date": 1483540901755, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1523", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 227840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:41:41.755000+01:00", - "sgv": 187, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227104, - "delta": -20.713, - "date": 1483540901755, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1544", - "type": "sgv", - "glucose": 187 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": -6.913, - "date": 1483540601273, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13f6", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": 2.933, - "date": 1483540601273, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1416", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": -0.658, - "date": 1483540601273, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1437", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": 1.262, - "date": 1483540601273, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e145c", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": 1.936, - "date": 1483540601273, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e147c", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": 1.348, - "date": 1483540601273, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e149f", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": -0.207, - "date": 1483540601273, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c1", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": 0.173, - "date": 1483540601273, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e2", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": -4.631, - "date": 1483540601273, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1504", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": -13.679, - "date": 1483540601273, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1525", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 230208, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:36:41.273000+01:00", - "sgv": 184, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 224384, - "delta": -20.713, - "date": 1483540601273, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1545", - "type": "sgv", - "glucose": 184 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -3.87, - "date": 1483540301318, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13d7", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -6.913, - "date": 1483540301318, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13f7", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": 2.933, - "date": 1483540301318, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1417", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -0.658, - "date": 1483540301318, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1438", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": 1.262, - "date": 1483540301318, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e145d", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": 1.936, - "date": 1483540301318, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e147d", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": 1.348, - "date": 1483540301318, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a0", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -0.207, - "date": 1483540301318, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c2", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": 0.173, - "date": 1483540301318, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e3", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -4.631, - "date": 1483540301318, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1505", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -13.679, - "date": 1483540301318, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1526", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 234784, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:31:41.318000+01:00", - "sgv": 191, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 230784, - "delta": -20.713, - "date": 1483540301318, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1546", - "type": "sgv", - "glucose": 191 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -2.869, - "date": 1483540001288, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13b6", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -3.87, - "date": 1483540001288, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13d8", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -6.913, - "date": 1483540001288, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13f9", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": 2.933, - "date": 1483540001288, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1418", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -0.658, - "date": 1483540001288, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1439", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": 1.262, - "date": 1483540001288, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e145e", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": 1.936, - "date": 1483540001288, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e147e", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": 1.348, - "date": 1483540001288, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a1", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -0.207, - "date": 1483540001288, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c3", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": 0.173, - "date": 1483540001288, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e4", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -4.631, - "date": 1483540001288, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1506", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -13.679, - "date": 1483540001288, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1527", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 242592, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T15:26:41.288000+01:00", - "sgv": 195, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 234368, - "delta": -20.713, - "date": 1483540001288, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1547", - "type": "sgv", - "glucose": 195 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -10.022, - "date": 1483539701330, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e1396", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -2.869, - "date": 1483539701330, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13ba", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -3.87, - "date": 1483539701330, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13d9", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -6.913, - "date": 1483539701330, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13f8", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": 2.933, - "date": 1483539701330, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1419", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -0.658, - "date": 1483539701330, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e143a", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": 1.262, - "date": 1483539701330, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e145f", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": 1.936, - "date": 1483539701330, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e147f", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": 1.348, - "date": 1483539701330, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a2", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -0.207, - "date": 1483539701330, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c4", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": 0.173, - "date": 1483539701330, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e5", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -4.631, - "date": 1483539701330, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1507", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -13.679, - "date": 1483539701330, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1528", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 253376, - "direction": "SingleDown", - "noise": 1, - "dateString": "2017-01-04T15:21:41.330000+01:00", - "sgv": 198, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 237024, - "delta": -20.713, - "date": 1483539701330, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1548", - "type": "sgv", - "glucose": 198 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -9.038, - "date": 1483539101287, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1375", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -10.022, - "date": 1483539101287, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e1397", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -2.869, - "date": 1483539101287, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13b7", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -3.87, - "date": 1483539101287, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13da", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -6.913, - "date": 1483539101287, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13fa", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": 2.933, - "date": 1483539101287, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e141a", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -0.658, - "date": 1483539101287, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e143b", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": 1.262, - "date": 1483539101287, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1460", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": 1.936, - "date": 1483539101287, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1480", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": 1.348, - "date": 1483539101287, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a3", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -0.207, - "date": 1483539101287, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c5", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": 0.173, - "date": 1483539101287, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e6", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -4.631, - "date": 1483539101287, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1508", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -13.679, - "date": 1483539101287, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1529", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 269184, - "direction": "FortyFiveDown", - "noise": 1, - "dateString": "2017-01-04T15:11:41.287000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255584, - "delta": -20.713, - "date": 1483539101287, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1549", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": 6.496, - "date": 1483538501333, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1355", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -9.038, - "date": 1483538501333, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1376", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -10.022, - "date": 1483538501333, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e1398", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -2.869, - "date": 1483538501333, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13b8", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -3.87, - "date": 1483538501333, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13db", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -6.913, - "date": 1483538501333, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13fb", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": 2.933, - "date": 1483538501333, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e141b", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -0.658, - "date": 1483538501333, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e143c", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": 1.262, - "date": 1483538501333, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1461", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": 1.936, - "date": 1483538501333, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1481", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": 1.348, - "date": 1483538501333, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a4", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -0.207, - "date": 1483538501333, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c6", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": 0.173, - "date": 1483538501333, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e7", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -4.631, - "date": 1483538501333, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1509", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -13.679, - "date": 1483538501333, - "rssi": 100, - "_id": "586d155fdbab07be5f2e152a", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 261440, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T15:01:41.333000+01:00", - "sgv": 236, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 272320, - "delta": -20.713, - "date": 1483538501333, - "rssi": 100, - "_id": "586d168bdbab07be5f2e154a", - "type": "sgv", - "glucose": 236 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 11.613, - "date": 1483538201284, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1336", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 6.496, - "date": 1483538201284, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1356", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -9.038, - "date": 1483538201284, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1377", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -10.022, - "date": 1483538201284, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e1399", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -2.869, - "date": 1483538201284, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13b9", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -3.87, - "date": 1483538201284, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13dc", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -6.913, - "date": 1483538201284, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13fc", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 2.933, - "date": 1483538201284, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e141c", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -0.658, - "date": 1483538201284, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e143d", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 1.262, - "date": 1483538201284, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1462", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 1.936, - "date": 1483538201284, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1482", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 1.348, - "date": 1483538201284, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a5", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -0.207, - "date": 1483538201284, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c7", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": 0.173, - "date": 1483538201284, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e8", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -4.631, - "date": 1483538201284, - "rssi": 100, - "_id": "586d1433dbab07be5f2e150a", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -13.679, - "date": 1483538201284, - "rssi": 100, - "_id": "586d155fdbab07be5f2e152b", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 250240, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:56:41.284000+01:00", - "sgv": 229, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 266304, - "delta": -20.713, - "date": 1483538201284, - "rssi": 100, - "_id": "586d168bdbab07be5f2e154b", - "type": "sgv", - "glucose": 229 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 11.911, - "date": 1483537901316, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1317", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 11.613, - "date": 1483537901316, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1337", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 6.496, - "date": 1483537901316, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1357", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -9.038, - "date": 1483537901316, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1378", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -10.022, - "date": 1483537901316, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e139a", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -2.869, - "date": 1483537901316, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13bb", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -3.87, - "date": 1483537901316, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13de", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -6.913, - "date": 1483537901316, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13fd", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 2.933, - "date": 1483537901316, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e141d", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -0.658, - "date": 1483537901316, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e143e", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 1.262, - "date": 1483537901316, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1463", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 1.936, - "date": 1483537901316, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1483", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 1.348, - "date": 1483537901316, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a6", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -0.207, - "date": 1483537901316, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c8", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": 0.173, - "date": 1483537901316, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14e9", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -4.631, - "date": 1483537901316, - "rssi": 100, - "_id": "586d1433dbab07be5f2e150b", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -13.679, - "date": 1483537901316, - "rssi": 100, - "_id": "586d155fdbab07be5f2e152c", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 235712, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:51:41.316000+01:00", - "sgv": 218, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 255552, - "delta": -20.713, - "date": 1483537901316, - "rssi": 100, - "_id": "586d168bdbab07be5f2e154c", - "type": "sgv", - "glucose": 218 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 17.921, - "date": 1483537601014, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12f7", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 11.911, - "date": 1483537601014, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1318", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 11.613, - "date": 1483537601014, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1338", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 6.496, - "date": 1483537601014, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1358", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -9.038, - "date": 1483537601014, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1379", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -10.022, - "date": 1483537601014, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e139b", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -2.869, - "date": 1483537601014, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13bd", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -3.87, - "date": 1483537601014, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13dd", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -6.913, - "date": 1483537601014, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13fe", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 2.933, - "date": 1483537601014, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e141e", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -0.658, - "date": 1483537601014, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e143f", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 1.262, - "date": 1483537601014, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1464", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 1.936, - "date": 1483537601014, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1484", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 1.348, - "date": 1483537601014, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a7", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -0.207, - "date": 1483537601014, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14c9", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": 0.173, - "date": 1483537601014, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14ea", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -4.631, - "date": 1483537601014, - "rssi": 100, - "_id": "586d1433dbab07be5f2e150c", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -13.679, - "date": 1483537601014, - "rssi": 100, - "_id": "586d155fdbab07be5f2e152d", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 218464, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:46:41.014000+01:00", - "sgv": 206, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 244512, - "delta": -20.713, - "date": 1483537601014, - "rssi": 100, - "_id": "586d168bdbab07be5f2e154d", - "type": "sgv", - "glucose": 206 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 14.55, - "date": 1483537301326, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12d8", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 17.921, - "date": 1483537301326, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12f8", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 11.911, - "date": 1483537301326, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1319", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 11.613, - "date": 1483537301326, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1339", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 6.496, - "date": 1483537301326, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1359", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -9.038, - "date": 1483537301326, - "rssi": 100, - "_id": "586d029fdbab07be5f2e137a", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -10.022, - "date": 1483537301326, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e139c", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -2.869, - "date": 1483537301326, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13bc", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -3.87, - "date": 1483537301326, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13df", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -6.913, - "date": 1483537301326, - "rssi": 100, - "_id": "586d087bdbab07be5f2e13ff", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 2.933, - "date": 1483537301326, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1420", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -0.658, - "date": 1483537301326, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1440", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 1.262, - "date": 1483537301326, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1465", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 1.936, - "date": 1483537301326, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1485", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 1.348, - "date": 1483537301326, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a8", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -0.207, - "date": 1483537301326, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14ca", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": 0.173, - "date": 1483537301326, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14eb", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -4.631, - "date": 1483537301326, - "rssi": 100, - "_id": "586d1433dbab07be5f2e150d", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -13.679, - "date": 1483537301326, - "rssi": 100, - "_id": "586d155fdbab07be5f2e152e", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 201152, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:41:41.326000+01:00", - "sgv": 188, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 227936, - "delta": -20.713, - "date": 1483537301326, - "rssi": 100, - "_id": "586d168bdbab07be5f2e154e", - "type": "sgv", - "glucose": 188 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 21.457, - "date": 1483537001325, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12b9", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 14.55, - "date": 1483537001325, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12d9", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 17.921, - "date": 1483537001325, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12f9", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 11.911, - "date": 1483537001325, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e131a", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 11.613, - "date": 1483537001325, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e133a", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 6.496, - "date": 1483537001325, - "rssi": 100, - "_id": "586d0047dbab07be5f2e135a", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -9.038, - "date": 1483537001325, - "rssi": 100, - "_id": "586d029fdbab07be5f2e137b", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -10.022, - "date": 1483537001325, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e139d", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -2.869, - "date": 1483537001325, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13be", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -3.87, - "date": 1483537001325, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e0", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -6.913, - "date": 1483537001325, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1400", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 2.933, - "date": 1483537001325, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e141f", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -0.658, - "date": 1483537001325, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1441", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 1.262, - "date": 1483537001325, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1466", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 1.936, - "date": 1483537001325, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1486", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 1.348, - "date": 1483537001325, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14aa", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -0.207, - "date": 1483537001325, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14cb", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": 0.173, - "date": 1483537001325, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14ec", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -4.631, - "date": 1483537001325, - "rssi": 100, - "_id": "586d1433dbab07be5f2e150e", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -13.679, - "date": 1483537001325, - "rssi": 100, - "_id": "586d155fdbab07be5f2e152f", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 187264, - "direction": "DoubleUp", - "noise": 1, - "dateString": "2017-01-04T14:36:41.325000+01:00", - "sgv": 173, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 214464, - "delta": -20.713, - "date": 1483537001325, - "rssi": 100, - "_id": "586d168bdbab07be5f2e154f", - "type": "sgv", - "glucose": 173 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 16.247, - "date": 1483536701263, - "rssi": 100, - "_id": "586cf940dbab07be5f2e1297", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 21.457, - "date": 1483536701263, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12ba", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 14.55, - "date": 1483536701263, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12da", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 17.921, - "date": 1483536701263, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12fa", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 11.911, - "date": 1483536701263, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e131b", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 11.613, - "date": 1483536701263, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e133b", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 6.496, - "date": 1483536701263, - "rssi": 100, - "_id": "586d0047dbab07be5f2e135b", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -9.038, - "date": 1483536701263, - "rssi": 100, - "_id": "586d029fdbab07be5f2e137c", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -10.022, - "date": 1483536701263, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e139e", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -2.869, - "date": 1483536701263, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13bf", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -3.87, - "date": 1483536701263, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e1", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -6.913, - "date": 1483536701263, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1401", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 2.933, - "date": 1483536701263, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1421", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -0.658, - "date": 1483536701263, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1443", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 1.262, - "date": 1483536701263, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1467", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 1.936, - "date": 1483536701263, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1490", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 1.348, - "date": 1483536701263, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14a9", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -0.207, - "date": 1483536701263, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14cc", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": 0.173, - "date": 1483536701263, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14ed", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -4.631, - "date": 1483536701263, - "rssi": 100, - "_id": "586d1433dbab07be5f2e150f", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -13.679, - "date": 1483536701263, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1530", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 178208, - "direction": "SingleUp", - "noise": 1, - "dateString": "2017-01-04T14:31:41.263000+01:00", - "sgv": 152, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 194592, - "delta": -20.713, - "date": 1483536701263, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1551", - "type": "sgv", - "glucose": 152 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 3.904, - "date": 1483536401340, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1275", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 16.247, - "date": 1483536401340, - "rssi": 100, - "_id": "586cf940dbab07be5f2e1298", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 21.457, - "date": 1483536401340, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12b8", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 14.55, - "date": 1483536401340, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12db", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 17.921, - "date": 1483536401340, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12fb", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 11.911, - "date": 1483536401340, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e131c", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 11.613, - "date": 1483536401340, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e133c", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 6.496, - "date": 1483536401340, - "rssi": 100, - "_id": "586d0047dbab07be5f2e135c", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -9.038, - "date": 1483536401340, - "rssi": 100, - "_id": "586d029fdbab07be5f2e137d", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -10.022, - "date": 1483536401340, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e139f", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -2.869, - "date": 1483536401340, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c0", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -3.87, - "date": 1483536401340, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e3", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -6.913, - "date": 1483536401340, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1402", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 2.933, - "date": 1483536401340, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1422", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -0.658, - "date": 1483536401340, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1442", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 1.262, - "date": 1483536401340, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1468", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 1.936, - "date": 1483536401340, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e148a", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 1.348, - "date": 1483536401340, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14ab", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -0.207, - "date": 1483536401340, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14cd", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": 0.173, - "date": 1483536401340, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14ee", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -4.631, - "date": 1483536401340, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1510", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -13.679, - "date": 1483536401340, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1531", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 173344, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:26:41.340000+01:00", - "sgv": 136, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 179552, - "delta": -20.713, - "date": 1483536401340, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1550", - "type": "sgv", - "glucose": 136 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 5.385, - "date": 1483536101258, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1252", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 3.904, - "date": 1483536101258, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1276", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 16.247, - "date": 1483536101258, - "rssi": 100, - "_id": "586cf940dbab07be5f2e1299", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 21.457, - "date": 1483536101258, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12b7", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 14.55, - "date": 1483536101258, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12dc", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 17.921, - "date": 1483536101258, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12fc", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 11.911, - "date": 1483536101258, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e131d", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 11.613, - "date": 1483536101258, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e133d", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 6.496, - "date": 1483536101258, - "rssi": 100, - "_id": "586d0047dbab07be5f2e135d", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -9.038, - "date": 1483536101258, - "rssi": 100, - "_id": "586d029fdbab07be5f2e137e", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -10.022, - "date": 1483536101258, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a6", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -2.869, - "date": 1483536101258, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c1", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -3.87, - "date": 1483536101258, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e2", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -6.913, - "date": 1483536101258, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1403", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 2.933, - "date": 1483536101258, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1423", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -0.658, - "date": 1483536101258, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1444", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 1.262, - "date": 1483536101258, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e146b", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 1.936, - "date": 1483536101258, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1487", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 1.348, - "date": 1483536101258, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14ad", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -0.207, - "date": 1483536101258, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14ce", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": 0.173, - "date": 1483536101258, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14ef", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -4.631, - "date": 1483536101258, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1512", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -13.679, - "date": 1483536101258, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1532", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 170496, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T14:21:41.258000+01:00", - "sgv": 132, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 175936, - "delta": -20.713, - "date": 1483536101258, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1552", - "type": "sgv", - "glucose": 132 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 1.686, - "date": 1483535802855, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1233", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 5.385, - "date": 1483535802855, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1253", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 3.904, - "date": 1483535802855, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1277", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 16.247, - "date": 1483535802855, - "rssi": 100, - "_id": "586cf940dbab07be5f2e129a", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 21.457, - "date": 1483535802855, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12bb", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 14.55, - "date": 1483535802855, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12dd", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 17.921, - "date": 1483535802855, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12fd", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 11.911, - "date": 1483535802855, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e131e", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 11.613, - "date": 1483535802855, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e133e", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 6.496, - "date": 1483535802855, - "rssi": 100, - "_id": "586d0047dbab07be5f2e135e", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -9.038, - "date": 1483535802855, - "rssi": 100, - "_id": "586d029fdbab07be5f2e137f", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -10.022, - "date": 1483535802855, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a3", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -2.869, - "date": 1483535802855, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c2", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -3.87, - "date": 1483535802855, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e4", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -6.913, - "date": 1483535802855, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1404", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 2.933, - "date": 1483535802855, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1424", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -0.658, - "date": 1483535802855, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1445", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 1.262, - "date": 1483535802855, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1469", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 1.936, - "date": 1483535802855, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1488", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 1.348, - "date": 1483535802855, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14ac", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -0.207, - "date": 1483535802855, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14cf", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": 0.173, - "date": 1483535802855, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f0", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -4.631, - "date": 1483535802855, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1511", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -13.679, - "date": 1483535802855, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1533", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 168288, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:16:42.855000+01:00", - "sgv": 126, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 170976, - "delta": -20.713, - "date": 1483535802855, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1553", - "type": "sgv", - "glucose": 126 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 1.314, - "date": 1483535501468, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1213", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 1.686, - "date": 1483535501468, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1234", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 5.385, - "date": 1483535501468, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1254", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 3.904, - "date": 1483535501468, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1278", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 16.247, - "date": 1483535501468, - "rssi": 100, - "_id": "586cf940dbab07be5f2e129b", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 21.457, - "date": 1483535501468, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12bc", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 14.55, - "date": 1483535501468, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12de", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 17.921, - "date": 1483535501468, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12fe", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 11.911, - "date": 1483535501468, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e131f", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 11.613, - "date": 1483535501468, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e133f", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 6.496, - "date": 1483535501468, - "rssi": 100, - "_id": "586d0047dbab07be5f2e135f", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -9.038, - "date": 1483535501468, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1380", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -10.022, - "date": 1483535501468, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a0", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -2.869, - "date": 1483535501468, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c4", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -3.87, - "date": 1483535501468, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e5", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -6.913, - "date": 1483535501468, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1405", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 2.933, - "date": 1483535501468, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1426", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -0.658, - "date": 1483535501468, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1446", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 1.262, - "date": 1483535501468, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e146a", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 1.936, - "date": 1483535501468, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1489", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 1.348, - "date": 1483535501468, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14af", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -0.207, - "date": 1483535501468, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d0", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": 0.173, - "date": 1483535501468, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f1", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -4.631, - "date": 1483535501468, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1513", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -13.679, - "date": 1483535501468, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1534", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 166624, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:11:41.468000+01:00", - "sgv": 125, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 169408, - "delta": -20.713, - "date": 1483535501468, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1554", - "type": "sgv", - "glucose": 125 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 2.554, - "date": 1483535201718, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f1", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.314, - "date": 1483535201718, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1214", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.686, - "date": 1483535201718, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1235", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 5.385, - "date": 1483535201718, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1255", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 3.904, - "date": 1483535201718, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1279", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 16.247, - "date": 1483535201718, - "rssi": 100, - "_id": "586cf940dbab07be5f2e129c", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 21.457, - "date": 1483535201718, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12bd", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 14.55, - "date": 1483535201718, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12df", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 17.921, - "date": 1483535201718, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e12ff", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 11.911, - "date": 1483535201718, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1320", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 11.613, - "date": 1483535201718, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1340", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 6.496, - "date": 1483535201718, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1360", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -9.038, - "date": 1483535201718, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1381", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -10.022, - "date": 1483535201718, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a1", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -2.869, - "date": 1483535201718, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c3", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -3.87, - "date": 1483535201718, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e6", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -6.913, - "date": 1483535201718, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1406", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 2.933, - "date": 1483535201718, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1425", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -0.658, - "date": 1483535201718, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1447", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.262, - "date": 1483535201718, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e146c", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.936, - "date": 1483535201718, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e148b", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.348, - "date": 1483535201718, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14ae", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -0.207, - "date": 1483535201718, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d1", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 0.173, - "date": 1483535201718, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f2", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -4.631, - "date": 1483535201718, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1514", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -13.679, - "date": 1483535201718, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1535", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165376, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:06:41.718000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -20.713, - "date": 1483535201718, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1555", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 1.87, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d2", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 2.554, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f2", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 1.314, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1215", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 1.686, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1236", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 5.385, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1256", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 3.904, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf814dbab07be5f2e127a", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 16.247, - "date": 1483534901296, - "rssi": 100, - "_id": "586cf940dbab07be5f2e129d", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 21.457, - "date": 1483534901296, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12be", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 14.55, - "date": 1483534901296, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e0", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 17.921, - "date": 1483534901296, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1300", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 11.911, - "date": 1483534901296, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1321", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 11.613, - "date": 1483534901296, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1341", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 6.496, - "date": 1483534901296, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1361", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -9.038, - "date": 1483534901296, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1382", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -10.022, - "date": 1483534901296, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a2", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -2.869, - "date": 1483534901296, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c5", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -3.87, - "date": 1483534901296, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e8", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -6.913, - "date": 1483534901296, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1407", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 2.933, - "date": 1483534901296, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1427", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -0.658, - "date": 1483534901296, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1448", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 1.262, - "date": 1483534901296, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e146d", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 1.936, - "date": 1483534901296, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e148c", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 1.348, - "date": 1483534901296, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b0", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -0.207, - "date": 1483534901296, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d2", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": 0.173, - "date": 1483534901296, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f3", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -4.631, - "date": 1483534901296, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1515", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -13.679, - "date": 1483534901296, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1536", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 164416, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T14:01:41.296000+01:00", - "sgv": 121, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 165824, - "delta": -20.713, - "date": 1483534901296, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1556", - "type": "sgv", - "glucose": 121 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 0.069, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b0", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 1.87, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d3", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 2.554, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f3", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 1.314, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1216", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 1.686, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1237", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 5.385, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1257", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 3.904, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf814dbab07be5f2e127b", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 16.247, - "date": 1483534601873, - "rssi": 100, - "_id": "586cf940dbab07be5f2e129e", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 21.457, - "date": 1483534601873, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12bf", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 14.55, - "date": 1483534601873, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e1", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 17.921, - "date": 1483534601873, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1301", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 11.911, - "date": 1483534601873, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1322", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 11.613, - "date": 1483534601873, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1343", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 6.496, - "date": 1483534601873, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1362", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -9.038, - "date": 1483534601873, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1383", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -10.022, - "date": 1483534601873, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -2.869, - "date": 1483534601873, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c6", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -3.87, - "date": 1483534601873, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e7", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -6.913, - "date": 1483534601873, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1408", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 2.933, - "date": 1483534601873, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1428", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -0.658, - "date": 1483534601873, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1449", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 1.262, - "date": 1483534601873, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e146e", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 1.936, - "date": 1483534601873, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e148d", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 1.348, - "date": 1483534601873, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b1", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -0.207, - "date": 1483534601873, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d3", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": 0.173, - "date": 1483534601873, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -4.631, - "date": 1483534601873, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1517", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -13.679, - "date": 1483534601873, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1537", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 163328, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:56:41.873000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164096, - "delta": -20.713, - "date": 1483534601873, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1558", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 0.207, - "date": 1483534301597, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1192", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 0.069, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b1", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 1.87, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 2.554, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 1.314, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1217", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 1.686, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1238", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 5.385, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1258", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 3.904, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf814dbab07be5f2e127c", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 16.247, - "date": 1483534301597, - "rssi": 100, - "_id": "586cf940dbab07be5f2e129f", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 21.457, - "date": 1483534301597, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c0", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 14.55, - "date": 1483534301597, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 17.921, - "date": 1483534301597, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1302", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 11.911, - "date": 1483534301597, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1323", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 11.613, - "date": 1483534301597, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1342", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 6.496, - "date": 1483534301597, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1363", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -9.038, - "date": 1483534301597, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1384", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -10.022, - "date": 1483534301597, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -2.869, - "date": 1483534301597, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c7", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -3.87, - "date": 1483534301597, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13e9", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -6.913, - "date": 1483534301597, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1409", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 2.933, - "date": 1483534301597, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1429", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -0.658, - "date": 1483534301597, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e144b", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 1.262, - "date": 1483534301597, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1470", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 1.936, - "date": 1483534301597, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e148f", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 1.348, - "date": 1483534301597, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -0.207, - "date": 1483534301597, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": 0.173, - "date": 1483534301597, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -4.631, - "date": 1483534301597, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1516", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -13.679, - "date": 1483534301597, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1538", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 162144, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:51:41.597000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164032, - "delta": -20.713, - "date": 1483534301597, - "rssi": 100, - "_id": "586d168bdbab07be5f2e1557", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 2.177, - "date": 1483534001427, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1173", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 0.207, - "date": 1483534001427, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1193", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 0.069, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 1.87, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 2.554, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 1.314, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1218", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 1.686, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1239", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 5.385, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1259", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 3.904, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf814dbab07be5f2e127d", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 16.247, - "date": 1483534001427, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a0", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 21.457, - "date": 1483534001427, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c1", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 14.55, - "date": 1483534001427, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 17.921, - "date": 1483534001427, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1303", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 11.911, - "date": 1483534001427, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1324", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 11.613, - "date": 1483534001427, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1344", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 6.496, - "date": 1483534001427, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1364", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -9.038, - "date": 1483534001427, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1385", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -10.022, - "date": 1483534001427, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a7", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -2.869, - "date": 1483534001427, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c8", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -3.87, - "date": 1483534001427, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13ea", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -6.913, - "date": 1483534001427, - "rssi": 100, - "_id": "586d087bdbab07be5f2e140a", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 2.933, - "date": 1483534001427, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e142a", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -0.658, - "date": 1483534001427, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e144a", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 1.262, - "date": 1483534001427, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e146f", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 1.936, - "date": 1483534001427, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e148e", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 1.348, - "date": 1483534001427, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b3", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -0.207, - "date": 1483534001427, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": 0.173, - "date": 1483534001427, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f6", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -4.631, - "date": 1483534001427, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1519", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 161280, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:46:41.427000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163840, - "delta": -13.679, - "date": 1483534001427, - "rssi": 100, - "_id": "586d155fdbab07be5f2e1539", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 2.523, - "date": 1483533701407, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1153", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 2.177, - "date": 1483533701407, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1174", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 0.207, - "date": 1483533701407, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1194", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 0.069, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b3", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 1.87, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d6", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 2.554, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f6", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 1.314, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf490dbab07be5f2e121c", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 1.686, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e123a", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 5.385, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e125a", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 3.904, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf814dbab07be5f2e127e", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 16.247, - "date": 1483533701407, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a1", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 21.457, - "date": 1483533701407, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c2", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 14.55, - "date": 1483533701407, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e3", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 17.921, - "date": 1483533701407, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1304", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 11.911, - "date": 1483533701407, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1325", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 11.613, - "date": 1483533701407, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1345", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 6.496, - "date": 1483533701407, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1367", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -9.038, - "date": 1483533701407, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1386", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -10.022, - "date": 1483533701407, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a8", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -2.869, - "date": 1483533701407, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13ca", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -3.87, - "date": 1483533701407, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13eb", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -6.913, - "date": 1483533701407, - "rssi": 100, - "_id": "586d087bdbab07be5f2e140b", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 2.933, - "date": 1483533701407, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e142b", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -0.658, - "date": 1483533701407, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e144c", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 1.262, - "date": 1483533701407, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1471", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 1.936, - "date": 1483533701407, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1491", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 1.348, - "date": 1483533701407, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b6", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -0.207, - "date": 1483533701407, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d6", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": 0.173, - "date": 1483533701407, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f7", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 160896, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:41:41.407000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161824, - "delta": -4.631, - "date": 1483533701407, - "rssi": 100, - "_id": "586d1433dbab07be5f2e1518", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -3.597, - "date": 1483533401451, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1133", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.523, - "date": 1483533401451, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1154", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.177, - "date": 1483533401451, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1175", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 0.207, - "date": 1483533401451, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1195", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 0.069, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b4", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.87, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d7", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.554, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f7", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.314, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1219", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.686, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e123b", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 5.385, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e125b", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 3.904, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf814dbab07be5f2e127f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 16.247, - "date": 1483533401451, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a2", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 21.457, - "date": 1483533401451, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c3", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 14.55, - "date": 1483533401451, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e5", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 17.921, - "date": 1483533401451, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1305", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 11.911, - "date": 1483533401451, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1326", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 11.613, - "date": 1483533401451, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1346", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 6.496, - "date": 1483533401451, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1365", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -9.038, - "date": 1483533401451, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1387", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -10.022, - "date": 1483533401451, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13ac", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -2.869, - "date": 1483533401451, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13c9", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -3.87, - "date": 1483533401451, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13ec", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -6.913, - "date": 1483533401451, - "rssi": 100, - "_id": "586d087bdbab07be5f2e140c", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.933, - "date": 1483533401451, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e142c", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -0.658, - "date": 1483533401451, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e144d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.262, - "date": 1483533401451, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1472", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.936, - "date": 1483533401451, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1492", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.348, - "date": 1483533401451, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b7", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -0.207, - "date": 1483533401451, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d7", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161152, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:36:41.451000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 0.173, - "date": 1483533401451, - "rssi": 100, - "_id": "586d11dbdbab07be5f2e14f8", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.658, - "date": 1483533101684, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1114", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -3.597, - "date": 1483533101684, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1134", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 2.523, - "date": 1483533101684, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1155", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 2.177, - "date": 1483533101684, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1176", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 0.207, - "date": 1483533101684, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1196", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 0.069, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b5", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.87, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d8", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 2.554, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f8", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.314, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf490dbab07be5f2e121b", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.686, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e123c", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 5.385, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e125e", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 3.904, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1280", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 16.247, - "date": 1483533101684, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a3", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 21.457, - "date": 1483533101684, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c4", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 14.55, - "date": 1483533101684, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e6", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 17.921, - "date": 1483533101684, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1306", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 11.911, - "date": 1483533101684, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1328", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 11.613, - "date": 1483533101684, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1347", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 6.496, - "date": 1483533101684, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1368", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -9.038, - "date": 1483533101684, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1388", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -10.022, - "date": 1483533101684, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13a9", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -2.869, - "date": 1483533101684, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13cc", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -3.87, - "date": 1483533101684, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13ed", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -6.913, - "date": 1483533101684, - "rssi": 100, - "_id": "586d087bdbab07be5f2e140d", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 2.933, - "date": 1483533101684, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e142d", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -0.658, - "date": 1483533101684, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e144e", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.262, - "date": 1483533101684, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1473", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.936, - "date": 1483533101684, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1493", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": 1.348, - "date": 1483533101684, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b4", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 161856, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:31:41.684000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162816, - "delta": -0.207, - "date": 1483533101684, - "rssi": 100, - "_id": "586d10afdbab07be5f2e14d8", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.935, - "date": 1483532801480, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f3", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.658, - "date": 1483532801480, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1115", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -3.597, - "date": 1483532801480, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1135", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 2.523, - "date": 1483532801480, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1156", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 2.177, - "date": 1483532801480, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1177", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 0.207, - "date": 1483532801480, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1197", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 0.069, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b6", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.87, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11d9", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 2.554, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11f9", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.314, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf490dbab07be5f2e121a", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.686, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e123d", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 5.385, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e125c", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 3.904, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1282", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 16.247, - "date": 1483532801480, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a4", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 21.457, - "date": 1483532801480, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c5", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 14.55, - "date": 1483532801480, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e7", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 17.921, - "date": 1483532801480, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1307", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 11.911, - "date": 1483532801480, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1327", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 11.613, - "date": 1483532801480, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1348", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 6.496, - "date": 1483532801480, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1366", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -9.038, - "date": 1483532801480, - "rssi": 100, - "_id": "586d029fdbab07be5f2e138a", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -10.022, - "date": 1483532801480, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13ad", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -2.869, - "date": 1483532801480, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13cb", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -3.87, - "date": 1483532801480, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13ee", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -6.913, - "date": 1483532801480, - "rssi": 100, - "_id": "586d087bdbab07be5f2e140e", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 2.933, - "date": 1483532801480, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e142e", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": -0.658, - "date": 1483532801480, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e144f", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.262, - "date": 1483532801480, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1474", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.936, - "date": 1483532801480, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1494", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 162176, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:26:41.480000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161280, - "delta": 1.348, - "date": 1483532801480, - "rssi": 100, - "_id": "586d0f83dbab07be5f2e14b5", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -3.417, - "date": 1483532501420, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10d4", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.935, - "date": 1483532501420, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f4", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.658, - "date": 1483532501420, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1116", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -3.597, - "date": 1483532501420, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1136", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.523, - "date": 1483532501420, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1157", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.177, - "date": 1483532501420, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1178", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 0.207, - "date": 1483532501420, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1198", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 0.069, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b7", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.87, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11da", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.554, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11fa", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.314, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf490dbab07be5f2e121d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.686, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1241", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 5.385, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e125d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 3.904, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1281", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 16.247, - "date": 1483532501420, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a5", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 21.457, - "date": 1483532501420, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c6", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 14.55, - "date": 1483532501420, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e8", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 17.921, - "date": 1483532501420, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1308", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 11.911, - "date": 1483532501420, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1329", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 11.613, - "date": 1483532501420, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1349", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 6.496, - "date": 1483532501420, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1369", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -9.038, - "date": 1483532501420, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1389", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -10.022, - "date": 1483532501420, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13aa", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -2.869, - "date": 1483532501420, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13cd", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -3.87, - "date": 1483532501420, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13ef", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -6.913, - "date": 1483532501420, - "rssi": 100, - "_id": "586d087bdbab07be5f2e140f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 2.933, - "date": 1483532501420, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e142f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": -0.658, - "date": 1483532501420, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1450", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.262, - "date": 1483532501420, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1475", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 161408, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:21:41.420000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159488, - "delta": 1.936, - "date": 1483532501420, - "rssi": 100, - "_id": "586d0e58dbab07be5f2e1495", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -1.417, - "date": 1483532201043, - "rssi": 100, - "_id": "586ce7acdbab07be5f2e10cb", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -3.417, - "date": 1483532201043, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10d7", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 1.935, - "date": 1483532201043, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f7", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 1.658, - "date": 1483532201043, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1118", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -3.597, - "date": 1483532201043, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1137", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 2.523, - "date": 1483532201043, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1158", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 2.177, - "date": 1483532201043, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e117b", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 0.207, - "date": 1483532201043, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e1199", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 0.069, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b8", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 1.87, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11db", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 2.554, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11fb", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 1.314, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf490dbab07be5f2e121e", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 1.686, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e123e", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 5.385, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e125f", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 3.904, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1283", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 16.247, - "date": 1483532201043, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a6", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 21.457, - "date": 1483532201043, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c7", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 14.55, - "date": 1483532201043, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12e9", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 17.921, - "date": 1483532201043, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1309", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 11.911, - "date": 1483532201043, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e132b", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 11.613, - "date": 1483532201043, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e134a", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 6.496, - "date": 1483532201043, - "rssi": 100, - "_id": "586d0047dbab07be5f2e136a", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -9.038, - "date": 1483532201043, - "rssi": 100, - "_id": "586d029fdbab07be5f2e138b", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -10.022, - "date": 1483532201043, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13ab", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -2.869, - "date": 1483532201043, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13ce", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -3.87, - "date": 1483532201043, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13f2", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -6.913, - "date": 1483532201043, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1410", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 2.933, - "date": 1483532201043, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1430", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": -0.658, - "date": 1483532201043, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1451", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 159840, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:16:41.043000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162656, - "delta": 1.262, - "date": 1483532201043, - "rssi": 100, - "_id": "586d0d2cdbab07be5f2e1476", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 6.609, - "date": 1483531901044, - "rssi": 100, - "_id": "586ce67fdbab07be5f2e10ac", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -1.417, - "date": 1483531901044, - "rssi": 100, - "_id": "586ce7acdbab07be5f2e10cc", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -3.417, - "date": 1483531901044, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10d5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 1.935, - "date": 1483531901044, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f5", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 1.658, - "date": 1483531901044, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1117", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -3.597, - "date": 1483531901044, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1138", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 2.523, - "date": 1483531901044, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1159", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 2.177, - "date": 1483531901044, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1179", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 0.207, - "date": 1483531901044, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e119a", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 0.069, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11b9", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 1.87, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11dc", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 2.554, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11fc", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 1.314, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1221", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 1.686, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e123f", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 5.385, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1260", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 3.904, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1284", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 16.247, - "date": 1483531901044, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a7", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 21.457, - "date": 1483531901044, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c8", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 14.55, - "date": 1483531901044, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12ea", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 17.921, - "date": 1483531901044, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e130a", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 11.911, - "date": 1483531901044, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e132a", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 11.613, - "date": 1483531901044, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e134b", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 6.496, - "date": 1483531901044, - "rssi": 100, - "_id": "586d0047dbab07be5f2e136b", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -9.038, - "date": 1483531901044, - "rssi": 100, - "_id": "586d029fdbab07be5f2e138c", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -10.022, - "date": 1483531901044, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13ae", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -2.869, - "date": 1483531901044, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13cf", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -3.87, - "date": 1483531901044, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13f0", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -6.913, - "date": 1483531901044, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1411", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": 2.933, - "date": 1483531901044, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1431", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158592, - "direction": "FortyFiveUp", - "noise": 1, - "dateString": "2017-01-04T13:11:41.044000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163968, - "delta": -0.658, - "date": 1483531901044, - "rssi": 100, - "_id": "586d0ad3dbab07be5f2e1452", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 1.069, - "date": 1483531601420, - "rssi": 100, - "_id": "586ce553dbab07be5f2e108d", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 6.609, - "date": 1483531601420, - "rssi": 100, - "_id": "586ce67fdbab07be5f2e10ad", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -1.417, - "date": 1483531601420, - "rssi": 100, - "_id": "586ce7acdbab07be5f2e10cd", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -3.417, - "date": 1483531601420, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10d6", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 1.935, - "date": 1483531601420, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f6", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 1.658, - "date": 1483531601420, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1119", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -3.597, - "date": 1483531601420, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1139", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 2.523, - "date": 1483531601420, - "rssi": 100, - "_id": "586ced88dbab07be5f2e115a", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 2.177, - "date": 1483531601420, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e117a", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 0.207, - "date": 1483531601420, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e119b", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 0.069, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11ba", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 1.87, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11dd", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 2.554, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11fd", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 1.314, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf490dbab07be5f2e121f", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 1.686, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1240", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 5.385, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1261", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 3.904, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1285", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 16.247, - "date": 1483531601420, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a8", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 21.457, - "date": 1483531601420, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12c9", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 14.55, - "date": 1483531601420, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12eb", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 17.921, - "date": 1483531601420, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e130b", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 11.911, - "date": 1483531601420, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e132c", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 11.613, - "date": 1483531601420, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e134c", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 6.496, - "date": 1483531601420, - "rssi": 100, - "_id": "586d0047dbab07be5f2e136c", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -9.038, - "date": 1483531601420, - "rssi": 100, - "_id": "586d029fdbab07be5f2e138d", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -10.022, - "date": 1483531601420, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13af", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -2.869, - "date": 1483531601420, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13d0", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -3.87, - "date": 1483531601420, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13f1", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": -6.913, - "date": 1483531601420, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1412", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158304, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:06:41.420000+01:00", - "sgv": 112, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 157856, - "delta": 2.933, - "date": 1483531601420, - "rssi": 100, - "_id": "586d09a9dbab07be5f2e1432", - "type": "sgv", - "glucose": 112 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -3.331, - "date": 1483531300848, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e106d", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 1.069, - "date": 1483531300848, - "rssi": 100, - "_id": "586ce553dbab07be5f2e108e", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 6.609, - "date": 1483531300848, - "rssi": 100, - "_id": "586ce67fdbab07be5f2e10ae", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -1.417, - "date": 1483531300848, - "rssi": 100, - "_id": "586ce7acdbab07be5f2e10ce", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -3.417, - "date": 1483531300848, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10d8", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 1.935, - "date": 1483531300848, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f8", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 1.658, - "date": 1483531300848, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e111a", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -3.597, - "date": 1483531300848, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e113a", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 2.523, - "date": 1483531300848, - "rssi": 100, - "_id": "586ced88dbab07be5f2e115b", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 2.177, - "date": 1483531300848, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e117c", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 0.207, - "date": 1483531300848, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e119c", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 0.069, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11bb", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 1.87, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11de", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 2.554, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11fe", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 1.314, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1220", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 1.686, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1242", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 5.385, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1262", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 3.904, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1286", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 16.247, - "date": 1483531300848, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12a9", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 21.457, - "date": 1483531300848, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12ca", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 14.55, - "date": 1483531300848, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12ec", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 17.921, - "date": 1483531300848, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e130c", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 11.911, - "date": 1483531300848, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e132d", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 11.613, - "date": 1483531300848, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e134e", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": 6.496, - "date": 1483531300848, - "rssi": 100, - "_id": "586d0047dbab07be5f2e136d", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -9.038, - "date": 1483531300848, - "rssi": 100, - "_id": "586d029fdbab07be5f2e138f", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -10.022, - "date": 1483531300848, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13b0", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -2.869, - "date": 1483531300848, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13d1", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -3.87, - "date": 1483531300848, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13f3", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 158720, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T13:01:40.848000+01:00", - "sgv": 111, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 156864, - "delta": -6.913, - "date": 1483531300848, - "rssi": 100, - "_id": "586d087bdbab07be5f2e1413", - "type": "sgv", - "glucose": 111 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.516, - "date": 1483531002068, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e104d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -3.331, - "date": 1483531002068, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e106e", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.069, - "date": 1483531002068, - "rssi": 100, - "_id": "586ce553dbab07be5f2e108f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 6.609, - "date": 1483531002068, - "rssi": 100, - "_id": "586ce67fdbab07be5f2e10af", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -1.417, - "date": 1483531002068, - "rssi": 100, - "_id": "586ce7acdbab07be5f2e10cf", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -3.417, - "date": 1483531002068, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10d9", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.935, - "date": 1483531002068, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10f9", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.658, - "date": 1483531002068, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e111b", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -3.597, - "date": 1483531002068, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e113b", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 2.523, - "date": 1483531002068, - "rssi": 100, - "_id": "586ced88dbab07be5f2e115c", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 2.177, - "date": 1483531002068, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e117d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 0.207, - "date": 1483531002068, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e119d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 0.069, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11bc", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.87, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11df", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 2.554, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf364dbab07be5f2e11ff", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.314, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1222", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 1.686, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1243", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 5.385, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1263", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 3.904, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1287", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 16.247, - "date": 1483531002068, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12aa", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 21.457, - "date": 1483531002068, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12cb", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 14.55, - "date": 1483531002068, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12ed", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 17.921, - "date": 1483531002068, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e130d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 11.911, - "date": 1483531002068, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e132e", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 11.613, - "date": 1483531002068, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e134d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": 6.496, - "date": 1483531002068, - "rssi": 100, - "_id": "586d0047dbab07be5f2e136e", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -9.038, - "date": 1483531002068, - "rssi": 100, - "_id": "586d029fdbab07be5f2e138e", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -10.022, - "date": 1483531002068, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13b1", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -2.869, - "date": 1483531002068, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13d2", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 159264, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:56:42.068000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159936, - "delta": -3.87, - "date": 1483531002068, - "rssi": 100, - "_id": "586d074fdbab07be5f2e13f4", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -1.417, - "date": 1483530701141, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e102e", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.516, - "date": 1483530701141, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e104e", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -3.331, - "date": 1483530701141, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e106f", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.069, - "date": 1483530701141, - "rssi": 100, - "_id": "586ce553dbab07be5f2e1090", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 6.609, - "date": 1483530701141, - "rssi": 100, - "_id": "586ce67fdbab07be5f2e10b0", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -3.417, - "date": 1483530701141, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10da", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.935, - "date": 1483530701141, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10fa", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.658, - "date": 1483530701141, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e111d", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -3.597, - "date": 1483530701141, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e113c", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 2.523, - "date": 1483530701141, - "rssi": 100, - "_id": "586ced88dbab07be5f2e115d", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 2.177, - "date": 1483530701141, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e117e", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 0.207, - "date": 1483530701141, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e119e", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 0.069, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11be", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.87, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e0", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 2.554, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1200", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.314, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1223", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 1.686, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1245", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 5.385, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1264", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 3.904, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1288", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 16.247, - "date": 1483530701141, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12ab", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 21.457, - "date": 1483530701141, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12cc", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 14.55, - "date": 1483530701141, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12ee", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 17.921, - "date": 1483530701141, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e130e", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 11.911, - "date": 1483530701141, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e132f", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 11.613, - "date": 1483530701141, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1350", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": 6.496, - "date": 1483530701141, - "rssi": 100, - "_id": "586d0047dbab07be5f2e136f", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -9.038, - "date": 1483530701141, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1390", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -10.022, - "date": 1483530701141, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13b3", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 160256, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:51:41.141000+01:00", - "sgv": 113, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 158528, - "delta": -2.869, - "date": 1483530701141, - "rssi": 100, - "_id": "586d0623dbab07be5f2e13d3", - "type": "sgv", - "glucose": 113 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -2.218, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce0a4dbab07be5f2e100e", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -1.417, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e102f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.516, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e104f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -3.331, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e1070", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.069, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce553dbab07be5f2e1091", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 6.609, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce680dbab07be5f2e10b1", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -3.417, - "date": 1483530401170, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10db", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.935, - "date": 1483530401170, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10fb", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.658, - "date": 1483530401170, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e111c", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -3.597, - "date": 1483530401170, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e113d", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 2.523, - "date": 1483530401170, - "rssi": 100, - "_id": "586ced88dbab07be5f2e115e", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 2.177, - "date": 1483530401170, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e117f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 0.207, - "date": 1483530401170, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e119f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 0.069, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11bd", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.87, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e1", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 2.554, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1201", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.314, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1224", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 1.686, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1244", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 5.385, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1265", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 3.904, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf814dbab07be5f2e1289", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 16.247, - "date": 1483530401170, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12ac", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 21.457, - "date": 1483530401170, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12cd", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 14.55, - "date": 1483530401170, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12ef", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 17.921, - "date": 1483530401170, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e130f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 11.911, - "date": 1483530401170, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1330", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 11.613, - "date": 1483530401170, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e134f", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": 6.496, - "date": 1483530401170, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1370", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -9.038, - "date": 1483530401170, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1391", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 162240, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:46:41.170000+01:00", - "sgv": 114, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 159840, - "delta": -10.022, - "date": 1483530401170, - "rssi": 100, - "_id": "586d04f8dbab07be5f2e13b2", - "type": "sgv", - "glucose": 114 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -0.207, - "date": 1483530102052, - "rssi": 100, - "_id": "586cdf78dbab07be5f2e0fef", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -2.218, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce0a4dbab07be5f2e100f", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -1.417, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e1030", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.516, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e1051", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -3.331, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e1071", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.069, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce553dbab07be5f2e1092", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 6.609, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce680dbab07be5f2e10b2", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -3.417, - "date": 1483530102052, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10dc", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.935, - "date": 1483530102052, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10fc", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.658, - "date": 1483530102052, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e111f", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -3.597, - "date": 1483530102052, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e113e", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 2.523, - "date": 1483530102052, - "rssi": 100, - "_id": "586ced88dbab07be5f2e115f", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 2.177, - "date": 1483530102052, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1180", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 0.207, - "date": 1483530102052, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e11a0", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 0.069, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11bf", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.87, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e2", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 2.554, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1202", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.314, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1225", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 1.686, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1246", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 5.385, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1266", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 3.904, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf814dbab07be5f2e128a", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 16.247, - "date": 1483530102052, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12ad", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 21.457, - "date": 1483530102052, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12ce", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 14.55, - "date": 1483530102052, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12f0", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 17.921, - "date": 1483530102052, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1310", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 11.911, - "date": 1483530102052, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1331", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 11.613, - "date": 1483530102052, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1351", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": 6.496, - "date": 1483530102052, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1371", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 164736, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:41:42.052000+01:00", - "sgv": 116, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 161888, - "delta": -9.038, - "date": 1483530102052, - "rssi": 100, - "_id": "586d029fdbab07be5f2e1392", - "type": "sgv", - "glucose": 116 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -2.237, - "date": 1483529802048, - "rssi": 100, - "_id": "586cde4cdbab07be5f2e0fd1", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -0.207, - "date": 1483529802048, - "rssi": 100, - "_id": "586cdf78dbab07be5f2e0ff0", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -2.218, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce0a4dbab07be5f2e1010", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -1.417, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e1031", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.516, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e1050", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -3.331, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e1072", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.069, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce553dbab07be5f2e1093", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 6.609, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce680dbab07be5f2e10b3", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -3.417, - "date": 1483529802048, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10dd", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.935, - "date": 1483529802048, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10fd", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.658, - "date": 1483529802048, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e111e", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": -3.597, - "date": 1483529802048, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e113f", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 2.523, - "date": 1483529802048, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1160", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 2.177, - "date": 1483529802048, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1182", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 0.207, - "date": 1483529802048, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e11a1", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 0.069, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11c0", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.87, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e3", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 2.554, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1203", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.314, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1226", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 1.686, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1247", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 5.385, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1267", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 3.904, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf814dbab07be5f2e128b", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 16.247, - "date": 1483529802048, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12ae", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 21.457, - "date": 1483529802048, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12cf", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 14.55, - "date": 1483529802048, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12f1", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 17.921, - "date": 1483529802048, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1311", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 11.911, - "date": 1483529802048, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1332", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 11.613, - "date": 1483529802048, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1353", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166528, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:36:42.048000+01:00", - "sgv": 117, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 162080, - "delta": 6.496, - "date": 1483529802048, - "rssi": 100, - "_id": "586d0047dbab07be5f2e1372", - "type": "sgv", - "glucose": 117 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -4.355, - "date": 1483529500848, - "rssi": 100, - "_id": "586cdd20dbab07be5f2e0fb2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -2.237, - "date": 1483529500848, - "rssi": 100, - "_id": "586cde4cdbab07be5f2e0fd2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -0.207, - "date": 1483529500848, - "rssi": 100, - "_id": "586cdf78dbab07be5f2e0ff1", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -2.218, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce0a4dbab07be5f2e1011", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -1.417, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e1032", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.516, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e1052", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -3.331, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e1073", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.069, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce553dbab07be5f2e1094", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 6.609, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce680dbab07be5f2e10b4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -3.417, - "date": 1483529500848, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10df", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.935, - "date": 1483529500848, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10fe", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.658, - "date": 1483529500848, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1120", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": -3.597, - "date": 1483529500848, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1140", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 2.523, - "date": 1483529500848, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1161", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 2.177, - "date": 1483529500848, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1181", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 0.207, - "date": 1483529500848, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e11a2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 0.069, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11c1", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.87, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e4", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 2.554, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1204", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.314, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1229", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 1.686, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1248", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 5.385, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1268", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 3.904, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf814dbab07be5f2e128c", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 16.247, - "date": 1483529500848, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12af", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 21.457, - "date": 1483529500848, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12d0", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 14.55, - "date": 1483529500848, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12f2", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 17.921, - "date": 1483529500848, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1312", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 11.911, - "date": 1483529500848, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1333", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 166656, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:31:40.848000+01:00", - "sgv": 119, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 164160, - "delta": 11.613, - "date": 1483529500848, - "rssi": 100, - "_id": "586cff1cdbab07be5f2e1352", - "type": "sgv", - "glucose": 119 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.002, - "date": 1483529200876, - "rssi": 100, - "_id": "586cdbf3dbab07be5f2e0f93", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -4.355, - "date": 1483529200876, - "rssi": 100, - "_id": "586cdd20dbab07be5f2e0fb3", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -2.237, - "date": 1483529200876, - "rssi": 100, - "_id": "586cde4cdbab07be5f2e0fd3", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -0.207, - "date": 1483529200876, - "rssi": 100, - "_id": "586cdf78dbab07be5f2e0ff2", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -2.218, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce0a4dbab07be5f2e1012", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -1.417, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e1033", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.516, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e1053", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -3.331, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e1074", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.069, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce553dbab07be5f2e1095", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 6.609, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce680dbab07be5f2e10b5", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -3.417, - "date": 1483529200876, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10de", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.935, - "date": 1483529200876, - "rssi": 100, - "_id": "586cea04dbab07be5f2e10ff", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.658, - "date": 1483529200876, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1121", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": -3.597, - "date": 1483529200876, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1141", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 2.523, - "date": 1483529200876, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1162", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 2.177, - "date": 1483529200876, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1183", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 0.207, - "date": 1483529200876, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e11a3", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 0.069, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11c2", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.87, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e5", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 2.554, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1205", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.314, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1228", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 1.686, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e1249", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 5.385, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e1269", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 3.904, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf814dbab07be5f2e128d", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 16.247, - "date": 1483529200876, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12b0", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 21.457, - "date": 1483529200876, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12d1", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 14.55, - "date": 1483529200876, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12f3", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 17.921, - "date": 1483529200876, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1313", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 165216, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:26:40.876000+01:00", - "sgv": 123, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 168192, - "delta": 11.911, - "date": 1483529200876, - "rssi": 100, - "_id": "586cfdefdbab07be5f2e1334", - "type": "sgv", - "glucose": 123 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 4.079, - "date": 1483528900865, - "rssi": 100, - "_id": "586cdac7dbab07be5f2e0f6e", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.002, - "date": 1483528900865, - "rssi": 100, - "_id": "586cdbf3dbab07be5f2e0f94", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -4.355, - "date": 1483528900865, - "rssi": 100, - "_id": "586cdd20dbab07be5f2e0fb4", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -2.237, - "date": 1483528900865, - "rssi": 100, - "_id": "586cde4cdbab07be5f2e0fd4", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -0.207, - "date": 1483528900865, - "rssi": 100, - "_id": "586cdf78dbab07be5f2e0ff3", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -2.218, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce0a4dbab07be5f2e1013", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -1.417, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce1d1dbab07be5f2e1034", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.516, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce2fddbab07be5f2e1054", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -3.331, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce42ddbab07be5f2e1075", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.069, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce553dbab07be5f2e10a1", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 6.609, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce680dbab07be5f2e10b6", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -3.417, - "date": 1483528900865, - "rssi": 100, - "_id": "586ce8d8dbab07be5f2e10e0", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.935, - "date": 1483528900865, - "rssi": 100, - "_id": "586cea04dbab07be5f2e1100", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.658, - "date": 1483528900865, - "rssi": 100, - "_id": "586ceb30dbab07be5f2e1122", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": -3.597, - "date": 1483528900865, - "rssi": 100, - "_id": "586cec5bdbab07be5f2e1142", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 2.523, - "date": 1483528900865, - "rssi": 100, - "_id": "586ced88dbab07be5f2e1163", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 2.177, - "date": 1483528900865, - "rssi": 100, - "_id": "586ceeb3dbab07be5f2e1184", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 0.207, - "date": 1483528900865, - "rssi": 100, - "_id": "586cefe0dbab07be5f2e11a4", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 0.069, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf10cdbab07be5f2e11c3", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.87, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf238dbab07be5f2e11e7", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 2.554, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf364dbab07be5f2e1206", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.314, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf490dbab07be5f2e1227", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 1.686, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf5bddbab07be5f2e124a", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 5.385, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf6e8dbab07be5f2e126a", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 3.904, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf814dbab07be5f2e128e", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 16.247, - "date": 1483528900865, - "rssi": 100, - "_id": "586cf940dbab07be5f2e12b1", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 21.457, - "date": 1483528900865, - "rssi": 100, - "_id": "586cfa6cdbab07be5f2e12d2", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 14.55, - "date": 1483528900865, - "rssi": 100, - "_id": "586cfb98dbab07be5f2e12f4", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 163104, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:21:40.865000+01:00", - "sgv": 122, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 167264, - "delta": 17.921, - "date": 1483528900865, - "rssi": 100, - "_id": "586cfcc3dbab07be5f2e1314", - "type": "sgv", - "glucose": 122 - }, - { - "filtered": 161184, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:16:40.916000+01:00", - "sgv": 118, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163488, - "delta": 1.071, - "date": 1483528600916, - "rssi": 100, - "_id": "586cd99cdbab07be5f2e0f4f", - "type": "sgv", - "glucose": 118 - }, - { - "filtered": 161184, - "direction": "Flat", - "noise": 1, - "dateString": "2017-01-04T12:16:40.916000+01:00", - "sgv": 118, - "device": "xDrip-DexbridgeWixel", - "unfiltered": 163488, - "delta": 4.079, - "date": 1483528600916, - "rssi": 100, - "_id": "586cdac7dbab07be5f2e0f6f", - "type": "sgv", - "glucose": 118 - } -] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/iob.json b/app/src/main/java/info/nightscout/sampleData/monitor/iob.json deleted file mode 100644 index f96f4137a9..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/monitor/iob.json +++ /dev/null @@ -1 +0,0 @@ -[{"iob":5.248,"activity":0.0766,"bolussnooze":1.371,"basaliob":1.751,"netbasalinsulin":4.95,"hightempinsulin":5.05,"time":"2017-01-04T15:40:31.000Z"},{"iob":4.818,"activity":0.076,"bolussnooze":1.057,"basaliob":1.55,"netbasalinsulin":4.85,"hightempinsulin":5,"time":"2017-01-04T15:45:31.000Z"},{"iob":4.391,"activity":0.0753,"bolussnooze":0.785,"basaliob":1.357,"netbasalinsulin":4.65,"hightempinsulin":4.85,"time":"2017-01-04T15:50:31.000Z"},{"iob":3.967,"activity":0.0749,"bolussnooze":0.556,"basaliob":1.171,"netbasalinsulin":4.4,"hightempinsulin":4.65,"time":"2017-01-04T15:55:31.000Z"},{"iob":3.545,"activity":0.0741,"bolussnooze":0.369,"basaliob":0.992,"netbasalinsulin":4.3,"hightempinsulin":4.6,"time":"2017-01-04T16:00:31.000Z"},{"iob":3.139,"activity":0.0713,"bolussnooze":0.224,"basaliob":0.821,"netbasalinsulin":4.25,"hightempinsulin":4.6,"time":"2017-01-04T16:05:31.000Z"},{"iob":2.796,"activity":0.0686,"bolussnooze":0.121,"basaliob":0.709,"netbasalinsulin":4.2,"hightempinsulin":4.55,"time":"2017-01-04T16:10:31.000Z"},{"iob":2.471,"activity":0.0648,"bolussnooze":0.059,"basaliob":0.604,"netbasalinsulin":4.15,"hightempinsulin":4.5,"time":"2017-01-04T16:15:31.000Z"},{"iob":2.173,"activity":0.0594,"bolussnooze":0.019,"basaliob":0.508,"netbasalinsulin":4.05,"hightempinsulin":4.4,"time":"2017-01-04T16:20:31.000Z"},{"iob":1.901,"activity":0.0546,"bolussnooze":0.001,"basaliob":0.42,"netbasalinsulin":4,"hightempinsulin":4.35,"time":"2017-01-04T16:25:31.000Z"},{"iob":1.65,"activity":0.0502,"bolussnooze":0,"basaliob":0.341,"netbasalinsulin":3.95,"hightempinsulin":4.3,"time":"2017-01-04T16:30:31.000Z"},{"iob":1.419,"activity":0.0461,"bolussnooze":0,"basaliob":0.271,"netbasalinsulin":3.85,"hightempinsulin":4.2,"time":"2017-01-04T16:35:31.000Z"},{"iob":1.21,"activity":0.0419,"bolussnooze":0,"basaliob":0.211,"netbasalinsulin":3.65,"hightempinsulin":4,"time":"2017-01-04T16:40:31.000Z"},{"iob":1.022,"activity":0.0377,"bolussnooze":0,"basaliob":0.162,"netbasalinsulin":3.2,"hightempinsulin":3.55,"time":"2017-01-04T16:45:31.000Z"},{"iob":0.854,"activity":0.0336,"bolussnooze":0,"basaliob":0.123,"netbasalinsulin":2.75,"hightempinsulin":3.1,"time":"2017-01-04T16:50:31.000Z"},{"iob":0.705,"activity":0.0298,"bolussnooze":0,"basaliob":0.093,"netbasalinsulin":2.3,"hightempinsulin":2.65,"time":"2017-01-04T16:55:31.000Z"},{"iob":0.573,"activity":0.0263,"bolussnooze":0,"basaliob":0.069,"netbasalinsulin":1.8,"hightempinsulin":2.15,"time":"2017-01-04T17:00:31.000Z"},{"iob":0.458,"activity":0.0232,"bolussnooze":0,"basaliob":0.05,"netbasalinsulin":1.35,"hightempinsulin":1.7,"time":"2017-01-04T17:05:31.000Z"},{"iob":0.356,"activity":0.0203,"bolussnooze":0,"basaliob":0.035,"netbasalinsulin":0.85,"hightempinsulin":1.2,"time":"2017-01-04T17:10:31.000Z"},{"iob":0.268,"activity":0.0178,"bolussnooze":0,"basaliob":0.022,"netbasalinsulin":0.6,"hightempinsulin":0.95,"time":"2017-01-04T17:15:31.000Z"},{"iob":0.191,"activity":0.0153,"bolussnooze":0,"basaliob":0.011,"netbasalinsulin":0.6,"hightempinsulin":0.95,"time":"2017-01-04T17:20:31.000Z"},{"iob":0.127,"activity":0.0129,"bolussnooze":0,"basaliob":0.001,"netbasalinsulin":0.65,"hightempinsulin":0.95,"time":"2017-01-04T17:25:31.000Z"},{"iob":0.075,"activity":0.0104,"bolussnooze":0,"basaliob":-0.007,"netbasalinsulin":0.6,"hightempinsulin":0.9,"time":"2017-01-04T17:30:31.000Z"},{"iob":0.035,"activity":0.008,"bolussnooze":0,"basaliob":-0.013,"netbasalinsulin":0.6,"hightempinsulin":0.9,"time":"2017-01-04T17:35:31.000Z"},{"iob":0.007,"activity":0.0056,"bolussnooze":0,"basaliob":-0.018,"netbasalinsulin":0.6,"hightempinsulin":0.9,"time":"2017-01-04T17:40:31.000Z"},{"iob":-0.01,"activity":0.0034,"bolussnooze":0,"basaliob":-0.021,"netbasalinsulin":0.55,"hightempinsulin":0.85,"time":"2017-01-04T17:45:31.000Z"},{"iob":-0.02,"activity":0.0021,"bolussnooze":0,"basaliob":-0.023,"netbasalinsulin":0.5,"hightempinsulin":0.8,"time":"2017-01-04T17:50:31.000Z"},{"iob":-0.024,"activity":0.0008,"bolussnooze":0,"basaliob":-0.024,"netbasalinsulin":0.45,"hightempinsulin":0.75,"time":"2017-01-04T17:55:31.000Z"},{"iob":-0.023,"activity":-0.0001,"bolussnooze":0,"basaliob":-0.023,"netbasalinsulin":0.45,"hightempinsulin":0.75,"time":"2017-01-04T18:00:31.000Z"},{"iob":-0.022,"activity":-0.0003,"bolussnooze":0,"basaliob":-0.022,"netbasalinsulin":0.4,"hightempinsulin":0.7,"time":"2017-01-04T18:05:31.000Z"},{"iob":-0.019,"activity":-0.0005,"bolussnooze":0,"basaliob":-0.019,"netbasalinsulin":0.35,"hightempinsulin":0.65,"time":"2017-01-04T18:10:31.000Z"},{"iob":-0.016,"activity":-0.0007,"bolussnooze":0,"basaliob":-0.016,"netbasalinsulin":0.2,"hightempinsulin":0.5,"time":"2017-01-04T18:15:31.000Z"},{"iob":-0.012,"activity":-0.0008,"bolussnooze":0,"basaliob":-0.012,"netbasalinsulin":0.05,"hightempinsulin":0.35,"time":"2017-01-04T18:20:31.000Z"},{"iob":-0.008,"activity":-0.0007,"bolussnooze":0,"basaliob":-0.008,"netbasalinsulin":-0.15,"hightempinsulin":0.15,"time":"2017-01-04T18:25:31.000Z"},{"iob":-0.005,"activity":-0.0006,"bolussnooze":0,"basaliob":-0.005,"netbasalinsulin":-0.3,"hightempinsulin":0,"time":"2017-01-04T18:30:31.000Z"},{"iob":-0.003,"activity":-0.0004,"bolussnooze":0,"basaliob":-0.003,"netbasalinsulin":-0.3,"hightempinsulin":0,"time":"2017-01-04T18:35:31.000Z"},{"iob":-0.002,"activity":-0.0003,"bolussnooze":0,"basaliob":-0.002,"netbasalinsulin":-0.25,"hightempinsulin":0,"time":"2017-01-04T18:40:31.000Z"},{"iob":-0.001,"activity":-0.0002,"bolussnooze":0,"basaliob":-0.001,"netbasalinsulin":-0.2,"hightempinsulin":0,"time":"2017-01-04T18:45:31.000Z"},{"iob":0,"activity":-0.0001,"bolussnooze":0,"basaliob":0,"netbasalinsulin":-0.15,"hightempinsulin":0,"time":"2017-01-04T18:50:31.000Z"},{"iob":0,"activity":0,"bolussnooze":0,"basaliob":0,"netbasalinsulin":-0.1,"hightempinsulin":0,"time":"2017-01-04T18:55:31.000Z"},{"iob":0,"activity":0,"bolussnooze":0,"basaliob":0,"netbasalinsulin":-0.05,"hightempinsulin":0,"time":"2017-01-04T19:00:31.000Z"},{"iob":0,"activity":0,"bolussnooze":0,"basaliob":0,"netbasalinsulin":0,"hightempinsulin":0,"time":"2017-01-04T19:05:31.000Z"}] diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/meal.json b/app/src/main/java/info/nightscout/sampleData/monitor/meal.json deleted file mode 100644 index d0e41ca9fa..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/monitor/meal.json +++ /dev/null @@ -1 +0,0 @@ -{"carbs":0,"boluses":8,"mealCOB":0} diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/mmtune.json b/app/src/main/java/info/nightscout/sampleData/monitor/mmtune.json deleted file mode 100644 index 460af83e51..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/monitor/mmtune.json +++ /dev/null @@ -1,131 +0,0 @@ -{ - "scanDetails": [ - [ - "868.300", - 0, - -99 - ], - [ - "868.312", - 0, - -99 - ], - [ - "868.324", - 0, - -99 - ], - [ - "868.336", - 0, - -99 - ], - [ - "868.348", - 0, - -99 - ], - [ - "868.360", - 0, - -99 - ], - [ - "868.372", - 4, - -91 - ], - [ - "868.384", - 5, - -81 - ], - [ - "868.396", - 5, - -78 - ], - [ - "868.408", - 5, - -77 - ], - [ - "868.420", - 5, - -76 - ], - [ - "868.432", - 5, - -76 - ], - [ - "868.444", - 5, - -76 - ], - [ - "868.456", - 5, - -76 - ], - [ - "868.468", - 5, - -75 - ], - [ - "868.480", - 5, - -76 - ], - [ - "868.492", - 5, - -76 - ], - [ - "868.504", - 5, - -77 - ], - [ - "868.516", - 5, - -80 - ], - [ - "868.528", - 5, - -86 - ], - [ - "868.540", - 0, - -99 - ], - [ - "868.552", - 0, - -99 - ], - [ - "868.564", - 0, - -99 - ], - [ - "868.576", - 0, - -99 - ], - [ - "868.588", - 0, - -99 - ] - ], - "setFreq": 868.468, - "usedDefault": false -} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/pumphistory-zoned.json b/app/src/main/java/info/nightscout/sampleData/monitor/pumphistory-zoned.json deleted file mode 100644 index 3070d01cd5..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/monitor/pumphistory-zoned.json +++ /dev/null @@ -1,936 +0,0 @@ -[ - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T16:37:57 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:37:57+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3965104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:37:57 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:37:57+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "3965104411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T16:28:28 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:28:28+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1c5c104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:28:28 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:28:28+01:00", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "1c5c104411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T16:21:31 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:21:31+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1f55104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:21:31 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:21:31+01:00", - "_body": "00", - "_head": "337c", - "rate": 3.1, - "_date": "1f55104411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T16:15:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:15:29+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1d4f104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:15:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:15:29+01:00", - "_body": "00", - "_head": "3362", - "rate": 2.45, - "_date": "1d4f104411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T16:08:41 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:08:41+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2948104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:08:41 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:08:41+01:00", - "_body": "00", - "_head": "334e", - "rate": 1.95, - "_date": "2948104411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T16:06:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:06:50+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3246104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:06:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:06:50+01:00", - "_body": "00", - "_head": "3332", - "rate": 1.25, - "_date": "3246104411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T16:02:03 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:02:03+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0342104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:02:03 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:02:03+01:00", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "0342104411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T16:01:28 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:01:28+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1c41104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:01:28 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:01:28+01:00", - "_body": "00", - "_head": "3396", - "rate": 3.75, - "_date": "1c41104411" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-04T15:58:37 head[4], body[0] op[0x01]", - "timestamp": "2017-01-04T15:58:37+01:00", - "_body": "", - "programmed": 2.0, - "_head": "01141400", - "amount": 2.0, - "duration": 0, - "type": "normal", - "_date": "257a4f0411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T15:55:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:55:29+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1d770f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:55:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:55:29+01:00", - "_body": "00", - "_head": "332d", - "rate": 1.125, - "_date": "1d770f4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T15:46:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:46:50+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "326e0f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:46:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:46:50+01:00", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "326e0f4411" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-04T15:44:07 head[4], body[0] op[0x01]", - "timestamp": "2017-01-04T15:44:07+01:00", - "_body": "", - "programmed": 2.0, - "_head": "01141400", - "amount": 2.0, - "duration": 0, - "type": "normal", - "_date": "076c4f0411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T15:43:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:43:50+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "326b0f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:43:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:43:50+01:00", - "_body": "00", - "_head": "3341", - "rate": 1.625, - "_date": "326b0f4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T15:41:22 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:41:22+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "16690f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:41:22 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:41:22+01:00", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "16690f4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T15:28:24 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:28:24+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "185c0f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:28:24 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:28:24+01:00", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "185c0f4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T15:22:58 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:22:58+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3a560f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:22:58 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:22:58+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "3a560f4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T15:13:01 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:13:01+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "014d0f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:13:01 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:13:01+01:00", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "014d0f4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T14:50:21 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:50:21+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "15720e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:50:21 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:50:21+01:00", - "_body": "00", - "_head": "33fb", - "rate": 6.275, - "_date": "15720e4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T14:38:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:38:50+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "32660e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:38:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:38:50+01:00", - "_body": "00", - "_head": "33e7", - "rate": 5.775, - "_date": "32660e4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T14:34:03 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:34:03+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "03620e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:34:03 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:34:03+01:00", - "_body": "00", - "_head": "3344", - "rate": 1.7, - "_date": "03620e4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T14:33:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:33:29+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1d610e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:33:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:33:29+01:00", - "_body": "00", - "_head": "3392", - "rate": 3.65, - "_date": "1d610e4411" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-04T14:32:05 head[4], body[0] op[0x01]", - "timestamp": "2017-01-04T14:32:05+01:00", - "_body": "", - "programmed": 1.0, - "_head": "010a0a00", - "amount": 1.0, - "duration": 0, - "type": "normal", - "_date": "05604e0411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T14:26:30 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:26:30+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1e5a0e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:26:30 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:26:30+01:00", - "_body": "00", - "_head": "3320", - "rate": 0.8, - "_date": "1e5a0e4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T14:25:47 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:25:47+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2f590e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:25:47 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:25:47+01:00", - "_body": "00", - "_head": "3378", - "rate": 3.0, - "_date": "2f590e4411" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-04T14:22:59 head[4], body[0] op[0x01]", - "timestamp": "2017-01-04T14:22:59+01:00", - "_body": "", - "programmed": 2.0, - "_head": "01141400", - "amount": 2.0, - "duration": 0, - "type": "normal", - "_date": "3b564e0411" - }, - { - "_type": "Prime", - "_description": "Prime 2017-01-04T14:18:15 head[5], body[0] op[0x03]", - "timestamp": "2017-01-04T14:18:15+01:00", - "_body": "", - "_head": "0300000027", - "amount": 3.9, - "fixed": 0.0, - "type": "manual", - "_date": "0f522e0411" - }, - { - "_type": "Rewind", - "_description": "Rewind 2017-01-04T14:18:03 head[2], body[0] op[0x21]", - "timestamp": "2017-01-04T14:18:03+01:00", - "_body": "", - "_head": "2100", - "_date": "03520e0411" - }, - { - "_type": "Prime", - "_description": "Prime 2017-01-04T14:17:15 head[5], body[0] op[0x03]", - "timestamp": "2017-01-04T14:17:15+01:00", - "_body": "", - "_head": "03000a000a", - "amount": 1.0, - "fixed": 1.0, - "type": "fixed", - "_date": "0f510e0411" - }, - { - "_type": "Prime", - "_description": "Prime 2017-01-04T14:14:56 head[5], body[0] op[0x03]", - "timestamp": "2017-01-04T14:14:56+01:00", - "_body": "", - "_head": "0300190019", - "amount": 2.5, - "fixed": 2.5, - "type": "fixed", - "_date": "384e0e0411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T14:14:32 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:14:32+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "204e0e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:14:32 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:14:32+01:00", - "_body": "00", - "_head": "3346", - "rate": 1.75, - "_date": "204e0e4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T14:09:45 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:09:45+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2d490e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:09:45 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:09:45+01:00", - "_body": "00", - "_head": "3337", - "rate": 1.375, - "_date": "2d490e4411" - }, - { - "_type": "ClearAlarm", - "_description": "ClearAlarm 2017-01-04T14:04:16 head[2], body[0] op[0x0c]", - "timestamp": "2017-01-04T14:04:16+01:00", - "_body": "", - "_head": "0c04", - "_date": "10440e0411" - }, - { - "_type": "AlarmPump", - "_description": "AlarmPump 2017-01-04T14:04:05 head[4], body[0] op[0x06]", - "timestamp": "2017-01-04T14:04:05+01:00", - "_body": "", - "_head": "06040bff", - "_date": "05444e4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:57:38 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:57:38+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "26790d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:57:38 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:57:38+01:00", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "26790d4411" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-04T13:53:05 head[4], body[0] op[0x01]", - "timestamp": "2017-01-04T13:53:05+01:00", - "_body": "", - "programmed": 1.0, - "_head": "010a0a00", - "amount": 1.0, - "duration": 0, - "type": "normal", - "_date": "05754d0411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:47:51 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:47:51+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "336f0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:47:51 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:47:51+01:00", - "_body": "00", - "_head": "3368", - "rate": 2.6, - "_date": "336f0d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:43:53 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:43:53+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "356b0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:43:53 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:43:53+01:00", - "_body": "00", - "_head": "3355", - "rate": 2.125, - "_date": "356b0d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:40:04 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:40:04+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "04680d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:40:04 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:40:04+01:00", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "04680d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:27:46 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:27:46+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2e5b0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:27:46 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:27:46+01:00", - "_body": "00", - "_head": "3348", - "rate": 1.8, - "_date": "2e5b0d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:27:00 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:27:00+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "005b0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:27:00 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:27:00+01:00", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "005b0d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:20:49 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:20:49+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "31540d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:20:49 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:20:49+01:00", - "_body": "00", - "_head": "332d", - "rate": 1.125, - "_date": "31540d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:15:40 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:15:40+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "284f0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:15:40 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:15:40+01:00", - "_body": "00", - "_head": "3373", - "rate": 2.875, - "_date": "284f0d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:15:31 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:15:31+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1f4f0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:15:31 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:15:31+01:00", - "_body": "00", - "_head": "3373", - "rate": 2.875, - "_date": "1f4f0d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:08:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:08:29+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1d480d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:08:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:08:29+01:00", - "_body": "00", - "_head": "332c", - "rate": 1.1, - "_date": "1d480d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:03:28 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:03:28+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1c430d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:03:28 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:03:28+01:00", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "1c430d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T12:57:44 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:57:44+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2c790c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:57:44 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:57:44+01:00", - "_body": "00", - "_head": "332a", - "rate": 1.05, - "_date": "2c790c4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T12:47:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:47:29+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1d6f0c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:47:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:47:29+01:00", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "1d6f0c4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T12:35:30 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:35:30+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1e630c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:35:30 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:35:30+01:00", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "1e630c4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T12:23:47 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:23:47+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2f570c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:23:47 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:23:47+01:00", - "_body": "00", - "_head": "33b5", - "rate": 4.525, - "_date": "2f570c4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T12:18:48 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:18:48+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "30520c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:18:48 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:18:48+01:00", - "_body": "00", - "_head": "334a", - "rate": 1.85, - "_date": "30520c4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T12:13:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:13:29+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1d4d0c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:13:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:13:29+01:00", - "_body": "00", - "_head": "3337", - "rate": 1.375, - "_date": "1d4d0c4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T12:08:07 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:08:07+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "07480c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:08:07 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:08:07+01:00", - "_body": "00", - "_head": "3324", - "rate": 0.9, - "_date": "07480c4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T11:55:46 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T11:55:46+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2e770b4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T11:55:46 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T11:55:46+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "2e770b4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T11:42:44 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T11:42:44+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2c6a0b4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T11:42:44 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T11:42:44+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "2c6a0b4411" - } -] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/pumphistory.json b/app/src/main/java/info/nightscout/sampleData/monitor/pumphistory.json deleted file mode 100644 index 709365d77c..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/monitor/pumphistory.json +++ /dev/null @@ -1,936 +0,0 @@ -[ - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T16:37:57 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:37:57", - "_body": "", - "_head": "1601", - "_date": "3965104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:37:57 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:37:57", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "3965104411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T16:28:28 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:28:28", - "_body": "", - "_head": "1601", - "_date": "1c5c104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:28:28 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:28:28", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "1c5c104411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T16:21:31 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:21:31", - "_body": "", - "_head": "1601", - "_date": "1f55104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:21:31 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:21:31", - "_body": "00", - "_head": "337c", - "rate": 3.1, - "_date": "1f55104411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T16:15:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:15:29", - "_body": "", - "_head": "1601", - "_date": "1d4f104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:15:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:15:29", - "_body": "00", - "_head": "3362", - "rate": 2.45, - "_date": "1d4f104411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T16:08:41 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:08:41", - "_body": "", - "_head": "1601", - "_date": "2948104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:08:41 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:08:41", - "_body": "00", - "_head": "334e", - "rate": 1.95, - "_date": "2948104411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T16:06:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:06:50", - "_body": "", - "_head": "1601", - "_date": "3246104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:06:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:06:50", - "_body": "00", - "_head": "3332", - "rate": 1.25, - "_date": "3246104411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T16:02:03 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:02:03", - "_body": "", - "_head": "1601", - "_date": "0342104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:02:03 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:02:03", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "0342104411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T16:01:28 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:01:28", - "_body": "", - "_head": "1601", - "_date": "1c41104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:01:28 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:01:28", - "_body": "00", - "_head": "3396", - "rate": 3.75, - "_date": "1c41104411" - }, - { - "programmed": 2.0, - "_type": "Bolus", - "type": "normal", - "_description": "Bolus 2017-01-04T15:58:37 head[4], body[0] op[0x01]", - "duration": 0, - "timestamp": "2017-01-04T15:58:37", - "_body": "", - "_head": "01141400", - "amount": 2.0, - "_date": "257a4f0411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T15:55:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:55:29", - "_body": "", - "_head": "1601", - "_date": "1d770f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:55:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:55:29", - "_body": "00", - "_head": "332d", - "rate": 1.125, - "_date": "1d770f4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T15:46:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:46:50", - "_body": "", - "_head": "1601", - "_date": "326e0f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:46:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:46:50", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "326e0f4411" - }, - { - "programmed": 2.0, - "_type": "Bolus", - "type": "normal", - "_description": "Bolus 2017-01-04T15:44:07 head[4], body[0] op[0x01]", - "duration": 0, - "timestamp": "2017-01-04T15:44:07", - "_body": "", - "_head": "01141400", - "amount": 2.0, - "_date": "076c4f0411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T15:43:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:43:50", - "_body": "", - "_head": "1601", - "_date": "326b0f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:43:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:43:50", - "_body": "00", - "_head": "3341", - "rate": 1.625, - "_date": "326b0f4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T15:41:22 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:41:22", - "_body": "", - "_head": "1601", - "_date": "16690f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:41:22 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:41:22", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "16690f4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T15:28:24 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:28:24", - "_body": "", - "_head": "1601", - "_date": "185c0f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:28:24 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:28:24", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "185c0f4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T15:22:58 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:22:58", - "_body": "", - "_head": "1601", - "_date": "3a560f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:22:58 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:22:58", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "3a560f4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T15:13:01 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:13:01", - "_body": "", - "_head": "1601", - "_date": "014d0f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:13:01 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:13:01", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "014d0f4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T14:50:21 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:50:21", - "_body": "", - "_head": "1601", - "_date": "15720e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:50:21 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:50:21", - "_body": "00", - "_head": "33fb", - "rate": 6.275, - "_date": "15720e4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T14:38:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:38:50", - "_body": "", - "_head": "1601", - "_date": "32660e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:38:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:38:50", - "_body": "00", - "_head": "33e7", - "rate": 5.775, - "_date": "32660e4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T14:34:03 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:34:03", - "_body": "", - "_head": "1601", - "_date": "03620e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:34:03 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:34:03", - "_body": "00", - "_head": "3344", - "rate": 1.7, - "_date": "03620e4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T14:33:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:33:29", - "_body": "", - "_head": "1601", - "_date": "1d610e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:33:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:33:29", - "_body": "00", - "_head": "3392", - "rate": 3.65, - "_date": "1d610e4411" - }, - { - "programmed": 1.0, - "_type": "Bolus", - "type": "normal", - "_description": "Bolus 2017-01-04T14:32:05 head[4], body[0] op[0x01]", - "duration": 0, - "timestamp": "2017-01-04T14:32:05", - "_body": "", - "_head": "010a0a00", - "amount": 1.0, - "_date": "05604e0411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T14:26:30 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:26:30", - "_body": "", - "_head": "1601", - "_date": "1e5a0e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:26:30 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:26:30", - "_body": "00", - "_head": "3320", - "rate": 0.8, - "_date": "1e5a0e4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T14:25:47 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:25:47", - "_body": "", - "_head": "1601", - "_date": "2f590e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:25:47 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:25:47", - "_body": "00", - "_head": "3378", - "rate": 3.0, - "_date": "2f590e4411" - }, - { - "programmed": 2.0, - "_type": "Bolus", - "type": "normal", - "_description": "Bolus 2017-01-04T14:22:59 head[4], body[0] op[0x01]", - "duration": 0, - "timestamp": "2017-01-04T14:22:59", - "_body": "", - "_head": "01141400", - "amount": 2.0, - "_date": "3b564e0411" - }, - { - "_type": "Prime", - "type": "manual", - "_description": "Prime 2017-01-04T14:18:15 head[5], body[0] op[0x03]", - "timestamp": "2017-01-04T14:18:15", - "_body": "", - "fixed": 0.0, - "_head": "0300000027", - "amount": 3.9, - "_date": "0f522e0411" - }, - { - "_type": "Rewind", - "_description": "Rewind 2017-01-04T14:18:03 head[2], body[0] op[0x21]", - "timestamp": "2017-01-04T14:18:03", - "_body": "", - "_head": "2100", - "_date": "03520e0411" - }, - { - "_type": "Prime", - "type": "fixed", - "_description": "Prime 2017-01-04T14:17:15 head[5], body[0] op[0x03]", - "timestamp": "2017-01-04T14:17:15", - "_body": "", - "fixed": 1.0, - "_head": "03000a000a", - "amount": 1.0, - "_date": "0f510e0411" - }, - { - "_type": "Prime", - "type": "fixed", - "_description": "Prime 2017-01-04T14:14:56 head[5], body[0] op[0x03]", - "timestamp": "2017-01-04T14:14:56", - "_body": "", - "fixed": 2.5, - "_head": "0300190019", - "amount": 2.5, - "_date": "384e0e0411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T14:14:32 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:14:32", - "_body": "", - "_head": "1601", - "_date": "204e0e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:14:32 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:14:32", - "_body": "00", - "_head": "3346", - "rate": 1.75, - "_date": "204e0e4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T14:09:45 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:09:45", - "_body": "", - "_head": "1601", - "_date": "2d490e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:09:45 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:09:45", - "_body": "00", - "_head": "3337", - "rate": 1.375, - "_date": "2d490e4411" - }, - { - "_type": "ClearAlarm", - "_description": "ClearAlarm 2017-01-04T14:04:16 head[2], body[0] op[0x0c]", - "timestamp": "2017-01-04T14:04:16", - "_body": "", - "_head": "0c04", - "_date": "10440e0411" - }, - { - "_type": "AlarmPump", - "_description": "AlarmPump 2017-01-04T14:04:05 head[4], body[0] op[0x06]", - "timestamp": "2017-01-04T14:04:05", - "_body": "", - "_head": "06040bff", - "_date": "05444e4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:57:38 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:57:38", - "_body": "", - "_head": "1601", - "_date": "26790d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:57:38 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:57:38", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "26790d4411" - }, - { - "programmed": 1.0, - "_type": "Bolus", - "type": "normal", - "_description": "Bolus 2017-01-04T13:53:05 head[4], body[0] op[0x01]", - "duration": 0, - "timestamp": "2017-01-04T13:53:05", - "_body": "", - "_head": "010a0a00", - "amount": 1.0, - "_date": "05754d0411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:47:51 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:47:51", - "_body": "", - "_head": "1601", - "_date": "336f0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:47:51 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:47:51", - "_body": "00", - "_head": "3368", - "rate": 2.6, - "_date": "336f0d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:43:53 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:43:53", - "_body": "", - "_head": "1601", - "_date": "356b0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:43:53 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:43:53", - "_body": "00", - "_head": "3355", - "rate": 2.125, - "_date": "356b0d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:40:04 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:40:04", - "_body": "", - "_head": "1601", - "_date": "04680d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:40:04 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:40:04", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "04680d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:27:46 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:27:46", - "_body": "", - "_head": "1601", - "_date": "2e5b0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:27:46 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:27:46", - "_body": "00", - "_head": "3348", - "rate": 1.8, - "_date": "2e5b0d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:27:00 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:27:00", - "_body": "", - "_head": "1601", - "_date": "005b0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:27:00 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:27:00", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "005b0d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:20:49 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:20:49", - "_body": "", - "_head": "1601", - "_date": "31540d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:20:49 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:20:49", - "_body": "00", - "_head": "332d", - "rate": 1.125, - "_date": "31540d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:15:40 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:15:40", - "_body": "", - "_head": "1601", - "_date": "284f0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:15:40 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:15:40", - "_body": "00", - "_head": "3373", - "rate": 2.875, - "_date": "284f0d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:15:31 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:15:31", - "_body": "", - "_head": "1601", - "_date": "1f4f0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:15:31 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:15:31", - "_body": "00", - "_head": "3373", - "rate": 2.875, - "_date": "1f4f0d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:08:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:08:29", - "_body": "", - "_head": "1601", - "_date": "1d480d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:08:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:08:29", - "_body": "00", - "_head": "332c", - "rate": 1.1, - "_date": "1d480d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:03:28 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:03:28", - "_body": "", - "_head": "1601", - "_date": "1c430d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:03:28 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:03:28", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "1c430d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T12:57:44 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:57:44", - "_body": "", - "_head": "1601", - "_date": "2c790c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:57:44 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:57:44", - "_body": "00", - "_head": "332a", - "rate": 1.05, - "_date": "2c790c4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T12:47:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:47:29", - "_body": "", - "_head": "1601", - "_date": "1d6f0c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:47:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:47:29", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "1d6f0c4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T12:35:30 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:35:30", - "_body": "", - "_head": "1601", - "_date": "1e630c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:35:30 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:35:30", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "1e630c4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T12:23:47 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:23:47", - "_body": "", - "_head": "1601", - "_date": "2f570c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:23:47 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:23:47", - "_body": "00", - "_head": "33b5", - "rate": 4.525, - "_date": "2f570c4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T12:18:48 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:18:48", - "_body": "", - "_head": "1601", - "_date": "30520c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:18:48 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:18:48", - "_body": "00", - "_head": "334a", - "rate": 1.85, - "_date": "30520c4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T12:13:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:13:29", - "_body": "", - "_head": "1601", - "_date": "1d4d0c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:13:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:13:29", - "_body": "00", - "_head": "3337", - "rate": 1.375, - "_date": "1d4d0c4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T12:08:07 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:08:07", - "_body": "", - "_head": "1601", - "_date": "07480c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:08:07 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:08:07", - "_body": "00", - "_head": "3324", - "rate": 0.9, - "_date": "07480c4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T11:55:46 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T11:55:46", - "_body": "", - "_head": "1601", - "_date": "2e770b4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T11:55:46 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T11:55:46", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "2e770b4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T11:42:44 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T11:42:44", - "_body": "", - "_head": "1601", - "_date": "2c6a0b4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T11:42:44 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T11:42:44", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "2c6a0b4411" - } -] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/reservoir.json b/app/src/main/java/info/nightscout/sampleData/monitor/reservoir.json deleted file mode 100644 index 8044dad1ca..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/monitor/reservoir.json +++ /dev/null @@ -1 +0,0 @@ -120.5 \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/status.json b/app/src/main/java/info/nightscout/sampleData/monitor/status.json deleted file mode 100644 index 557b2e011f..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/monitor/status.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "status": "normal", - "bolusing": false, - "suspended": false -} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/monitor/temp_basal.json b/app/src/main/java/info/nightscout/sampleData/monitor/temp_basal.json deleted file mode 100644 index 199234eef0..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/monitor/temp_basal.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "duration": 28, - "rate": 0.0, - "temp": "absolute" -} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/autosens.json b/app/src/main/java/info/nightscout/sampleData/settings/autosens.json deleted file mode 100644 index 531ce45238..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/settings/autosens.json +++ /dev/null @@ -1 +0,0 @@ -{"ratio":1.4} diff --git a/app/src/main/java/info/nightscout/sampleData/settings/basal_profile.json b/app/src/main/java/info/nightscout/sampleData/settings/basal_profile.json deleted file mode 100644 index 80e240fb56..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/settings/basal_profile.json +++ /dev/null @@ -1,140 +0,0 @@ -[ - { - "i": 0, - "start": "00:00:00", - "rate": 1.0, - "minutes": 0 - }, - { - "i": 1, - "start": "01:00:00", - "rate": 0.9, - "minutes": 60 - }, - { - "i": 2, - "start": "02:00:00", - "rate": 0.8, - "minutes": 120 - }, - { - "i": 3, - "start": "03:00:00", - "rate": 0.8, - "minutes": 180 - }, - { - "i": 4, - "start": "04:00:00", - "rate": 1.3, - "minutes": 240 - }, - { - "i": 5, - "start": "05:00:00", - "rate": 1.4000000000000001, - "minutes": 300 - }, - { - "i": 6, - "start": "06:00:00", - "rate": 1.8, - "minutes": 360 - }, - { - "i": 7, - "start": "07:00:00", - "rate": 1.8, - "minutes": 420 - }, - { - "i": 8, - "start": "08:00:00", - "rate": 1.8, - "minutes": 480 - }, - { - "i": 9, - "start": "09:00:00", - "rate": 1.5, - "minutes": 540 - }, - { - "i": 10, - "start": "10:00:00", - "rate": 1.0, - "minutes": 600 - }, - { - "i": 11, - "start": "11:00:00", - "rate": 0.9, - "minutes": 660 - }, - { - "i": 12, - "start": "12:00:00", - "rate": 0.6000000000000001, - "minutes": 720 - }, - { - "i": 13, - "start": "13:00:00", - "rate": 0.6000000000000001, - "minutes": 780 - }, - { - "i": 14, - "start": "14:00:00", - "rate": 0.6000000000000001, - "minutes": 840 - }, - { - "i": 15, - "start": "15:00:00", - "rate": 0.6000000000000001, - "minutes": 900 - }, - { - "i": 16, - "start": "17:00:00", - "rate": 0.6000000000000001, - "minutes": 1020 - }, - { - "i": 17, - "start": "18:00:00", - "rate": 0.6000000000000001, - "minutes": 1080 - }, - { - "i": 18, - "start": "19:00:00", - "rate": 0.6000000000000001, - "minutes": 1140 - }, - { - "i": 19, - "start": "20:00:00", - "rate": 0.6000000000000001, - "minutes": 1200 - }, - { - "i": 20, - "start": "21:00:00", - "rate": 0.6000000000000001, - "minutes": 1260 - }, - { - "i": 21, - "start": "22:00:00", - "rate": 0.6000000000000001, - "minutes": 1320 - }, - { - "i": 22, - "start": "23:00:00", - "rate": 0.6000000000000001, - "minutes": 1380 - } -] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/bg_targets.json b/app/src/main/java/info/nightscout/sampleData/settings/bg_targets.json deleted file mode 100644 index a53f740ae4..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/settings/bg_targets.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "units": "mg/dL", - "raw": "0x01 0x00 0x5a 0x5a 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00", - "user_preferred_units": "mg/dL", - "targets": [ - { - "i": 0, - "high": 90, - "start": "00:00:00", - "low": 90, - "offset": 0, - "x": 0 - } - ], - "first": 1 -} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/bg_targets_raw.json b/app/src/main/java/info/nightscout/sampleData/settings/bg_targets_raw.json deleted file mode 100644 index 887bc01e31..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/settings/bg_targets_raw.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "units": "mg/dL", - "raw": "0x01 0x00 0x5a 0x5a 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00", - "targets": [ - { - "high": 90, - "start": "00:00:00", - "low": 90, - "offset": 0, - "i": 0, - "x": 0 - } - ], - "first": 1 -} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/carb_ratios.json b/app/src/main/java/info/nightscout/sampleData/settings/carb_ratios.json deleted file mode 100644 index 8249963d76..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/settings/carb_ratios.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "units": "grams", - "raw": "0x01 0x00 0x09 0x0b 0x07 0x12 0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00", - "first": 1, - "schedule": [ - { - "start": "00:00:00", - "r": 9, - "ratio": 9, - "offset": 0, - "i": 0, - "x": 0 - }, - { - "start": "05:30:00", - "r": 7, - "ratio": 7, - "offset": 330, - "i": 11, - "x": 1 - }, - { - "start": "09:00:00", - "r": 9, - "ratio": 9, - "offset": 540, - "i": 18, - "x": 2 - } - ] -} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/insulin_sensitivities.json b/app/src/main/java/info/nightscout/sampleData/settings/insulin_sensitivities.json deleted file mode 100644 index 42aa84cbae..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/settings/insulin_sensitivities.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "units": "mg/dL", - "user_preferred_units": "mg/dL", - "sensitivities": [ - { - "i": 0, - "start": "00:00:00", - "sensitivity": 35, - "x": 0, - "offset": 0 - }, - { - "i": 8, - "start": "04:00:00", - "sensitivity": 30, - "x": 1, - "offset": 240 - }, - { - "i": 20, - "start": "10:00:00", - "sensitivity": 30, - "x": 2, - "offset": 600 - } - ], - "first": 1 -} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/insulin_sensitivities_raw.json b/app/src/main/java/info/nightscout/sampleData/settings/insulin_sensitivities_raw.json deleted file mode 100644 index ca36a04c94..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/settings/insulin_sensitivities_raw.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "units": "mg/dL", - "sensitivities": [ - { - "i": 0, - "start": "00:00:00", - "sensitivity": 35, - "offset": 0, - "x": 0 - }, - { - "i": 8, - "start": "04:00:00", - "sensitivity": 30, - "offset": 240, - "x": 1 - }, - { - "i": 20, - "start": "10:00:00", - "sensitivity": 30, - "offset": 600, - "x": 2 - } - ], - "first": 1 -} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/model.json b/app/src/main/java/info/nightscout/sampleData/settings/model.json deleted file mode 100644 index 7bd9b5e600..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/settings/model.json +++ /dev/null @@ -1 +0,0 @@ -"522" \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/profile.json b/app/src/main/java/info/nightscout/sampleData/settings/profile.json deleted file mode 100644 index 66e6cbc197..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/settings/profile.json +++ /dev/null @@ -1 +0,0 @@ -{"max_iob":15,"max_daily_safety_multiplier":9,"current_basal_safety_multiplier":12,"autosens_max":1.4,"autosens_min":0.6,"autosens_adjust_targets":true,"override_high_target_with_low":false,"skip_neutral_temps":false,"bolussnooze_dia_divisor":2,"min_5m_carbimpact":3,"carbratio_adjustmentratio":1,"dia":3,"model":"522","current_basal":0.6,"basalprofile":[{"i":0,"start":"00:00:00","rate":1,"minutes":0},{"i":1,"start":"01:00:00","rate":0.9,"minutes":60},{"i":2,"start":"02:00:00","rate":0.8,"minutes":120},{"i":3,"start":"03:00:00","rate":0.8,"minutes":180},{"i":4,"start":"04:00:00","rate":1.3,"minutes":240},{"i":5,"start":"05:00:00","rate":1.4000000000000001,"minutes":300},{"i":6,"start":"06:00:00","rate":1.8,"minutes":360},{"i":7,"start":"07:00:00","rate":1.8,"minutes":420},{"i":8,"start":"08:00:00","rate":1.8,"minutes":480},{"i":9,"start":"09:00:00","rate":1.5,"minutes":540},{"i":10,"start":"10:00:00","rate":1,"minutes":600},{"i":11,"start":"11:00:00","rate":0.9,"minutes":660},{"i":12,"start":"12:00:00","rate":0.6000000000000001,"minutes":720},{"i":13,"start":"13:00:00","rate":0.6000000000000001,"minutes":780},{"i":14,"start":"14:00:00","rate":0.6000000000000001,"minutes":840},{"i":15,"start":"15:00:00","rate":0.6000000000000001,"minutes":900},{"i":16,"start":"17:00:00","rate":0.6000000000000001,"minutes":1020},{"i":17,"start":"18:00:00","rate":0.6000000000000001,"minutes":1080},{"i":18,"start":"19:00:00","rate":0.6000000000000001,"minutes":1140},{"i":19,"start":"20:00:00","rate":0.6000000000000001,"minutes":1200},{"i":20,"start":"21:00:00","rate":0.6000000000000001,"minutes":1260},{"i":21,"start":"22:00:00","rate":0.6000000000000001,"minutes":1320},{"i":22,"start":"23:00:00","rate":0.6000000000000001,"minutes":1380}],"max_daily_basal":1.8,"max_basal":6.3,"out_units":"mg/dL","min_bg":90,"max_bg":90,"sens":30,"isfProfile":{"units":"mg/dL","user_preferred_units":"mg/dL","sensitivities":[{"i":0,"start":"00:00:00","sensitivity":35,"x":0,"offset":0},{"i":8,"start":"04:00:00","sensitivity":30,"x":1,"offset":240},{"i":20,"start":"10:00:00","sensitivity":30,"x":2,"offset":600,"endOffset":1440}],"first":1},"carb_ratio":9} diff --git a/app/src/main/java/info/nightscout/sampleData/settings/pumphistory-24h-zoned.json b/app/src/main/java/info/nightscout/sampleData/settings/pumphistory-24h-zoned.json deleted file mode 100644 index 3110d24e4c..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/settings/pumphistory-24h-zoned.json +++ /dev/null @@ -1,4075 +0,0 @@ -[ - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T16:37:57 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:37:57+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3965104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:37:57 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:37:57+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "3965104411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T16:28:28 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:28:28+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1c5c104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:28:28 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:28:28+01:00", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "1c5c104411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T16:21:31 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:21:31+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1f55104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:21:31 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:21:31+01:00", - "_body": "00", - "_head": "337c", - "rate": 3.1, - "_date": "1f55104411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T16:15:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:15:29+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1d4f104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:15:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:15:29+01:00", - "_body": "00", - "_head": "3362", - "rate": 2.45, - "_date": "1d4f104411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T16:08:41 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:08:41+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2948104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:08:41 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:08:41+01:00", - "_body": "00", - "_head": "334e", - "rate": 1.95, - "_date": "2948104411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T16:06:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:06:50+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3246104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:06:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:06:50+01:00", - "_body": "00", - "_head": "3332", - "rate": 1.25, - "_date": "3246104411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T16:02:03 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:02:03+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0342104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:02:03 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:02:03+01:00", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "0342104411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T16:01:28 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:01:28+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1c41104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:01:28 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:01:28+01:00", - "_body": "00", - "_head": "3396", - "rate": 3.75, - "_date": "1c41104411" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-04T15:58:37 head[4], body[0] op[0x01]", - "timestamp": "2017-01-04T15:58:37+01:00", - "_body": "", - "programmed": 2.0, - "_head": "01141400", - "amount": 2.0, - "duration": 0, - "type": "normal", - "_date": "257a4f0411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T15:55:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:55:29+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1d770f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:55:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:55:29+01:00", - "_body": "00", - "_head": "332d", - "rate": 1.125, - "_date": "1d770f4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T15:46:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:46:50+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "326e0f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:46:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:46:50+01:00", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "326e0f4411" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-04T15:44:07 head[4], body[0] op[0x01]", - "timestamp": "2017-01-04T15:44:07+01:00", - "_body": "", - "programmed": 2.0, - "_head": "01141400", - "amount": 2.0, - "duration": 0, - "type": "normal", - "_date": "076c4f0411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T15:43:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:43:50+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "326b0f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:43:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:43:50+01:00", - "_body": "00", - "_head": "3341", - "rate": 1.625, - "_date": "326b0f4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T15:41:22 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:41:22+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "16690f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:41:22 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:41:22+01:00", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "16690f4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T15:28:24 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:28:24+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "185c0f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:28:24 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:28:24+01:00", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "185c0f4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T15:22:58 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:22:58+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3a560f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:22:58 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:22:58+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "3a560f4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T15:13:01 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:13:01+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "014d0f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:13:01 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:13:01+01:00", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "014d0f4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T14:50:21 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:50:21+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "15720e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:50:21 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:50:21+01:00", - "_body": "00", - "_head": "33fb", - "rate": 6.275, - "_date": "15720e4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T14:38:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:38:50+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "32660e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:38:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:38:50+01:00", - "_body": "00", - "_head": "33e7", - "rate": 5.775, - "_date": "32660e4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T14:34:03 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:34:03+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "03620e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:34:03 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:34:03+01:00", - "_body": "00", - "_head": "3344", - "rate": 1.7, - "_date": "03620e4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T14:33:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:33:29+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1d610e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:33:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:33:29+01:00", - "_body": "00", - "_head": "3392", - "rate": 3.65, - "_date": "1d610e4411" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-04T14:32:05 head[4], body[0] op[0x01]", - "timestamp": "2017-01-04T14:32:05+01:00", - "_body": "", - "programmed": 1.0, - "_head": "010a0a00", - "amount": 1.0, - "duration": 0, - "type": "normal", - "_date": "05604e0411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T14:26:30 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:26:30+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1e5a0e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:26:30 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:26:30+01:00", - "_body": "00", - "_head": "3320", - "rate": 0.8, - "_date": "1e5a0e4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T14:25:47 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:25:47+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2f590e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:25:47 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:25:47+01:00", - "_body": "00", - "_head": "3378", - "rate": 3.0, - "_date": "2f590e4411" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-04T14:22:59 head[4], body[0] op[0x01]", - "timestamp": "2017-01-04T14:22:59+01:00", - "_body": "", - "programmed": 2.0, - "_head": "01141400", - "amount": 2.0, - "duration": 0, - "type": "normal", - "_date": "3b564e0411" - }, - { - "_type": "Prime", - "_description": "Prime 2017-01-04T14:18:15 head[5], body[0] op[0x03]", - "timestamp": "2017-01-04T14:18:15+01:00", - "_body": "", - "_head": "0300000027", - "amount": 3.9, - "fixed": 0.0, - "type": "manual", - "_date": "0f522e0411" - }, - { - "_type": "Rewind", - "_description": "Rewind 2017-01-04T14:18:03 head[2], body[0] op[0x21]", - "timestamp": "2017-01-04T14:18:03+01:00", - "_body": "", - "_head": "2100", - "_date": "03520e0411" - }, - { - "_type": "Prime", - "_description": "Prime 2017-01-04T14:17:15 head[5], body[0] op[0x03]", - "timestamp": "2017-01-04T14:17:15+01:00", - "_body": "", - "_head": "03000a000a", - "amount": 1.0, - "fixed": 1.0, - "type": "fixed", - "_date": "0f510e0411" - }, - { - "_type": "Prime", - "_description": "Prime 2017-01-04T14:14:56 head[5], body[0] op[0x03]", - "timestamp": "2017-01-04T14:14:56+01:00", - "_body": "", - "_head": "0300190019", - "amount": 2.5, - "fixed": 2.5, - "type": "fixed", - "_date": "384e0e0411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T14:14:32 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:14:32+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "204e0e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:14:32 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:14:32+01:00", - "_body": "00", - "_head": "3346", - "rate": 1.75, - "_date": "204e0e4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T14:09:45 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:09:45+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2d490e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:09:45 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:09:45+01:00", - "_body": "00", - "_head": "3337", - "rate": 1.375, - "_date": "2d490e4411" - }, - { - "_type": "ClearAlarm", - "_description": "ClearAlarm 2017-01-04T14:04:16 head[2], body[0] op[0x0c]", - "timestamp": "2017-01-04T14:04:16+01:00", - "_body": "", - "_head": "0c04", - "_date": "10440e0411" - }, - { - "_type": "AlarmPump", - "_description": "AlarmPump 2017-01-04T14:04:05 head[4], body[0] op[0x06]", - "timestamp": "2017-01-04T14:04:05+01:00", - "_body": "", - "_head": "06040bff", - "_date": "05444e4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:57:38 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:57:38+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "26790d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:57:38 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:57:38+01:00", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "26790d4411" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-04T13:53:05 head[4], body[0] op[0x01]", - "timestamp": "2017-01-04T13:53:05+01:00", - "_body": "", - "programmed": 1.0, - "_head": "010a0a00", - "amount": 1.0, - "duration": 0, - "type": "normal", - "_date": "05754d0411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:47:51 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:47:51+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "336f0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:47:51 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:47:51+01:00", - "_body": "00", - "_head": "3368", - "rate": 2.6, - "_date": "336f0d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:43:53 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:43:53+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "356b0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:43:53 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:43:53+01:00", - "_body": "00", - "_head": "3355", - "rate": 2.125, - "_date": "356b0d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:40:04 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:40:04+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "04680d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:40:04 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:40:04+01:00", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "04680d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:27:46 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:27:46+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2e5b0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:27:46 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:27:46+01:00", - "_body": "00", - "_head": "3348", - "rate": 1.8, - "_date": "2e5b0d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:27:00 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:27:00+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "005b0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:27:00 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:27:00+01:00", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "005b0d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:20:49 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:20:49+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "31540d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:20:49 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:20:49+01:00", - "_body": "00", - "_head": "332d", - "rate": 1.125, - "_date": "31540d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:15:40 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:15:40+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "284f0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:15:40 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:15:40+01:00", - "_body": "00", - "_head": "3373", - "rate": 2.875, - "_date": "284f0d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:15:31 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:15:31+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1f4f0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:15:31 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:15:31+01:00", - "_body": "00", - "_head": "3373", - "rate": 2.875, - "_date": "1f4f0d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:08:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:08:29+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1d480d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:08:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:08:29+01:00", - "_body": "00", - "_head": "332c", - "rate": 1.1, - "_date": "1d480d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T13:03:28 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:03:28+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1c430d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:03:28 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:03:28+01:00", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "1c430d4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T12:57:44 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:57:44+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2c790c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:57:44 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:57:44+01:00", - "_body": "00", - "_head": "332a", - "rate": 1.05, - "_date": "2c790c4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T12:47:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:47:29+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1d6f0c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:47:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:47:29+01:00", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "1d6f0c4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T12:35:30 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:35:30+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1e630c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:35:30 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:35:30+01:00", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "1e630c4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T12:23:47 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:23:47+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2f570c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:23:47 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:23:47+01:00", - "_body": "00", - "_head": "33b5", - "rate": 4.525, - "_date": "2f570c4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T12:18:48 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:18:48+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "30520c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:18:48 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:18:48+01:00", - "_body": "00", - "_head": "334a", - "rate": 1.85, - "_date": "30520c4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T12:13:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:13:29+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1d4d0c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:13:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:13:29+01:00", - "_body": "00", - "_head": "3337", - "rate": 1.375, - "_date": "1d4d0c4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T12:08:07 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:08:07+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "07480c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:08:07 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:08:07+01:00", - "_body": "00", - "_head": "3324", - "rate": 0.9, - "_date": "07480c4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T11:55:46 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T11:55:46+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2e770b4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T11:55:46 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T11:55:46+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "2e770b4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T11:42:44 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T11:42:44+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2c6a0b4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T11:42:44 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T11:42:44+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "2c6a0b4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T11:31:27 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T11:31:27+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1b5f0b4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T11:31:27 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T11:31:27+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "1b5f0b4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T11:19:25 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T11:19:25+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "19530b4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T11:19:25 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T11:19:25+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "19530b4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T10:58:19 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T10:58:19+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "137a0a4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T10:58:19 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T10:58:19+01:00", - "_body": "00", - "_head": "33c9", - "rate": 5.025, - "_date": "137a0a4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T10:52:44 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T10:52:44+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2c740a4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T10:52:44 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T10:52:44+01:00", - "_body": "00", - "_head": "33a8", - "rate": 4.2, - "_date": "2c740a4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T10:48:19 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T10:48:19+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "13700a4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T10:48:19 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T10:48:19+01:00", - "_body": "00", - "_head": "3380", - "rate": 3.2, - "_date": "13700a4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T10:33:14 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T10:33:14+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0e610a4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T10:33:14 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T10:33:14+01:00", - "_body": "00", - "_head": "336e", - "rate": 2.75, - "_date": "0e610a4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T10:27:44 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T10:27:44+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2c5b0a4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T10:27:44 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T10:27:44+01:00", - "_body": "00", - "_head": "334a", - "rate": 1.85, - "_date": "2c5b0a4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T10:23:49 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T10:23:49+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "31570a4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T10:23:49 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T10:23:49+01:00", - "_body": "00", - "_head": "3310", - "rate": 0.4, - "_date": "31570a4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T10:18:26 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T10:18:26+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1a520a4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T10:18:26 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T10:18:26+01:00", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "1a520a4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T10:08:25 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T10:08:25+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "19480a4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T10:08:25 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T10:08:25+01:00", - "_body": "00", - "_head": "3324", - "rate": 0.9, - "_date": "19480a4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T10:03:08 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T10:03:08+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "08430a4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T10:03:08 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T10:03:08+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "08430a4411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T09:45:24 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T09:45:24+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "186d094411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T09:45:24 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T09:45:24+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "186d094411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T09:33:14 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T09:33:14+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0e61094411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T09:33:14 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T09:33:14+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "0e61094411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T09:32:28 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T09:32:28+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1c60094411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T09:32:28 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T09:32:28+01:00", - "_body": "00", - "_head": "3324", - "rate": 0.9, - "_date": "1c60094411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T09:18:26 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T09:18:26+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1a52094411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T09:18:26 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T09:18:26+01:00", - "_body": "00", - "_head": "3336", - "rate": 1.35, - "_date": "1a52094411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T09:01:07 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T09:01:07+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0741094411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T09:01:07 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T09:01:07+01:00", - "_body": "00", - "_head": "3336", - "rate": 1.35, - "_date": "0741094411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T09:00:27 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T09:00:27+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1b40094411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T09:00:27 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T09:00:27+01:00", - "_body": "00", - "_head": "33d3", - "rate": 5.275, - "_date": "1b40094411" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-04T08:53:23 head[4], body[0] op[0x01]", - "timestamp": "2017-01-04T08:53:23+01:00", - "_body": "", - "programmed": 8.5, - "_head": "01555500", - "amount": 8.5, - "duration": 0, - "type": "normal", - "_date": "1775480411" - }, - { - "unknown_byte[8]": 0, - "_type": "BolusWizard", - "bg": 98, - "_byte[5]": 2, - "unknown_byte[10]": 0, - "_description": "BolusWizard 2017-01-04T08:53:23 head[2], body[13] op[0x5b]", - "timestamp": "2017-01-04T08:53:23+01:00", - "_body": "3c50071e5a025500000000575a", - "bg_target_high": 90, - "sensitivity": 30, - "carb_ratio": 7, - "food_estimate": 8.5, - "unabsorbed_insulin_total": 0.0, - "correction_estimate": 0.2, - "carb_input": 60, - "_head": "5b62", - "unabsorbed_insulin_count": "??", - "_byte[7]": 0, - "bolus_estimate": 8.7, - "_date": "1775080411", - "bg_target_low": 90 - }, - { - "_type": "CalBGForPH", - "_description": "CalBGForPH 2017-01-04T08:53:09 head[2], body[0] op[0x0a]", - "timestamp": "2017-01-04T08:53:09+01:00", - "_body": "", - "_head": "0a62", - "amount": 98, - "_date": "0975280411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T08:49:26 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T08:49:26+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1a71084411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T08:49:26 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T08:49:26+01:00", - "_body": "00", - "_head": "3397", - "rate": 3.775, - "_date": "1a71084411" - }, - { - "_type": "Prime", - "_description": "Prime 2017-01-04T08:47:41 head[5], body[0] op[0x03]", - "timestamp": "2017-01-04T08:47:41+01:00", - "_body": "", - "_head": "0300000035", - "amount": 5.3, - "fixed": 0.0, - "type": "manual", - "_date": "296f280411" - }, - { - "_type": "Rewind", - "_description": "Rewind 2017-01-04T08:46:39 head[2], body[0] op[0x21]", - "timestamp": "2017-01-04T08:46:39+01:00", - "_body": "", - "_head": "2100", - "_date": "276e080411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T08:35:51 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T08:35:51+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3363084411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T08:35:51 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T08:35:51+01:00", - "_body": "00", - "_head": "3364", - "rate": 2.5, - "_date": "3363084411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T08:16:25 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T08:16:25+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1950084411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T08:16:25 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T08:16:25+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "1950084411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T08:02:26 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T08:02:26+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1a42084411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T08:02:26 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T08:02:26+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "1a42084411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T07:49:32 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T07:49:32+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2071074411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T07:49:32 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T07:49:32+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "2071074411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T07:37:12 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T07:37:12+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0c65074411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T07:37:12 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T07:37:12+01:00", - "_body": "00", - "_head": "335e", - "rate": 2.35, - "_date": "0c65074411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T07:29:09 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T07:29:09+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "095d074411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T07:29:09 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T07:29:09+01:00", - "_body": "00", - "_head": "3341", - "rate": 1.625, - "_date": "095d074411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T07:13:03 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T07:13:03+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "034d074411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T07:13:03 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T07:13:03+01:00", - "_body": "00", - "_head": "3337", - "rate": 1.375, - "_date": "034d074411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T06:55:25 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T06:55:25+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1977064411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T06:55:25 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T06:55:25+01:00", - "_body": "00", - "_head": "3348", - "rate": 1.8, - "_date": "1977064411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T06:39:20 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T06:39:20+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1467064411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T06:39:20 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T06:39:20+01:00", - "_body": "00", - "_head": "3348", - "rate": 1.8, - "_date": "1467064411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T06:13:02 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T06:13:02+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "024d064411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T06:13:02 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T06:13:02+01:00", - "_body": "00", - "_head": "3328", - "rate": 1.0, - "_date": "024d064411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T06:05:47 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T06:05:47+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2f45064411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T06:05:47 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T06:05:47+01:00", - "_body": "00", - "_head": "334e", - "rate": 1.95, - "_date": "2f45064411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T05:57:53 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T05:57:53+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3579054411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T05:57:53 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T05:57:53+01:00", - "_body": "00", - "_head": "336e", - "rate": 2.75, - "_date": "3579054411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T05:48:01 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T05:48:01+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0170054411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T05:48:01 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T05:48:01+01:00", - "_body": "00", - "_head": "3351", - "rate": 2.025, - "_date": "0170054411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T05:44:11 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T05:44:11+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0b6c054411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T05:44:11 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T05:44:11+01:00", - "_body": "00", - "_head": "339a", - "rate": 3.85, - "_date": "0b6c054411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T05:42:18 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T05:42:18+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "126a054411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T05:42:18 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T05:42:18+01:00", - "_body": "00", - "_head": "3372", - "rate": 2.85, - "_date": "126a054411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T05:27:12 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T05:27:12+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0c5b054411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T05:27:12 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T05:27:12+01:00", - "_body": "00", - "_head": "335f", - "rate": 2.375, - "_date": "0c5b054411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T05:24:13 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T05:24:13+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0d58054411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T05:24:13 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T05:24:13+01:00", - "_body": "00", - "_head": "334b", - "rate": 1.875, - "_date": "0d58054411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T05:19:49 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T05:19:49+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3153054411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T05:19:49 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T05:19:49+01:00", - "_body": "00", - "_head": "333c", - "rate": 1.5, - "_date": "3153054411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T05:07:57 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T05:07:57+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3947054411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T05:07:57 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T05:07:57+01:00", - "_body": "00", - "_head": "3339", - "rate": 1.425, - "_date": "3947054411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T04:58:02 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T04:58:02+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "027a044411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T04:58:02 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T04:58:02+01:00", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "027a044411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T04:52:15 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T04:52:15+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0f74044411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T04:52:15 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T04:52:15+01:00", - "_body": "00", - "_head": "333e", - "rate": 1.55, - "_date": "0f74044411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T04:32:13 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T04:32:13+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0d60044411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T04:32:13 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T04:32:13+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "0d60044411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T04:13:58 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T04:13:58+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3a4d044411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T04:13:58 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T04:13:58+01:00", - "_body": "00", - "_head": "3368", - "rate": 2.6, - "_date": "3a4d044411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T04:02:18 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T04:02:18+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1242044411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T04:02:18 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T04:02:18+01:00", - "_body": "00", - "_head": "335b", - "rate": 2.275, - "_date": "1242044411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T03:57:54 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:57:54+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3679034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:57:54 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:57:54+01:00", - "_body": "00", - "_head": "3337", - "rate": 1.375, - "_date": "3679034411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T03:50:05 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:50:05+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0572034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:50:05 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:50:05+01:00", - "_body": "00", - "_head": "332c", - "rate": 1.1, - "_date": "0572034411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T03:38:04 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:38:04+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0466034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:38:04 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:38:04+01:00", - "_body": "00", - "_head": "332a", - "rate": 1.05, - "_date": "0466034411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T03:34:07 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:34:07+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0762034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:34:07 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:34:07+01:00", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "0762034411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T03:32:16 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:32:16+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1060034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:32:16 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:32:16+01:00", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "1060034411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T03:28:18 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:28:18+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "125c034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:28:18 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:28:18+01:00", - "_body": "00", - "_head": "3328", - "rate": 1.0, - "_date": "125c034411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T03:23:59 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:23:59+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3b57034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:23:59 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:23:59+01:00", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "3b57034411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T03:15:58 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:15:58+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3a4f034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:15:58 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:15:58+01:00", - "_body": "00", - "_head": "3328", - "rate": 1.0, - "_date": "3a4f034411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T03:09:54 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:09:54+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3649034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:09:54 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:09:54+01:00", - "_body": "00", - "_head": "3320", - "rate": 0.8, - "_date": "3649034411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T03:04:59 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:04:59+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3b44034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:04:59 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:04:59+01:00", - "_body": "00", - "_head": "333c", - "rate": 1.5, - "_date": "3b44034411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T02:53:05 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T02:53:05+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0575024411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T02:53:05 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T02:53:05+01:00", - "_body": "00", - "_head": "3332", - "rate": 1.25, - "_date": "0575024411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T02:50:55 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T02:50:55+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3772024411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T02:50:55 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T02:50:55+01:00", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "3772024411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T02:37:22 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T02:37:22+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1665024411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T02:37:22 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T02:37:22+01:00", - "_body": "00", - "_head": "3312", - "rate": 0.45, - "_date": "1665024411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T02:34:59 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T02:34:59+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3b62024411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T02:34:59 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T02:34:59+01:00", - "_body": "00", - "_head": "3320", - "rate": 0.8, - "_date": "3b62024411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T02:23:02 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T02:23:02+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0257024411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T02:23:02 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T02:23:02+01:00", - "_body": "00", - "_head": "3328", - "rate": 1.0, - "_date": "0257024411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T02:07:22 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T02:07:22+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1647024411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T02:07:22 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T02:07:22+01:00", - "_body": "00", - "_head": "3383", - "rate": 3.275, - "_date": "1647024411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T01:57:47 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T01:57:47+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2f79014411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T01:57:47 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T01:57:47+01:00", - "_body": "00", - "_head": "336c", - "rate": 2.7, - "_date": "2f79014411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T01:52:18 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T01:52:18+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1274014411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T01:52:18 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T01:52:18+01:00", - "_body": "00", - "_head": "3351", - "rate": 2.025, - "_date": "1274014411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T01:50:04 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T01:50:04+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0472014411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T01:50:04 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T01:50:04+01:00", - "_body": "00", - "_head": "338a", - "rate": 3.45, - "_date": "0472014411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T01:38:02 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T01:38:02+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0266014411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T01:38:02 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T01:38:02+01:00", - "_body": "00", - "_head": "3388", - "rate": 3.4, - "_date": "0266014411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T01:32:14 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T01:32:14+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0e60014411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T01:32:14 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T01:32:14+01:00", - "_body": "00", - "_head": "336e", - "rate": 2.75, - "_date": "0e60014411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T01:27:55 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T01:27:55+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "375b014411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T01:27:55 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T01:27:55+01:00", - "_body": "00", - "_head": "3354", - "rate": 2.1, - "_date": "375b014411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T01:22:27 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T01:22:27+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1b56014411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T01:22:27 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T01:22:27+01:00", - "_body": "00", - "_head": "3340", - "rate": 1.6, - "_date": "1b56014411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T01:18:07 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T01:18:07+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0752014411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T01:18:07 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T01:18:07+01:00", - "_body": "00", - "_head": "332f", - "rate": 1.175, - "_date": "0752014411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T01:13:54 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T01:13:54+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "364d014411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T01:13:54 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T01:13:54+01:00", - "_body": "00", - "_head": "3325", - "rate": 0.925, - "_date": "364d014411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T00:55:59 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T00:55:59+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3b77004411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T00:55:59 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T00:55:59+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "3b77004411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T00:44:48 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T00:44:48+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "306c004411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T00:44:48 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T00:44:48+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "306c004411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T00:33:20 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T00:33:20+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1461004411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T00:33:20 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T00:33:20+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "1461004411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T00:30:57 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T00:30:57+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "395e004411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T00:30:57 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T00:30:57+01:00", - "_body": "00", - "_head": "3382", - "rate": 3.25, - "_date": "395e004411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T00:23:08 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T00:23:08+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0857004411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T00:23:08 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T00:23:08+01:00", - "_body": "00", - "_head": "334b", - "rate": 1.875, - "_date": "0857004411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T00:21:10 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T00:21:10+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0a55004411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T00:21:10 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T00:21:10+01:00", - "_body": "00", - "_head": "3334", - "rate": 1.3, - "_date": "0a55004411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T00:17:20 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T00:17:20+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1451004411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T00:17:20 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T00:17:20+01:00", - "_body": "00", - "_head": "332a", - "rate": 1.05, - "_date": "1451004411" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T00:07:10 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T00:07:10+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0a47004411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T00:07:10 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T00:07:10+01:00", - "_body": "00", - "_head": "33d2", - "rate": 5.25, - "_date": "0a47004411" - }, - { - "_type": "Model522ResultTotals", - "_description": "Model522ResultTotals 2017-01-04T00:00:00 head[1], body[41] op[0x6d]", - "timestamp": "2017-01-04T00:00:00+01:00", - "_body": "0500695a820400000c2804f82907303b00e107303b04403b00480402a8250a020002060c00e8000000", - "_head": "6d", - "_date": "0391" - }, - { - "_type": "ResultDailyTotal", - "_description": "ResultDailyTotal 2017-01-04T00:00:00 head[5], body[0] op[0x07]", - "timestamp": "2017-01-04T00:00:00+01:00", - "_body": "", - "_head": "0700000c28", - "valid_date": "2017-01-03", - "_date": "0391" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T23:57:37 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:57:37+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2579174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:57:37 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:57:37+01:00", - "_body": "00", - "_head": "33aa", - "rate": 4.25, - "_date": "2579174311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T23:53:56 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:53:56+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3875174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:53:56 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:53:56+01:00", - "_body": "00", - "_head": "337c", - "rate": 3.1, - "_date": "3875174311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T23:42:13 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:42:13+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0d6a174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:42:13 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:42:13+01:00", - "_body": "00", - "_head": "3368", - "rate": 2.6, - "_date": "0d6a174311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T23:38:13 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:38:13+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0d66174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:38:13 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:38:13+01:00", - "_body": "00", - "_head": "3351", - "rate": 2.025, - "_date": "0d66174311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T23:33:48 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:33:48+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3061174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:33:48 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:33:48+01:00", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "3061174311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T23:22:14 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:22:14+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0e56174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:22:14 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:22:14+01:00", - "_body": "00", - "_head": "331a", - "rate": 0.65, - "_date": "0e56174311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T23:12:12 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:12:12+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0c4c174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:12:12 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:12:12+01:00", - "_body": "00", - "_head": "339a", - "rate": 3.85, - "_date": "0c4c174311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T23:10:13 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:10:13+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0d4a174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:10:13 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:10:13+01:00", - "_body": "00", - "_head": "336e", - "rate": 2.75, - "_date": "0d4a174311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T23:08:14 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:08:14+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0e48174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:08:14 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:08:14+01:00", - "_body": "00", - "_head": "333e", - "rate": 1.55, - "_date": "0e48174311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T23:05:07 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:05:07+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0745174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:05:07 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:05:07+01:00", - "_body": "00", - "_head": "3317", - "rate": 0.575, - "_date": "0745174311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T23:04:47 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:04:47+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2f44174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:04:47 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:04:47+01:00", - "_body": "00", - "_head": "33c9", - "rate": 5.025, - "_date": "2f44174311" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-03T23:02:21 head[4], body[0] op[0x01]", - "timestamp": "2017-01-03T23:02:21+01:00", - "_body": "", - "programmed": 3.0, - "_head": "011e1e00", - "amount": 3.0, - "duration": 0, - "type": "normal", - "_date": "1542570311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T22:57:19 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T22:57:19+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1379164311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T22:57:19 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T22:57:19+01:00", - "_body": "00", - "_head": "337c", - "rate": 3.1, - "_date": "1379164311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T22:52:52 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T22:52:52+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3474164311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T22:52:52 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T22:52:52+01:00", - "_body": "00", - "_head": "3340", - "rate": 1.6, - "_date": "3474164311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T22:46:10 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T22:46:10+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0a6e164311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T22:46:10 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T22:46:10+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "0a6e164311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T22:44:16 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T22:44:16+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "106c164311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T22:44:16 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T22:44:16+01:00", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "106c164311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T22:41:55 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T22:41:55+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3769164311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T22:41:55 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T22:41:55+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "3769164311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T22:29:55 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T22:29:55+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "375d164311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T22:29:55 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T22:29:55+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "375d164311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T22:16:25 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T22:16:25+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1950164311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T22:16:25 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T22:16:25+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "1950164311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T22:04:03 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T22:04:03+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0344164311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T22:04:03 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T22:04:03+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "0344164311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T21:54:01 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T21:54:01+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0176154311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T21:54:01 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T21:54:01+01:00", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "0176154311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T21:37:25 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T21:37:25+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1965154311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T21:37:25 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T21:37:25+01:00", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "1965154311" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-03T21:28:28 head[4], body[0] op[0x01]", - "timestamp": "2017-01-03T21:28:28+01:00", - "_body": "", - "programmed": 3.0, - "_head": "011e1e00", - "amount": 3.0, - "duration": 0, - "type": "normal", - "_date": "1c5c550311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T21:19:24 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T21:19:24+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1853154311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T21:19:24 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T21:19:24+01:00", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "1853154311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T21:03:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T21:03:50+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3243154311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T21:03:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T21:03:50+01:00", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "3243154311" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-03T20:57:24 head[4], body[0] op[0x01]", - "timestamp": "2017-01-03T20:57:24+01:00", - "_body": "", - "appended": [ - { - "_type": "UnabsorbedInsulinBolus", - "_description": "UnabsorbedInsulinBolus unknown head[23], body[0] op[0x5c]", - "_body": "", - "_head": "5c177894c0b4f8c07a20d0262ad0503ed07c98d0eca2d0", - "data": [ - { - "amount": 3.0, - "age": 148 - }, - { - "amount": 4.5, - "age": 248 - }, - { - "amount": 3.05, - "age": 288 - }, - { - "amount": 0.95, - "age": 298 - }, - { - "amount": 2.0, - "age": 318 - }, - { - "amount": 3.1, - "age": 408 - }, - { - "amount": 5.9, - "age": 418 - } - ], - "_date": "" - } - ], - "programmed": 7.0, - "duration": 0, - "amount": 7.0, - "_head": "01464600", - "type": "normal", - "_date": "1879540311" - }, - { - "unknown_byte[8]": 0, - "_type": "BolusWizard", - "bg": 90, - "_byte[5]": 0, - "unknown_byte[10]": 0, - "_description": "BolusWizard 2017-01-03T20:57:24 head[2], body[13] op[0x5b]", - "timestamp": "2017-01-03T20:57:24+01:00", - "_body": "3750091e5a003d000004003d5a", - "bg_target_high": 90, - "sensitivity": 30, - "carb_ratio": 9, - "food_estimate": 6.1, - "unabsorbed_insulin_total": 0.4, - "correction_estimate": 0.0, - "carb_input": 55, - "_head": "5b5a", - "unabsorbed_insulin_count": "??", - "_byte[7]": 0, - "bolus_estimate": 6.1, - "_date": "1879140311", - "bg_target_low": 90 - }, - { - "_type": "CalBGForPH", - "_description": "CalBGForPH 2017-01-03T20:57:06 head[2], body[0] op[0x0a]", - "timestamp": "2017-01-03T20:57:06+01:00", - "_body": "", - "_head": "0a5a", - "amount": 90, - "_date": "0679340311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T20:29:56 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T20:29:56+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "385d144311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T20:29:56 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T20:29:56+01:00", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "385d144311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T20:01:26 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T20:01:26+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1a41144311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T20:01:26 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T20:01:26+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "1a41144311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T19:48:02 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T19:48:02+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0270134311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T19:48:02 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T19:48:02+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "0270134311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T19:34:24 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T19:34:24+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1862134311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T19:34:24 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T19:34:24+01:00", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "1862134311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T19:23:24 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T19:23:24+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1857134311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T19:23:24 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T19:23:24+01:00", - "_body": "00", - "_head": "335f", - "rate": 2.375, - "_date": "1857134311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T19:17:59 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T19:17:59+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3b51134311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T19:17:59 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T19:17:59+01:00", - "_body": "00", - "_head": "334b", - "rate": 1.875, - "_date": "3b51134311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T19:08:00 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T19:08:00+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0048134311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T19:08:00 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T19:08:00+01:00", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "0048134311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T18:57:52 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T18:57:52+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3479124311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T18:57:52 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T18:57:52+01:00", - "_body": "00", - "_head": "335b", - "rate": 2.275, - "_date": "3479124311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T18:54:25 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T18:54:25+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1976124311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T18:54:25 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T18:54:25+01:00", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "1976124311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T18:48:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T18:48:50+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3270124311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T18:48:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T18:48:50+01:00", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "3270124311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T18:45:26 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T18:45:26+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1a6d124311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T18:45:26 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T18:45:26+01:00", - "_body": "00", - "_head": "3328", - "rate": 1.0, - "_date": "1a6d124311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T18:34:48 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T18:34:48+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3062124311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T18:34:48 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T18:34:48+01:00", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "3062124311" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-03T18:30:43 head[4], body[0] op[0x01]", - "timestamp": "2017-01-03T18:30:43+01:00", - "_body": "", - "programmed": 3.0, - "_head": "011e1e00", - "amount": 3.0, - "duration": 0, - "type": "normal", - "_date": "2b5e520311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T18:20:35 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T18:20:35+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2354124311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T18:20:35 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T18:20:35+01:00", - "_body": "00", - "_head": "335f", - "rate": 2.375, - "_date": "2354124311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T18:13:27 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T18:13:27+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1b4d124311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T18:13:27 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T18:13:27+01:00", - "_body": "00", - "_head": "3310", - "rate": 0.4, - "_date": "1b4d124311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T18:08:14 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T18:08:14+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0e48124311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T18:08:14 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T18:08:14+01:00", - "_body": "00", - "_head": "335f", - "rate": 2.375, - "_date": "0e48124311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T18:07:19 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T18:07:19+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1347124311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T18:07:19 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T18:07:19+01:00", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "1347124311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T17:55:55 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T17:55:55+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3777114311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T17:55:55 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T17:55:55+01:00", - "_body": "00", - "_head": "33c6", - "rate": 4.95, - "_date": "3777114311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T17:43:16 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T17:43:16+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "106b114311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T17:43:16 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T17:43:16+01:00", - "_body": "00", - "_head": "33aa", - "rate": 4.25, - "_date": "106b114311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T17:35:58 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T17:35:58+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3a63114311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T17:35:58 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T17:35:58+01:00", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "3a63114311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T17:18:03 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T17:18:03+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0352114311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T17:18:03 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T17:18:03+01:00", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "0352114311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T17:12:52 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T17:12:52+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "344c114311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T17:12:52 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T17:12:52+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "344c114311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T16:55:21 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T16:55:21+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1577104311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T16:55:21 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T16:55:21+01:00", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "1577104311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T16:54:10 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T16:54:10+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0a76104311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T16:54:10 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T16:54:10+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "0a76104311" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-03T16:50:06 head[4], body[0] op[0x01]", - "timestamp": "2017-01-03T16:50:06+01:00", - "_body": "", - "appended": [ - { - "_type": "UnabsorbedInsulinBolus", - "_description": "UnabsorbedInsulinBolus unknown head[17], body[0] op[0x5c]", - "_body": "", - "_head": "5c117a29c02633c05047c07ca1c0ecabc0", - "data": [ - { - "amount": 3.05, - "age": 41 - }, - { - "amount": 0.95, - "age": 51 - }, - { - "amount": 2.0, - "age": 71 - }, - { - "amount": 3.1, - "age": 161 - }, - { - "amount": 5.9, - "age": 171 - } - ], - "_date": "" - } - ], - "programmed": 4.5, - "duration": 0, - "amount": 4.5, - "_head": "012d2d00", - "type": "normal", - "_date": "0672500311" - }, - { - "unknown_byte[8]": 0, - "_type": "BolusWizard", - "bg": 111, - "_byte[5]": 7, - "unknown_byte[10]": 0, - "_description": "BolusWizard 2017-01-03T16:50:06 head[2], body[13] op[0x5b]", - "timestamp": "2017-01-03T16:50:06+01:00", - "_body": "2850091e5a072c000035002c5a", - "bg_target_high": 90, - "sensitivity": 30, - "carb_ratio": 9, - "food_estimate": 4.4, - "unabsorbed_insulin_total": 5.3, - "correction_estimate": 0.7, - "carb_input": 40, - "_head": "5b6f", - "unabsorbed_insulin_count": "??", - "_byte[7]": 0, - "bolus_estimate": 4.4, - "_date": "0672100311", - "bg_target_low": 90 - }, - { - "_type": "CalBGForPH", - "_description": "CalBGForPH 2017-01-03T16:49:56 head[2], body[0] op[0x0a]", - "timestamp": "2017-01-03T16:49:56+01:00", - "_body": "", - "_head": "0a6f", - "amount": 111, - "_date": "3871300311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T16:36:22 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T16:36:22+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1664104311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T16:36:22 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T16:36:22+01:00", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "1664104311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T16:27:52 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T16:27:52+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "345b104311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T16:27:52 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T16:27:52+01:00", - "_body": "00", - "_head": "3316", - "rate": 0.55, - "_date": "345b104311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T16:11:40 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T16:11:40+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "284b104311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T16:11:40 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T16:11:40+01:00", - "_body": "00", - "_head": "3316", - "rate": 0.55, - "_date": "284b104311" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-03T16:08:21 head[4], body[0] op[0x01]", - "timestamp": "2017-01-03T16:08:21+01:00", - "_body": "", - "programmed": 4.0, - "_head": "01282800", - "amount": 4.0, - "duration": 0, - "type": "normal", - "_date": "1548500311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T16:07:59 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T16:07:59+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3b47104311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T16:07:59 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T16:07:59+01:00", - "_body": "00", - "_head": "338d", - "rate": 3.525, - "_date": "3b47104311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T16:02:42 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T16:02:42+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2a42104311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T16:02:42 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T16:02:42+01:00", - "_body": "00", - "_head": "3348", - "rate": 1.8, - "_date": "2a42104311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T15:55:23 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T15:55:23+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "17770f4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T15:55:23 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T15:55:23+01:00", - "_body": "00", - "_head": "3316", - "rate": 0.55, - "_date": "17770f4311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T15:44:53 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T15:44:53+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "356c0f4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T15:44:53 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T15:44:53+01:00", - "_body": "00", - "_head": "3317", - "rate": 0.575, - "_date": "356c0f4311" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-03T15:42:20 head[4], body[0] op[0x01]", - "timestamp": "2017-01-03T15:42:20+01:00", - "_body": "", - "programmed": 2.0, - "_head": "01141400", - "amount": 2.0, - "duration": 0, - "type": "normal", - "_date": "146a4f0311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T15:38:37 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T15:38:37+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "25660f4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T15:38:37 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T15:38:37+01:00", - "_body": "00", - "_head": "3376", - "rate": 2.95, - "_date": "25660f4311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T15:34:30 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T15:34:30+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1e620f4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T15:34:30 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T15:34:30+01:00", - "_body": "00", - "_head": "3350", - "rate": 2.0, - "_date": "1e620f4311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T15:30:52 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T15:30:52+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "345e0f4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T15:30:52 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T15:30:52+01:00", - "_body": "00", - "_head": "3334", - "rate": 1.3, - "_date": "345e0f4311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T15:17:38 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T15:17:38+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "26510f4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T15:17:38 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T15:17:38+01:00", - "_body": "00", - "_head": "3314", - "rate": 0.5, - "_date": "26510f4311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T15:13:54 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T15:13:54+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "364d0f4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T15:13:54 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T15:13:54+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "364d0f4311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T15:02:56 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T15:02:56+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "38420f4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T15:02:56 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T15:02:56+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "38420f4311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T14:57:53 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T14:57:53+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "35790e4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T14:57:53 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T14:57:53+01:00", - "_body": "00", - "_head": "3312", - "rate": 0.45, - "_date": "35790e4311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T14:47:42 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T14:47:42+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2a6f0e4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T14:47:42 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T14:47:42+01:00", - "_body": "00", - "_head": "3317", - "rate": 0.575, - "_date": "2a6f0e4311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T14:41:21 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T14:41:21+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "15690e4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T14:41:21 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T14:41:21+01:00", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "15690e4311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T14:24:44 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T14:24:44+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "2c580e4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T14:24:44 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T14:24:44+01:00", - "_body": "00", - "_head": "3317", - "rate": 0.575, - "_date": "2c580e4311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T14:13:22 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T14:13:22+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "164d0e4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T14:13:22 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T14:13:22+01:00", - "_body": "00", - "_head": "3316", - "rate": 0.55, - "_date": "164d0e4311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T14:11:22 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T14:11:22+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "164b0e4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T14:11:22 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T14:11:22+01:00", - "_body": "00", - "_head": "332a", - "rate": 1.05, - "_date": "164b0e4311" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-03T14:04:52 head[4], body[0] op[0x01]", - "timestamp": "2017-01-03T14:04:52+01:00", - "_body": "", - "appended": [ - { - "_type": "UnabsorbedInsulinBolus", - "_description": "UnabsorbedInsulinBolus unknown head[11], body[0] op[0x5c]", - "_body": "", - "_head": "5c0b503bd02263d0326dd1", - "data": [ - { - "amount": 2.0, - "age": 315 - }, - { - "amount": 0.85, - "age": 355 - }, - { - "amount": 1.25, - "age": 365 - } - ], - "_date": "" - } - ], - "programmed": 9.0, - "duration": 0, - "amount": 9.0, - "_head": "015a5a00", - "type": "normal", - "_date": "34444e0311" - }, - { - "unknown_byte[8]": 0, - "_type": "BolusWizard", - "bg": 130, - "_byte[5]": 13, - "unknown_byte[10]": 0, - "_description": "BolusWizard 2017-01-03T14:04:52 head[2], body[13] op[0x5b]", - "timestamp": "2017-01-03T14:04:52+01:00", - "_body": "4650091e5a0d4d000000005a5a", - "bg_target_high": 90, - "sensitivity": 30, - "carb_ratio": 9, - "food_estimate": 7.7, - "unabsorbed_insulin_total": 0.0, - "correction_estimate": 1.3, - "carb_input": 70, - "_head": "5b82", - "unabsorbed_insulin_count": "??", - "_byte[7]": 0, - "bolus_estimate": 9.0, - "_date": "34440e0311", - "bg_target_low": 90 - }, - { - "_type": "CalBGForPH", - "_description": "CalBGForPH 2017-01-03T14:04:35 head[2], body[0] op[0x0a]", - "timestamp": "2017-01-03T14:04:35+01:00", - "_body": "", - "_head": "0a82", - "amount": 130, - "_date": "23442e0311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T14:03:56 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T14:03:56+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "38430e4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T14:03:56 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T14:03:56+01:00", - "_body": "00", - "_head": "33a6", - "rate": 4.15, - "_date": "38430e4311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T14:03:01 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T14:03:01+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "01430e4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T14:03:01 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T14:03:01+01:00", - "_body": "00", - "_head": "3372", - "rate": 2.85, - "_date": "01430e4311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T13:57:33 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T13:57:33+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "21790d4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T13:57:33 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T13:57:33+01:00", - "_body": "00", - "_head": "333e", - "rate": 1.55, - "_date": "21790d4311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T13:53:14 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T13:53:14+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "0e750d4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T13:53:14 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T13:53:14+01:00", - "_body": "00", - "_head": "3316", - "rate": 0.55, - "_date": "0e750d4311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T13:42:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T13:42:29+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "1d6a0d4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T13:42:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T13:42:29+01:00", - "_body": "00", - "_head": "33d3", - "rate": 5.275, - "_date": "1d6a0d4311" - }, - { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-03T13:40:41 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T13:40:41+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "29680d4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T13:40:41 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T13:40:41+01:00", - "_body": "00", - "_head": "33a8", - "rate": 4.2, - "_date": "29680d4311" - } -] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/pumphistory-24h.json b/app/src/main/java/info/nightscout/sampleData/settings/pumphistory-24h.json deleted file mode 100644 index 4513d0796d..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/settings/pumphistory-24h.json +++ /dev/null @@ -1,4075 +0,0 @@ -[ - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T16:37:57 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:37:57", - "_body": "", - "_head": "1601", - "_date": "3965104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:37:57 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:37:57", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "3965104411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T16:28:28 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:28:28", - "_body": "", - "_head": "1601", - "_date": "1c5c104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:28:28 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:28:28", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "1c5c104411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T16:21:31 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:21:31", - "_body": "", - "_head": "1601", - "_date": "1f55104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:21:31 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:21:31", - "_body": "00", - "_head": "337c", - "rate": 3.1, - "_date": "1f55104411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T16:15:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:15:29", - "_body": "", - "_head": "1601", - "_date": "1d4f104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:15:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:15:29", - "_body": "00", - "_head": "3362", - "rate": 2.45, - "_date": "1d4f104411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T16:08:41 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:08:41", - "_body": "", - "_head": "1601", - "_date": "2948104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:08:41 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:08:41", - "_body": "00", - "_head": "334e", - "rate": 1.95, - "_date": "2948104411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T16:06:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:06:50", - "_body": "", - "_head": "1601", - "_date": "3246104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:06:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:06:50", - "_body": "00", - "_head": "3332", - "rate": 1.25, - "_date": "3246104411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T16:02:03 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:02:03", - "_body": "", - "_head": "1601", - "_date": "0342104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:02:03 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:02:03", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "0342104411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T16:01:28 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:01:28", - "_body": "", - "_head": "1601", - "_date": "1c41104411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:01:28 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:01:28", - "_body": "00", - "_head": "3396", - "rate": 3.75, - "_date": "1c41104411" - }, - { - "programmed": 2.0, - "_type": "Bolus", - "type": "normal", - "_description": "Bolus 2017-01-04T15:58:37 head[4], body[0] op[0x01]", - "duration": 0, - "timestamp": "2017-01-04T15:58:37", - "_body": "", - "_head": "01141400", - "amount": 2.0, - "_date": "257a4f0411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T15:55:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:55:29", - "_body": "", - "_head": "1601", - "_date": "1d770f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:55:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:55:29", - "_body": "00", - "_head": "332d", - "rate": 1.125, - "_date": "1d770f4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T15:46:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:46:50", - "_body": "", - "_head": "1601", - "_date": "326e0f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:46:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:46:50", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "326e0f4411" - }, - { - "programmed": 2.0, - "_type": "Bolus", - "type": "normal", - "_description": "Bolus 2017-01-04T15:44:07 head[4], body[0] op[0x01]", - "duration": 0, - "timestamp": "2017-01-04T15:44:07", - "_body": "", - "_head": "01141400", - "amount": 2.0, - "_date": "076c4f0411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T15:43:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:43:50", - "_body": "", - "_head": "1601", - "_date": "326b0f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:43:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:43:50", - "_body": "00", - "_head": "3341", - "rate": 1.625, - "_date": "326b0f4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T15:41:22 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:41:22", - "_body": "", - "_head": "1601", - "_date": "16690f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:41:22 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:41:22", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "16690f4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T15:28:24 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:28:24", - "_body": "", - "_head": "1601", - "_date": "185c0f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:28:24 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:28:24", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "185c0f4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T15:22:58 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:22:58", - "_body": "", - "_head": "1601", - "_date": "3a560f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:22:58 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:22:58", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "3a560f4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T15:13:01 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T15:13:01", - "_body": "", - "_head": "1601", - "_date": "014d0f4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T15:13:01 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T15:13:01", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "014d0f4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T14:50:21 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:50:21", - "_body": "", - "_head": "1601", - "_date": "15720e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:50:21 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:50:21", - "_body": "00", - "_head": "33fb", - "rate": 6.275, - "_date": "15720e4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T14:38:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:38:50", - "_body": "", - "_head": "1601", - "_date": "32660e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:38:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:38:50", - "_body": "00", - "_head": "33e7", - "rate": 5.775, - "_date": "32660e4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T14:34:03 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:34:03", - "_body": "", - "_head": "1601", - "_date": "03620e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:34:03 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:34:03", - "_body": "00", - "_head": "3344", - "rate": 1.7, - "_date": "03620e4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T14:33:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:33:29", - "_body": "", - "_head": "1601", - "_date": "1d610e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:33:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:33:29", - "_body": "00", - "_head": "3392", - "rate": 3.65, - "_date": "1d610e4411" - }, - { - "programmed": 1.0, - "_type": "Bolus", - "type": "normal", - "_description": "Bolus 2017-01-04T14:32:05 head[4], body[0] op[0x01]", - "duration": 0, - "timestamp": "2017-01-04T14:32:05", - "_body": "", - "_head": "010a0a00", - "amount": 1.0, - "_date": "05604e0411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T14:26:30 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:26:30", - "_body": "", - "_head": "1601", - "_date": "1e5a0e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:26:30 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:26:30", - "_body": "00", - "_head": "3320", - "rate": 0.8, - "_date": "1e5a0e4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T14:25:47 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:25:47", - "_body": "", - "_head": "1601", - "_date": "2f590e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:25:47 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:25:47", - "_body": "00", - "_head": "3378", - "rate": 3.0, - "_date": "2f590e4411" - }, - { - "programmed": 2.0, - "_type": "Bolus", - "type": "normal", - "_description": "Bolus 2017-01-04T14:22:59 head[4], body[0] op[0x01]", - "duration": 0, - "timestamp": "2017-01-04T14:22:59", - "_body": "", - "_head": "01141400", - "amount": 2.0, - "_date": "3b564e0411" - }, - { - "_type": "Prime", - "type": "manual", - "_description": "Prime 2017-01-04T14:18:15 head[5], body[0] op[0x03]", - "timestamp": "2017-01-04T14:18:15", - "_body": "", - "fixed": 0.0, - "_head": "0300000027", - "amount": 3.9, - "_date": "0f522e0411" - }, - { - "_type": "Rewind", - "_description": "Rewind 2017-01-04T14:18:03 head[2], body[0] op[0x21]", - "timestamp": "2017-01-04T14:18:03", - "_body": "", - "_head": "2100", - "_date": "03520e0411" - }, - { - "_type": "Prime", - "type": "fixed", - "_description": "Prime 2017-01-04T14:17:15 head[5], body[0] op[0x03]", - "timestamp": "2017-01-04T14:17:15", - "_body": "", - "fixed": 1.0, - "_head": "03000a000a", - "amount": 1.0, - "_date": "0f510e0411" - }, - { - "_type": "Prime", - "type": "fixed", - "_description": "Prime 2017-01-04T14:14:56 head[5], body[0] op[0x03]", - "timestamp": "2017-01-04T14:14:56", - "_body": "", - "fixed": 2.5, - "_head": "0300190019", - "amount": 2.5, - "_date": "384e0e0411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T14:14:32 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:14:32", - "_body": "", - "_head": "1601", - "_date": "204e0e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:14:32 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:14:32", - "_body": "00", - "_head": "3346", - "rate": 1.75, - "_date": "204e0e4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T14:09:45 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T14:09:45", - "_body": "", - "_head": "1601", - "_date": "2d490e4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T14:09:45 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T14:09:45", - "_body": "00", - "_head": "3337", - "rate": 1.375, - "_date": "2d490e4411" - }, - { - "_type": "ClearAlarm", - "_description": "ClearAlarm 2017-01-04T14:04:16 head[2], body[0] op[0x0c]", - "timestamp": "2017-01-04T14:04:16", - "_body": "", - "_head": "0c04", - "_date": "10440e0411" - }, - { - "_type": "AlarmPump", - "_description": "AlarmPump 2017-01-04T14:04:05 head[4], body[0] op[0x06]", - "timestamp": "2017-01-04T14:04:05", - "_body": "", - "_head": "06040bff", - "_date": "05444e4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:57:38 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:57:38", - "_body": "", - "_head": "1601", - "_date": "26790d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:57:38 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:57:38", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "26790d4411" - }, - { - "programmed": 1.0, - "_type": "Bolus", - "type": "normal", - "_description": "Bolus 2017-01-04T13:53:05 head[4], body[0] op[0x01]", - "duration": 0, - "timestamp": "2017-01-04T13:53:05", - "_body": "", - "_head": "010a0a00", - "amount": 1.0, - "_date": "05754d0411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:47:51 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:47:51", - "_body": "", - "_head": "1601", - "_date": "336f0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:47:51 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:47:51", - "_body": "00", - "_head": "3368", - "rate": 2.6, - "_date": "336f0d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:43:53 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:43:53", - "_body": "", - "_head": "1601", - "_date": "356b0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:43:53 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:43:53", - "_body": "00", - "_head": "3355", - "rate": 2.125, - "_date": "356b0d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:40:04 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:40:04", - "_body": "", - "_head": "1601", - "_date": "04680d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:40:04 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:40:04", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "04680d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:27:46 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:27:46", - "_body": "", - "_head": "1601", - "_date": "2e5b0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:27:46 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:27:46", - "_body": "00", - "_head": "3348", - "rate": 1.8, - "_date": "2e5b0d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:27:00 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:27:00", - "_body": "", - "_head": "1601", - "_date": "005b0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:27:00 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:27:00", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "005b0d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:20:49 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:20:49", - "_body": "", - "_head": "1601", - "_date": "31540d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:20:49 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:20:49", - "_body": "00", - "_head": "332d", - "rate": 1.125, - "_date": "31540d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:15:40 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:15:40", - "_body": "", - "_head": "1601", - "_date": "284f0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:15:40 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:15:40", - "_body": "00", - "_head": "3373", - "rate": 2.875, - "_date": "284f0d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:15:31 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:15:31", - "_body": "", - "_head": "1601", - "_date": "1f4f0d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:15:31 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:15:31", - "_body": "00", - "_head": "3373", - "rate": 2.875, - "_date": "1f4f0d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:08:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:08:29", - "_body": "", - "_head": "1601", - "_date": "1d480d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:08:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:08:29", - "_body": "00", - "_head": "332c", - "rate": 1.1, - "_date": "1d480d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T13:03:28 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T13:03:28", - "_body": "", - "_head": "1601", - "_date": "1c430d4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T13:03:28 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T13:03:28", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "1c430d4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T12:57:44 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:57:44", - "_body": "", - "_head": "1601", - "_date": "2c790c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:57:44 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:57:44", - "_body": "00", - "_head": "332a", - "rate": 1.05, - "_date": "2c790c4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T12:47:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:47:29", - "_body": "", - "_head": "1601", - "_date": "1d6f0c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:47:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:47:29", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "1d6f0c4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T12:35:30 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:35:30", - "_body": "", - "_head": "1601", - "_date": "1e630c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:35:30 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:35:30", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "1e630c4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T12:23:47 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:23:47", - "_body": "", - "_head": "1601", - "_date": "2f570c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:23:47 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:23:47", - "_body": "00", - "_head": "33b5", - "rate": 4.525, - "_date": "2f570c4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T12:18:48 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:18:48", - "_body": "", - "_head": "1601", - "_date": "30520c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:18:48 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:18:48", - "_body": "00", - "_head": "334a", - "rate": 1.85, - "_date": "30520c4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T12:13:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:13:29", - "_body": "", - "_head": "1601", - "_date": "1d4d0c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:13:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:13:29", - "_body": "00", - "_head": "3337", - "rate": 1.375, - "_date": "1d4d0c4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T12:08:07 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T12:08:07", - "_body": "", - "_head": "1601", - "_date": "07480c4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T12:08:07 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T12:08:07", - "_body": "00", - "_head": "3324", - "rate": 0.9, - "_date": "07480c4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T11:55:46 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T11:55:46", - "_body": "", - "_head": "1601", - "_date": "2e770b4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T11:55:46 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T11:55:46", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "2e770b4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T11:42:44 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T11:42:44", - "_body": "", - "_head": "1601", - "_date": "2c6a0b4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T11:42:44 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T11:42:44", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "2c6a0b4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T11:31:27 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T11:31:27", - "_body": "", - "_head": "1601", - "_date": "1b5f0b4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T11:31:27 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T11:31:27", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "1b5f0b4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T11:19:25 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T11:19:25", - "_body": "", - "_head": "1601", - "_date": "19530b4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T11:19:25 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T11:19:25", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "19530b4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T10:58:19 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T10:58:19", - "_body": "", - "_head": "1601", - "_date": "137a0a4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T10:58:19 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T10:58:19", - "_body": "00", - "_head": "33c9", - "rate": 5.025, - "_date": "137a0a4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T10:52:44 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T10:52:44", - "_body": "", - "_head": "1601", - "_date": "2c740a4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T10:52:44 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T10:52:44", - "_body": "00", - "_head": "33a8", - "rate": 4.2, - "_date": "2c740a4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T10:48:19 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T10:48:19", - "_body": "", - "_head": "1601", - "_date": "13700a4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T10:48:19 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T10:48:19", - "_body": "00", - "_head": "3380", - "rate": 3.2, - "_date": "13700a4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T10:33:14 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T10:33:14", - "_body": "", - "_head": "1601", - "_date": "0e610a4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T10:33:14 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T10:33:14", - "_body": "00", - "_head": "336e", - "rate": 2.75, - "_date": "0e610a4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T10:27:44 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T10:27:44", - "_body": "", - "_head": "1601", - "_date": "2c5b0a4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T10:27:44 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T10:27:44", - "_body": "00", - "_head": "334a", - "rate": 1.85, - "_date": "2c5b0a4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T10:23:49 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T10:23:49", - "_body": "", - "_head": "1601", - "_date": "31570a4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T10:23:49 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T10:23:49", - "_body": "00", - "_head": "3310", - "rate": 0.4, - "_date": "31570a4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T10:18:26 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T10:18:26", - "_body": "", - "_head": "1601", - "_date": "1a520a4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T10:18:26 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T10:18:26", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "1a520a4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T10:08:25 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T10:08:25", - "_body": "", - "_head": "1601", - "_date": "19480a4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T10:08:25 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T10:08:25", - "_body": "00", - "_head": "3324", - "rate": 0.9, - "_date": "19480a4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T10:03:08 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T10:03:08", - "_body": "", - "_head": "1601", - "_date": "08430a4411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T10:03:08 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T10:03:08", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "08430a4411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T09:45:24 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T09:45:24", - "_body": "", - "_head": "1601", - "_date": "186d094411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T09:45:24 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T09:45:24", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "186d094411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T09:33:14 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T09:33:14", - "_body": "", - "_head": "1601", - "_date": "0e61094411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T09:33:14 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T09:33:14", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "0e61094411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T09:32:28 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T09:32:28", - "_body": "", - "_head": "1601", - "_date": "1c60094411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T09:32:28 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T09:32:28", - "_body": "00", - "_head": "3324", - "rate": 0.9, - "_date": "1c60094411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T09:18:26 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T09:18:26", - "_body": "", - "_head": "1601", - "_date": "1a52094411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T09:18:26 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T09:18:26", - "_body": "00", - "_head": "3336", - "rate": 1.35, - "_date": "1a52094411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T09:01:07 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T09:01:07", - "_body": "", - "_head": "1601", - "_date": "0741094411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T09:01:07 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T09:01:07", - "_body": "00", - "_head": "3336", - "rate": 1.35, - "_date": "0741094411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T09:00:27 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T09:00:27", - "_body": "", - "_head": "1601", - "_date": "1b40094411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T09:00:27 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T09:00:27", - "_body": "00", - "_head": "33d3", - "rate": 5.275, - "_date": "1b40094411" - }, - { - "programmed": 8.5, - "_type": "Bolus", - "type": "normal", - "_description": "Bolus 2017-01-04T08:53:23 head[4], body[0] op[0x01]", - "duration": 0, - "timestamp": "2017-01-04T08:53:23", - "_body": "", - "_head": "01555500", - "amount": 8.5, - "_date": "1775480411" - }, - { - "_type": "BolusWizard", - "bg": 98, - "bg_target_high": 90, - "correction_estimate": 0.2, - "unknown_byte[10]": 0, - "_description": "BolusWizard 2017-01-04T08:53:23 head[2], body[13] op[0x5b]", - "timestamp": "2017-01-04T08:53:23", - "_body": "3c50071e5a025500000000575a", - "carb_input": 60, - "_head": "5b62", - "unabsorbed_insulin_total": 0.0, - "_byte[5]": 2, - "unabsorbed_insulin_count": "??", - "_byte[7]": 0, - "_date": "1775080411", - "bolus_estimate": 8.7, - "unknown_byte[8]": 0, - "carb_ratio": 7, - "food_estimate": 8.5, - "bg_target_low": 90, - "sensitivity": 30 - }, - { - "_type": "CalBGForPH", - "_description": "CalBGForPH 2017-01-04T08:53:09 head[2], body[0] op[0x0a]", - "timestamp": "2017-01-04T08:53:09", - "_body": "", - "_head": "0a62", - "amount": 98, - "_date": "0975280411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T08:49:26 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T08:49:26", - "_body": "", - "_head": "1601", - "_date": "1a71084411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T08:49:26 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T08:49:26", - "_body": "00", - "_head": "3397", - "rate": 3.775, - "_date": "1a71084411" - }, - { - "_type": "Prime", - "type": "manual", - "_description": "Prime 2017-01-04T08:47:41 head[5], body[0] op[0x03]", - "timestamp": "2017-01-04T08:47:41", - "_body": "", - "fixed": 0.0, - "_head": "0300000035", - "amount": 5.3, - "_date": "296f280411" - }, - { - "_type": "Rewind", - "_description": "Rewind 2017-01-04T08:46:39 head[2], body[0] op[0x21]", - "timestamp": "2017-01-04T08:46:39", - "_body": "", - "_head": "2100", - "_date": "276e080411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T08:35:51 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T08:35:51", - "_body": "", - "_head": "1601", - "_date": "3363084411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T08:35:51 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T08:35:51", - "_body": "00", - "_head": "3364", - "rate": 2.5, - "_date": "3363084411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T08:16:25 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T08:16:25", - "_body": "", - "_head": "1601", - "_date": "1950084411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T08:16:25 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T08:16:25", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "1950084411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T08:02:26 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T08:02:26", - "_body": "", - "_head": "1601", - "_date": "1a42084411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T08:02:26 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T08:02:26", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "1a42084411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T07:49:32 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T07:49:32", - "_body": "", - "_head": "1601", - "_date": "2071074411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T07:49:32 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T07:49:32", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "2071074411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T07:37:12 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T07:37:12", - "_body": "", - "_head": "1601", - "_date": "0c65074411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T07:37:12 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T07:37:12", - "_body": "00", - "_head": "335e", - "rate": 2.35, - "_date": "0c65074411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T07:29:09 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T07:29:09", - "_body": "", - "_head": "1601", - "_date": "095d074411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T07:29:09 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T07:29:09", - "_body": "00", - "_head": "3341", - "rate": 1.625, - "_date": "095d074411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T07:13:03 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T07:13:03", - "_body": "", - "_head": "1601", - "_date": "034d074411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T07:13:03 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T07:13:03", - "_body": "00", - "_head": "3337", - "rate": 1.375, - "_date": "034d074411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T06:55:25 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T06:55:25", - "_body": "", - "_head": "1601", - "_date": "1977064411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T06:55:25 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T06:55:25", - "_body": "00", - "_head": "3348", - "rate": 1.8, - "_date": "1977064411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T06:39:20 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T06:39:20", - "_body": "", - "_head": "1601", - "_date": "1467064411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T06:39:20 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T06:39:20", - "_body": "00", - "_head": "3348", - "rate": 1.8, - "_date": "1467064411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T06:13:02 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T06:13:02", - "_body": "", - "_head": "1601", - "_date": "024d064411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T06:13:02 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T06:13:02", - "_body": "00", - "_head": "3328", - "rate": 1.0, - "_date": "024d064411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T06:05:47 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T06:05:47", - "_body": "", - "_head": "1601", - "_date": "2f45064411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T06:05:47 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T06:05:47", - "_body": "00", - "_head": "334e", - "rate": 1.95, - "_date": "2f45064411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T05:57:53 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T05:57:53", - "_body": "", - "_head": "1601", - "_date": "3579054411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T05:57:53 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T05:57:53", - "_body": "00", - "_head": "336e", - "rate": 2.75, - "_date": "3579054411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T05:48:01 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T05:48:01", - "_body": "", - "_head": "1601", - "_date": "0170054411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T05:48:01 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T05:48:01", - "_body": "00", - "_head": "3351", - "rate": 2.025, - "_date": "0170054411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T05:44:11 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T05:44:11", - "_body": "", - "_head": "1601", - "_date": "0b6c054411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T05:44:11 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T05:44:11", - "_body": "00", - "_head": "339a", - "rate": 3.85, - "_date": "0b6c054411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T05:42:18 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T05:42:18", - "_body": "", - "_head": "1601", - "_date": "126a054411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T05:42:18 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T05:42:18", - "_body": "00", - "_head": "3372", - "rate": 2.85, - "_date": "126a054411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T05:27:12 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T05:27:12", - "_body": "", - "_head": "1601", - "_date": "0c5b054411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T05:27:12 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T05:27:12", - "_body": "00", - "_head": "335f", - "rate": 2.375, - "_date": "0c5b054411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T05:24:13 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T05:24:13", - "_body": "", - "_head": "1601", - "_date": "0d58054411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T05:24:13 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T05:24:13", - "_body": "00", - "_head": "334b", - "rate": 1.875, - "_date": "0d58054411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T05:19:49 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T05:19:49", - "_body": "", - "_head": "1601", - "_date": "3153054411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T05:19:49 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T05:19:49", - "_body": "00", - "_head": "333c", - "rate": 1.5, - "_date": "3153054411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T05:07:57 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T05:07:57", - "_body": "", - "_head": "1601", - "_date": "3947054411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T05:07:57 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T05:07:57", - "_body": "00", - "_head": "3339", - "rate": 1.425, - "_date": "3947054411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T04:58:02 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T04:58:02", - "_body": "", - "_head": "1601", - "_date": "027a044411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T04:58:02 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T04:58:02", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "027a044411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T04:52:15 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T04:52:15", - "_body": "", - "_head": "1601", - "_date": "0f74044411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T04:52:15 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T04:52:15", - "_body": "00", - "_head": "333e", - "rate": 1.55, - "_date": "0f74044411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T04:32:13 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T04:32:13", - "_body": "", - "_head": "1601", - "_date": "0d60044411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T04:32:13 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T04:32:13", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "0d60044411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T04:13:58 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T04:13:58", - "_body": "", - "_head": "1601", - "_date": "3a4d044411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T04:13:58 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T04:13:58", - "_body": "00", - "_head": "3368", - "rate": 2.6, - "_date": "3a4d044411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T04:02:18 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T04:02:18", - "_body": "", - "_head": "1601", - "_date": "1242044411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T04:02:18 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T04:02:18", - "_body": "00", - "_head": "335b", - "rate": 2.275, - "_date": "1242044411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T03:57:54 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:57:54", - "_body": "", - "_head": "1601", - "_date": "3679034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:57:54 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:57:54", - "_body": "00", - "_head": "3337", - "rate": 1.375, - "_date": "3679034411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T03:50:05 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:50:05", - "_body": "", - "_head": "1601", - "_date": "0572034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:50:05 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:50:05", - "_body": "00", - "_head": "332c", - "rate": 1.1, - "_date": "0572034411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T03:38:04 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:38:04", - "_body": "", - "_head": "1601", - "_date": "0466034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:38:04 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:38:04", - "_body": "00", - "_head": "332a", - "rate": 1.05, - "_date": "0466034411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T03:34:07 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:34:07", - "_body": "", - "_head": "1601", - "_date": "0762034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:34:07 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:34:07", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "0762034411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T03:32:16 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:32:16", - "_body": "", - "_head": "1601", - "_date": "1060034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:32:16 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:32:16", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "1060034411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T03:28:18 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:28:18", - "_body": "", - "_head": "1601", - "_date": "125c034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:28:18 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:28:18", - "_body": "00", - "_head": "3328", - "rate": 1.0, - "_date": "125c034411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T03:23:59 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:23:59", - "_body": "", - "_head": "1601", - "_date": "3b57034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:23:59 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:23:59", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "3b57034411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T03:15:58 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:15:58", - "_body": "", - "_head": "1601", - "_date": "3a4f034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:15:58 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:15:58", - "_body": "00", - "_head": "3328", - "rate": 1.0, - "_date": "3a4f034411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T03:09:54 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:09:54", - "_body": "", - "_head": "1601", - "_date": "3649034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:09:54 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:09:54", - "_body": "00", - "_head": "3320", - "rate": 0.8, - "_date": "3649034411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T03:04:59 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T03:04:59", - "_body": "", - "_head": "1601", - "_date": "3b44034411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T03:04:59 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T03:04:59", - "_body": "00", - "_head": "333c", - "rate": 1.5, - "_date": "3b44034411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T02:53:05 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T02:53:05", - "_body": "", - "_head": "1601", - "_date": "0575024411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T02:53:05 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T02:53:05", - "_body": "00", - "_head": "3332", - "rate": 1.25, - "_date": "0575024411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T02:50:55 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T02:50:55", - "_body": "", - "_head": "1601", - "_date": "3772024411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T02:50:55 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T02:50:55", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "3772024411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T02:37:22 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T02:37:22", - "_body": "", - "_head": "1601", - "_date": "1665024411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T02:37:22 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T02:37:22", - "_body": "00", - "_head": "3312", - "rate": 0.45, - "_date": "1665024411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T02:34:59 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T02:34:59", - "_body": "", - "_head": "1601", - "_date": "3b62024411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T02:34:59 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T02:34:59", - "_body": "00", - "_head": "3320", - "rate": 0.8, - "_date": "3b62024411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T02:23:02 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T02:23:02", - "_body": "", - "_head": "1601", - "_date": "0257024411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T02:23:02 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T02:23:02", - "_body": "00", - "_head": "3328", - "rate": 1.0, - "_date": "0257024411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T02:07:22 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T02:07:22", - "_body": "", - "_head": "1601", - "_date": "1647024411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T02:07:22 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T02:07:22", - "_body": "00", - "_head": "3383", - "rate": 3.275, - "_date": "1647024411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T01:57:47 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T01:57:47", - "_body": "", - "_head": "1601", - "_date": "2f79014411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T01:57:47 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T01:57:47", - "_body": "00", - "_head": "336c", - "rate": 2.7, - "_date": "2f79014411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T01:52:18 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T01:52:18", - "_body": "", - "_head": "1601", - "_date": "1274014411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T01:52:18 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T01:52:18", - "_body": "00", - "_head": "3351", - "rate": 2.025, - "_date": "1274014411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T01:50:04 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T01:50:04", - "_body": "", - "_head": "1601", - "_date": "0472014411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T01:50:04 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T01:50:04", - "_body": "00", - "_head": "338a", - "rate": 3.45, - "_date": "0472014411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T01:38:02 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T01:38:02", - "_body": "", - "_head": "1601", - "_date": "0266014411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T01:38:02 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T01:38:02", - "_body": "00", - "_head": "3388", - "rate": 3.4, - "_date": "0266014411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T01:32:14 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T01:32:14", - "_body": "", - "_head": "1601", - "_date": "0e60014411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T01:32:14 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T01:32:14", - "_body": "00", - "_head": "336e", - "rate": 2.75, - "_date": "0e60014411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T01:27:55 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T01:27:55", - "_body": "", - "_head": "1601", - "_date": "375b014411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T01:27:55 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T01:27:55", - "_body": "00", - "_head": "3354", - "rate": 2.1, - "_date": "375b014411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T01:22:27 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T01:22:27", - "_body": "", - "_head": "1601", - "_date": "1b56014411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T01:22:27 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T01:22:27", - "_body": "00", - "_head": "3340", - "rate": 1.6, - "_date": "1b56014411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T01:18:07 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T01:18:07", - "_body": "", - "_head": "1601", - "_date": "0752014411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T01:18:07 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T01:18:07", - "_body": "00", - "_head": "332f", - "rate": 1.175, - "_date": "0752014411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T01:13:54 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T01:13:54", - "_body": "", - "_head": "1601", - "_date": "364d014411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T01:13:54 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T01:13:54", - "_body": "00", - "_head": "3325", - "rate": 0.925, - "_date": "364d014411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T00:55:59 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T00:55:59", - "_body": "", - "_head": "1601", - "_date": "3b77004411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T00:55:59 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T00:55:59", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "3b77004411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T00:44:48 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T00:44:48", - "_body": "", - "_head": "1601", - "_date": "306c004411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T00:44:48 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T00:44:48", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "306c004411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T00:33:20 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T00:33:20", - "_body": "", - "_head": "1601", - "_date": "1461004411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T00:33:20 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T00:33:20", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "1461004411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T00:30:57 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T00:30:57", - "_body": "", - "_head": "1601", - "_date": "395e004411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T00:30:57 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T00:30:57", - "_body": "00", - "_head": "3382", - "rate": 3.25, - "_date": "395e004411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T00:23:08 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T00:23:08", - "_body": "", - "_head": "1601", - "_date": "0857004411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T00:23:08 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T00:23:08", - "_body": "00", - "_head": "334b", - "rate": 1.875, - "_date": "0857004411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T00:21:10 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T00:21:10", - "_body": "", - "_head": "1601", - "_date": "0a55004411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T00:21:10 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T00:21:10", - "_body": "00", - "_head": "3334", - "rate": 1.3, - "_date": "0a55004411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T00:17:20 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T00:17:20", - "_body": "", - "_head": "1601", - "_date": "1451004411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T00:17:20 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T00:17:20", - "_body": "00", - "_head": "332a", - "rate": 1.05, - "_date": "1451004411" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-04T00:07:10 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T00:07:10", - "_body": "", - "_head": "1601", - "_date": "0a47004411" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T00:07:10 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T00:07:10", - "_body": "00", - "_head": "33d2", - "rate": 5.25, - "_date": "0a47004411" - }, - { - "_type": "Model522ResultTotals", - "_description": "Model522ResultTotals 2017-01-04T00:00:00 head[1], body[41] op[0x6d]", - "timestamp": "2017-01-04T00:00:00", - "_body": "0500695a820400000c2804f82907303b00e107303b04403b00480402a8250a020002060c00e8000000", - "_head": "6d", - "_date": "0391" - }, - { - "_type": "ResultDailyTotal", - "_description": "ResultDailyTotal 2017-01-04T00:00:00 head[5], body[0] op[0x07]", - "timestamp": "2017-01-04T00:00:00", - "_body": "", - "valid_date": "2017-01-03", - "_head": "0700000c28", - "_date": "0391" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T23:57:37 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:57:37", - "_body": "", - "_head": "1601", - "_date": "2579174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:57:37 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:57:37", - "_body": "00", - "_head": "33aa", - "rate": 4.25, - "_date": "2579174311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T23:53:56 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:53:56", - "_body": "", - "_head": "1601", - "_date": "3875174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:53:56 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:53:56", - "_body": "00", - "_head": "337c", - "rate": 3.1, - "_date": "3875174311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T23:42:13 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:42:13", - "_body": "", - "_head": "1601", - "_date": "0d6a174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:42:13 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:42:13", - "_body": "00", - "_head": "3368", - "rate": 2.6, - "_date": "0d6a174311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T23:38:13 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:38:13", - "_body": "", - "_head": "1601", - "_date": "0d66174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:38:13 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:38:13", - "_body": "00", - "_head": "3351", - "rate": 2.025, - "_date": "0d66174311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T23:33:48 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:33:48", - "_body": "", - "_head": "1601", - "_date": "3061174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:33:48 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:33:48", - "_body": "00", - "_head": "331e", - "rate": 0.75, - "_date": "3061174311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T23:22:14 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:22:14", - "_body": "", - "_head": "1601", - "_date": "0e56174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:22:14 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:22:14", - "_body": "00", - "_head": "331a", - "rate": 0.65, - "_date": "0e56174311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T23:12:12 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:12:12", - "_body": "", - "_head": "1601", - "_date": "0c4c174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:12:12 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:12:12", - "_body": "00", - "_head": "339a", - "rate": 3.85, - "_date": "0c4c174311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T23:10:13 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:10:13", - "_body": "", - "_head": "1601", - "_date": "0d4a174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:10:13 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:10:13", - "_body": "00", - "_head": "336e", - "rate": 2.75, - "_date": "0d4a174311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T23:08:14 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:08:14", - "_body": "", - "_head": "1601", - "_date": "0e48174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:08:14 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:08:14", - "_body": "00", - "_head": "333e", - "rate": 1.55, - "_date": "0e48174311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T23:05:07 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:05:07", - "_body": "", - "_head": "1601", - "_date": "0745174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:05:07 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:05:07", - "_body": "00", - "_head": "3317", - "rate": 0.575, - "_date": "0745174311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T23:04:47 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T23:04:47", - "_body": "", - "_head": "1601", - "_date": "2f44174311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T23:04:47 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T23:04:47", - "_body": "00", - "_head": "33c9", - "rate": 5.025, - "_date": "2f44174311" - }, - { - "programmed": 3.0, - "_type": "Bolus", - "type": "normal", - "_description": "Bolus 2017-01-03T23:02:21 head[4], body[0] op[0x01]", - "duration": 0, - "timestamp": "2017-01-03T23:02:21", - "_body": "", - "_head": "011e1e00", - "amount": 3.0, - "_date": "1542570311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T22:57:19 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T22:57:19", - "_body": "", - "_head": "1601", - "_date": "1379164311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T22:57:19 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T22:57:19", - "_body": "00", - "_head": "337c", - "rate": 3.1, - "_date": "1379164311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T22:52:52 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T22:52:52", - "_body": "", - "_head": "1601", - "_date": "3474164311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T22:52:52 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T22:52:52", - "_body": "00", - "_head": "3340", - "rate": 1.6, - "_date": "3474164311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T22:46:10 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T22:46:10", - "_body": "", - "_head": "1601", - "_date": "0a6e164311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T22:46:10 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T22:46:10", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "0a6e164311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T22:44:16 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T22:44:16", - "_body": "", - "_head": "1601", - "_date": "106c164311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T22:44:16 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T22:44:16", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "106c164311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T22:41:55 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T22:41:55", - "_body": "", - "_head": "1601", - "_date": "3769164311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T22:41:55 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T22:41:55", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "3769164311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T22:29:55 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T22:29:55", - "_body": "", - "_head": "1601", - "_date": "375d164311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T22:29:55 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T22:29:55", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "375d164311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T22:16:25 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T22:16:25", - "_body": "", - "_head": "1601", - "_date": "1950164311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T22:16:25 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T22:16:25", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "1950164311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T22:04:03 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T22:04:03", - "_body": "", - "_head": "1601", - "_date": "0344164311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T22:04:03 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T22:04:03", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "0344164311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T21:54:01 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T21:54:01", - "_body": "", - "_head": "1601", - "_date": "0176154311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T21:54:01 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T21:54:01", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "0176154311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T21:37:25 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T21:37:25", - "_body": "", - "_head": "1601", - "_date": "1965154311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T21:37:25 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T21:37:25", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "1965154311" - }, - { - "programmed": 3.0, - "_type": "Bolus", - "type": "normal", - "_description": "Bolus 2017-01-03T21:28:28 head[4], body[0] op[0x01]", - "duration": 0, - "timestamp": "2017-01-03T21:28:28", - "_body": "", - "_head": "011e1e00", - "amount": 3.0, - "_date": "1c5c550311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T21:19:24 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T21:19:24", - "_body": "", - "_head": "1601", - "_date": "1853154311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T21:19:24 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T21:19:24", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "1853154311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T21:03:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T21:03:50", - "_body": "", - "_head": "1601", - "_date": "3243154311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T21:03:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T21:03:50", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "3243154311" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-03T20:57:24 head[4], body[0] op[0x01]", - "timestamp": "2017-01-03T20:57:24", - "_body": "", - "appended": [ - { - "_type": "UnabsorbedInsulinBolus", - "_description": "UnabsorbedInsulinBolus unknown head[23], body[0] op[0x5c]", - "data": [ - { - "amount": 3.0, - "age": 148 - }, - { - "amount": 4.5, - "age": 248 - }, - { - "amount": 3.05, - "age": 288 - }, - { - "amount": 0.95, - "age": 298 - }, - { - "amount": 2.0, - "age": 318 - }, - { - "amount": 3.1, - "age": 408 - }, - { - "amount": 5.9, - "age": 418 - } - ], - "_body": "", - "_head": "5c177894c0b4f8c07a20d0262ad0503ed07c98d0eca2d0", - "_date": "" - } - ], - "programmed": 7.0, - "_head": "01464600", - "amount": 7.0, - "duration": 0, - "type": "normal", - "_date": "1879540311" - }, - { - "_type": "BolusWizard", - "bg": 90, - "bg_target_high": 90, - "correction_estimate": 0.0, - "unknown_byte[10]": 0, - "_description": "BolusWizard 2017-01-03T20:57:24 head[2], body[13] op[0x5b]", - "timestamp": "2017-01-03T20:57:24", - "_body": "3750091e5a003d000004003d5a", - "carb_input": 55, - "_head": "5b5a", - "unabsorbed_insulin_total": 0.4, - "_byte[5]": 0, - "unabsorbed_insulin_count": "??", - "_byte[7]": 0, - "_date": "1879140311", - "bolus_estimate": 6.1, - "unknown_byte[8]": 0, - "carb_ratio": 9, - "food_estimate": 6.1, - "bg_target_low": 90, - "sensitivity": 30 - }, - { - "_type": "CalBGForPH", - "_description": "CalBGForPH 2017-01-03T20:57:06 head[2], body[0] op[0x0a]", - "timestamp": "2017-01-03T20:57:06", - "_body": "", - "_head": "0a5a", - "amount": 90, - "_date": "0679340311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T20:29:56 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T20:29:56", - "_body": "", - "_head": "1601", - "_date": "385d144311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T20:29:56 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T20:29:56", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "385d144311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T20:01:26 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T20:01:26", - "_body": "", - "_head": "1601", - "_date": "1a41144311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T20:01:26 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T20:01:26", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "1a41144311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T19:48:02 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T19:48:02", - "_body": "", - "_head": "1601", - "_date": "0270134311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T19:48:02 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T19:48:02", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "0270134311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T19:34:24 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T19:34:24", - "_body": "", - "_head": "1601", - "_date": "1862134311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T19:34:24 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T19:34:24", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "1862134311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T19:23:24 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T19:23:24", - "_body": "", - "_head": "1601", - "_date": "1857134311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T19:23:24 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T19:23:24", - "_body": "00", - "_head": "335f", - "rate": 2.375, - "_date": "1857134311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T19:17:59 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T19:17:59", - "_body": "", - "_head": "1601", - "_date": "3b51134311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T19:17:59 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T19:17:59", - "_body": "00", - "_head": "334b", - "rate": 1.875, - "_date": "3b51134311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T19:08:00 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T19:08:00", - "_body": "", - "_head": "1601", - "_date": "0048134311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T19:08:00 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T19:08:00", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "0048134311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T18:57:52 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T18:57:52", - "_body": "", - "_head": "1601", - "_date": "3479124311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T18:57:52 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T18:57:52", - "_body": "00", - "_head": "335b", - "rate": 2.275, - "_date": "3479124311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T18:54:25 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T18:54:25", - "_body": "", - "_head": "1601", - "_date": "1976124311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T18:54:25 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T18:54:25", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "1976124311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T18:48:50 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T18:48:50", - "_body": "", - "_head": "1601", - "_date": "3270124311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T18:48:50 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T18:48:50", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "3270124311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T18:45:26 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T18:45:26", - "_body": "", - "_head": "1601", - "_date": "1a6d124311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T18:45:26 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T18:45:26", - "_body": "00", - "_head": "3328", - "rate": 1.0, - "_date": "1a6d124311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T18:34:48 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T18:34:48", - "_body": "", - "_head": "1601", - "_date": "3062124311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T18:34:48 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T18:34:48", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "3062124311" - }, - { - "programmed": 3.0, - "_type": "Bolus", - "type": "normal", - "_description": "Bolus 2017-01-03T18:30:43 head[4], body[0] op[0x01]", - "duration": 0, - "timestamp": "2017-01-03T18:30:43", - "_body": "", - "_head": "011e1e00", - "amount": 3.0, - "_date": "2b5e520311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T18:20:35 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T18:20:35", - "_body": "", - "_head": "1601", - "_date": "2354124311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T18:20:35 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T18:20:35", - "_body": "00", - "_head": "335f", - "rate": 2.375, - "_date": "2354124311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T18:13:27 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T18:13:27", - "_body": "", - "_head": "1601", - "_date": "1b4d124311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T18:13:27 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T18:13:27", - "_body": "00", - "_head": "3310", - "rate": 0.4, - "_date": "1b4d124311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T18:08:14 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T18:08:14", - "_body": "", - "_head": "1601", - "_date": "0e48124311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T18:08:14 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T18:08:14", - "_body": "00", - "_head": "335f", - "rate": 2.375, - "_date": "0e48124311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T18:07:19 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T18:07:19", - "_body": "", - "_head": "1601", - "_date": "1347124311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T18:07:19 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T18:07:19", - "_body": "00", - "_head": "3322", - "rate": 0.85, - "_date": "1347124311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T17:55:55 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T17:55:55", - "_body": "", - "_head": "1601", - "_date": "3777114311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T17:55:55 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T17:55:55", - "_body": "00", - "_head": "33c6", - "rate": 4.95, - "_date": "3777114311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T17:43:16 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T17:43:16", - "_body": "", - "_head": "1601", - "_date": "106b114311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T17:43:16 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T17:43:16", - "_body": "00", - "_head": "33aa", - "rate": 4.25, - "_date": "106b114311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T17:35:58 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T17:35:58", - "_body": "", - "_head": "1601", - "_date": "3a63114311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T17:35:58 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T17:35:58", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "3a63114311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T17:18:03 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T17:18:03", - "_body": "", - "_head": "1601", - "_date": "0352114311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T17:18:03 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T17:18:03", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "0352114311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T17:12:52 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T17:12:52", - "_body": "", - "_head": "1601", - "_date": "344c114311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T17:12:52 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T17:12:52", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "344c114311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T16:55:21 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T16:55:21", - "_body": "", - "_head": "1601", - "_date": "1577104311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T16:55:21 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T16:55:21", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "1577104311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T16:54:10 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T16:54:10", - "_body": "", - "_head": "1601", - "_date": "0a76104311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T16:54:10 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T16:54:10", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "0a76104311" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-03T16:50:06 head[4], body[0] op[0x01]", - "timestamp": "2017-01-03T16:50:06", - "_body": "", - "appended": [ - { - "_type": "UnabsorbedInsulinBolus", - "_description": "UnabsorbedInsulinBolus unknown head[17], body[0] op[0x5c]", - "data": [ - { - "amount": 3.05, - "age": 41 - }, - { - "amount": 0.95, - "age": 51 - }, - { - "amount": 2.0, - "age": 71 - }, - { - "amount": 3.1, - "age": 161 - }, - { - "amount": 5.9, - "age": 171 - } - ], - "_body": "", - "_head": "5c117a29c02633c05047c07ca1c0ecabc0", - "_date": "" - } - ], - "programmed": 4.5, - "_head": "012d2d00", - "amount": 4.5, - "duration": 0, - "type": "normal", - "_date": "0672500311" - }, - { - "_type": "BolusWizard", - "bg": 111, - "bg_target_high": 90, - "correction_estimate": 0.7, - "unknown_byte[10]": 0, - "_description": "BolusWizard 2017-01-03T16:50:06 head[2], body[13] op[0x5b]", - "timestamp": "2017-01-03T16:50:06", - "_body": "2850091e5a072c000035002c5a", - "carb_input": 40, - "_head": "5b6f", - "unabsorbed_insulin_total": 5.3, - "_byte[5]": 7, - "unabsorbed_insulin_count": "??", - "_byte[7]": 0, - "_date": "0672100311", - "bolus_estimate": 4.4, - "unknown_byte[8]": 0, - "carb_ratio": 9, - "food_estimate": 4.4, - "bg_target_low": 90, - "sensitivity": 30 - }, - { - "_type": "CalBGForPH", - "_description": "CalBGForPH 2017-01-03T16:49:56 head[2], body[0] op[0x0a]", - "timestamp": "2017-01-03T16:49:56", - "_body": "", - "_head": "0a6f", - "amount": 111, - "_date": "3871300311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T16:36:22 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T16:36:22", - "_body": "", - "_head": "1601", - "_date": "1664104311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T16:36:22 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T16:36:22", - "_body": "00", - "_head": "331b", - "rate": 0.675, - "_date": "1664104311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T16:27:52 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T16:27:52", - "_body": "", - "_head": "1601", - "_date": "345b104311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T16:27:52 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T16:27:52", - "_body": "00", - "_head": "3316", - "rate": 0.55, - "_date": "345b104311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T16:11:40 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T16:11:40", - "_body": "", - "_head": "1601", - "_date": "284b104311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T16:11:40 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T16:11:40", - "_body": "00", - "_head": "3316", - "rate": 0.55, - "_date": "284b104311" - }, - { - "programmed": 4.0, - "_type": "Bolus", - "type": "normal", - "_description": "Bolus 2017-01-03T16:08:21 head[4], body[0] op[0x01]", - "duration": 0, - "timestamp": "2017-01-03T16:08:21", - "_body": "", - "_head": "01282800", - "amount": 4.0, - "_date": "1548500311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T16:07:59 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T16:07:59", - "_body": "", - "_head": "1601", - "_date": "3b47104311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T16:07:59 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T16:07:59", - "_body": "00", - "_head": "338d", - "rate": 3.525, - "_date": "3b47104311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T16:02:42 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T16:02:42", - "_body": "", - "_head": "1601", - "_date": "2a42104311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T16:02:42 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T16:02:42", - "_body": "00", - "_head": "3348", - "rate": 1.8, - "_date": "2a42104311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T15:55:23 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T15:55:23", - "_body": "", - "_head": "1601", - "_date": "17770f4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T15:55:23 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T15:55:23", - "_body": "00", - "_head": "3316", - "rate": 0.55, - "_date": "17770f4311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T15:44:53 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T15:44:53", - "_body": "", - "_head": "1601", - "_date": "356c0f4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T15:44:53 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T15:44:53", - "_body": "00", - "_head": "3317", - "rate": 0.575, - "_date": "356c0f4311" - }, - { - "programmed": 2.0, - "_type": "Bolus", - "type": "normal", - "_description": "Bolus 2017-01-03T15:42:20 head[4], body[0] op[0x01]", - "duration": 0, - "timestamp": "2017-01-03T15:42:20", - "_body": "", - "_head": "01141400", - "amount": 2.0, - "_date": "146a4f0311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T15:38:37 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T15:38:37", - "_body": "", - "_head": "1601", - "_date": "25660f4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T15:38:37 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T15:38:37", - "_body": "00", - "_head": "3376", - "rate": 2.95, - "_date": "25660f4311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T15:34:30 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T15:34:30", - "_body": "", - "_head": "1601", - "_date": "1e620f4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T15:34:30 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T15:34:30", - "_body": "00", - "_head": "3350", - "rate": 2.0, - "_date": "1e620f4311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T15:30:52 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T15:30:52", - "_body": "", - "_head": "1601", - "_date": "345e0f4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T15:30:52 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T15:30:52", - "_body": "00", - "_head": "3334", - "rate": 1.3, - "_date": "345e0f4311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T15:17:38 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T15:17:38", - "_body": "", - "_head": "1601", - "_date": "26510f4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T15:17:38 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T15:17:38", - "_body": "00", - "_head": "3314", - "rate": 0.5, - "_date": "26510f4311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T15:13:54 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T15:13:54", - "_body": "", - "_head": "1601", - "_date": "364d0f4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T15:13:54 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T15:13:54", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "364d0f4311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T15:02:56 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T15:02:56", - "_body": "", - "_head": "1601", - "_date": "38420f4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T15:02:56 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T15:02:56", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "38420f4311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T14:57:53 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T14:57:53", - "_body": "", - "_head": "1601", - "_date": "35790e4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T14:57:53 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T14:57:53", - "_body": "00", - "_head": "3312", - "rate": 0.45, - "_date": "35790e4311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T14:47:42 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T14:47:42", - "_body": "", - "_head": "1601", - "_date": "2a6f0e4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T14:47:42 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T14:47:42", - "_body": "00", - "_head": "3317", - "rate": 0.575, - "_date": "2a6f0e4311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T14:41:21 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T14:41:21", - "_body": "", - "_head": "1601", - "_date": "15690e4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T14:41:21 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T14:41:21", - "_body": "00", - "_head": "3300", - "rate": 0.0, - "_date": "15690e4311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T14:24:44 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T14:24:44", - "_body": "", - "_head": "1601", - "_date": "2c580e4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T14:24:44 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T14:24:44", - "_body": "00", - "_head": "3317", - "rate": 0.575, - "_date": "2c580e4311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T14:13:22 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T14:13:22", - "_body": "", - "_head": "1601", - "_date": "164d0e4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T14:13:22 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T14:13:22", - "_body": "00", - "_head": "3316", - "rate": 0.55, - "_date": "164d0e4311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T14:11:22 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T14:11:22", - "_body": "", - "_head": "1601", - "_date": "164b0e4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T14:11:22 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T14:11:22", - "_body": "00", - "_head": "332a", - "rate": 1.05, - "_date": "164b0e4311" - }, - { - "_type": "Bolus", - "_description": "Bolus 2017-01-03T14:04:52 head[4], body[0] op[0x01]", - "timestamp": "2017-01-03T14:04:52", - "_body": "", - "appended": [ - { - "_type": "UnabsorbedInsulinBolus", - "_description": "UnabsorbedInsulinBolus unknown head[11], body[0] op[0x5c]", - "data": [ - { - "amount": 2.0, - "age": 315 - }, - { - "amount": 0.85, - "age": 355 - }, - { - "amount": 1.25, - "age": 365 - } - ], - "_body": "", - "_head": "5c0b503bd02263d0326dd1", - "_date": "" - } - ], - "programmed": 9.0, - "_head": "015a5a00", - "amount": 9.0, - "duration": 0, - "type": "normal", - "_date": "34444e0311" - }, - { - "_type": "BolusWizard", - "bg": 130, - "bg_target_high": 90, - "correction_estimate": 1.3, - "unknown_byte[10]": 0, - "_description": "BolusWizard 2017-01-03T14:04:52 head[2], body[13] op[0x5b]", - "timestamp": "2017-01-03T14:04:52", - "_body": "4650091e5a0d4d000000005a5a", - "carb_input": 70, - "_head": "5b82", - "unabsorbed_insulin_total": 0.0, - "_byte[5]": 13, - "unabsorbed_insulin_count": "??", - "_byte[7]": 0, - "_date": "34440e0311", - "bolus_estimate": 9.0, - "unknown_byte[8]": 0, - "carb_ratio": 9, - "food_estimate": 7.7, - "bg_target_low": 90, - "sensitivity": 30 - }, - { - "_type": "CalBGForPH", - "_description": "CalBGForPH 2017-01-03T14:04:35 head[2], body[0] op[0x0a]", - "timestamp": "2017-01-03T14:04:35", - "_body": "", - "_head": "0a82", - "amount": 130, - "_date": "23442e0311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T14:03:56 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T14:03:56", - "_body": "", - "_head": "1601", - "_date": "38430e4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T14:03:56 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T14:03:56", - "_body": "00", - "_head": "33a6", - "rate": 4.15, - "_date": "38430e4311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T14:03:01 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T14:03:01", - "_body": "", - "_head": "1601", - "_date": "01430e4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T14:03:01 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T14:03:01", - "_body": "00", - "_head": "3372", - "rate": 2.85, - "_date": "01430e4311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T13:57:33 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T13:57:33", - "_body": "", - "_head": "1601", - "_date": "21790d4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T13:57:33 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T13:57:33", - "_body": "00", - "_head": "333e", - "rate": 1.55, - "_date": "21790d4311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T13:53:14 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T13:53:14", - "_body": "", - "_head": "1601", - "_date": "0e750d4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T13:53:14 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T13:53:14", - "_body": "00", - "_head": "3316", - "rate": 0.55, - "_date": "0e750d4311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T13:42:29 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T13:42:29", - "_body": "", - "_head": "1601", - "_date": "1d6a0d4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T13:42:29 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T13:42:29", - "_body": "00", - "_head": "33d3", - "rate": 5.275, - "_date": "1d6a0d4311" - }, - { - "_type": "TempBasalDuration", - "duration (min)": 30, - "_description": "TempBasalDuration 2017-01-03T13:40:41 head[2], body[0] op[0x16]", - "timestamp": "2017-01-03T13:40:41", - "_body": "", - "_head": "1601", - "_date": "29680d4311" - }, - { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-03T13:40:41 head[2], body[1] op[0x33]", - "timestamp": "2017-01-03T13:40:41", - "_body": "00", - "_head": "33a8", - "rate": 4.2, - "_date": "29680d4311" - } -] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/settings.json b/app/src/main/java/info/nightscout/sampleData/settings/settings.json deleted file mode 100644 index 5a0fc0dc17..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/settings/settings.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "low_reservoir_warn_point": 16, - "keypad_lock_status": 0, - "maxBasal": 6.3, - "temp_basal": { - "percent": 100, - "type": "Units/hour" - }, - "low_reservoir_warn_type": 1, - "insulinConcentration": 100, - "audio_bolus_enable": true, - "variable_bolus_enable": true, - "alarm": { - "volume": -1, - "mode": 1 - }, - "rf_enable": true, - "auto_off_duration_hrs": 15, - "block_enable": false, - "timeformat": 1, - "insulin_action_curve": 3, - "audio_bolus_size": 1.0, - "selected_pattern": 0, - "patterns_enabled": true, - "maxBolus": 12.0, - "paradigm_enabled": 1 -} \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/settings/temptargets.json b/app/src/main/java/info/nightscout/sampleData/settings/temptargets.json deleted file mode 100644 index 0637a088a0..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/settings/temptargets.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/sampleData/upload/index.html b/app/src/main/java/info/nightscout/sampleData/upload/index.html deleted file mode 100644 index f331bc3192..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/upload/index.html +++ /dev/null @@ -1 +0,0 @@ -{"content":"148-21 16:36\n5.2U->-28-16\nTmp: 28m@0.0 at 16:40\nReq: None\nCOB: 0, Dev: -64, BGI: -8.2, ISF: 21, Target: 81; Eventual BG -28 < 81, setting -11.3U/hr, but 28m left and 0 ~ req 0U/hr: no action required\nSched: 0.60U/hr\nmealCOB: 0g\neddie\n","refresh_frequency":1} diff --git a/app/src/main/java/info/nightscout/sampleData/upload/latest-treatments.json b/app/src/main/java/info/nightscout/sampleData/upload/latest-treatments.json deleted file mode 100644 index a23d48aacb..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/upload/latest-treatments.json +++ /dev/null @@ -1,31 +0,0 @@ -[ - { - "duration": "30", - "raw_duration": { - "_type": "TempBasalDuration", - "_description": "TempBasalDuration 2017-01-04T16:37:57 head[2], body[0] op[0x16]", - "timestamp": "2017-01-04T16:37:57+01:00", - "_body": "", - "_head": "1601", - "duration (min)": 30, - "_date": "3965104411" - }, - "timestamp": "2017-01-04T16:37:57+01:00", - "absolute": "0", - "rate": 0, - "raw_rate": { - "_type": "TempBasal", - "temp": "absolute", - "_description": "TempBasal 2017-01-04T16:37:57 head[2], body[1] op[0x33]", - "timestamp": "2017-01-04T16:37:57+01:00", - "_body": "00", - "_head": "3300", - "rate": 0, - "_date": "3965104411" - }, - "eventType": "Temp Basal", - "medtronic": "mm://openaps/mm-format-ns-treatments/Temp Basal", - "created_at": "2017-01-04T16:37:57+01:00", - "enteredBy": "openaps://medtronic/522" - } -] diff --git a/app/src/main/java/info/nightscout/sampleData/upload/ns-status.json b/app/src/main/java/info/nightscout/sampleData/upload/ns-status.json deleted file mode 100644 index 3e15d231f9..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/upload/ns-status.json +++ /dev/null @@ -1 +0,0 @@ -{"device":"openaps://eddie","openaps":{"iob":{"iob":5.521,"activity":0.077,"bolussnooze":1.574,"basaliob":1.893,"netbasalinsulin":5.05,"hightempinsulin":5.1,"timestamp":"2017-01-04T15:37:36.000Z"},"suggested":{"temp":"absolute","bg":148,"tick":-21,"eventualBG":-34,"snoozeBG":17,"COB":0,"IOB":5.521,"reason":"COB: 0, Dev: -64, BGI: -8.24, ISF: 21, Target: 81; Eventual BG -34 < 81, setting -11.1U/hr","duration":30,"rate":0,"timestamp":"2017-01-04T15:37:50.000Z"},"enacted":{"bg":148,"temp":"absolute","snoozeBG":17,"recieved":true,"predBGs":{"IOB":[148,128,109,91,75,59,45,39,39,39,39,39,39]},"rate":0,"reason":"COB: 0, Dev: -64, BGI: -8.24, ISF: 21, Target: 81; Eventual BG -34 < 81, setting -11.1U/hr","COB":0,"eventualBG":-34,"timestamp":"2017-01-04T15:37:56.000Z","duration":30,"tick":-21,"IOB":5.521}},"pump":{"clock":"2017-01-04T16:37:36+01:00","battery":{"status":"normal","voltage":1.45},"reservoir":120.5,"status":{"status":"normal","bolusing":false,"suspended":false,"timestamp":"2017-01-04T15:37:43.000Z"}},"mmtune":{"scanDetails":[["868.372",4,-91],["868.384",5,-81],["868.396",5,-78],["868.408",5,-77],["868.420",5,-76],["868.432",5,-76],["868.444",5,-76],["868.456",5,-76],["868.468",5,-75],["868.480",5,-76],["868.492",5,-76],["868.504",5,-77],["868.516",5,-80],["868.528",5,-86]],"setFreq":868.468,"usedDefault":false,"timestamp":"2017-01-04T15:33:30.000Z"},"uploader":{"battery":57,"batteryVoltage":3748}} diff --git a/app/src/main/java/info/nightscout/sampleData/upload/pebble.json b/app/src/main/java/info/nightscout/sampleData/upload/pebble.json deleted file mode 100644 index f331bc3192..0000000000 --- a/app/src/main/java/info/nightscout/sampleData/upload/pebble.json +++ /dev/null @@ -1 +0,0 @@ -{"content":"148-21 16:36\n5.2U->-28-16\nTmp: 28m@0.0 at 16:40\nReq: None\nCOB: 0, Dev: -64, BGI: -8.2, ISF: 21, Target: 81; Eventual BG -28 < 81, setting -11.3U/hr, but 28m left and 0 ~ req 0U/hr: no action required\nSched: 0.60U/hr\nmealCOB: 0g\neddie\n","refresh_frequency":1} From c79ccf7ccb8cb2fb29a9ad7aab33eb3d32bf5308 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 2 Mar 2017 23:02:07 +0100 Subject: [PATCH 048/140] update crashlytics --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index a7ce7865b1..467ff86477 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -140,7 +140,7 @@ dependencies { wearcontrolWearApp project(path: ':wear', configuration: 'fullRelease') compile fileTree(include: ['*.jar'], dir: 'libs') - compile('com.crashlytics.sdk.android:crashlytics:2.5.7@aar') { + compile('com.crashlytics.sdk.android:crashlytics:2.6.6@aar') { transitive = true; } From 79d282d21593a44b8e19014a548945abf39a298a Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 2 Mar 2017 23:08:40 +0100 Subject: [PATCH 049/140] add answers --- app/build.gradle | 3 +++ app/src/main/java/info/nightscout/androidaps/MainApp.java | 2 ++ 2 files changed, 5 insertions(+) diff --git a/app/build.gradle b/app/build.gradle index 467ff86477..152572006c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -143,6 +143,9 @@ dependencies { compile('com.crashlytics.sdk.android:crashlytics:2.6.6@aar') { transitive = true; } + compile('com.crashlytics.sdk.android:answers:1.3.11@aar') { + transitive = true; + } compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:support-v4:23.4.0' diff --git a/app/src/main/java/info/nightscout/androidaps/MainApp.java b/app/src/main/java/info/nightscout/androidaps/MainApp.java index d3a8298a22..29bd47d2da 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainApp.java +++ b/app/src/main/java/info/nightscout/androidaps/MainApp.java @@ -6,6 +6,7 @@ import android.content.res.Resources; import android.support.annotation.Nullable; import com.crashlytics.android.Crashlytics; +import com.crashlytics.android.answers.Answers; import com.j256.ormlite.android.apptools.OpenHelperManager; import com.squareup.otto.Bus; import com.squareup.otto.ThreadEnforcer; @@ -66,6 +67,7 @@ public class MainApp extends Application { public void onCreate() { super.onCreate(); Fabric.with(this, new Crashlytics()); + Fabric.with(this, new Answers()); Crashlytics.setString("BUILDVERSION", BuildConfig.BUILDVERSION); log.info("Version: " + BuildConfig.VERSION_NAME); log.info("BuildVersion: " + BuildConfig.BUILDVERSION); From ebf46971503763aa9a8437e3dfbb09a01ba9b2a8 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 2 Mar 2017 23:25:55 +0100 Subject: [PATCH 050/140] log app start --- app/src/main/java/info/nightscout/androidaps/MainApp.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/MainApp.java b/app/src/main/java/info/nightscout/androidaps/MainApp.java index 29bd47d2da..ec478584a2 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainApp.java +++ b/app/src/main/java/info/nightscout/androidaps/MainApp.java @@ -7,6 +7,7 @@ import android.support.annotation.Nullable; import com.crashlytics.android.Crashlytics; import com.crashlytics.android.answers.Answers; +import com.crashlytics.android.answers.CustomEvent; import com.j256.ormlite.android.apptools.OpenHelperManager; import com.squareup.otto.Bus; import com.squareup.otto.ThreadEnforcer; @@ -72,6 +73,8 @@ public class MainApp extends Application { log.info("Version: " + BuildConfig.VERSION_NAME); log.info("BuildVersion: " + BuildConfig.BUILDVERSION); + Answers.getInstance().logCustom(new CustomEvent("AppStart")); + sBus = new Bus(ThreadEnforcer.ANY); sInstance = this; sResources = getResources(); From 2af1ab6ac4c1a5ed812e9e3a3dd5b25121205712 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Fri, 3 Mar 2017 21:12:59 +0100 Subject: [PATCH 051/140] more Answers to user actions --- .../androidaps/plugins/Actions/dialogs/FillDialog.java | 4 ++++ .../plugins/Actions/dialogs/NewExtendedBolusDialog.java | 4 ++++ .../plugins/Actions/dialogs/NewTempBasalDialog.java | 5 ++++- .../plugins/Careportal/Dialogs/NewNSTreatmentDialog.java | 5 +++++ .../plugins/ConfigBuilder/ConfigBuilderFragment.java | 4 ++++ .../nightscout/androidaps/plugins/Loop/LoopFragment.java | 3 +++ .../plugins/NSClientInternal/NSClientInternalFragment.java | 7 +++++++ .../androidaps/plugins/OpenAPSAMA/OpenAPSAMAFragment.java | 3 +++ .../androidaps/plugins/OpenAPSMA/OpenAPSMAFragment.java | 3 +++ .../plugins/Overview/Dialogs/CalibrationDialog.java | 4 ++++ .../plugins/Overview/Dialogs/NewTreatmentDialog.java | 4 ++++ .../androidaps/plugins/Overview/Dialogs/WizardDialog.java | 4 ++++ .../androidaps/plugins/Overview/OverviewFragment.java | 5 +++++ .../androidaps/plugins/Treatments/TreatmentsFragment.java | 3 +++ 14 files changed, 57 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java index 3331228f65..8f50ac28e0 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/FillDialog.java @@ -18,6 +18,9 @@ import android.view.WindowManager; import android.widget.Button; import android.widget.TextView; +import com.crashlytics.android.answers.Answers; +import com.crashlytics.android.answers.CustomEvent; + import java.text.DecimalFormat; import info.nightscout.androidaps.Constants; @@ -166,6 +169,7 @@ public class FillDialog extends DialogFragment implements OnClickListener { } } }); + Answers.getInstance().logCustom(new CustomEvent("Fill")); } } }); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewExtendedBolusDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewExtendedBolusDialog.java index 56ffa69d5f..ee726efb4d 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewExtendedBolusDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewExtendedBolusDialog.java @@ -14,6 +14,9 @@ import android.widget.Button; import android.widget.EditText; import android.widget.RadioButton; +import com.crashlytics.android.answers.Answers; +import com.crashlytics.android.answers.CustomEvent; + import java.text.DecimalFormat; import info.nightscout.androidaps.Constants; @@ -117,6 +120,7 @@ public class NewExtendedBolusDialog extends DialogFragment implements View.OnCli } } }); + Answers.getInstance().logCustom(new CustomEvent("ExtendedBolus")); } }); builder.setNegativeButton(getString(R.string.cancel), null); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java index f29d6e18ff..75d9bcec11 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java @@ -16,6 +16,9 @@ import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.RadioGroup; +import com.crashlytics.android.answers.Answers; +import com.crashlytics.android.answers.CustomEvent; + import java.text.DecimalFormat; import info.nightscout.androidaps.Constants; @@ -158,7 +161,7 @@ public class NewTempBasalDialog extends DialogFragment implements View.OnClickLi } } }); - + Answers.getInstance().logCustom(new CustomEvent("TempBasal")); } }); builder.setNegativeButton(getString(R.string.cancel), null); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java index b7fcab69a7..68d24b7dda 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Careportal/Dialogs/NewNSTreatmentDialog.java @@ -24,6 +24,8 @@ import android.widget.RadioButton; import android.widget.Spinner; import android.widget.TextView; +import com.crashlytics.android.answers.Answers; +import com.crashlytics.android.answers.CustomEvent; import com.j256.ormlite.dao.Dao; import com.wdullaer.materialdatetimepicker.date.DatePickerDialog; import com.wdullaer.materialdatetimepicker.time.RadialPickerLayout; @@ -627,6 +629,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick data.put("percentage", cpp.percentage); } ConfigBuilderPlugin.uploadCareportalEntryToNS(data); + Answers.getInstance().logCustom(new CustomEvent("ProfileSwitch")); } catch (JSONException e) { e.printStackTrace(); } @@ -657,6 +660,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick dao.createIfNotExists(tempTarget); MainApp.bus().post(new EventTempTargetRangeChange()); ConfigBuilderPlugin.uploadCareportalEntryToNS(data); + Answers.getInstance().logCustom(new CustomEvent("TempTarget")); } catch (JSONException | SQLException e) { e.printStackTrace(); } @@ -668,6 +672,7 @@ public class NewNSTreatmentDialog extends DialogFragment implements View.OnClick } } else { ConfigBuilderPlugin.uploadCareportalEntryToNS(data); + Answers.getInstance().logCustom(new CustomEvent("NSTreatment")); } } }); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java index 62fe0042e3..6436441890 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderFragment.java @@ -16,6 +16,9 @@ import android.widget.ListAdapter; import android.widget.ListView; import android.widget.TextView; +import com.crashlytics.android.answers.Answers; +import com.crashlytics.android.answers.CustomEvent; + import java.util.ArrayList; import info.nightscout.androidaps.MainApp; @@ -214,6 +217,7 @@ public class ConfigBuilderFragment extends Fragment implements FragmentBase { MainApp.bus().post(new EventRefreshGui(true)); MainApp.bus().post(new EventConfigBuilderChange()); getPlugin().logPluginStatus(); + Answers.getInstance().logCustom(new CustomEvent("ConfigurationChange")); } }); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopFragment.java index a183e28345..43a8fa3c83 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopFragment.java @@ -10,6 +10,8 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; +import com.crashlytics.android.answers.Answers; +import com.crashlytics.android.answers.CustomEvent; import com.squareup.otto.Subscribe; import org.slf4j.Logger; @@ -84,6 +86,7 @@ public class LoopFragment extends Fragment implements View.OnClickListener, Frag } }); thread.start(); + Answers.getInstance().logCustom(new CustomEvent("Loop_Run")); break; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java index 88e4f6eb13..3514285473 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalFragment.java @@ -18,6 +18,8 @@ import android.widget.CompoundButton; import android.widget.ScrollView; import android.widget.TextView; +import com.crashlytics.android.answers.Answers; +import com.crashlytics.android.answers.CustomEvent; import com.squareup.otto.Subscribe; import org.slf4j.Logger; @@ -101,9 +103,11 @@ public class NSClientInternalFragment extends Fragment implements FragmentBase, switch (view.getId()) { case R.id.nsclientinternal_restart: MainApp.bus().post(new EventNSClientRestart()); + Answers.getInstance().logCustom(new CustomEvent("NSClientRestart")); break; case R.id.nsclientinternal_delivernow: getPlugin().resend("GUI"); + Answers.getInstance().logCustom(new CustomEvent("NSClientDeliverNow")); break; case R.id.nsclientinternal_clearlog: getPlugin().clearLog(); @@ -118,6 +122,7 @@ public class NSClientInternalFragment extends Fragment implements FragmentBase, public void onClick(DialogInterface dialog, int id) { getPlugin().queue().clearQueue(); updateGUI(); + Answers.getInstance().logCustom(new CustomEvent("NSClientClearQueue")); } }); builder.setNegativeButton(getString(R.string.cancel), null); @@ -125,6 +130,7 @@ public class NSClientInternalFragment extends Fragment implements FragmentBase, break; case R.id.nsclientinternal_showqueue: MainApp.bus().post(new EventNSClientNewLog("QUEUE", getPlugin().queue().textList())); + Answers.getInstance().logCustom(new CustomEvent("NSClientShowQueue")); break; } } @@ -137,6 +143,7 @@ public class NSClientInternalFragment extends Fragment implements FragmentBase, getPlugin().paused = isChecked; MainApp.bus().post(new EventPreferenceChange(R.string.key_nsclientinternal_paused)); updateGUI(); + Answers.getInstance().logCustom(new CustomEvent("NSClientPause")); break; case R.id.nsclientinternal_autoscroll: SP.putBoolean(R.string.key_nsclientinternal_autoscroll, isChecked); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAFragment.java index 4a8ce51266..76753e86a7 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAFragment.java @@ -9,6 +9,8 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; +import com.crashlytics.android.answers.Answers; +import com.crashlytics.android.answers.CustomEvent; import com.squareup.otto.Subscribe; import org.json.JSONArray; @@ -74,6 +76,7 @@ public class OpenAPSAMAFragment extends Fragment implements View.OnClickListener switch (view.getId()) { case R.id.openapsma_run: getPlugin().invoke("OpenAPSAMA button"); + Answers.getInstance().logCustom(new CustomEvent("OpenAPS_AMA_Run")); break; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAFragment.java index 8805ba18b7..bfe4bb5dab 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSMA/OpenAPSMAFragment.java @@ -9,6 +9,8 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; +import com.crashlytics.android.answers.Answers; +import com.crashlytics.android.answers.CustomEvent; import com.squareup.otto.Subscribe; import org.slf4j.Logger; @@ -68,6 +70,7 @@ public class OpenAPSMAFragment extends Fragment implements View.OnClickListener, switch (view.getId()) { case R.id.openapsma_run: getPlugin().invoke("OpenAPSMA button"); + Answers.getInstance().logCustom(new CustomEvent("OpenAPS_MA_Run")); break; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java index bb06b1ed9d..5c96cb58e5 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java @@ -12,6 +12,9 @@ import android.view.WindowManager; import android.widget.Button; import android.widget.TextView; +import com.crashlytics.android.answers.Answers; +import com.crashlytics.android.answers.CustomEvent; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -73,6 +76,7 @@ public class CalibrationDialog extends DialogFragment implements View.OnClickLis final Double bg = bgText.getValue(); XdripCalibrations.confirmAndSendCalibration(bg, parentContext); dismiss(); + Answers.getInstance().logCustom(new CustomEvent("Calibration")); break; } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewTreatmentDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewTreatmentDialog.java index 81762b6382..ec25d2a0b0 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewTreatmentDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/NewTreatmentDialog.java @@ -16,6 +16,9 @@ import android.view.WindowManager; import android.widget.Button; import android.widget.TextView; +import com.crashlytics.android.answers.Answers; +import com.crashlytics.android.answers.CustomEvent; + import java.text.DecimalFormat; import info.nightscout.androidaps.Constants; @@ -117,6 +120,7 @@ public class NewTreatmentDialog extends DialogFragment implements OnClickListene } } }); + Answers.getInstance().logCustom(new CustomEvent("Bolus")); } } }); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java index f6b319664c..7916291ccc 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java @@ -24,6 +24,9 @@ import android.widget.EditText; import android.widget.Spinner; import android.widget.TextView; +import com.crashlytics.android.answers.Answers; +import com.crashlytics.android.answers.CustomEvent; + import org.json.JSONException; import org.json.JSONObject; import org.slf4j.Logger; @@ -238,6 +241,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener { } } }); + Answers.getInstance().logCustom(new CustomEvent("Wizard")); } } }); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index 7d2950b554..b925080c17 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -28,6 +28,8 @@ import android.widget.CompoundButton; import android.widget.LinearLayout; import android.widget.TextView; +import com.crashlytics.android.answers.Answers; +import com.crashlytics.android.answers.CustomEvent; import com.jjoe64.graphview.GraphView; import com.jjoe64.graphview.ValueDependentColor; import com.jjoe64.graphview.series.BarGraphSeries; @@ -236,6 +238,7 @@ public class OverviewFragment extends Fragment { public void run() { pump.cancelTempBasal(); MainApp.bus().post(new EventTempBasalChange()); + Answers.getInstance().logCustom(new CustomEvent("CancelTemp")); } }); } @@ -282,6 +285,7 @@ public class OverviewFragment extends Fragment { updateGUIIfVisible(); } }); + Answers.getInstance().logCustom(new CustomEvent("AcceptTemp")); } }); builder.setNegativeButton(getContext().getString(R.string.cancel), null); @@ -392,6 +396,7 @@ public class OverviewFragment extends Fragment { } } }); + Answers.getInstance().logCustom(new CustomEvent("QuickWizard")); } } }); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java index 4e1b41906e..320aba3956 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Treatments/TreatmentsFragment.java @@ -21,6 +21,8 @@ import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; +import com.crashlytics.android.answers.Answers; +import com.crashlytics.android.answers.CustomEvent; import com.squareup.otto.Subscribe; import org.slf4j.Logger; @@ -149,6 +151,7 @@ public class TreatmentsFragment extends Fragment implements View.OnClickListener MainApp.getDbHelper().delete(treatment); treatmentsPlugin.initializeData(); updateGUI(); + Answers.getInstance().logCustom(new CustomEvent("RefreshTreatments")); } }); builder.setNegativeButton(MainApp.sResources.getString(R.string.cancel), null); From de9dbf9243c8389dfc2acc96591de988e4b3b285 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sat, 4 Mar 2017 20:55:13 +0100 Subject: [PATCH 052/140] CS translations --- app/src/main/res/values-cs/strings.xml | 64 +++++++++++++++++++------- app/src/main/res/values/strings.xml | 8 ++-- 2 files changed, 51 insertions(+), 21 deletions(-) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index cbee44bd58..3f71f70213 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -143,7 +143,7 @@ IOB: Celková aktivita IOB: Celkové IOB: - Množtví sacharidů + Množství sacharidů Množství inzulínu Bazální IOB Glykémie @@ -365,7 +365,7 @@ Bazální profil aktualizován Pumpa není inicializována, profil nenastaven! Vybrán špatný ovladač pumpy - Hodnota bazálu pod minimem. Nenastaveno! + Hodnota bazálu pod povoleným minimem. Nenastaveno! Pera Glykémie: Poslední glykémie: @@ -382,7 +382,7 @@ Aktivita Pole %d prvků. Aktuální hodnota: Před jídlem - Řečtina + Greek Inicializuji ... Dlouhodobý průměr OpenAPS AMA @@ -397,22 +397,22 @@ Obnovit dočasné cíle z NS " " " " - " " - " " + ViPu + " " " " - " " - " " + SMS + JP " " - " " - " " + Přehl + Cíle " " - " " - " " - " " - " " - " " - " " + Smyč + LP + Dana + Konf + CPP + Péče Rozšířené nastavení Vždy používat krátkodobý průměrný rozdíl glykémií místo rozdílu posledních 2 hodnot Výhodné, pokud data z xDripu obsahují velký šum @@ -462,8 +462,8 @@ Nezobrazovat znovu Provádím Načítám stav pumpy - Pumpa vypnuta - Pumpa vypnuta. Klik pro obnovení stavu + Pumpa pozastavena + Pumpa pozastavena. Klik pro obnovení stavu Nastavuji extended bolus Nastavuji dočasný bazál Zastavuji extended bolus @@ -477,4 +477,34 @@ Chybné heslo Odemknout nastavení Blíží se denní limit inzulínu + Dospělý + Dítě + Vymazat frontu + Vymazat log + Odeslat teď + neúspěšně - zkontrolujte mobil + Nedostupný + NSClient nedostal oprávnění k zápisu. Špatné API secret? + NSClient interní + Posouvat + Bude použito v poli zadal + Zadej jméno zařízení + Jméno zařízení + Vložte API secret (min 12. znaků) + NSCl + Interní NSClient + URL: + Vložte adresu Nightscoutu + Adresa Nightscoutu + Stáří pacienta + Vyberte věk pacienta pro nastavení bezpečnostních limitů + Pozastaveno + Fronta: + Restart + Zobrazit frontu + Status: + Dospívající + Rozepsat IOB do bolusového a bazálního na hodinkách + Zobrazit detailní IOB + Nastavení hodinek diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a750eb054c..45688577f3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -533,9 +533,9 @@ danar_useextended danarprofile_dia Clear log - nsclientinternal_autoscroll - nsclientinternal_paused - NSCLIENT has no write permission + nsclientinternal_autoscroll + nsclientinternal_paused + NSCLIENT has no write permission. Wrong API secret? Wear settings Show detailed IOB Break down IOB into bolus and basal IOB on the watchface @@ -552,5 +552,5 @@ teenage adult Please select patient age to setup safety limits - I_understand + I_understand From 9e05c86284ee80802f088422b4077d56829e6674 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sun, 5 Mar 2017 12:12:28 +0100 Subject: [PATCH 053/140] Log hours in sensitivity --- .../nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java index 44c3970ac5..e44b810d36 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java @@ -81,6 +81,12 @@ public class Autosens { long bgTime = bucketed_data.get(i).timeIndex; int secondsFromMidnight = NSProfile.secondsFromMidnight(new Date(bgTime)); + String hour = ""; + Date d = new Date(secondsFromMidnight); + if (secondsFromMidnight % 3600 < 3 * 60 || secondsFromMidnight % 3600 > 57 * 60) { + hour += "(" + Math.round(secondsFromMidnight / 3600d) + ")"; + } + double sens = NSProfile.toMgdl(profile.getIsf(secondsFromMidnight), profile.getUnits()); //console.error(bgTime , bucketed_data[i].glucose); @@ -122,6 +128,7 @@ public class Autosens { pastSensitivity += ">"; //console.error(bgTime); } + pastSensitivity += hour; //log.debug("TIME: " + new Date(bgTime).toString() + " BG: " + bg + " SENS: " + sens + " DELTA: " + delta + " AVGDELTA: " + avgDelta + " IOB: " + iob.iob + " ACTIVITY: " + iob.activity + " BGI: " + bgi + " DEVIATION: " + deviation); // if bgTime is more recent than mealTime From c21467aede0963444b0f4fef48e5c509393d8209 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sun, 5 Mar 2017 12:13:03 +0100 Subject: [PATCH 054/140] Gradle update --- gradle/wrapper/gradle-wrapper.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 4b5691656a..f1b7430446 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Thu Aug 18 17:59:31 CEST 2016 +#Sun Mar 05 11:39:37 CET 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip From 54f376330a61a8c21976d485440b059597fa6b1f Mon Sep 17 00:00:00 2001 From: Radoslav Radev Date: Sun, 5 Mar 2017 15:28:20 +0200 Subject: [PATCH 055/140] Update strings.xml --- app/src/main/res/values-bg/strings.xml | 79 +++++++++++++++++++------- 1 file changed, 59 insertions(+), 20 deletions(-) diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 39d35570b0..e50a0d93f5 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -212,14 +212,14 @@ MUST NOT BE USED TO MAKE MEDICAL DECISIONS. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. +XXXXXXXXXX;+YYYYYYYYYY Болус %.2fU беше подаден успешно - Болусът не е доставен + Bolus failed Откажи временен базал Последно свързване: Изчаква резултат SMS комуникатор Позволени телефонни номера Успех - За да доставите болус %.2fU отговорете с код %s + To deliver bolus %.2fU reply with code %s Отдалечен болус не е разрешен Обнови профила Процент @@ -373,24 +373,24 @@ Wear Избран е грешен тип помпа преди %d м. - "ДЕЙСТВ" - "Wear" - "ВП" - "ТТ" - "ВЦeл" - "ВБ" - "СМС" - "ОПРОФ" - "ПРОф" - "ОСН" - \"ЦЕЛИ" - "OAPS" + ДЕЙСТВ + WEAR + ВП + TREAT + ВЦeл + ВБ + SMS + ОПРОФ + ПРОф + ОСН + ЦЕЛИ + OAPS "Loop " - "ЛПр " - "Dana" - "КОНФ" - "ППр " - "CaPr" + ЛПр + Dana + КОНФ + ППр + CaPr Физ.активност DanaR статистика Базал @@ -425,7 +425,7 @@ Експоненциално претеглена TDD Комулативна TDD Тегло - # Days + Дни MM640g Масив от %d елемента. Актуална стойност: Basal: @@ -473,4 +473,43 @@ Помпата е спряна. Натиснете за обновяване Настройки на параметър Δ КЗ Калибрация на КЗ + Възрастен + Разширени настройки + Дете + Изчисти опашката + Изчисти log + + Изпрати сега + неуспешно - проверете телефона + Недостъпно + NSCLIENT няма достъп. Грешна API secret? + вътрешен NSClient + Autoscroll + Ще бъде използвано в поле въведено от + Въведи име на устройство + Име на устройство + Въведи API secret (мин. 12 символа) + Вътрешен NSClient + URL: + Въведи Nightscout URL + Nightscout URL + NS API secret + NS API secret + NSCL + Възраст на потребителя + Изберете възраст за определяне лимитите на безопасност + На пауза + Профил + Рестарт + Покажи опашката + xDrip не приема калибрация + Статус: + Тийнейджър + Раздели IOB на болус и базал IOB на часовника + Покажи подробен IOB + Настройки на часовник + To send calibration %.2f reply with code %s + Calibration sent. Receiving must be enabled in xDrip. + Invalid SMS phone number + Опашка: From a0f2e4f6633b8b3734afdbf5221c08e233b0e204 Mon Sep 17 00:00:00 2001 From: Radoslav Radev Date: Sun, 5 Mar 2017 15:42:01 +0200 Subject: [PATCH 056/140] Update strings.xml --- app/src/main/res/values-bg/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index e50a0d93f5..8915c221da 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -508,7 +508,7 @@ Раздели IOB на болус и базал IOB на часовника Покажи подробен IOB Настройки на часовник - To send calibration %.2f reply with code %s + To send calibration %.2f reply with code %s Calibration sent. Receiving must be enabled in xDrip. Invalid SMS phone number Опашка: From 3b129dc7f680be6d195207ff490459d2407c5c5d Mon Sep 17 00:00:00 2001 From: Radoslav Radev Date: Sun, 5 Mar 2017 15:58:37 +0200 Subject: [PATCH 057/140] Update strings.xml --- app/src/main/res/values-bg/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 8915c221da..9c1030c683 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -508,7 +508,7 @@ Раздели IOB на болус и базал IOB на часовника Покажи подробен IOB Настройки на часовник - To send calibration %.2f reply with code %s + To send calibration %.2f reply with code %s Calibration sent. Receiving must be enabled in xDrip. Invalid SMS phone number Опашка: From 9843f139ad97968a3c2053857db44fcc0054b20f Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sun, 5 Mar 2017 15:22:35 +0100 Subject: [PATCH 058/140] fixed bugs in autosens --- .../nightscout/androidaps/data/MealData.java | 2 +- .../androidaps/plugins/OpenAPSAMA/Autosens.java | 16 +++++++++++++--- .../plugins/OpenAPSAMA/OpenAPSAMAPlugin.java | 2 +- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/data/MealData.java b/app/src/main/java/info/nightscout/androidaps/data/MealData.java index 18919c3c8a..a9136f88c2 100644 --- a/app/src/main/java/info/nightscout/androidaps/data/MealData.java +++ b/app/src/main/java/info/nightscout/androidaps/data/MealData.java @@ -25,7 +25,7 @@ public class MealData { NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); if (profile == null) return; - List bgReadings = MainApp.getDbHelper().getBgreadingsDataFromTime((long) (new Date().getTime() - 60 * 60 * 1000L * profile.getDia() * 2), false); + List bgReadings = MainApp.getDbHelper().getBgreadingsDataFromTime((long) (new Date().getTime() - 60 * 60 * 1000L * profile.getDia() * 2), true); long now = new Date().getTime(); long dia_ago = now - (new Double(1.5d * profile.getDia() * 60 * 60 * 1000l)).longValue(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java index e44b810d36..af32422e01 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java @@ -34,6 +34,7 @@ public class Autosens { for (int i = 1; i < glucose_data.size(); ++i) { long bgTime = glucose_data.get(i).getTimeIndex(); long lastbgTime = glucose_data.get(i - 1).getTimeIndex(); + //log.error("Processing " + i + ": " + new Date(bgTime).toString() + " " + glucose_data.get(i).value + " Previous: " + new Date(lastbgTime).toString() + " " + glucose_data.get(i - 1).value); if (glucose_data.get(i).value < 39 || glucose_data.get(i - 1).value < 39) { continue; } @@ -52,23 +53,32 @@ public class Autosens { newBgreading.timeIndex = nextbgTime; double gapDelta = glucose_data.get(i).value - lastbg; //console.error(gapDelta, lastbg, elapsed_minutes); - double nextbg = lastbg + (5 / elapsed_minutes * gapDelta); + double nextbg = lastbg + (5d / elapsed_minutes * gapDelta); newBgreading.value = Math.round(nextbg); //console.error("Interpolated", bucketed_data[j]); bucketed_data.add(newBgreading); + //log.error("******************************************************************************************************* Adding:" + new Date(newBgreading.timeIndex).toString() + " " + newBgreading.value); elapsed_minutes = elapsed_minutes - 5; lastbg = nextbg; lastbgTime = nextbgTime; } + j++; + BgReading newBgreading = new BgReading(); + newBgreading.value = glucose_data.get(i).value; + newBgreading.timeIndex = bgTime; + bucketed_data.add(newBgreading); + //log.error("******************************************************************************************************* Copying:" + new Date(newBgreading.timeIndex).toString() + " " + newBgreading.value); } else if (Math.abs(elapsed_minutes) > 2) { j++; BgReading newBgreading = new BgReading(); newBgreading.value = glucose_data.get(i).value; newBgreading.timeIndex = bgTime; bucketed_data.add(newBgreading); + //log.error("******************************************************************************************************* Copying:" + new Date(newBgreading.timeIndex).toString() + " " + newBgreading.value); } else { bucketed_data.get(j).value = (bucketed_data.get(j).value + glucose_data.get(i).value) / 2; + //log.error("***** Average"); } } //console.error(bucketed_data); @@ -82,8 +92,8 @@ public class Autosens { int secondsFromMidnight = NSProfile.secondsFromMidnight(new Date(bgTime)); String hour = ""; - Date d = new Date(secondsFromMidnight); - if (secondsFromMidnight % 3600 < 3 * 60 || secondsFromMidnight % 3600 > 57 * 60) { + //log.debug(new Date(bgTime).toString()); + if (secondsFromMidnight % 3600 < 2.5 * 60 || secondsFromMidnight % 3600 > 57.5 * 60) { hour += "(" + Math.round(secondsFromMidnight / 3600d) + ")"; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java index 2cbffae52a..e011f49fb8 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java @@ -217,7 +217,7 @@ public class OpenAPSAMAPlugin implements PluginBase, APSInterface { startPart = new Date(); long oldestDataAvailable = MainApp.getConfigBuilder().getActiveTempBasals().oldestDataAvaialable(); - List bgReadings = MainApp.getDbHelper().getBgreadingsDataFromTime(Math.max(oldestDataAvailable, (long) (new Date().getTime() - 60 * 60 * 1000L * (24 + profile.getDia()))), false); + List bgReadings = MainApp.getDbHelper().getBgreadingsDataFromTime(Math.max(oldestDataAvailable, (long) (new Date().getTime() - 60 * 60 * 1000L * (24 + profile.getDia()))), true); log.debug("Limiting data to oldest available temps: " + new Date(oldestDataAvailable).toString() + " (" + bgReadings.size() + " records)"); Profiler.log(log, "getBgreadingsDataFromTime()", startPart); From af8e48525002d9fcb5c4b6d58430ab1285f2dce4 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sun, 5 Mar 2017 20:12:30 +0100 Subject: [PATCH 059/140] log SafeParse --- app/src/main/java/info/nightscout/utils/SafeParse.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/java/info/nightscout/utils/SafeParse.java b/app/src/main/java/info/nightscout/utils/SafeParse.java index 470e649005..8697daeebd 100644 --- a/app/src/main/java/info/nightscout/utils/SafeParse.java +++ b/app/src/main/java/info/nightscout/utils/SafeParse.java @@ -1,15 +1,20 @@ package info.nightscout.utils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * Created by mike on 23.06.2016. */ public class SafeParse { + private static Logger log = LoggerFactory.getLogger(SafeParse.class); public static Double stringToDouble(String input) { Double result = 0d; input = input.replace(",", "."); try { result = Double.parseDouble(input); } catch (Exception e) { + log.error("Error parsing " + input + " to double"); } return result; } @@ -20,6 +25,7 @@ public class SafeParse { try { result = Integer.parseInt(input); } catch (Exception e) { + log.error("Error parsing " + input + " to int"); } return result; } @@ -30,6 +36,7 @@ public class SafeParse { try { result = Long.parseLong(input); } catch (Exception e) { + log.error("Error parsing " + input + " to long"); } return result; } From be26db356d197e10bcb66a3ffad651a751a521b1 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Mon, 6 Mar 2017 18:53:43 +0100 Subject: [PATCH 060/140] another fix --- app/src/main/java/info/nightscout/androidaps/data/MealData.java | 2 +- .../info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java | 2 +- .../androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/data/MealData.java b/app/src/main/java/info/nightscout/androidaps/data/MealData.java index a9136f88c2..18919c3c8a 100644 --- a/app/src/main/java/info/nightscout/androidaps/data/MealData.java +++ b/app/src/main/java/info/nightscout/androidaps/data/MealData.java @@ -25,7 +25,7 @@ public class MealData { NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); if (profile == null) return; - List bgReadings = MainApp.getDbHelper().getBgreadingsDataFromTime((long) (new Date().getTime() - 60 * 60 * 1000L * profile.getDia() * 2), true); + List bgReadings = MainApp.getDbHelper().getBgreadingsDataFromTime((long) (new Date().getTime() - 60 * 60 * 1000L * profile.getDia() * 2), false); long now = new Date().getTime(); long dia_ago = now - (new Double(1.5d * profile.getDia() * 60 * 60 * 1000l)).longValue(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java index af32422e01..b504dde984 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/Autosens.java @@ -47,7 +47,7 @@ public class Autosens { //console.error(elapsed_minutes); long nextbgTime; while (elapsed_minutes > 5) { - nextbgTime = lastbgTime + 5 * 60 * 1000; + nextbgTime = lastbgTime - 5 * 60 * 1000; j++; BgReading newBgreading = new BgReading(); newBgreading.timeIndex = nextbgTime; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java index e011f49fb8..2cbffae52a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/OpenAPSAMA/OpenAPSAMAPlugin.java @@ -217,7 +217,7 @@ public class OpenAPSAMAPlugin implements PluginBase, APSInterface { startPart = new Date(); long oldestDataAvailable = MainApp.getConfigBuilder().getActiveTempBasals().oldestDataAvaialable(); - List bgReadings = MainApp.getDbHelper().getBgreadingsDataFromTime(Math.max(oldestDataAvailable, (long) (new Date().getTime() - 60 * 60 * 1000L * (24 + profile.getDia()))), true); + List bgReadings = MainApp.getDbHelper().getBgreadingsDataFromTime(Math.max(oldestDataAvailable, (long) (new Date().getTime() - 60 * 60 * 1000L * (24 + profile.getDia()))), false); log.debug("Limiting data to oldest available temps: " + new Date(oldestDataAvailable).toString() + " (" + bgReadings.size() + " records)"); Profiler.log(log, "getBgreadingsDataFromTime()", startPart); From 02b90fa6c7f38f999722f057e7fb84417cdd4291 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Tue, 7 Mar 2017 10:52:25 +0100 Subject: [PATCH 061/140] update gradle to 2.3 --- app/build.gradle | 8 ++++---- build.gradle | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 152572006c..3b845352a4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -170,10 +170,10 @@ dependencies { testCompile 'org.json:json:20140107' testCompile 'org.mockito:mockito-core:2.+' androidTestCompile 'org.mockito:mockito-core:2.+' - androidTestCompile "com.google.dexmaker:dexmaker:1.2" - androidTestCompile "com.google.dexmaker:dexmaker-mockito:1.2" - compile(name:'android-edittext-validator-v1.3.4-mod', ext:'aar') - compile ('io.socket:socket.io-client:0.8.3') { + androidTestCompile 'com.google.dexmaker:dexmaker:1.2' + androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2' + compile(name: 'android-edittext-validator-v1.3.4-mod', ext: 'aar') + compile('io.socket:socket.io-client:0.8.3') { // excluding org.json which is provided by Android exclude group: 'org.json', module: 'json' } diff --git a/build.gradle b/build.gradle index 74b2ab0dd8..1ea4bd0550 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.2.3' + classpath 'com.android.tools.build:gradle:2.3.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files From 151baa2fb55565e18eda2feaf80a8289d338502c Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Tue, 7 Mar 2017 11:07:56 +0100 Subject: [PATCH 062/140] enable nsclient internal by default --- .../plugins/NSClientInternal/NSClientInternalPlugin.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java index 1849bf7149..ba36501a9e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import info.nightscout.androidaps.BuildConfig; import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; @@ -41,8 +42,8 @@ import info.nightscout.utils.SP; public class NSClientInternalPlugin implements PluginBase { private static Logger log = LoggerFactory.getLogger(NSClientInternalPlugin.class); - boolean fragmentEnabled = false; - boolean fragmentVisible = false; + boolean fragmentEnabled = true; + boolean fragmentVisible = true; static public Handler handler; static private HandlerThread handlerThread; From 242428e2cb1a4f396cc4b7d71ef4acb5f272bad7 Mon Sep 17 00:00:00 2001 From: warstar2187 Date: Thu, 9 Mar 2017 04:20:40 +0900 Subject: [PATCH 063/140] Update strings.xml --- app/src/main/res/values-ko/strings.xml | 191 ++++++++++++++++++++----- 1 file changed, 155 insertions(+), 36 deletions(-) diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index d05c3c6715..5b657a4375 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -3,17 +3,17 @@ Treatments 안전설정 최대 허용 식사주입인슐린 [U] 최대 허용 탄수화물 [g] - 설정 NS에서 Treatments 새로고침 백업 테스트 알람 데이터베이스 초기화 + 데이터 베이스를 정말 초기화하시겠습니까? 종료 >200% 주입위한 확장식사주입 다나R 블루투스 기초주입량 절대값 사용하기 - + 폰을 재부팅하고나 AndroidAPS를 재시작하세요 \n그렇지 않으면 로그가 기록이되지 않습니다.(알고리즘이 제대로 작동하는지 확인하기 위해 로그가 필요합니다.)! 목표: 방법: 시작 @@ -29,6 +29,7 @@ 인슐린: 탄수화물: IOB: + IOB: 활동: IOB 총량: 활동 IOB 총량: @@ -73,8 +74,8 @@ 근거 혈당 Delta + Delta: Avg. delta - Config Builder 목표 OpenAPS MA @@ -85,8 +86,6 @@ Treatments 가상펌프 Careportal - - 펌프 Treatments 임시기초주입 @@ -96,7 +95,6 @@ 최소기간 제한 - Loop Loop APS @@ -104,6 +102,7 @@ Set by pump 최근 주입 나이트스카우트에서 Treatments를 새로고치시겠습니까 + 나이트스카우트에서 Temp Target을 새로고치시겠습니까 OK 취소 NO APS SELECTED OR PROVIDED RESULT @@ -111,6 +110,7 @@ 플러그인이 사용불가능 합니다 제한 위반 식사주입 전송 에러 + Tempbasal delivery error 기초주입 값 % (100% = 현재) 새 임시기초주입 적용: @@ -120,7 +120,9 @@ 확인 새 Treatment 입력: 식사주입 + Bolus: 기초주입 + Basal: 탄수화물 입력값 변경! 새 확장식사주입 설정: @@ -128,9 +130,9 @@ xDrip NSClient APS 모드 - Closed Loop Open Loop + Loop Disabled 새로운 제안이 있습니다 지원하지 않는 NSClient 버전입니다 NSClient 가 설치되지 않았습니다. 기록이 삭제됩니다! @@ -161,7 +163,6 @@ Temp Basal End Carbs correction OpenAPS Offline - Event type Other Meter @@ -198,14 +199,16 @@ 설정 불러오기 German Spanish + Greek 목표범위 최소 혈당값 목표범위 최대 혈당값 - 임시기초주입 최대량 [U/hr] - OpenAPS가 주입할수 있는 최대 기초주입 IOB [U] + 임시기초주입 최대량 [U/hr] + 이 값은 OpenAPS에서 Max Basal(임시기초주입 최대량)로 설정되는 값입니다 + OpenAPS가 주입할수 있는 최대 기초주입 IOB [U] + 이 값은 OpenAPS에서 Max IOB라고 부르는 값입니다\n기본값은 0으로 설정되어 있습니다. 몇일 혹은 몇주 정도 사용 후에 적정한 정도에 따라 값을 조정할 수 있습니다. Bulgarian - DISMISS + 닫기 언어 - 다나R 연결중 연결됨 @@ -240,8 +243,11 @@ 허가된 전화번호 +XXXXXXXXXX;+YYYYYYYYYY 식사주입 %.2fU 을 실행하려면 %s 를 입력하고 답장하세요 + To send calibration %.2f reply with code %s Bolus failed Bolus %.2fU delivered successfully + Going to deliver %.2fU + Bolus %.2fU delivered successfully %.2fU 주입중 SMS 원격 명령 사용하기 원격 식사주입 허용되지 않음 @@ -252,6 +258,7 @@ Temporary Target Cancel DanaR 프로파일 설정 인슐린활동시간(DIA) [h] + Duration of Insulin Activity 기초주입 프로파일 갱신 실패 History Reload @@ -285,6 +292,7 @@ 막힘 정지 정지 누름 + Waiting for pump 펌프를 기다리고 있습니다. Click to refresh. %.2fU을 주입합니다 나이트스카우트를 세팅하고, 기초주입과 비율을 분석한다. @@ -307,6 +315,7 @@ Loop가 실행되었습니다. Loop가 중지중입니다. Loop가 실행중입니다. + %.2f limited to %.2f 값 %s 은 하드리밋(Hard Limit)를 벗어났습니다 원격 기초주입설정이 허가되지 않았습니다 기초주입 %.2fU/h 을 실행하려면 %s 를 입력하고 답장하세요 @@ -316,10 +325,9 @@ Temp basal canceled Canceling temp basal failed 알려지지 않은 명령이거나 잘못된 답장입니다 - 퀵마법사 퀵마법사 설정 - 버튼 글자: + 버튼명: 탄수화물: 유효기간: 추가 @@ -334,6 +342,7 @@ NS upload only. 로컬소스(xDrip)가 선택되지 않으면 SGV에는 효력이 없습니다. NS프로파일이 사용중이라면 프로파일에는 효력이 없습니다. 이 기능을 사용하시려면 "NS upload only"을 비활성화 하세요. 펌프가 초기화 되지 않았습니다! + 펌프가 초기화와 프로파일 설정이 되지 않았습니다! 공기/채움 Please make sure the amount matches the specification of your infusion set! 기타 @@ -360,7 +369,7 @@ Overview/스마트워치 차트 표시용 고/저혈당 선 저혈당 선 고혈당 선 - Wear + 웨어 모든 데이터 다시 보내기 웨어에서 설정 열기 펌프 에러 @@ -379,27 +388,137 @@ BG: Last BG: MDI - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - " " - 필수 입력 항목입니다. + MM640g + Ongoing Notification + OLD DATA + %dmin ago + %dmin ago + Local Profile + OpenAPS AMA + Short avg. delta + Long avg. delta + Array of %d elements.\nActual value: + Autosens data + Script debug + AMA autosens 기능 사용하기 + Temp Target + Refresh temp targets from NS + Eating Soon + Activity + Remove record: + DanaR Stats + Cumulative TDD + Exponentially Weighted TDD + Basal + Bolus + TDD + Date + Ratio + # Days + Weight + Possibly inaccurate if using boluses for priming/filling! + Old Data Please Press "RELOAD" + Total Base Basal + TBB * 2 + Initializing ... + ACT + CONF + LOOP + SP + OAPS + TT + LP + DANA + CPP + TB + HOME + VPUMP + NSPROFILE + TREAT + CP + OBJ + WEAR + SMS + 탭 이름 단축 + Delta Settings + Always use short average delta instead of simple delta + Useful when data from unfiltered sources like xDrip gets noisy. + 고급 설정 + Firmware: + Model: %02X Protocol: %02X Code: %02X + 프로파일 + Default value: 3\nThis is a key OpenAPS safety cap. What this does is limit your basals to be 3x (in this people) your biggest basal rate. You likely will not need to change this, but you should be aware that’s what is discussed about “3x max daily; 4x current” for safety caps. + Default value: 4\nThis is the other half of the key OpenAPS safety caps, and the other half of “3x max daily; 4x current” of the safety caps. This means your basal, regardless of max basal set on your pump, cannot be any higher than this number times the current level of your basal. This is to prevent people from getting into dangerous territory by setting excessively high max basals before understanding how the algorithm works. Again, the default is 4x; most people will never need to adjust this and are instead more likely to need to adjust other settings if they feel like they are “running into” this safety cap. + Default value: 1.2\nThis is a multiplier cap for autosens (and soon autotune) to set a 20% max limit on how high the autosens ratio can be, which in turn determines how high autosens can adjust basals, how low it can adjust ISF, and how low it can set the BG target. + Default value: 0.7\nThe other side of the autosens safety limits, putting a cap on how low autosens can adjust basals, and how high it can adjust ISF and BG targets. + Default value: true\nThis is used to allow autosens to adjust BG targets, in addition to ISF and basals. + Default value: 2\nBolus snooze is enacted after you do a meal bolus, so the loop won’t counteract with low temps when you’ve just eaten. The example here and default is 2; so a 3 hour DIA means that bolus snooze will be gradually phased out over 1.5 hours (3DIA/2). + Default value: 3.0\nThis is a setting for default carb absorption impact per 5 minutes. The default is an expected 3mg/dl/5min. This affects how fast COB are decayed, and how much carb absorption is assumed in calculating future predicted BG, when BG is falling more than expected, or not rising as much as expected. + 주의!\n보통의 경우 아래의 값을 변경하면 안됩니다. 이 값들을 변경하기 전에 반드시 이곳을 클릭하고 글을 정독해서 확실하게 이해를 하여야 합니다.. + http://openaps.readthedocs.io/en/latest/docs/walkthrough/phase-3/beyond-low-glucose-suspend.html 숫자만 입력가능합니다. 이 범위(%1$s - %2$s)안에 해당하는 숫자만 입력가능합니다. - 유효한 도메인 이름이 아닙니다. - 펌프를 기다리고 있습니다 + 필수 입력 항목입니다. + 폰번호가 유효하지 않습니다 + SMS폰번호가 유효하지 않습니다 + Copy To Clipboard + Copied to clipboard + Show log + 보정 + 혈당 보정 + Send calibration %.1f to xDrip? + xDrip+가 설치되지 않았습니다 + 보정이 xDrip으로 전송되었습니다 + 원격보정이 허용되지 않았습니다 + 보정이 전송되었습니다. xDrip에서 수신이 되도록 설정되어 있어야 합니다. + xDrip에서 보정을 받지 못합니다. + Don\'t show again + 펌프 일시중지. 상태를 새로고치려면 클릭하세요 + 펌프 일시중지됨 + 펌프 상태 가져오는중 + 임시 기초주입 설정중 + 임시기초주입 취소중 + 확장식사주입 설정중 + 확장식사주입 취소중 + 기초주입량 업데이트중 + 연결끊기중 + 실행중 + 가상펌프 설정 + Upload status to NS + 잘못된 비밀번호 + 설정 비밀번호 + 설정 잠금해제 + 인슐린 일 허용량에 근접중 + 내장 NSClient + NSCI + URL: + Autoscroll + Restart + 내장 NSClient + Nightscout URL + Nightscout URL 입력 + NS API secret + NS API secret + NS API secret 입력(최소 12글자) + Device name + Enter device name + It will be used for enteredBy field + Deliver now + Clear queue + Show queue + Queue: + Status: + Paused + Clear log + NSCLIENT이 쓰기 권한이 없습니다. 잘못된 API secret? + 웨어 설정 + IOB 자세하게 보여주기 + 워치페이스에 IOB를 식사주입IOB와 기초주입IOB로 나누어서 보여줍니다. + not successful - please check phone + Not available + 나이 + 어린이 + 청소년 + 성인 + 안전제한을 설정하기 위해 당뇨인의 나이를 선택하세요 From 52aa7c1bf85ebf127305cfc906660ada03abc1b5 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 9 Mar 2017 09:57:24 +0100 Subject: [PATCH 064/140] fix null pointer exception --- .../info/nightscout/androidaps/receivers/KeepAliveReceiver.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java b/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java index 434d488086..5c889b661f 100644 --- a/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java +++ b/app/src/main/java/info/nightscout/androidaps/receivers/KeepAliveReceiver.java @@ -35,7 +35,7 @@ public class KeepAliveReceiver extends BroadcastReceiver { final PumpInterface pump = MainApp.getConfigBuilder(); final NSProfile profile = MainApp.getConfigBuilder().getActiveProfile().getProfile(); - if (pump != null && profile != null) { + if (pump != null && profile != null && profile.getBasal(NSProfile.secondsFromMidnight()) != null) { boolean isBasalOutdated = false; boolean isStatusOutdated = false; From 2c2d83707928b765f4a383f60274d26edc62887d Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 9 Mar 2017 10:20:38 +0100 Subject: [PATCH 065/140] fix null pointer exception --- .../info/nightscout/androidaps/db/TempBasal.java | 6 +++++- .../plugins/NSClientInternal/data/NSProfile.java | 13 +++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/db/TempBasal.java b/app/src/main/java/info/nightscout/androidaps/db/TempBasal.java index d15ab436da..149d188b7c 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/TempBasal.java +++ b/app/src/main/java/info/nightscout/androidaps/db/TempBasal.java @@ -59,11 +59,15 @@ public class TempBasal { if (profile == null) return result; + Double basalRate = profile.getBasal(profile.secondsFromMidnight(time)); + + if (basalRate == null) + return result; + int realDuration = getRealDuration(); if (realDuration > 0) { Double netBasalRate = 0d; - Double basalRate = profile.getBasal(profile.secondsFromMidnight(time)); Double tempBolusSize = 0.05; if (isExtended) { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSProfile.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSProfile.java index 4d3df3068c..5ff95ddf39 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSProfile.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/data/NSProfile.java @@ -1,5 +1,7 @@ package info.nightscout.androidaps.plugins.NSClientInternal.data; +import android.support.annotation.Nullable; + import com.crashlytics.android.Crashlytics; import org.json.JSONArray; @@ -178,6 +180,7 @@ public class NSProfile { return TimeZone.getDefault(); } + @Nullable public Double getValueToTime(JSONArray array, Integer timeAsSeconds) { Double lastValue = null; @@ -221,10 +224,12 @@ public class NSProfile { return retValue; } + @Nullable public Double getIsf(Integer timeAsSeconds) { return getIsf(getDefaultProfile(), timeAsSeconds); } + @Nullable public Double getIsf(JSONObject profile, Integer timeAsSeconds) { if (profile != null) { try { @@ -251,10 +256,12 @@ public class NSProfile { return ""; } + @Nullable public Double getIc(Integer timeAsSeconds) { return getIc(getDefaultProfile(), timeAsSeconds); } + @Nullable public Double getIc(JSONObject profile, Integer timeAsSeconds) { if (profile != null) { try { @@ -281,10 +288,12 @@ public class NSProfile { return ""; } + @Nullable public Double getBasal(Integer timeAsSeconds) { return getBasal(getDefaultProfile(), timeAsSeconds); } + @Nullable public Double getBasal(JSONObject profile, Integer timeAsSeconds) { if (profile != null) { try { @@ -339,10 +348,12 @@ public class NSProfile { return ""; } + @Nullable public Double getTargetLow(Integer timeAsSeconds) { return getTargetLow(getDefaultProfile(), timeAsSeconds); } + @Nullable public Double getTargetLow(JSONObject profile, Integer timeAsSeconds) { if (profile != null) { try { @@ -354,10 +365,12 @@ public class NSProfile { return 0D; } + @Nullable public Double getTargetHigh(Integer timeAsSeconds) { return getTargetHigh(getDefaultProfile(), timeAsSeconds); } + @Nullable public Double getTargetHigh(JSONObject profile, Integer timeAsSeconds) { if (profile != null) { try { From aa8fa729ad06f7f9edf7d891595cbcaa0f236f6b Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 9 Mar 2017 10:25:13 +0100 Subject: [PATCH 066/140] update fabric --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 3b845352a4..905f2844c3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -140,10 +140,10 @@ dependencies { wearcontrolWearApp project(path: ':wear', configuration: 'fullRelease') compile fileTree(include: ['*.jar'], dir: 'libs') - compile('com.crashlytics.sdk.android:crashlytics:2.6.6@aar') { + compile('com.crashlytics.sdk.android:crashlytics:2.6.7@aar') { transitive = true; } - compile('com.crashlytics.sdk.android:answers:1.3.11@aar') { + compile('com.crashlytics.sdk.android:answers:1.3.12@aar') { transitive = true; } From 7c6d708d061cca54605ff2f5d55bf87184a84db4 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 9 Mar 2017 10:57:20 +0100 Subject: [PATCH 067/140] use onAttach for context in WizardDialog --- .../Overview/Dialogs/WizardDialog.java | 88 +++++++++---------- .../plugins/Overview/OverviewFragment.java | 1 - 2 files changed, 44 insertions(+), 45 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java index 7916291ccc..b0e7123b17 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java @@ -85,17 +85,19 @@ public class WizardDialog extends DialogFragment implements OnClickListener { Handler mHandler; public static HandlerThread mHandlerThread; - Context parentContext; + Context context; public WizardDialog() { + super(); mHandlerThread = new HandlerThread(WizardDialog.class.getSimpleName()); mHandlerThread.start(); mHandler = new Handler(mHandlerThread.getLooper()); } - - public void setContext(Context context) { - parentContext = context; + @Override + public void onAttach(Context context) { + super.onAttach(context); + this.context = context; } final private TextWatcher textWatcher = new TextWatcher() { @@ -129,7 +131,7 @@ public class WizardDialog extends DialogFragment implements OnClickListener { @Override public void onNothingSelected(AdapterView parent) { - ToastUtils.showToastInUiThread(parentContext, MainApp.sResources.getString(R.string.noprofileselected)); + ToastUtils.showToastInUiThread(context, MainApp.sResources.getString(R.string.noprofileselected)); wizardDialogDeliverButton.setVisibility(View.GONE); } }; @@ -200,8 +202,8 @@ public class WizardDialog extends DialogFragment implements OnClickListener { confirmMessage += "\n" + getString(R.string.bolus) + ": " + formatNumber2decimalplaces.format(insulinAfterConstraints) + "U"; confirmMessage += "\n" + getString(R.string.carbs) + ": " + carbsAfterConstraints + "g"; - if (insulinAfterConstraints - calculatedTotalInsulin != 0 || !carbsAfterConstraints.equals(calculatedCarbs)) { - AlertDialog.Builder builder = new AlertDialog.Builder(parentContext); + if (insulinAfterConstraints - calculatedTotalInsulin != 0 || !carbsAfterConstraints.equals(calculatedCarbs)) { + AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror)); builder.setMessage(getString(R.string.constraints_violation) + "\n" + getString(R.string.changeyourinput)); builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null); @@ -212,45 +214,43 @@ public class WizardDialog extends DialogFragment implements OnClickListener { final Double finalInsulinAfterConstraints = insulinAfterConstraints; final Integer finalCarbsAfterConstraints = carbsAfterConstraints; - if (parentContext != null) { - AlertDialog.Builder builder = new AlertDialog.Builder(parentContext); - builder.setTitle(MainApp.sResources.getString(R.string.confirmation)); - builder.setMessage(confirmMessage); - builder.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - if (finalInsulinAfterConstraints > 0 || finalCarbsAfterConstraints > 0) { - final ConfigBuilderPlugin pump = MainApp.getConfigBuilder(); - mHandler.post(new Runnable() { - @Override - public void run() { - PumpEnactResult result = pump.deliverTreatmentFromBolusWizard( - parentContext, - finalInsulinAfterConstraints, - finalCarbsAfterConstraints, - SafeParse.stringToDouble(bgInput.getText().toString()), - "Manual", - SafeParse.stringToInt(carbTimeEdit.getText().toString()), - boluscalcJSON - ); - if (!result.success) { - AlertDialog.Builder builder = new AlertDialog.Builder(parentContext); - builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror)); - builder.setMessage(result.comment); - builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null); - builder.show(); - } + AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle(MainApp.sResources.getString(R.string.confirmation)); + builder.setMessage(confirmMessage); + builder.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + if (finalInsulinAfterConstraints > 0 || finalCarbsAfterConstraints > 0) { + final ConfigBuilderPlugin pump = MainApp.getConfigBuilder(); + mHandler.post(new Runnable() { + @Override + public void run() { + PumpEnactResult result = pump.deliverTreatmentFromBolusWizard( + context, + finalInsulinAfterConstraints, + finalCarbsAfterConstraints, + SafeParse.stringToDouble(bgInput.getText().toString()), + "Manual", + SafeParse.stringToInt(carbTimeEdit.getText().toString()), + boluscalcJSON + ); + if (!result.success) { + AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror)); + builder.setMessage(result.comment); + builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null); + builder.show(); } - }); - Answers.getInstance().logCustom(new CustomEvent("Wizard")); - } + } + }); + Answers.getInstance().logCustom(new CustomEvent("Wizard")); } - }); - builder.setNegativeButton(getString(R.string.cancel), null); - builder.show(); - dismiss(); - } else { - log.error("parentContext == null"); - } + } + }); + builder.setNegativeButton(getString(R.string.cancel), null); + builder.show(); + dismiss(); + } else { + log.error("parentContext == null"); } break; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index b925080c17..a51d3c5ff1 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -216,7 +216,6 @@ public class OverviewFragment extends Fragment { public void onClick(View view) { FragmentManager manager = getFragmentManager(); WizardDialog wizardDialog = new WizardDialog(); - wizardDialog.setContext(getContext()); wizardDialog.show(manager, "WizardDialog"); } }); From 96427cf3dcebd261084088f266dd40e62e2db239 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 9 Mar 2017 10:59:11 +0100 Subject: [PATCH 068/140] use onAttach for context in CalibrationDialog --- .../plugins/Overview/Dialogs/CalibrationDialog.java | 10 ++++++---- .../androidaps/plugins/Overview/OverviewFragment.java | 1 - 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java index 5c96cb58e5..d9ab1aa312 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/CalibrationDialog.java @@ -35,14 +35,16 @@ public class CalibrationDialog extends DialogFragment implements View.OnClickLis PlusMinusEditText bgText; TextView unitsView; - Context parentContext; + Context context; public CalibrationDialog() { // Required empty public constructor } - public void setContext(Context context) { - parentContext = context; + @Override + public void onAttach(Context context) { + super.onAttach(context); + this.context = context; } @Override @@ -74,7 +76,7 @@ public class CalibrationDialog extends DialogFragment implements View.OnClickLis switch (view.getId()) { case R.id.overview_calibration_okbutton: final Double bg = bgText.getValue(); - XdripCalibrations.confirmAndSendCalibration(bg, parentContext); + XdripCalibrations.confirmAndSendCalibration(bg, context); dismiss(); Answers.getInstance().logCustom(new CustomEvent("Calibration")); break; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index a51d3c5ff1..d24739c9cf 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -249,7 +249,6 @@ public class OverviewFragment extends Fragment { public void onClick(View view) { FragmentManager manager = getFragmentManager(); CalibrationDialog calibrationDialog = new CalibrationDialog(); - calibrationDialog.setContext(getContext()); calibrationDialog.show(manager, "CalibrationDialog"); } }); From aa46479cdba22ade6ae2fe74168012bad9479ed0 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 9 Mar 2017 11:00:29 +0100 Subject: [PATCH 069/140] unneeded else --- .../androidaps/plugins/Overview/Dialogs/WizardDialog.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java index b0e7123b17..173e73facb 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java @@ -249,8 +249,6 @@ public class WizardDialog extends DialogFragment implements OnClickListener { builder.setNegativeButton(getString(R.string.cancel), null); builder.show(); dismiss(); - } else { - log.error("parentContext == null"); } break; } From 86a7699d8fb0e77356ff046d0c1c1a6aff3d64ec Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 9 Mar 2017 16:34:08 +0100 Subject: [PATCH 070/140] copy/paste mistake --- .../androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java index 75d9bcec11..2d5a4580c4 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Actions/dialogs/NewTempBasalDialog.java @@ -54,7 +54,7 @@ public class NewTempBasalDialog extends DialogFragment implements View.OnClickLi public static HandlerThread mHandlerThread; public NewTempBasalDialog() { - mHandlerThread = new HandlerThread(NewExtendedBolusDialog.class.getSimpleName()); + mHandlerThread = new HandlerThread(NewTempBasalDialog.class.getSimpleName()); mHandlerThread.start(); this.mHandler = new Handler(mHandlerThread.getLooper()); } From 48d30f2da3880ea4088c02e10c7bce650b780a99 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 9 Mar 2017 22:24:57 +0100 Subject: [PATCH 071/140] toast out of memory --- .../NSClientInternal/NSClientInternalPlugin.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java index ba36501a9e..234fca4b94 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java @@ -38,6 +38,7 @@ import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientS import info.nightscout.androidaps.plugins.NSClientInternal.events.EventNSClientUpdateGUI; import info.nightscout.androidaps.plugins.NSClientInternal.services.NSClientService; import info.nightscout.utils.SP; +import info.nightscout.utils.ToastUtils; public class NSClientInternalPlugin implements PluginBase { private static Logger log = LoggerFactory.getLogger(NSClientInternalPlugin.class); @@ -189,12 +190,16 @@ public class NSClientInternalPlugin implements PluginBase { } private void updateLog() { - Spanned newTextLog = Html.fromHtml(""); - for (EventNSClientNewLog log : listLog) { - newTextLog = (Spanned) TextUtils.concat(newTextLog, log.toHtml()); + try { + Spanned newTextLog = Html.fromHtml(""); + for (EventNSClientNewLog log : listLog) { + newTextLog = (Spanned) TextUtils.concat(newTextLog, log.toHtml()); + } + textLog = newTextLog; + MainApp.bus().post(new EventNSClientUpdateGUI()); + } catch (OutOfMemoryError e) { + ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), "Out of memory!\nStop using this phone !!!"); } - textLog = newTextLog; - MainApp.bus().post(new EventNSClientUpdateGUI()); } public void resend(String reason) { From 7f4db28c4193fb66dc481393a9b3738ccc3e6481 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Fri, 10 Mar 2017 10:42:12 +0100 Subject: [PATCH 072/140] add sound --- .../plugins/NSClientInternal/NSClientInternalPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java index 234fca4b94..46c19b2eaa 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/NSClientInternal/NSClientInternalPlugin.java @@ -198,7 +198,7 @@ public class NSClientInternalPlugin implements PluginBase { textLog = newTextLog; MainApp.bus().post(new EventNSClientUpdateGUI()); } catch (OutOfMemoryError e) { - ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), "Out of memory!\nStop using this phone !!!"); + ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), "Out of memory!\nStop using this phone !!!", R.raw.error); } } From f528f1cd8317871b81844dee10ea2f6ac5f013e7 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sat, 18 Mar 2017 23:35:43 +0100 Subject: [PATCH 073/140] fix reading glimp bg data --- app/src/main/java/info/nightscout/androidaps/db/BgReading.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/db/BgReading.java b/app/src/main/java/info/nightscout/androidaps/db/BgReading.java index 951d370bf3..8a0aaf96e1 100644 --- a/app/src/main/java/info/nightscout/androidaps/db/BgReading.java +++ b/app/src/main/java/info/nightscout/androidaps/db/BgReading.java @@ -47,7 +47,7 @@ public class BgReading implements DataPointInterface { public BgReading(NSSgv sgv) { timeIndex = sgv.getMills(); value = sgv.getMgdl(); - raw = sgv.getFiltered(); + raw = sgv.getFiltered() != null ? sgv.getFiltered() : value; direction = sgv.getDirection(); } From e8edf9eb542f7c4a08e2262cd64d749acef9f23c Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Tue, 21 Mar 2017 19:11:39 +0100 Subject: [PATCH 074/140] Glimp support --- .../info/nightscout/androidaps/MainApp.java | 2 + .../androidaps/Services/DataService.java | 38 ++++++++++++ .../androidaps/Services/Intents.java | 2 + .../SourceGlimp/SourceGlimpFragment.java | 16 +++++ .../SourceGlimp/SourceGlimpPlugin.java | 62 +++++++++++++++++++ app/src/main/res/values/strings.xml | 1 + 6 files changed, 121 insertions(+) create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/SourceGlimp/SourceGlimpFragment.java create mode 100644 app/src/main/java/info/nightscout/androidaps/plugins/SourceGlimp/SourceGlimpPlugin.java diff --git a/app/src/main/java/info/nightscout/androidaps/MainApp.java b/app/src/main/java/info/nightscout/androidaps/MainApp.java index ec478584a2..67057f1e9d 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainApp.java +++ b/app/src/main/java/info/nightscout/androidaps/MainApp.java @@ -38,6 +38,7 @@ import info.nightscout.androidaps.plugins.Overview.OverviewFragment; import info.nightscout.androidaps.plugins.SafetyFragment.SafetyFragment; import info.nightscout.androidaps.plugins.SimpleProfile.SimpleProfileFragment; import info.nightscout.androidaps.plugins.SmsCommunicator.SmsCommunicatorFragment; +import info.nightscout.androidaps.plugins.SourceGlimp.SourceGlimpFragment; import info.nightscout.androidaps.plugins.SourceMM640g.SourceMM640gFragment; import info.nightscout.androidaps.plugins.SourceNSClient.SourceNSClientFragment; import info.nightscout.androidaps.plugins.SourceXdrip.SourceXdripFragment; @@ -104,6 +105,7 @@ public class MainApp extends Application { pluginsList.add(SourceXdripFragment.getPlugin()); pluginsList.add(SourceNSClientFragment.getPlugin()); pluginsList.add(SourceMM640gFragment.getPlugin()); + pluginsList.add(SourceGlimpFragment.getPlugin()); if (Config.SMSCOMMUNICATORENABLED) pluginsList.add(SmsCommunicatorFragment.getPlugin()); if (Config.WEAR) pluginsList.add(WearFragment.getPlugin(this)); diff --git a/app/src/main/java/info/nightscout/androidaps/Services/DataService.java b/app/src/main/java/info/nightscout/androidaps/Services/DataService.java index b27a1a85b4..f45e59f4c1 100644 --- a/app/src/main/java/info/nightscout/androidaps/Services/DataService.java +++ b/app/src/main/java/info/nightscout/androidaps/Services/DataService.java @@ -44,6 +44,7 @@ import info.nightscout.androidaps.plugins.Overview.events.EventDismissNotificati import info.nightscout.androidaps.plugins.Overview.events.EventNewNotification; import info.nightscout.androidaps.plugins.SmsCommunicator.SmsCommunicatorPlugin; import info.nightscout.androidaps.plugins.SmsCommunicator.events.EventNewSMS; +import info.nightscout.androidaps.plugins.SourceGlimp.SourceGlimpPlugin; import info.nightscout.androidaps.plugins.SourceMM640g.SourceMM640gPlugin; import info.nightscout.androidaps.plugins.SourceNSClient.SourceNSClientPlugin; import info.nightscout.androidaps.plugins.SourceXdrip.SourceXdripPlugin; @@ -59,6 +60,7 @@ public class DataService extends IntentService { boolean xDripEnabled = false; boolean nsClientEnabled = true; boolean mm640gEnabled = false; + boolean glimpEnabled = false; public DataService() { super("DataService"); @@ -74,14 +76,22 @@ public class DataService extends IntentService { xDripEnabled = true; nsClientEnabled = false; mm640gEnabled = false; + glimpEnabled = false; } else if (ConfigBuilderPlugin.getActiveBgSource().getClass().equals(SourceNSClientPlugin.class)) { xDripEnabled = false; nsClientEnabled = true; mm640gEnabled = false; + glimpEnabled = false; } else if (ConfigBuilderPlugin.getActiveBgSource().getClass().equals(SourceMM640gPlugin.class)) { xDripEnabled = false; nsClientEnabled = false; mm640gEnabled = true; + glimpEnabled = false; + } else if (ConfigBuilderPlugin.getActiveBgSource().getClass().equals(SourceGlimpPlugin.class)) { + xDripEnabled = false; + nsClientEnabled = false; + mm640gEnabled = false; + glimpEnabled = true; } boolean isNSProfile = ConfigBuilderPlugin.getActiveProfile().getClass().equals(NSProfilePlugin.class); @@ -99,6 +109,10 @@ public class DataService extends IntentService { if (mm640gEnabled) { handleNewDataFromMM640g(intent); } + } else if (Intents.GLIMP_BG.equals(action)) { + if (glimpEnabled) { + handleNewDataFromGlimp(intent); + } } else if (Intents.ACTION_NEW_SGV.equals(action)) { // always handle SGV if NS-Client is the source if (nsClientEnabled) { @@ -185,6 +199,30 @@ public class DataService extends IntentService { MainApp.bus().post(new EventNewBG()); } + private void handleNewDataFromGlimp(Intent intent) { + Bundle bundle = intent.getExtras(); + if (bundle == null) return; + + BgReading bgReading = new BgReading(); + + bgReading.value = bundle.getDouble("mySGV"); + bgReading.direction = bundle.getString("myTrend"); + bgReading.battery_level = bundle.getInt("myBatLvl"); + bgReading.timeIndex = bundle.getLong("myTimestamp"); + bgReading.raw = 0; + + if (Config.logIncommingBG) + log.debug(bundle.toString()); + log.debug("GLIMP BG " + bgReading.toString()); + + try { + MainApp.getDbHelper().getDaoBgReadings().createIfNotExists(bgReading); + } catch (SQLException e) { + e.printStackTrace(); + } + MainApp.bus().post(new EventNewBG()); + } + private void handleNewDataFromMM640g(Intent intent) { Bundle bundle = intent.getExtras(); if (bundle == null) return; diff --git a/app/src/main/java/info/nightscout/androidaps/Services/Intents.java b/app/src/main/java/info/nightscout/androidaps/Services/Intents.java index 4787838d4f..1b7b0875e5 100644 --- a/app/src/main/java/info/nightscout/androidaps/Services/Intents.java +++ b/app/src/main/java/info/nightscout/androidaps/Services/Intents.java @@ -35,4 +35,6 @@ public interface Intents { String NS_EMULATOR = "com.eveningoutpost.dexdrip.NS_EMULATOR"; String ACTION_REMOTE_CALIBRATION = "com.eveningoutpost.dexdrip.NewCalibration"; + + String GLIMP_BG = "it.ct.glicemia.ACTION_GLUCOSE_MEASURED"; } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SourceGlimp/SourceGlimpFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/SourceGlimp/SourceGlimpFragment.java new file mode 100644 index 0000000000..85a4ee9646 --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SourceGlimp/SourceGlimpFragment.java @@ -0,0 +1,16 @@ +package info.nightscout.androidaps.plugins.SourceGlimp; + + +import android.support.v4.app.Fragment; + +import info.nightscout.androidaps.interfaces.FragmentBase; + +public class SourceGlimpFragment extends Fragment implements FragmentBase { + + private static SourceGlimpPlugin sourceGlimpPlugin = new SourceGlimpPlugin(); + + public static SourceGlimpPlugin getPlugin() { + return sourceGlimpPlugin; + } + +} diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SourceGlimp/SourceGlimpPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SourceGlimp/SourceGlimpPlugin.java new file mode 100644 index 0000000000..7a5965e3df --- /dev/null +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SourceGlimp/SourceGlimpPlugin.java @@ -0,0 +1,62 @@ +package info.nightscout.androidaps.plugins.SourceGlimp; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; +import info.nightscout.androidaps.interfaces.BgSourceInterface; +import info.nightscout.androidaps.interfaces.PluginBase; +import info.nightscout.androidaps.plugins.SourceMM640g.SourceMM640gFragment; + +/** + * Created by mike on 05.08.2016. + */ +public class SourceGlimpPlugin implements PluginBase, BgSourceInterface { + boolean fragmentEnabled = false; + + @Override + public String getFragmentClass() { + return SourceGlimpFragment.class.getName(); + } + + @Override + public int getType() { + return PluginBase.BGSOURCE; + } + + @Override + public String getName() { + return MainApp.instance().getString(R.string.Glimp); + } + + @Override + public String getNameShort() { + // use long name as fallback (no tabs) + return getName(); + } + + @Override + public boolean isEnabled(int type) { + return type == BGSOURCE && fragmentEnabled; + } + + @Override + public boolean isVisibleInTabs(int type) { + return false; + } + + @Override + public boolean canBeHidden(int type) { + return true; + } + + @Override + public void setFragmentEnabled(int type, boolean fragmentEnabled) { + if (type == BGSOURCE) this.fragmentEnabled = fragmentEnabled; + } + + @Override + public void setFragmentVisible(int type, boolean fragmentVisible) { + + } + + +} diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 45688577f3..5c28094f14 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -553,4 +553,5 @@ adult Please select patient age to setup safety limits I_understand + Glimp From 8b357ac49e957a70adfbd2ea97c7da4fb7369e74 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 23 Mar 2017 10:12:36 +0100 Subject: [PATCH 075/140] fix null pointer exception --- .../info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java index 556c6d9770..4a2d9d3a56 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java @@ -276,6 +276,7 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf for (int h = 0; h < basalValues; h++) { Double pumpValue = pump.pumpProfiles[pump.activeProfile][h]; Double profileValue = profile.getBasal(h * basalIncrement); + if (profileValue == null) return true; if (Math.abs(pumpValue - profileValue) > getPumpDescription().basalStep) { log.debug("Diff found. Hour: " + h + " Pump: " + pumpValue + " Profile: " + profileValue); return false; From 32fda0f0df276b9bcbcfb238c5651dd5062ad681 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 23 Mar 2017 10:48:49 +0100 Subject: [PATCH 076/140] fix upload virtual pump status --- .../plugins/ConfigBuilder/ConfigBuilderPlugin.java | 2 +- .../plugins/VirtualPump/VirtualPumpPlugin.java | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java index f780596e59..e1dacda013 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/ConfigBuilder/ConfigBuilderPlugin.java @@ -1025,7 +1025,7 @@ public class ConfigBuilderPlugin implements PluginBase, PumpInterface, Constrain deviceStatus.device = "openaps://" + deviceID(); JSONObject pumpstatus = getJSONStatus(); if (pumpstatus != null) { - deviceStatus.pump = getJSONStatus(); + deviceStatus.pump = pumpstatus; } } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java index f84adf737e..2e3a802a7a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/VirtualPump/VirtualPumpPlugin.java @@ -38,6 +38,8 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { public static Integer batteryPercent = 50; public static Integer reservoirInUnits = 50; + Date lastDataTime = new Date(0); + boolean fragmentEnabled = true; boolean fragmentVisible = true; @@ -150,6 +152,7 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { @Override public int setNewBasalProfile(NSProfile profile) { // Do nothing here. we are using MainApp.getConfigBuilder().getActiveProfile().getProfile(); + lastDataTime = new Date(); return SUCCESS; } @@ -160,12 +163,13 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { @Override public Date lastDataTime() { - return new Date(); + return lastDataTime; } @Override public void refreshDataFromPump(String reason) { - // do nothing + MainApp.getConfigBuilder().uploadDeviceStatus(); + lastDataTime = new Date(); } @Override @@ -251,6 +255,7 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { if (Config.logPumpComm) log.debug("Delivering treatment insulin: " + insulin + "U carbs: " + carbs + "g " + result); MainApp.bus().post(new EventVirtualPumpUpdateGui()); + lastDataTime = new Date(); return result; } @@ -285,6 +290,7 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { if (Config.logPumpComm) log.debug("Setting temp basal absolute: " + result); MainApp.bus().post(new EventVirtualPumpUpdateGui()); + lastDataTime = new Date(); return result; } @@ -318,6 +324,7 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { if (Config.logPumpComm) log.debug("Settings temp basal percent: " + result); MainApp.bus().post(new EventVirtualPumpUpdateGui()); + lastDataTime = new Date(); return result; } @@ -349,6 +356,7 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { if (Config.logPumpComm) log.debug("Setting extended bolus: " + result); MainApp.bus().post(new EventVirtualPumpUpdateGui()); + lastDataTime = new Date(); return result; } @@ -375,6 +383,7 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { result.comment = MainApp.instance().getString(R.string.virtualpump_sqlerror); } } + lastDataTime = new Date(); return result; } @@ -399,6 +408,7 @@ public class VirtualPumpPlugin implements PluginBase, PumpInterface { if (Config.logPumpComm) log.debug("Canceling extended basal: " + result); MainApp.bus().post(new EventVirtualPumpUpdateGui()); + lastDataTime = new Date(); return result; } From a4f302ee4a897fac34aba2be17f386289ce4da96 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Fri, 24 Mar 2017 12:05:12 +0100 Subject: [PATCH 077/140] show if pump is suspended --- .../androidaps/plugins/DanaR/DanaRPlugin.java | 12 ++++++++++++ .../plugins/DanaRKorean/DanaRKoreanPlugin.java | 12 ++++++++++++ .../androidaps/plugins/Loop/LoopPlugin.java | 12 ++++++++++++ .../plugins/Overview/OverviewFragment.java | 10 +++++++--- app/src/main/res/drawable/loopmodeborder.xml | 2 +- app/src/main/res/drawable/loopmodedisabledborder.xml | 2 +- .../main/res/drawable/loopmodesuspendedborder.xml | 7 +++++++ .../temptargetborder.xml | 0 .../temptargetborderdisabled.xml | 0 app/src/main/res/values/colors.xml | 4 ++++ 10 files changed, 56 insertions(+), 5 deletions(-) create mode 100644 app/src/main/res/drawable/loopmodesuspendedborder.xml rename app/src/main/res/{drawable-mdpi-v11 => drawable}/temptargetborder.xml (100%) rename app/src/main/res/{drawable-mdpi-v11 => drawable}/temptargetborderdisabled.xml (100%) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java index 4a2d9d3a56..cb4e1b5bce 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java @@ -106,6 +106,18 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf pumpDescription.basalMinimumRate = 0.04d; pumpDescription.isRefillingCapable = true; + + Thread t = new Thread(new Runnable() { + @Override + public void run() { + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + } + refreshDataFromPump("Initialization"); + } + }); + t.start(); } ServiceConnection mConnection = new ServiceConnection() { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java index 683e2d8f1b..c701f5e5fe 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java @@ -108,6 +108,18 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints pumpDescription.basalMinimumRate = 0.1d; pumpDescription.isRefillingCapable = true; + + Thread t = new Thread(new Runnable() { + @Override + public void run() { + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + } + refreshDataFromPump("Initialization"); + } + }); + t.start(); } ServiceConnection mConnection = new ServiceConnection() { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java index c73b4a7f1f..b77d5f7834 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java @@ -133,12 +133,24 @@ public class LoopPlugin implements PluginBase { log.debug("invoke"); ConstraintsInterface constraintsInterface = MainApp.getConfigBuilder(); if (!constraintsInterface.isLoopEnabled()) { + log.debug(MainApp.sResources.getString(R.string.loopdisabled)); + MainApp.bus().post(new EventLoopSetLastRunGui(MainApp.sResources.getString(R.string.loopdisabled))); + return; + } + if (!constraintsInterface.isLoopEnabled()) { + log.debug(MainApp.sResources.getString(R.string.loopdisabled)); MainApp.bus().post(new EventLoopSetLastRunGui(MainApp.sResources.getString(R.string.loopdisabled))); return; } final ConfigBuilderPlugin configBuilder = MainApp.getConfigBuilder(); APSResult result = null; + if (!configBuilder.isSuspended()) { + log.debug(MainApp.sResources.getString(R.string.pumpsuspended)); + MainApp.bus().post(new EventLoopSetLastRunGui(MainApp.sResources.getString(R.string.pumpsuspended))); + return; + } + if (configBuilder == null || !isEnabled(PluginBase.LOOP)) return; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index d24739c9cf..a10fbca206 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -546,6 +546,8 @@ public class OverviewFragment extends Fragment { loopStatusLayout.setVisibility(View.VISIBLE); } + PumpInterface pump = MainApp.getConfigBuilder(); + // Skip if not initialized yet if (bgGraph == null) return; @@ -560,7 +562,11 @@ public class OverviewFragment extends Fragment { apsModeView.setBackgroundResource(R.drawable.loopmodeborder); apsModeView.setTextColor(Color.BLACK); final LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop(); - if (activeloop != null && activeloop.isEnabled(activeloop.getType())) { + if (pump.isSuspended()) { + apsModeView.setBackgroundResource(R.drawable.loopmodesuspendedborder); + apsModeView.setText(MainApp.sResources.getString(R.string.pumpsuspended)); + apsModeView.setTextColor(Color.WHITE); + } else if (activeloop != null && activeloop.isEnabled(activeloop.getType())) { if (MainApp.getConfigBuilder().isClosedModeEnabled()) { apsModeView.setText(MainApp.sResources.getString(R.string.closedloop)); } else { @@ -627,8 +633,6 @@ public class OverviewFragment extends Fragment { } // **** Temp button **** - PumpInterface pump = MainApp.getConfigBuilder(); - boolean showAcceptButton = !MainApp.getConfigBuilder().isClosedModeEnabled(); // Open mode needed showAcceptButton = showAcceptButton && finalLastRun != null && finalLastRun.lastAPSRun != null; // aps result must exist showAcceptButton = showAcceptButton && (finalLastRun.lastOpenModeAccept == null || finalLastRun.lastOpenModeAccept.getTime() < finalLastRun.lastAPSRun.getTime()); // never accepted or before last result diff --git a/app/src/main/res/drawable/loopmodeborder.xml b/app/src/main/res/drawable/loopmodeborder.xml index 86d49ae55d..95f3c114e6 100644 --- a/app/src/main/res/drawable/loopmodeborder.xml +++ b/app/src/main/res/drawable/loopmodeborder.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/res/drawable/loopmodedisabledborder.xml b/app/src/main/res/drawable/loopmodedisabledborder.xml index 1d312404e0..2326b5ca14 100644 --- a/app/src/main/res/drawable/loopmodedisabledborder.xml +++ b/app/src/main/res/drawable/loopmodedisabledborder.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/res/drawable/loopmodesuspendedborder.xml b/app/src/main/res/drawable/loopmodesuspendedborder.xml new file mode 100644 index 0000000000..9caa1789c1 --- /dev/null +++ b/app/src/main/res/drawable/loopmodesuspendedborder.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-mdpi-v11/temptargetborder.xml b/app/src/main/res/drawable/temptargetborder.xml similarity index 100% rename from app/src/main/res/drawable-mdpi-v11/temptargetborder.xml rename to app/src/main/res/drawable/temptargetborder.xml diff --git a/app/src/main/res/drawable-mdpi-v11/temptargetborderdisabled.xml b/app/src/main/res/drawable/temptargetborderdisabled.xml similarity index 100% rename from app/src/main/res/drawable-mdpi-v11/temptargetborderdisabled.xml rename to app/src/main/res/drawable/temptargetborderdisabled.xml diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 04dc1e3798..4af451b366 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -27,6 +27,10 @@ #779ECB #FF478EFF + #47c8ff + #FFDD7792 + #ff0400 + #ff0400 #ff5e55 #ff827c From c78adb6256b4c0daf920af1c42d2b720cf1ab492 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Fri, 24 Mar 2017 12:22:36 +0100 Subject: [PATCH 078/140] suspended status for korean pump --- .../androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java | 2 +- .../androidaps/plugins/DanaRKorean/DanaRKoreanPump.java | 2 ++ .../plugins/DanaRKorean/comm/MsgInitConnStatusBasic.java | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java index c701f5e5fe..ae541abbb6 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java @@ -227,7 +227,7 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints @Override public boolean isSuspended() { - return false; + return getDanaRPump().pumpSuspended; } @Override diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPump.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPump.java index b8a7016956..6786cc4c2e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPump.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPump.java @@ -43,6 +43,8 @@ public class DanaRKoreanPump { public int protocol; public int productCode; + public boolean pumpSuspended; + public boolean isConfigUD; public boolean isExtendedBolusEnabled; public boolean isEasyModeEnabled; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgInitConnStatusBasic.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgInitConnStatusBasic.java index 39f45d7843..e21db06d4c 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgInitConnStatusBasic.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/comm/MsgInitConnStatusBasic.java @@ -26,13 +26,13 @@ public class MsgInitConnStatusBasic extends MessageBase { return; } DanaRKoreanPump pump = DanaRKoreanPlugin.getDanaRPump(); - int isStatusSuspendOn = intFromBuff(bytes, 0, 1); + pump.pumpSuspended = intFromBuff(bytes, 0, 1) == 1; int isUtilityEnable = intFromBuff(bytes, 1, 1); pump.isEasyModeEnabled = intFromBuff(bytes, 2, 1) == 1; int easyUIMode = intFromBuff(bytes, 3, 1); pump.password = intFromBuff(bytes, 4, 2) ^ 0x3463; if (Config.logDanaMessageDetail) { - log.debug("isStatusSuspendOn: " + isStatusSuspendOn); + log.debug("isStatusSuspendOn: " + pump.pumpSuspended); log.debug("isUtilityEnable: " + isUtilityEnable); log.debug("Is EasyUI Enabled: " + pump.isEasyModeEnabled); log.debug("easyUIMode: " + easyUIMode); From b6016dc08489e28997266bd0b4d6ad95b63a3d6b Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Fri, 24 Mar 2017 12:31:28 +0100 Subject: [PATCH 079/140] objective 0 zero days duration --- .../androidaps/plugins/Objectives/ObjectivesPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesPlugin.java index 5d33fdae5e..86cea210b4 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Objectives/ObjectivesPlugin.java @@ -153,7 +153,7 @@ public class ObjectivesPlugin implements PluginBase, ConstraintsInterface { MainApp.sResources.getString(R.string.objectives_0_objective), MainApp.sResources.getString(R.string.objectives_0_gate), new Date(0), - 1, // 1 day + 0, // 0 day new Date(0))); objectives.add(new Objective(1, MainApp.sResources.getString(R.string.objectives_1_objective), From dc45d01120af743e780aca58c916d8fdf1c278f6 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Fri, 24 Mar 2017 23:03:55 +0100 Subject: [PATCH 080/140] changle loading initial status --- .../java/info/nightscout/androidaps/MainApp.java | 15 +++++++++++++++ .../androidaps/plugins/DanaR/DanaRPlugin.java | 12 ------------ .../plugins/DanaRKorean/DanaRKoreanPlugin.java | 12 ------------ 3 files changed, 15 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/MainApp.java b/app/src/main/java/info/nightscout/androidaps/MainApp.java index 67057f1e9d..6568e03a53 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainApp.java +++ b/app/src/main/java/info/nightscout/androidaps/MainApp.java @@ -19,6 +19,7 @@ import java.util.ArrayList; import info.nightscout.androidaps.db.DatabaseHelper; import info.nightscout.androidaps.interfaces.PluginBase; +import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.Actions.ActionsFragment; import info.nightscout.androidaps.plugins.Careportal.CareportalFragment; import info.nightscout.androidaps.plugins.CircadianPercentageProfile.CircadianPercentageProfileFragment; @@ -119,6 +120,20 @@ public class MainApp extends Application { MainApp.getConfigBuilder().uploadAppStart(); startKeepAliveService(); + + Thread t = new Thread(new Runnable() { + @Override + public void run() { + try { + Thread.sleep(5000); + } catch (InterruptedException e) { + } + PumpInterface pump = MainApp.getConfigBuilder(); + if (pump != null) + pump.refreshDataFromPump("Initialization"); + } + }); + t.start(); } private void startKeepAliveService() { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java index cb4e1b5bce..4a2d9d3a56 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaR/DanaRPlugin.java @@ -106,18 +106,6 @@ public class DanaRPlugin implements PluginBase, PumpInterface, ConstraintsInterf pumpDescription.basalMinimumRate = 0.04d; pumpDescription.isRefillingCapable = true; - - Thread t = new Thread(new Runnable() { - @Override - public void run() { - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - } - refreshDataFromPump("Initialization"); - } - }); - t.start(); } ServiceConnection mConnection = new ServiceConnection() { diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java index ae541abbb6..11debc415a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/DanaRKorean/DanaRKoreanPlugin.java @@ -108,18 +108,6 @@ public class DanaRKoreanPlugin implements PluginBase, PumpInterface, Constraints pumpDescription.basalMinimumRate = 0.1d; pumpDescription.isRefillingCapable = true; - - Thread t = new Thread(new Runnable() { - @Override - public void run() { - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - } - refreshDataFromPump("Initialization"); - } - }); - t.start(); } ServiceConnection mConnection = new ServiceConnection() { From fe6ff686b1643370b4cb130ff0e0741ee338b76d Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Mon, 27 Mar 2017 18:37:43 +0200 Subject: [PATCH 081/140] fix pump suspended message --- .../nightscout/androidaps/plugins/Loop/LoopPlugin.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java index b77d5f7834..392f98a5e9 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java @@ -137,15 +137,10 @@ public class LoopPlugin implements PluginBase { MainApp.bus().post(new EventLoopSetLastRunGui(MainApp.sResources.getString(R.string.loopdisabled))); return; } - if (!constraintsInterface.isLoopEnabled()) { - log.debug(MainApp.sResources.getString(R.string.loopdisabled)); - MainApp.bus().post(new EventLoopSetLastRunGui(MainApp.sResources.getString(R.string.loopdisabled))); - return; - } final ConfigBuilderPlugin configBuilder = MainApp.getConfigBuilder(); APSResult result = null; - if (!configBuilder.isSuspended()) { + if (configBuilder.isSuspended()) { log.debug(MainApp.sResources.getString(R.string.pumpsuspended)); MainApp.bus().post(new EventLoopSetLastRunGui(MainApp.sResources.getString(R.string.pumpsuspended))); return; From 0cb4ace05226af3c524e7a9ed4c3eafd60df6647 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Tue, 28 Mar 2017 22:49:56 +0200 Subject: [PATCH 082/140] glimp broadcast to manifest --- app/src/main/AndroidManifest.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2694197809..7216557a89 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -74,6 +74,8 @@ + + From d6f31820d9b16d75bfa679b19ca760f26410b7e9 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Fri, 31 Mar 2017 09:21:40 +0200 Subject: [PATCH 083/140] request battery optimalization whitelisting --- app/src/main/AndroidManifest.xml | 1 + .../nightscout/androidaps/MainActivity.java | 38 ++++++++++++++++ .../java/info/nightscout/utils/OKDialog.java | 44 +++++++++++++++++++ app/src/main/res/values/strings.xml | 3 ++ 4 files changed, 86 insertions(+) create mode 100644 app/src/main/java/info/nightscout/utils/OKDialog.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7216557a89..e01ed53f34 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,6 +17,7 @@ + diff --git a/app/src/main/java/info/nightscout/androidaps/MainActivity.java b/app/src/main/java/info/nightscout/androidaps/MainActivity.java index 715756259a..ccca5bcb22 100644 --- a/app/src/main/java/info/nightscout/androidaps/MainActivity.java +++ b/app/src/main/java/info/nightscout/androidaps/MainActivity.java @@ -1,13 +1,17 @@ package info.nightscout.androidaps; import android.Manifest; +import android.content.ActivityNotFoundException; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.graphics.Rect; +import android.net.Uri; import android.os.Build; import android.os.Bundle; +import android.os.PowerManager; +import android.provider.Settings; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v4.view.ViewPager; @@ -37,8 +41,10 @@ import info.nightscout.androidaps.tabs.TabPageAdapter; import info.nightscout.utils.ImportExportPrefs; import info.nightscout.utils.LocaleHelper; import info.nightscout.utils.LogDialog; +import info.nightscout.utils.OKDialog; import info.nightscout.utils.PasswordProtection; import info.nightscout.utils.SP; +import info.nightscout.utils.ToastUtils; public class MainActivity extends AppCompatActivity { private static Logger log = LoggerFactory.getLogger(MainActivity.class); @@ -59,6 +65,7 @@ public class MainActivity extends AppCompatActivity { askForPermission(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE}, CASE_STORAGE); } + askForBatteryOptimizationPermission(); if (Config.logFunctionCalls) log.debug("onCreate"); @@ -228,6 +235,37 @@ public class MainActivity extends AppCompatActivity { askForSMSPermissions(); } + private void askForBatteryOptimizationPermission() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + final String packageName = getPackageName(); + + final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); + if (!pm.isIgnoringBatteryOptimizations(packageName)) { + log.debug("Requesting ignore battery optimization"); + + OKDialog.show(this, getString(R.string.pleaseallowpermission), String.format(getString(R.string.needwhitelisting), getString(R.string.app_name)), new Runnable() { + + @Override + public void run() { + try { + final Intent intent = new Intent(); + + // ignoring battery optimizations required for constant connection + intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); + intent.setData(Uri.parse("package:" + packageName)); + startActivity(intent); + + } catch (ActivityNotFoundException e) { + final String msg = getString(R.string.batteryoptimalizationerror); + ToastUtils.showToastInUiThread(getApplicationContext(), msg); + log.error(msg); + } + } + }); + } + } + } + private synchronized void askForSMSPermissions() { if (askForSMS) { //only when settings were changed an MainActivity resumes. askForSMS = false; diff --git a/app/src/main/java/info/nightscout/utils/OKDialog.java b/app/src/main/java/info/nightscout/utils/OKDialog.java new file mode 100644 index 0000000000..19fbe7c62a --- /dev/null +++ b/app/src/main/java/info/nightscout/utils/OKDialog.java @@ -0,0 +1,44 @@ +package info.nightscout.utils; + +import android.app.Activity; +import android.content.DialogInterface; +import android.support.v7.app.AlertDialog; +import android.support.v7.view.ContextThemeWrapper; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.R; + +/** + * Created by mike on 31.03.2017. + */ + +public class OKDialog { + private static Logger log = LoggerFactory.getLogger(OKDialog.class); + + public static void show(final Activity activity, String title, String message, final Runnable runnable) { + try { + AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(activity, R.style.AppTheme)); + builder.setTitle(title); + builder.setMessage(message); + builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + if (runnable != null) { + try { + Thread.sleep(100); + } catch (InterruptedException e) { + } + activity.runOnUiThread(runnable); + } + } + }); + + builder.create().show(); + } catch (Exception e) { + log.debug("show_dialog exception: " + e); + } + } +} diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5c28094f14..955c02017f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -554,4 +554,7 @@ Please select patient age to setup safety limits I_understand Glimp + Device does not appear to support battery optimization whitelisting! + Please Allow Permission + %s needs battery optimalization whitelisting for proper performance From 5f0de38dfe4c7eb9cb77d599aef40ab7bc2d639b Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sat, 1 Apr 2017 12:47:18 +0200 Subject: [PATCH 084/140] 1.3rc2 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 905f2844c3..b81a8e12d2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,7 +44,7 @@ android { minSdkVersion 21 targetSdkVersion 23 versionCode 1100 - version "1.3rc1" + version "1.3rc2" buildConfigField "String", "VERSION", '"' + version + '"' buildConfigField "String", "BUILDVERSION", generateGitBuild() } From e5012d8633fe2a505678a4343d4fd56a13dcb97c Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Tue, 4 Apr 2017 10:03:15 +0200 Subject: [PATCH 085/140] Answers for SMS commands --- .../SmsCommunicator/SmsCommunicatorPlugin.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java index 4258907547..af085d9c4a 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java @@ -7,6 +7,8 @@ import android.preference.PreferenceManager; import android.telephony.SmsManager; import android.telephony.SmsMessage; +import com.crashlytics.android.answers.Answers; +import com.crashlytics.android.answers.CustomEvent; import com.squareup.otto.Subscribe; import org.slf4j.Logger; @@ -244,6 +246,7 @@ public class SmsCommunicatorPlugin implements PluginBase { sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); receivedSms.processed = true; + Answers.getInstance().logCustom(new CustomEvent("SMS_Bg")); break; case "LOOP": switch (splited[1].toUpperCase()) { @@ -255,6 +258,7 @@ public class SmsCommunicatorPlugin implements PluginBase { sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); } receivedSms.processed = true; + Answers.getInstance().logCustom(new CustomEvent("SMS_Loop_Stop")); break; case "START": loopPlugin = (LoopPlugin) MainApp.getSpecificPlugin(LoopPlugin.class); @@ -264,6 +268,7 @@ public class SmsCommunicatorPlugin implements PluginBase { sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); } receivedSms.processed = true; + Answers.getInstance().logCustom(new CustomEvent("SMS_Loop_Start")); break; case "STATUS": loopPlugin = (LoopPlugin) MainApp.getSpecificPlugin(LoopPlugin.class); @@ -276,6 +281,7 @@ public class SmsCommunicatorPlugin implements PluginBase { sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); } receivedSms.processed = true; + Answers.getInstance().logCustom(new CustomEvent("SMS_Loop_Status")); break; } break; @@ -289,6 +295,7 @@ public class SmsCommunicatorPlugin implements PluginBase { reply = "TERATMENTS REFRESH " + q.size() + " receivers"; sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); receivedSms.processed = true; + Answers.getInstance().logCustom(new CustomEvent("SMS_Treatments_Refresh")); break; } break; @@ -301,6 +308,7 @@ public class SmsCommunicatorPlugin implements PluginBase { reply = "NSCLIENT RESTART " + q.size() + " receivers"; sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); receivedSms.processed = true; + Answers.getInstance().logCustom(new CustomEvent("SMS_Nsclient_Restart")); break; } break; @@ -316,6 +324,7 @@ public class SmsCommunicatorPlugin implements PluginBase { sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); } receivedSms.processed = true; + Answers.getInstance().logCustom(new CustomEvent("SMS_Danar")); break; case "BASAL": if (splited.length > 1) { @@ -327,6 +336,7 @@ public class SmsCommunicatorPlugin implements PluginBase { receivedSms.processed = true; resetWaitingMessages(); sendSMS(cancelTempBasalWaitingForConfirmation = new Sms(receivedSms.phoneNumber, reply, new Date(), passCode)); + Answers.getInstance().logCustom(new CustomEvent("SMS_Basal")); } else { reply = MainApp.sResources.getString(R.string.smscommunicator_remotebasalnotallowed); sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); @@ -341,6 +351,7 @@ public class SmsCommunicatorPlugin implements PluginBase { resetWaitingMessages(); sendSMS(tempBasalWaitingForConfirmation = new Sms(receivedSms.phoneNumber, reply, new Date(), passCode)); tempBasalWaitingForConfirmation.tempBasal = tempBasal; + Answers.getInstance().logCustom(new CustomEvent("SMS_Basal")); } else { reply = MainApp.sResources.getString(R.string.smscommunicator_remotebasalnotallowed); sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); @@ -363,6 +374,7 @@ public class SmsCommunicatorPlugin implements PluginBase { resetWaitingMessages(); sendSMS(bolusWaitingForConfirmation = new Sms(receivedSms.phoneNumber, reply, new Date(), passCode)); bolusWaitingForConfirmation.bolusRequested = amount; + Answers.getInstance().logCustom(new CustomEvent("SMS_Bolus")); } else { reply = MainApp.sResources.getString(R.string.smscommunicator_remotebolusnotallowed); sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); @@ -380,6 +392,7 @@ public class SmsCommunicatorPlugin implements PluginBase { resetWaitingMessages(); sendSMS(calibrationWaitingForConfirmation = new Sms(receivedSms.phoneNumber, reply, new Date(), passCode)); calibrationWaitingForConfirmation.calibrationRequested = amount; + Answers.getInstance().logCustom(new CustomEvent("SMS_Cal")); } else { reply = MainApp.sResources.getString(R.string.smscommunicator_remotecalibrationnotallowed); sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); From 42883a81a0deb2ee8130d780acfbf6eaa7e0ceee Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Tue, 4 Apr 2017 10:29:46 +0200 Subject: [PATCH 086/140] allow return GlucoseStatus with only 1 actual value --- .../nightscout/androidaps/data/GlucoseStatus.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/data/GlucoseStatus.java b/app/src/main/java/info/nightscout/androidaps/data/GlucoseStatus.java index 9fc8bd0ff4..ad9b0acecf 100644 --- a/app/src/main/java/info/nightscout/androidaps/data/GlucoseStatus.java +++ b/app/src/main/java/info/nightscout/androidaps/data/GlucoseStatus.java @@ -73,7 +73,7 @@ public class GlucoseStatus { List data = MainApp.getDbHelper().getBgreadingsDataFromTime(fromtime, false); int sizeRecords = data.size(); - if (sizeRecords < 4 || data.get(0).timeIndex < new Date().getTime() - 7 * 60 * 1000L) { + if (sizeRecords < 1 || data.get(0).timeIndex < new Date().getTime() - 7 * 60 * 1000L) { return null; } @@ -81,6 +81,16 @@ public class GlucoseStatus { long now_date = now.timeIndex; double change; + if (sizeRecords < 2) { + GlucoseStatus status = new GlucoseStatus(); + status.glucose = now.value; + status.short_avgdelta = 0d; + status.delta = 0d; + status.long_avgdelta = 0d; + status.avgdelta = 0d; // for OpenAPS MA + return status.round(); + } + ArrayList last_deltas = new ArrayList(); ArrayList short_deltas = new ArrayList(); ArrayList long_deltas = new ArrayList(); @@ -121,7 +131,7 @@ public class GlucoseStatus { status.short_avgdelta = average(short_deltas); - if(prefs.getBoolean("always_use_shortavg",false) || last_deltas.isEmpty()){ + if (prefs.getBoolean("always_use_shortavg", false) || last_deltas.isEmpty()) { status.delta = status.short_avgdelta; } else { status.delta = average(last_deltas); From f5960502396b8e59cb907f97aab00dfa039c9a43 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Wed, 5 Apr 2017 21:39:39 +0200 Subject: [PATCH 087/140] loop suspend menu --- .../androidaps/plugins/Loop/LoopPlugin.java | 54 ++++++- .../plugins/Overview/OverviewFragment.java | 144 +++++++++++++++++- .../main/java/info/nightscout/utils/SP.java | 10 +- app/src/main/res/values/strings.xml | 14 ++ 4 files changed, 211 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java index 392f98a5e9..ec3fdc32a0 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java @@ -32,6 +32,7 @@ import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.Loop.events.EventLoopSetLastRunGui; import info.nightscout.androidaps.plugins.Loop.events.EventLoopUpdateGui; import info.nightscout.androidaps.plugins.Loop.events.EventNewOpenLoopNotification; +import info.nightscout.utils.SP; /** * Created by mike on 05.08.2016. @@ -45,6 +46,8 @@ public class LoopPlugin implements PluginBase { private boolean fragmentEnabled = false; private boolean fragmentVisible = true; + private long loopSuspendedTill = 0L; // end of manual loop suspend + public class LastRun { public APSResult request = null; public APSResult constraintsProcessed = null; @@ -64,6 +67,7 @@ public class LoopPlugin implements PluginBase { sHandler = new Handler(sHandlerThread.getLooper()); } MainApp.bus().register(this); + loopSuspendedTill = SP.getLong("loopSuspendedTill", 0L); } @Override @@ -127,6 +131,44 @@ public class LoopPlugin implements PluginBase { invoke("EventNewBG", true); } + public long suspendedTo() { + return loopSuspendedTill; + } + + public void suspendTo(long endTime) { + loopSuspendedTill = endTime; + SP.putLong("loopSuspendedTill", loopSuspendedTill); + } + + public int minutesToEndOfSuspend() { + if (loopSuspendedTill == 0) + return 0; + + long now = new Date().getTime(); + long msecDiff = loopSuspendedTill - now; + + if (loopSuspendedTill <= now) { // time exceeded + suspendTo(0L); + return 0; + } + + return (int) (msecDiff / 60d / 1000d); + } + + public boolean isSuspended() { + if (loopSuspendedTill == 0) + return false; + + long now = new Date().getTime(); + + if (loopSuspendedTill <= now) { // time exceeded + suspendTo(0L); + return false; + } + + return true; + } + public void invoke(String initiator, boolean allowNotification) { try { if (Config.logFunctionCalls) @@ -140,15 +182,21 @@ public class LoopPlugin implements PluginBase { final ConfigBuilderPlugin configBuilder = MainApp.getConfigBuilder(); APSResult result = null; + if (configBuilder == null || !isEnabled(PluginBase.LOOP)) + return; + + if (isSuspended()) { + log.debug(MainApp.sResources.getString(R.string.loopsuspended)); + MainApp.bus().post(new EventLoopSetLastRunGui(MainApp.sResources.getString(R.string.loopsuspended))); + return; + } + if (configBuilder.isSuspended()) { log.debug(MainApp.sResources.getString(R.string.pumpsuspended)); MainApp.bus().post(new EventLoopSetLastRunGui(MainApp.sResources.getString(R.string.pumpsuspended))); return; } - if (configBuilder == null || !isEnabled(PluginBase.LOOP)) - return; - // Check if pump info is loaded if (configBuilder.getBaseBasalRate() < 0.01d) return; diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index a10fbca206..f449dc18d1 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -18,8 +18,10 @@ import android.support.v7.app.AlertDialog; import android.support.v7.widget.CardView; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import android.view.ContextMenu; import android.view.HapticFeedbackConstants; import android.view.LayoutInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.Button; @@ -95,6 +97,7 @@ import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; import info.nightscout.utils.Round; import info.nightscout.utils.SP; +import info.nightscout.utils.ToastUtils; public class OverviewFragment extends Fragment { @@ -310,6 +313,133 @@ public class OverviewFragment extends Fragment { return view; } + @Override + public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { + super.onCreateContextMenu(menu, v, menuInfo); + final LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop(); + if (activeloop == null) + return; + menu.setHeaderTitle(MainApp.sResources.getString(R.string.loop)); + if (activeloop.isEnabled(PluginBase.LOOP)) { + menu.add(MainApp.sResources.getString(R.string.disabledloop)); + if (!activeloop.isSuspended()) { + menu.add(MainApp.sResources.getString(R.string.suspendloopfor1h)); + menu.add(MainApp.sResources.getString(R.string.suspendloopfor2h)); + menu.add(MainApp.sResources.getString(R.string.suspendloopfor3h)); + menu.add(MainApp.sResources.getString(R.string.suspendloopfor10h)); + menu.add(MainApp.sResources.getString(R.string.disconnectpumpfor30m)); + menu.add(MainApp.sResources.getString(R.string.disconnectpumpfor1h)); + menu.add(MainApp.sResources.getString(R.string.disconnectpumpfor2h)); + menu.add(MainApp.sResources.getString(R.string.disconnectpumpfor3h)); + } else { + menu.add(MainApp.sResources.getString(R.string.resume)); + } + } + if (!activeloop.isEnabled(PluginBase.LOOP)) + menu.add(MainApp.sResources.getString(R.string.enabledloop)); + } + + @Override + public boolean onContextItemSelected(MenuItem item) { + final LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop(); + if (item.getTitle() == MainApp.sResources.getString(R.string.disabledloop)) { + activeloop.setFragmentEnabled(PluginBase.LOOP, false); + activeloop.setFragmentVisible(PluginBase.LOOP, false); + MainApp.getConfigBuilder().storeSettings(); + MainApp.bus().post(new EventRefreshGui(false)); + return true; + } else if (item.getTitle() == MainApp.sResources.getString(R.string.enabledloop)) { + activeloop.setFragmentEnabled(PluginBase.LOOP, true); + activeloop.setFragmentVisible(PluginBase.LOOP, true); + MainApp.getConfigBuilder().storeSettings(); + MainApp.bus().post(new EventRefreshGui(false)); + return true; + } else if (item.getTitle() == MainApp.sResources.getString(R.string.resume)) { + activeloop.suspendTo(0L); + sHandler.post(new Runnable() { + @Override + public void run() { + PumpEnactResult result = MainApp.getConfigBuilder().cancelTempBasal(); + if (!result.success) { + ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.tempbasaldeliveryerror)); + } + MainApp.bus().post(new EventRefreshGui(false)); + } + }); + return true; + } else if (item.getTitle() == MainApp.sResources.getString(R.string.suspendloopfor1h)) { + activeloop.suspendTo(new Date().getTime() + 60L * 60 * 1000); + MainApp.bus().post(new EventRefreshGui(false)); + return true; + } else if (item.getTitle() == MainApp.sResources.getString(R.string.suspendloopfor2h)) { + activeloop.suspendTo(new Date().getTime() + 2 * 60L * 60 * 1000); + MainApp.bus().post(new EventRefreshGui(false)); + return true; + } else if (item.getTitle() == MainApp.sResources.getString(R.string.suspendloopfor3h)) { + activeloop.suspendTo(new Date().getTime() + 3 * 60L * 60 * 1000); + MainApp.bus().post(new EventRefreshGui(false)); + return true; + } else if (item.getTitle() == MainApp.sResources.getString(R.string.suspendloopfor10h)) { + activeloop.suspendTo(new Date().getTime() + 10 * 60L * 60 * 1000); + MainApp.bus().post(new EventRefreshGui(false)); + return true; + } else if (item.getTitle() == MainApp.sResources.getString(R.string.disconnectpumpfor30m)) { + activeloop.suspendTo(new Date().getTime() + 30L * 60 * 1000); + sHandler.post(new Runnable() { + @Override + public void run() { + PumpEnactResult result = MainApp.getConfigBuilder().setTempBasalAbsolute(0d, 30); + if (!result.success) { + ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.tempbasaldeliveryerror)); + } + MainApp.bus().post(new EventRefreshGui(false)); + } + }); + return true; + } else if (item.getTitle() == MainApp.sResources.getString(R.string.disconnectpumpfor1h)) { + activeloop.suspendTo(new Date().getTime() + 1 * 60L * 60 * 1000); + sHandler.post(new Runnable() { + @Override + public void run() { + PumpEnactResult result = MainApp.getConfigBuilder().setTempBasalAbsolute(0d, 60); + if (!result.success) { + ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.tempbasaldeliveryerror)); + } + MainApp.bus().post(new EventRefreshGui(false)); + } + }); + return true; + } else if (item.getTitle() == MainApp.sResources.getString(R.string.disconnectpumpfor2h)) { + activeloop.suspendTo(new Date().getTime() + 2 * 60L * 60 * 1000); + sHandler.post(new Runnable() { + @Override + public void run() { + PumpEnactResult result = MainApp.getConfigBuilder().setTempBasalAbsolute(0d, 2 * 60); + if (!result.success) { + ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.tempbasaldeliveryerror)); + } + MainApp.bus().post(new EventRefreshGui(false)); + } + }); + return true; + } else if (item.getTitle() == MainApp.sResources.getString(R.string.disconnectpumpfor3h)) { + activeloop.suspendTo(new Date().getTime() + 3 * 60L * 60 * 1000); + sHandler.post(new Runnable() { + @Override + public void run() { + PumpEnactResult result = MainApp.getConfigBuilder().setTempBasalAbsolute(0d, 3 * 60); + if (!result.success) { + ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.tempbasaldeliveryerror)); + } + MainApp.bus().post(new EventRefreshGui(false)); + } + }); + return true; + } + + return super.onContextItemSelected(item); + } + void processQuickWizard() { final BgReading actualBg = GlucoseStatus.actualBg(); if (MainApp.getConfigBuilder() == null || ConfigBuilderPlugin.getActiveProfile() == null) // app not initialized yet @@ -410,6 +540,7 @@ public class OverviewFragment extends Fragment { super.onPause(); MainApp.bus().unregister(this); sLoopHandler.removeCallbacksAndMessages(null); + unregisterForContextMenu(apsModeView); } @Override @@ -424,6 +555,7 @@ public class OverviewFragment extends Fragment { } }; sLoopHandler.postDelayed(sRefreshLoop, 60 * 1000L); + registerForContextMenu(apsModeView); updateGUIIfVisible(); } @@ -562,7 +694,11 @@ public class OverviewFragment extends Fragment { apsModeView.setBackgroundResource(R.drawable.loopmodeborder); apsModeView.setTextColor(Color.BLACK); final LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop(); - if (pump.isSuspended()) { + if (activeloop != null && activeloop.isEnabled(activeloop.getType()) && activeloop.isSuspended()) { + apsModeView.setBackgroundResource(R.drawable.loopmodesuspendedborder); + apsModeView.setText(String.format(MainApp.sResources.getString(R.string.loopsuspendedfor), activeloop.minutesToEndOfSuspend())); + apsModeView.setTextColor(Color.WHITE); + } else if (pump.isSuspended()) { apsModeView.setBackgroundResource(R.drawable.loopmodesuspendedborder); apsModeView.setText(MainApp.sResources.getString(R.string.pumpsuspended)); apsModeView.setTextColor(Color.WHITE); @@ -576,10 +712,8 @@ public class OverviewFragment extends Fragment { apsModeView.setBackgroundResource(R.drawable.loopmodedisabledborder); apsModeView.setText(MainApp.sResources.getString(R.string.disabledloop)); apsModeView.setTextColor(Color.WHITE); - } - - +/* apsModeView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { @@ -600,7 +734,7 @@ public class OverviewFragment extends Fragment { } }); apsModeView.setLongClickable(true); - +*/ } else { apsModeView.setVisibility(View.GONE); } diff --git a/app/src/main/java/info/nightscout/utils/SP.java b/app/src/main/java/info/nightscout/utils/SP.java index cce1df9474..9bed316195 100644 --- a/app/src/main/java/info/nightscout/utils/SP.java +++ b/app/src/main/java/info/nightscout/utils/SP.java @@ -61,7 +61,11 @@ public class SP { } static public long getLong(String key, Long defaultValue) { - return SafeParse.stringToLong(sharedPreferences.getString(key, defaultValue.toString())); + try { + return sharedPreferences.getLong(key, defaultValue); + } catch (Exception e) { + return SafeParse.stringToLong(sharedPreferences.getString(key, defaultValue.toString())); + } } static public void putBoolean(String key, boolean value) { @@ -82,9 +86,9 @@ public class SP { editor.apply(); } - static public void putString(String key, String value) { + static public void putLong(String key, long value) { SharedPreferences.Editor editor = sharedPreferences.edit(); - editor.putString(key, value); + editor.putLong(key, value); editor.apply(); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 955c02017f..8c79783784 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -139,6 +139,7 @@ Closed Loop Open Loop Loop Disabled + Loop Enabled New suggestion available Unsupported version of NSClient @@ -557,4 +558,17 @@ Device does not appear to support battery optimization whitelisting! Please Allow Permission %s needs battery optimalization whitelisting for proper performance + Loop suspended + Suspended (%d m) + Loop menu + Suspend loop for 1h + Suspend loop for 2h + Suspend loop for 3h + Suspend loop for 10h + Disconnect pump for 30 min + Disconnect pump for 1 h + Disconnect pump for 2 h + Disconnect pump for 3 h + Disconnect pump for 10 h + Resume From a02da220c95eaca968bcbdbf84b98d478870299b Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Wed, 5 Apr 2017 22:04:55 +0200 Subject: [PATCH 088/140] CS translations --- .../plugins/Overview/OverviewFragment.java | 8 ++++---- app/src/main/res/values-cs/strings.xml | 19 +++++++++++++++++++ app/src/main/res/values/strings.xml | 5 +++-- 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index f449dc18d1..18ef2d633e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -321,7 +321,7 @@ public class OverviewFragment extends Fragment { return; menu.setHeaderTitle(MainApp.sResources.getString(R.string.loop)); if (activeloop.isEnabled(PluginBase.LOOP)) { - menu.add(MainApp.sResources.getString(R.string.disabledloop)); + menu.add(MainApp.sResources.getString(R.string.disableloop)); if (!activeloop.isSuspended()) { menu.add(MainApp.sResources.getString(R.string.suspendloopfor1h)); menu.add(MainApp.sResources.getString(R.string.suspendloopfor2h)); @@ -336,19 +336,19 @@ public class OverviewFragment extends Fragment { } } if (!activeloop.isEnabled(PluginBase.LOOP)) - menu.add(MainApp.sResources.getString(R.string.enabledloop)); + menu.add(MainApp.sResources.getString(R.string.enableloop)); } @Override public boolean onContextItemSelected(MenuItem item) { final LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop(); - if (item.getTitle() == MainApp.sResources.getString(R.string.disabledloop)) { + if (item.getTitle() == MainApp.sResources.getString(R.string.disableloop)) { activeloop.setFragmentEnabled(PluginBase.LOOP, false); activeloop.setFragmentVisible(PluginBase.LOOP, false); MainApp.getConfigBuilder().storeSettings(); MainApp.bus().post(new EventRefreshGui(false)); return true; - } else if (item.getTitle() == MainApp.sResources.getString(R.string.enabledloop)) { + } else if (item.getTitle() == MainApp.sResources.getString(R.string.enableloop)) { activeloop.setFragmentEnabled(PluginBase.LOOP, true); activeloop.setFragmentVisible(PluginBase.LOOP, true); MainApp.getConfigBuilder().storeSettings(); diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 3f71f70213..84c35f78e7 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -507,4 +507,23 @@ Rozepsat IOB do bolusového a bazálního na hodinkách Zobrazit detailní IOB Nastavení hodinek + Glimp + Zařízení patrně nepodporuje vyloučení z optimalizace baterie. + Odpojit pumpu na 10 h + Odpojit pumpu na 1 h + Odpojit pumpu na 2 h + Odpojit pumpu na 30 min + Odpojit pumpu na 3 h + Povolit smyčku + Menu smyčky + Smyčka pozastavena + Pozastaveno (%d min) + %s potřebuje vypnout optimalizace baterie pro optimalní výkon + Prosím povolte oprávnění + Obnovit + Pozastavit smyčku na 10 h + Pozastavit smyčku na 1 h + Pozastavit smyčku na 2 h + Pozastavit smyčku na 3 h + Zakázat smyčku diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8c79783784..2ac856be38 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -139,7 +139,8 @@ Closed Loop Open Loop Loop Disabled - Loop Enabled + Disable loop + Enable loop New suggestion available Unsupported version of NSClient @@ -564,7 +565,7 @@ Suspend loop for 1h Suspend loop for 2h Suspend loop for 3h - Suspend loop for 10h + Suspend loop for 10 h Disconnect pump for 30 min Disconnect pump for 1 h Disconnect pump for 2 h From c5245ae5fd17821c59944d907d5f7b13ce0c7658 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Thu, 6 Apr 2017 21:22:27 +0200 Subject: [PATCH 089/140] SMS suspend/resume loop --- .../plugins/Overview/OverviewFragment.java | 22 ------ .../SmsCommunicatorPlugin.java | 73 ++++++++++++++++--- app/src/main/res/values-cs/strings.xml | 5 ++ app/src/main/res/values/strings.xml | 5 ++ 4 files changed, 72 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index 18ef2d633e..5efdee1d34 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -713,28 +713,6 @@ public class OverviewFragment extends Fragment { apsModeView.setText(MainApp.sResources.getString(R.string.disabledloop)); apsModeView.setTextColor(Color.WHITE); } -/* - apsModeView.setOnLongClickListener(new View.OnLongClickListener() { - @Override - public boolean onLongClick(View view) { - view.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); - if (activeloop == null) { - log.error("no active loop?"); - return true; - } else if (activeloop.isEnabled(PluginBase.LOOP)) { - activeloop.setFragmentEnabled(PluginBase.LOOP, false); - activeloop.setFragmentVisible(PluginBase.LOOP, false); - } else { - activeloop.setFragmentEnabled(PluginBase.LOOP, true); - activeloop.setFragmentVisible(PluginBase.LOOP, true); - } - MainApp.getConfigBuilder().storeSettings(); - MainApp.bus().post(new EventRefreshGui(false)); - return true; - } - }); - apsModeView.setLongClickable(true); -*/ } else { apsModeView.setVisibility(View.GONE); } diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java index af085d9c4a..fcaf379af2 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/SmsCommunicator/SmsCommunicatorPlugin.java @@ -28,6 +28,7 @@ import info.nightscout.androidaps.data.IobTotal; import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.db.BgReading; import info.nightscout.androidaps.events.EventPreferenceChange; +import info.nightscout.androidaps.events.EventRefreshGui; import info.nightscout.androidaps.interfaces.PluginBase; import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.plugins.DanaR.DanaRPlugin; @@ -68,6 +69,7 @@ public class SmsCommunicatorPlugin implements PluginBase { double bolusRequested = 0d; double tempBasal = 0d; double calibrationRequested = 0d; + int duration = 0; public Sms(SmsMessage message) { phoneNumber = message.getOriginatingAddress(); @@ -100,6 +102,7 @@ public class SmsCommunicatorPlugin implements PluginBase { Sms tempBasalWaitingForConfirmation = null; Sms bolusWaitingForConfirmation = null; Sms calibrationWaitingForConfirmation = null; + Sms suspendWaitingForConfirmation = null; Date lastRemoteBolusTime = new Date(0); ArrayList messages = new ArrayList<>(); @@ -212,7 +215,9 @@ public class SmsCommunicatorPlugin implements PluginBase { String[] splited = receivedSms.text.split("\\s+"); Double amount = 0d; Double tempBasal = 0d; + int duration = 0; String passCode = ""; + boolean remoteCommandsAllowed = SP.getBoolean(R.string.key_smscommunicator_remotecommandsallowed, false); if (splited.length > 0) { switch (splited[0].toUpperCase()) { @@ -250,6 +255,7 @@ public class SmsCommunicatorPlugin implements PluginBase { break; case "LOOP": switch (splited[1].toUpperCase()) { + case "DISABLE": case "STOP": LoopPlugin loopPlugin = (LoopPlugin) MainApp.getSpecificPlugin(LoopPlugin.class); if (loopPlugin != null && loopPlugin.isEnabled(PluginBase.LOOP)) { @@ -260,6 +266,7 @@ public class SmsCommunicatorPlugin implements PluginBase { receivedSms.processed = true; Answers.getInstance().logCustom(new CustomEvent("SMS_Loop_Stop")); break; + case "ENABLE": case "START": loopPlugin = (LoopPlugin) MainApp.getSpecificPlugin(LoopPlugin.class); if (loopPlugin != null && !loopPlugin.isEnabled(PluginBase.LOOP)) { @@ -274,7 +281,10 @@ public class SmsCommunicatorPlugin implements PluginBase { loopPlugin = (LoopPlugin) MainApp.getSpecificPlugin(LoopPlugin.class); if (loopPlugin != null) { if (loopPlugin.isEnabled(PluginBase.LOOP)) { - reply = MainApp.sResources.getString(R.string.smscommunicator_loopisenabled); + if (loopPlugin.isSuspended()) + reply = String.format(MainApp.sResources.getString(R.string.loopsuspendedfor), loopPlugin.minutesToEndOfSuspend()); + else + reply = MainApp.sResources.getString(R.string.smscommunicator_loopisenabled); } else { reply = MainApp.sResources.getString(R.string.smscommunicator_loopisdisabled); } @@ -283,6 +293,35 @@ public class SmsCommunicatorPlugin implements PluginBase { receivedSms.processed = true; Answers.getInstance().logCustom(new CustomEvent("SMS_Loop_Status")); break; + case "RESUME": + final LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop(); + activeloop.suspendTo(0); + MainApp.bus().post(new EventRefreshGui(false)); + reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_loopresumed)); + sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, reply, new Date())); + Answers.getInstance().logCustom(new CustomEvent("SMS_Loop_Resume")); + break; + case "SUSPEND": + if (splited.length >= 3) + duration = SafeParse.stringToInt(splited[2]); + duration = Math.max(0, duration); + duration = Math.min(180, duration); + if (duration == 0) { + reply = MainApp.sResources.getString(R.string.smscommunicator_wrongduration); + sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); + } else if (remoteCommandsAllowed) { + passCode = generatePasscode(); + reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_suspendreplywithcode), duration, passCode); + receivedSms.processed = true; + resetWaitingMessages(); + sendSMS(suspendWaitingForConfirmation = new Sms(receivedSms.phoneNumber, reply, new Date(), passCode)); + suspendWaitingForConfirmation.duration = duration; + Answers.getInstance().logCustom(new CustomEvent("SMS_Loop_Suspend")); + } else { + reply = MainApp.sResources.getString(R.string.smscommunicator_remotecommandnotallowed); + sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); + } + break; } break; case "TREATMENTS": @@ -328,7 +367,6 @@ public class SmsCommunicatorPlugin implements PluginBase { break; case "BASAL": if (splited.length > 1) { - boolean remoteCommandsAllowed = SP.getBoolean(R.string.key_smscommunicator_remotecommandsallowed, false); if (splited[1].toUpperCase().equals("CANCEL") || splited[1].toUpperCase().equals("STOP")) { if (remoteCommandsAllowed) { passCode = generatePasscode(); @@ -366,7 +404,6 @@ public class SmsCommunicatorPlugin implements PluginBase { } else if (splited.length > 1) { amount = SafeParse.stringToDouble(splited[1]); amount = MainApp.getConfigBuilder().applyBolusConstraints(amount); - boolean remoteCommandsAllowed = SP.getBoolean(R.string.key_smscommunicator_remotecommandsallowed, false); if (amount > 0d && remoteCommandsAllowed) { passCode = generatePasscode(); reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_bolusreplywithcode), amount, passCode); @@ -384,7 +421,6 @@ public class SmsCommunicatorPlugin implements PluginBase { case "CAL": if (splited.length > 1) { amount = SafeParse.stringToDouble(splited[1]); - boolean remoteCommandsAllowed = SP.getBoolean(R.string.key_smscommunicator_remotecommandsallowed, false); if (amount > 0d && remoteCommandsAllowed) { passCode = generatePasscode(); reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_calibrationreplywithcode), amount, passCode); @@ -409,12 +445,14 @@ public class SmsCommunicatorPlugin implements PluginBase { PumpEnactResult result = pumpInterface.deliverTreatment(bolusWaitingForConfirmation.bolusRequested, 0, null); if (result.success) { reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_bolusdelivered), result.bolusDelivered); - if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(true); + if (danaRPlugin != null) + reply += "\n" + danaRPlugin.shortStatus(true); lastRemoteBolusTime = new Date(); sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, reply, new Date())); } else { reply = MainApp.sResources.getString(R.string.smscommunicator_bolusfailed); - if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(true); + if (danaRPlugin != null) + reply += "\n" + danaRPlugin.shortStatus(true); sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); } } @@ -427,11 +465,13 @@ public class SmsCommunicatorPlugin implements PluginBase { PumpEnactResult result = pumpInterface.setTempBasalAbsolute(tempBasalWaitingForConfirmation.tempBasal, 30); if (result.success) { reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_tempbasalset), result.absolute, result.duration); - if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(true); + if (danaRPlugin != null) + reply += "\n" + danaRPlugin.shortStatus(true); sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, reply, new Date())); } else { reply = MainApp.sResources.getString(R.string.smscommunicator_tempbasalfailed); - if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(true); + if (danaRPlugin != null) + reply += "\n" + danaRPlugin.shortStatus(true); sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); } } @@ -444,11 +484,13 @@ public class SmsCommunicatorPlugin implements PluginBase { PumpEnactResult result = pumpInterface.cancelTempBasal(); if (result.success) { reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_tempbasalcanceled)); - if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(true); + if (danaRPlugin != null) + reply += "\n" + danaRPlugin.shortStatus(true); sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, reply, new Date())); } else { reply = MainApp.sResources.getString(R.string.smscommunicator_tempbasalcancelfailed); - if (danaRPlugin != null) reply += "\n" + danaRPlugin.shortStatus(true); + if (danaRPlugin != null) + reply += "\n" + danaRPlugin.shortStatus(true); sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); } } @@ -463,6 +505,14 @@ public class SmsCommunicatorPlugin implements PluginBase { reply = MainApp.sResources.getString(R.string.smscommunicator_calibrationfailed); sendSMS(new Sms(receivedSms.phoneNumber, reply, new Date())); } + } else if (suspendWaitingForConfirmation != null && !suspendWaitingForConfirmation.processed && + suspendWaitingForConfirmation.confirmCode.equals(splited[0]) && new Date().getTime() - suspendWaitingForConfirmation.date.getTime() < CONFIRM_TIMEOUT) { + suspendWaitingForConfirmation.processed = true; + final LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop(); + activeloop.suspendTo(new Date().getTime() + suspendWaitingForConfirmation.duration * 60L * 1000); + MainApp.bus().post(new EventRefreshGui(false)); + reply = String.format(MainApp.sResources.getString(R.string.smscommunicator_loopsuspended)); + sendSMSToAllNumbers(new Sms(receivedSms.phoneNumber, reply, new Date())); } else { sendSMS(new Sms(receivedSms.phoneNumber, MainApp.sResources.getString(R.string.smscommunicator_unknowncommand), new Date())); } @@ -482,7 +532,7 @@ public class SmsCommunicatorPlugin implements PluginBase { } public void sendSMSToAllNumbers(Sms sms) { - for (String number: allowedNumbers) { + for (String number : allowedNumbers) { sms.phoneNumber = number; sendSMS(sms); } @@ -517,6 +567,7 @@ public class SmsCommunicatorPlugin implements PluginBase { cancelTempBasalWaitingForConfirmation = null; bolusWaitingForConfirmation = null; calibrationWaitingForConfirmation = null; + suspendWaitingForConfirmation = null; } public static String stripAccents(String s) { diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 84c35f78e7..ed59f4f009 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -526,4 +526,9 @@ Pozastavit smyčku na 2 h Pozastavit smyčku na 3 h Zakázat smyčku + Smyčka obnovena + Smyčka pozastavena + Vzdálení příkaz není povolen + K pozastavení smyčky na %d minut odpověz SMS s kódem %s + Chybná doba trvání diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2ac856be38..719d7dc51b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -329,7 +329,9 @@ %.2f limited to %.2f Value %s is out of hard limits Remote basal setting is not allowed + Remote command is not allowed To start basal %.2fU/h reply with code %s + To suspend loop for %d minutes reply with code %s Temp basal %.2fU/h for %d min started successfully Temp basal start failed To stop temp basal reply with code %s @@ -572,4 +574,7 @@ Disconnect pump for 3 h Disconnect pump for 10 h Resume + Wrong duration + Loop suspended + Loop resumed From 5fe22eac65d28c7d1b3be2fbf061989abbb3219f Mon Sep 17 00:00:00 2001 From: Radoslav Radev Date: Fri, 7 Apr 2017 13:53:47 +0300 Subject: [PATCH 090/140] Update strings.xml --- app/src/main/res/values-cs/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index ed59f4f009..be3f3bfae3 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -369,12 +369,12 @@ Pera Glykémie: Poslední glykémie: - před %d min + před %d min Bazál: Bolus: Rozdíl: IOB: - před %d min + před %d min Bolus %.2fU aplikován úspěšně Průběžné oznámení ZASTARALÉ @@ -517,7 +517,7 @@ Povolit smyčku Menu smyčky Smyčka pozastavena - Pozastaveno (%d min) + Pozastaveno (%d min) %s potřebuje vypnout optimalizace baterie pro optimalní výkon Prosím povolte oprávnění Obnovit @@ -529,6 +529,6 @@ Smyčka obnovena Smyčka pozastavena Vzdálení příkaz není povolen - K pozastavení smyčky na %d minut odpověz SMS s kódem %s + K pozastavení smyčky na %d minut odpověz SMS s kódem %s Chybná doba trvání From d41d5f9e6bd4ab14f28d0257258f698ce4045f8e Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sat, 8 Apr 2017 20:13:30 +0200 Subject: [PATCH 091/140] loop context menu fix --- .../plugins/Overview/OverviewFragment.java | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index 5efdee1d34..56cf041042 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -342,48 +342,48 @@ public class OverviewFragment extends Fragment { @Override public boolean onContextItemSelected(MenuItem item) { final LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop(); - if (item.getTitle() == MainApp.sResources.getString(R.string.disableloop)) { + if (item.getTitle().equals(MainApp.sResources.getString(R.string.disableloop))) { activeloop.setFragmentEnabled(PluginBase.LOOP, false); activeloop.setFragmentVisible(PluginBase.LOOP, false); MainApp.getConfigBuilder().storeSettings(); MainApp.bus().post(new EventRefreshGui(false)); return true; - } else if (item.getTitle() == MainApp.sResources.getString(R.string.enableloop)) { + } else if (item.getTitle().equals(MainApp.sResources.getString(R.string.enableloop))) { activeloop.setFragmentEnabled(PluginBase.LOOP, true); activeloop.setFragmentVisible(PluginBase.LOOP, true); MainApp.getConfigBuilder().storeSettings(); MainApp.bus().post(new EventRefreshGui(false)); return true; - } else if (item.getTitle() == MainApp.sResources.getString(R.string.resume)) { + } else if (item.getTitle().equals(MainApp.sResources.getString(R.string.resume))) { activeloop.suspendTo(0L); sHandler.post(new Runnable() { @Override public void run() { + MainApp.bus().post(new EventRefreshGui(false)); PumpEnactResult result = MainApp.getConfigBuilder().cancelTempBasal(); if (!result.success) { ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.tempbasaldeliveryerror)); } - MainApp.bus().post(new EventRefreshGui(false)); } }); return true; - } else if (item.getTitle() == MainApp.sResources.getString(R.string.suspendloopfor1h)) { + } else if (item.getTitle().equals(MainApp.sResources.getString(R.string.suspendloopfor1h))) { activeloop.suspendTo(new Date().getTime() + 60L * 60 * 1000); MainApp.bus().post(new EventRefreshGui(false)); return true; - } else if (item.getTitle() == MainApp.sResources.getString(R.string.suspendloopfor2h)) { + } else if (item.getTitle().equals(MainApp.sResources.getString(R.string.suspendloopfor2h))) { activeloop.suspendTo(new Date().getTime() + 2 * 60L * 60 * 1000); MainApp.bus().post(new EventRefreshGui(false)); return true; - } else if (item.getTitle() == MainApp.sResources.getString(R.string.suspendloopfor3h)) { + } else if (item.getTitle().equals(MainApp.sResources.getString(R.string.suspendloopfor3h))) { activeloop.suspendTo(new Date().getTime() + 3 * 60L * 60 * 1000); MainApp.bus().post(new EventRefreshGui(false)); return true; - } else if (item.getTitle() == MainApp.sResources.getString(R.string.suspendloopfor10h)) { + } else if (item.getTitle().equals(MainApp.sResources.getString(R.string.suspendloopfor10h))) { activeloop.suspendTo(new Date().getTime() + 10 * 60L * 60 * 1000); MainApp.bus().post(new EventRefreshGui(false)); return true; - } else if (item.getTitle() == MainApp.sResources.getString(R.string.disconnectpumpfor30m)) { + } else if (item.getTitle().equals(MainApp.sResources.getString(R.string.disconnectpumpfor30m))) { activeloop.suspendTo(new Date().getTime() + 30L * 60 * 1000); sHandler.post(new Runnable() { @Override @@ -396,42 +396,42 @@ public class OverviewFragment extends Fragment { } }); return true; - } else if (item.getTitle() == MainApp.sResources.getString(R.string.disconnectpumpfor1h)) { + } else if (item.getTitle().equals(MainApp.sResources.getString(R.string.disconnectpumpfor1h))) { activeloop.suspendTo(new Date().getTime() + 1 * 60L * 60 * 1000); sHandler.post(new Runnable() { @Override public void run() { + MainApp.bus().post(new EventRefreshGui(false)); PumpEnactResult result = MainApp.getConfigBuilder().setTempBasalAbsolute(0d, 60); if (!result.success) { ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.tempbasaldeliveryerror)); } - MainApp.bus().post(new EventRefreshGui(false)); } }); return true; - } else if (item.getTitle() == MainApp.sResources.getString(R.string.disconnectpumpfor2h)) { + } else if (item.getTitle().equals(MainApp.sResources.getString(R.string.disconnectpumpfor2h))) { activeloop.suspendTo(new Date().getTime() + 2 * 60L * 60 * 1000); sHandler.post(new Runnable() { @Override public void run() { + MainApp.bus().post(new EventRefreshGui(false)); PumpEnactResult result = MainApp.getConfigBuilder().setTempBasalAbsolute(0d, 2 * 60); if (!result.success) { ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.tempbasaldeliveryerror)); } - MainApp.bus().post(new EventRefreshGui(false)); } }); return true; - } else if (item.getTitle() == MainApp.sResources.getString(R.string.disconnectpumpfor3h)) { + } else if (item.getTitle().equals(MainApp.sResources.getString(R.string.disconnectpumpfor3h))) { activeloop.suspendTo(new Date().getTime() + 3 * 60L * 60 * 1000); sHandler.post(new Runnable() { @Override public void run() { + MainApp.bus().post(new EventRefreshGui(false)); PumpEnactResult result = MainApp.getConfigBuilder().setTempBasalAbsolute(0d, 3 * 60); if (!result.success) { ToastUtils.showToastInUiThread(MainApp.instance().getApplicationContext(), MainApp.sResources.getString(R.string.tempbasaldeliveryerror)); } - MainApp.bus().post(new EventRefreshGui(false)); } }); return true; From a203591d4438adeac4b23bf07fdd9da76ffeda92 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sun, 9 Apr 2017 11:47:20 +0200 Subject: [PATCH 092/140] ver 1.3 bump --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index b81a8e12d2..712c3c133d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,7 +44,7 @@ android { minSdkVersion 21 targetSdkVersion 23 versionCode 1100 - version "1.3rc2" + version "1.3" buildConfigField "String", "VERSION", '"' + version + '"' buildConfigField "String", "BUILDVERSION", generateGitBuild() } From 387defbfc7a203703edfb4e896be8055c5965d87 Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Sun, 9 Apr 2017 21:50:05 +0200 Subject: [PATCH 093/140] fix sms pref key --- app/src/main/res/xml/pref_smscommunicator.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/xml/pref_smscommunicator.xml b/app/src/main/res/xml/pref_smscommunicator.xml index 0f9440a615..06614f81df 100644 --- a/app/src/main/res/xml/pref_smscommunicator.xml +++ b/app/src/main/res/xml/pref_smscommunicator.xml @@ -7,7 +7,7 @@ Date: Sun, 9 Apr 2017 21:50:53 +0200 Subject: [PATCH 094/140] ver 1.31 bump --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 712c3c133d..478567d87d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,7 +44,7 @@ android { minSdkVersion 21 targetSdkVersion 23 versionCode 1100 - version "1.3" + version "1.31" buildConfigField "String", "VERSION", '"' + version + '"' buildConfigField "String", "BUILDVERSION", generateGitBuild() } From 2413fae0a9ec158aa2a673074629088609c54bed Mon Sep 17 00:00:00 2001 From: Milos Kozak Date: Fri, 14 Apr 2017 14:50:18 +0200 Subject: [PATCH 095/140] 1.32 superbolus & trend contribution in wizard --- app/build.gradle | 6 +- .../androidaps/plugins/Loop/LoopPlugin.java | 23 ++ .../Overview/Dialogs/WizardDialog.java | 376 ++++++++++++------ .../plugins/Overview/OverviewFragment.java | 11 +- .../plugins/Wear/ActionStringHandler.java | 2 +- .../info/nightscout/utils/BolusWizard.java | 29 +- .../res/layout/overview_wizard_dialog.xml | 177 +++++++-- app/src/main/res/values-cs/strings.xml | 2 +- app/src/main/res/values/strings.xml | 6 +- build.gradle | 2 +- 10 files changed, 479 insertions(+), 155 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 478567d87d..c4ade1bbe8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,7 +44,7 @@ android { minSdkVersion 21 targetSdkVersion 23 versionCode 1100 - version "1.31" + version "1.32" buildConfigField "String", "VERSION", '"' + version + '"' buildConfigField "String", "BUILDVERSION", generateGitBuild() } @@ -180,4 +180,8 @@ dependencies { compile 'com.google.code.gson:gson:2.4' compile 'com.google.guava:guava:18.0' + compile ('com.jakewharton:butterknife:8.5.1') { + exclude module: 'support-compat' + } + annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1' } \ No newline at end of file diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java index ec3fdc32a0..6a3869589b 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Loop/LoopPlugin.java @@ -47,6 +47,7 @@ public class LoopPlugin implements PluginBase { private boolean fragmentVisible = true; private long loopSuspendedTill = 0L; // end of manual loop suspend + private boolean isSuperBolus = false; public class LastRun { public APSResult request = null; @@ -68,6 +69,7 @@ public class LoopPlugin implements PluginBase { } MainApp.bus().register(this); loopSuspendedTill = SP.getLong("loopSuspendedTill", 0L); + isSuperBolus = SP.getBoolean("isSuperBolus", false); } @Override @@ -137,6 +139,13 @@ public class LoopPlugin implements PluginBase { public void suspendTo(long endTime) { loopSuspendedTill = endTime; + isSuperBolus = false; + SP.putLong("loopSuspendedTill", loopSuspendedTill); + } + + public void superBolusTo(long endTime) { + loopSuspendedTill = endTime; + isSuperBolus = true; SP.putLong("loopSuspendedTill", loopSuspendedTill); } @@ -169,6 +178,20 @@ public class LoopPlugin implements PluginBase { return true; } + public boolean isSuperBolus() { + if (loopSuspendedTill == 0) + return false; + + long now = new Date().getTime(); + + if (loopSuspendedTill <= now) { // time exceeded + suspendTo(0L); + return false; + } + + return isSuperBolus; + } + public void invoke(String initiator, boolean allowNotification) { try { if (Config.logFunctionCalls) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java index 173e73facb..eaebeec73e 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/Dialogs/WizardDialog.java @@ -1,5 +1,6 @@ package info.nightscout.androidaps.plugins.Overview.Dialogs; +import android.app.Activity; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; @@ -21,32 +22,49 @@ import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.EditText; +import android.widget.LinearLayout; import android.widget.Spinner; import android.widget.TextView; import com.crashlytics.android.answers.Answers; import com.crashlytics.android.answers.CustomEvent; +import com.squareup.otto.Subscribe; import org.json.JSONException; import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.w3c.dom.Text; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Date; +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.OnCheckedChanged; +import butterknife.OnClick; +import butterknife.OnItemSelected; +import butterknife.OnTextChanged; +import butterknife.Unbinder; import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.R; import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.db.BgReading; +import info.nightscout.androidaps.events.EventNewBG; +import info.nightscout.androidaps.events.EventRefreshGui; import info.nightscout.androidaps.interfaces.TempBasalsInterface; import info.nightscout.androidaps.interfaces.TreatmentsInterface; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.data.IobTotal; +import info.nightscout.androidaps.plugins.Loop.APSResult; +import info.nightscout.androidaps.plugins.Loop.LoopPlugin; import info.nightscout.androidaps.plugins.NSClientInternal.data.NSProfile; +import info.nightscout.androidaps.plugins.OpenAPSAMA.DetermineBasalResultAMA; +import info.nightscout.androidaps.plugins.OpenAPSAMA.OpenAPSAMAPlugin; +import info.nightscout.androidaps.plugins.OpenAPSMA.events.EventOpenAPSUpdateGui; import info.nightscout.utils.BolusWizard; import info.nightscout.utils.DateUtil; import info.nightscout.utils.DecimalFormatter; @@ -54,33 +72,81 @@ import info.nightscout.utils.PlusMinusEditText; import info.nightscout.utils.SafeParse; import info.nightscout.utils.ToastUtils; -public class WizardDialog extends DialogFragment implements OnClickListener { +import static butterknife.OnItemSelected.Callback.NOTHING_SELECTED; + +public class WizardDialog extends DialogFragment { private static Logger log = LoggerFactory.getLogger(WizardDialog.class); + @BindView(R.id.treatments_wizard_deliverButton) Button wizardDialogDeliverButton; + @BindView(R.id.treatments_wizard_correctioninput) TextView correctionInput; + @BindView(R.id.treatments_wizard_carbsinput) TextView carbsInput; + @BindView(R.id.treatments_wizard_bginput) TextView bgInput; - TextView bg, bgInsulin, bgUnits; + @BindView(R.id.treatments_wizard_bg) + TextView bg; + @BindView(R.id.treatments_wizard_bginsulin) + TextView bgInsulin; + @BindView(R.id.treatments_wizard_bgunits) + TextView bgUnits; + @BindView(R.id.treatments_wizard_bgcheckbox) CheckBox bgCheckbox; - TextView carbs, carbsInsulin; + @BindView(R.id.treatments_wizard_carbs) + TextView carbs; + @BindView(R.id.treatments_wizard_carbsinsulin) + TextView carbsInsulin; + @BindView(R.id.treatments_wizard_bolusiobinsulin) TextView bolusIobInsulin; + @BindView(R.id.treatments_wizard_basaliobinsulin) TextView basalIobInsulin; + @BindView(R.id.treatments_wizard_bolusiobcheckbox) CheckBox bolusIobCheckbox; + @BindView(R.id.treatments_wizard_basaliobcheckbox) CheckBox basalIobCheckbox; + @BindView(R.id.treatments_wizard_correctioninsulin) TextView correctionInsulin; - TextView total, totalInsulin; + @BindView(R.id.treatments_wizard_total) + TextView total; + @BindView(R.id.treatments_wizard_totalinsulin) + TextView totalInsulin; + @BindView(R.id.treatments_wizard_carbtimeinput) EditText carbTimeEdit; + @BindView(R.id.treatments_wizard_profile) Spinner profileSpinner; + @BindView(R.id.treatments_wizard_sbcheckbox) + CheckBox superbolusCheckbox; + @BindView(R.id.treatments_wizard_sb) + TextView superbolus; + @BindView(R.id.treatments_wizard_sbinsulin) + TextView superbolusInsulin; + @BindView(R.id.treatments_wizard_bgtrendcheckbox) + CheckBox bgtrendCheckbox; + @BindView(R.id.treatments_wizard_bgtrend) + TextView bgTrend; + @BindView(R.id.treatments_wizard_bgtrendinsulin) + TextView bgTrendInsulin; + @BindView(R.id.treatments_wizard_cob_layout) + LinearLayout cobLayout; + @BindView(R.id.treatments_wizard_cobcheckbox) + CheckBox cobCheckbox; + @BindView(R.id.treatments_wizard_cob) + TextView cob; + @BindView(R.id.treatments_wizard_cobinsulin) + TextView cobInsulin; PlusMinusEditText editBg; PlusMinusEditText editCarbs; PlusMinusEditText editCorr; PlusMinusEditText editCarbTime; + private Unbinder unbinder; + Integer calculatedCarbs = 0; Double calculatedTotalInsulin = 0d; JSONObject boluscalcJSON; + boolean cobAvailable = false; Handler mHandler; public static HandlerThread mHandlerThread; @@ -100,6 +166,57 @@ public class WizardDialog extends DialogFragment implements OnClickListener { this.context = context; } + @Override + public void onDestroyView() { + super.onDestroyView(); + unbinder.unbind(); + } + + @Override + public void onResume() { + super.onResume(); + if (getDialog() != null) + getDialog().getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); + MainApp.bus().register(this); + } + + @Override + public void onPause() { + super.onPause(); + MainApp.bus().unregister(this); + } + + @Subscribe + public void onStatusEvent(final EventOpenAPSUpdateGui e) { + Activity activity = getActivity(); + if (activity != null) + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + if (ConfigBuilderPlugin.getActiveAPS() instanceof OpenAPSAMAPlugin && ConfigBuilderPlugin.getActiveAPS().getLastAPSResult() != null && ConfigBuilderPlugin.getActiveAPS().getLastAPSRun().after(new Date(new Date().getTime() - 11 * 60 * 1000L))) { + cobLayout.setVisibility(View.VISIBLE); + cobAvailable = true; + } else { + cobLayout.setVisibility(View.GONE); + cobAvailable = false; + } + calculateInsulin(); + } + }); + } + + @Subscribe + public void onStatusEvent(final EventNewBG e) { + Activity activity = getActivity(); + if (activity != null) + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + calculateInsulin(); + } + }); + } + final private TextWatcher textWatcher = new TextWatcher() { @Override public void afterTextChanged(Editable s) { @@ -115,67 +232,20 @@ public class WizardDialog extends DialogFragment implements OnClickListener { } }; - final CompoundButton.OnCheckedChangeListener onCheckedChangeListener = new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - calculateInsulin(); - } - }; - - final AdapterView.OnItemSelectedListener onItemSelectedListener = new AdapterView.OnItemSelectedListener() { - @Override - public void onItemSelected(AdapterView parent, View view, int position, long id) { - calculateInsulin(); - wizardDialogDeliverButton.setVisibility(View.VISIBLE); - } - - @Override - public void onNothingSelected(AdapterView parent) { - ToastUtils.showToastInUiThread(context, MainApp.sResources.getString(R.string.noprofileselected)); - wizardDialogDeliverButton.setVisibility(View.GONE); - } - }; - @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.overview_wizard_dialog, null, false); - wizardDialogDeliverButton = (Button) view.findViewById(R.id.treatments_wizard_deliverButton); - wizardDialogDeliverButton.setOnClickListener(this); - getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE); getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); - correctionInput = (TextView) view.findViewById(R.id.treatments_wizard_correctioninput); - carbsInput = (TextView) view.findViewById(R.id.treatments_wizard_carbsinput); - bgInput = (TextView) view.findViewById(R.id.treatments_wizard_bginput); + unbinder = ButterKnife.bind(this, view); correctionInput.addTextChangedListener(textWatcher); carbsInput.addTextChangedListener(textWatcher); bgInput.addTextChangedListener(textWatcher); - bg = (TextView) view.findViewById(R.id.treatments_wizard_bg); - bgInsulin = (TextView) view.findViewById(R.id.treatments_wizard_bginsulin); - bgUnits = (TextView) view.findViewById(R.id.treatments_wizard_bgunits); - bgCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_bgcheckbox); - carbs = (TextView) view.findViewById(R.id.treatments_wizard_carbs); - carbsInsulin = (TextView) view.findViewById(R.id.treatments_wizard_carbsinsulin); - bolusIobInsulin = (TextView) view.findViewById(R.id.treatments_wizard_bolusiobinsulin); - basalIobInsulin = (TextView) view.findViewById(R.id.treatments_wizard_basaliobinsulin); - bolusIobCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_bolusiobcheckbox); - basalIobCheckbox = (CheckBox) view.findViewById(R.id.treatments_wizard_basaliobcheckbox); - correctionInsulin = (TextView) view.findViewById(R.id.treatments_wizard_correctioninsulin); - total = (TextView) view.findViewById(R.id.treatments_wizard_total); - totalInsulin = (TextView) view.findViewById(R.id.treatments_wizard_totalinsulin); - carbTimeEdit = (EditText) view.findViewById(R.id.treatments_wizard_carbtimeinput); - profileSpinner = (Spinner) view.findViewById(R.id.treatments_wizard_profile); - - bgCheckbox.setOnCheckedChangeListener(onCheckedChangeListener); - basalIobCheckbox.setOnCheckedChangeListener(onCheckedChangeListener); - bolusIobCheckbox.setOnCheckedChangeListener(onCheckedChangeListener); - profileSpinner.setOnItemSelectedListener(onItemSelectedListener); - Integer maxCarbs = MainApp.getConfigBuilder().applyCarbsConstraints(Constants.carbsOnlyForCheckLimit); Double maxCorrection = MainApp.getConfigBuilder().applyBolusConstraints(Constants.bolusOnlyForCheckLimit); @@ -188,71 +258,102 @@ public class WizardDialog extends DialogFragment implements OnClickListener { return view; } - @Override + @OnCheckedChanged({R.id.treatments_wizard_bgcheckbox, R.id.treatments_wizard_bolusiobcheckbox, R.id.treatments_wizard_basaliobcheckbox, R.id.treatments_wizard_sbcheckbox, R.id.treatments_wizard_cobcheckbox, R.id.treatments_wizard_bgtrendcheckbox}) + public void checkboxToggled(boolean isChecked) { + calculateInsulin(); + } + + @OnItemSelected(R.id.treatments_wizard_profile) + public void profileSelected(int position) { + calculateInsulin(); + wizardDialogDeliverButton.setVisibility(View.VISIBLE); + } + + @OnItemSelected(value = R.id.treatments_wizard_profile, + callback = NOTHING_SELECTED) + public void profileNotSelected() { + ToastUtils.showToastInUiThread(context, MainApp.sResources.getString(R.string.noprofileselected)); + wizardDialogDeliverButton.setVisibility(View.GONE); + } + + @OnClick(R.id.treatments_wizard_deliverButton) public void onClick(View view) { - switch (view.getId()) { - case R.id.treatments_wizard_deliverButton: - if (calculatedTotalInsulin > 0d || calculatedCarbs > 0d) { - DecimalFormat formatNumber2decimalplaces = new DecimalFormat("0.00"); - String confirmMessage = getString(R.string.entertreatmentquestion); + if (calculatedTotalInsulin > 0d || calculatedCarbs > 0d) { + DecimalFormat formatNumber2decimalplaces = new DecimalFormat("0.00"); + String confirmMessage = getString(R.string.entertreatmentquestion); - Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(calculatedTotalInsulin); - Integer carbsAfterConstraints = MainApp.getConfigBuilder().applyCarbsConstraints(calculatedCarbs); + Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(calculatedTotalInsulin); + Integer carbsAfterConstraints = MainApp.getConfigBuilder().applyCarbsConstraints(calculatedCarbs); - confirmMessage += "\n" + getString(R.string.bolus) + ": " + formatNumber2decimalplaces.format(insulinAfterConstraints) + "U"; - confirmMessage += "\n" + getString(R.string.carbs) + ": " + carbsAfterConstraints + "g"; + confirmMessage += "\n" + getString(R.string.bolus) + ": " + formatNumber2decimalplaces.format(insulinAfterConstraints) + "U"; + confirmMessage += "\n" + getString(R.string.carbs) + ": " + carbsAfterConstraints + "g"; - if (insulinAfterConstraints - calculatedTotalInsulin != 0 || !carbsAfterConstraints.equals(calculatedCarbs)) { - AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror)); - builder.setMessage(getString(R.string.constraints_violation) + "\n" + getString(R.string.changeyourinput)); - builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null); - builder.show(); - return; - } + if (insulinAfterConstraints - calculatedTotalInsulin != 0 || !carbsAfterConstraints.equals(calculatedCarbs)) { + AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror)); + builder.setMessage(getString(R.string.constraints_violation) + "\n" + getString(R.string.changeyourinput)); + builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null); + builder.show(); + return; + } - final Double finalInsulinAfterConstraints = insulinAfterConstraints; - final Integer finalCarbsAfterConstraints = carbsAfterConstraints; + final Double finalInsulinAfterConstraints = insulinAfterConstraints; + final Integer finalCarbsAfterConstraints = carbsAfterConstraints; + final Double bg = SafeParse.stringToDouble(bgInput.getText().toString()); + final int carbTime = SafeParse.stringToInt(carbTimeEdit.getText().toString()); + final boolean useSuperBolus = superbolusCheckbox.isChecked(); - AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle(MainApp.sResources.getString(R.string.confirmation)); - builder.setMessage(confirmMessage); - builder.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - if (finalInsulinAfterConstraints > 0 || finalCarbsAfterConstraints > 0) { - final ConfigBuilderPlugin pump = MainApp.getConfigBuilder(); - mHandler.post(new Runnable() { - @Override - public void run() { - PumpEnactResult result = pump.deliverTreatmentFromBolusWizard( - context, - finalInsulinAfterConstraints, - finalCarbsAfterConstraints, - SafeParse.stringToDouble(bgInput.getText().toString()), - "Manual", - SafeParse.stringToInt(carbTimeEdit.getText().toString()), - boluscalcJSON - ); - if (!result.success) { - AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror)); - builder.setMessage(result.comment); - builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null); - builder.show(); - } + AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle(MainApp.sResources.getString(R.string.confirmation)); + builder.setMessage(confirmMessage); + builder.setPositiveButton(getString(R.string.ok), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + if (finalInsulinAfterConstraints > 0 || finalCarbsAfterConstraints > 0) { + final ConfigBuilderPlugin pump = MainApp.getConfigBuilder(); + mHandler.post(new Runnable() { + @Override + public void run() { + PumpEnactResult result = pump.deliverTreatmentFromBolusWizard( + context, + finalInsulinAfterConstraints, + finalCarbsAfterConstraints, + bg, + "Manual", + carbTime, + boluscalcJSON + ); + if (!result.success) { + AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle(MainApp.sResources.getString(R.string.treatmentdeliveryerror)); + builder.setMessage(result.comment); + builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null); + builder.show(); + } + if (useSuperBolus) { + final LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop(); + result = pump.setTempBasalAbsolute(0d, 120); + if (!result.success) { + AlertDialog.Builder builder = new AlertDialog.Builder(context); + builder.setTitle(MainApp.sResources.getString(R.string.tempbasaldeliveryerror)); + builder.setMessage(result.comment); + builder.setPositiveButton(MainApp.sResources.getString(R.string.ok), null); + builder.show(); } - }); - Answers.getInstance().logCustom(new CustomEvent("Wizard")); + if (activeloop != null) { + activeloop.superBolusTo(new Date().getTime() + 2 * 60L * 60 * 1000); + MainApp.bus().post(new EventRefreshGui(false)); + } + } } - } - }); - builder.setNegativeButton(getString(R.string.cancel), null); - builder.show(); - dismiss(); + }); + Answers.getInstance().logCustom(new CustomEvent("Wizard")); + } } - break; + }); + builder.setNegativeButton(getString(R.string.cancel), null); + builder.show(); + dismiss(); } - } private void initDialog() { @@ -327,13 +428,14 @@ public class WizardDialog extends DialogFragment implements OnClickListener { totalInsulin.setText(""); wizardDialogDeliverButton.setVisibility(Button.INVISIBLE); - } - - @Override - public void onResume() { - super.onResume(); - if (getDialog() != null) - getDialog().getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); + // COB only if AMA is selected + if (ConfigBuilderPlugin.getActiveAPS() instanceof OpenAPSAMAPlugin && ConfigBuilderPlugin.getActiveAPS().getLastAPSResult() != null && ConfigBuilderPlugin.getActiveAPS().getLastAPSRun().after(new Date(new Date().getTime() - 11 * 60 * 1000L))) { + cobLayout.setVisibility(View.VISIBLE); + cobAvailable = true; + } else { + cobLayout.setVisibility(View.GONE); + cobAvailable = false; + } } private void calculateInsulin() { @@ -368,8 +470,19 @@ public class WizardDialog extends DialogFragment implements OnClickListener { c_bg = bgCheckbox.isChecked() ? c_bg : 0d; + // COB + Double c_cob = 0d; + if (cobAvailable && cobCheckbox.isChecked()) { + if (ConfigBuilderPlugin.getActiveAPS().getLastAPSResult() != null && ConfigBuilderPlugin.getActiveAPS().getLastAPSRun().after(new Date(new Date().getTime() - 11 * 60 * 1000L))) { + try { + c_cob = SafeParse.stringToDouble(ConfigBuilderPlugin.getActiveAPS().getLastAPSResult().json().getString("COB")); + } catch (JSONException e) { + } + } + } + BolusWizard wizard = new BolusWizard(); - wizard.doCalc(specificProfile, carbsAfterConstraint, c_bg, corrAfterConstraint, bolusIobCheckbox.isChecked(), basalIobCheckbox.isChecked()); + wizard.doCalc(specificProfile, carbsAfterConstraint, c_cob, c_bg, corrAfterConstraint, bolusIobCheckbox.isChecked(), basalIobCheckbox.isChecked(), superbolusCheckbox.isChecked(), bgtrendCheckbox.isChecked()); bg.setText(c_bg + " ISF: " + DecimalFormatter.to1Decimal(wizard.sens)); bgInsulin.setText(DecimalFormatter.to2Decimal(wizard.insulinFromBG) + "U"); @@ -393,6 +506,35 @@ public class WizardDialog extends DialogFragment implements OnClickListener { calculatedCarbs = carbsAfterConstraint; + // Superbolus + if (superbolusCheckbox.isChecked()) { + superbolus.setText("2h"); + } else { + superbolus.setText(""); + } + superbolusInsulin.setText(DecimalFormatter.to2Decimal(wizard.insulinFromSuperBolus) + "U"); + + // Trend + if (bgtrendCheckbox.isChecked()) { + if (wizard.glucoseStatus != null) { + bgTrend.setText((wizard.glucoseStatus.avgdelta > 0 ? "+" : "") + NSProfile.toUnitsString(wizard.glucoseStatus.avgdelta * 3, wizard.glucoseStatus.avgdelta * 3 / 18, profile.getUnits()) + " " + profile.getUnits()); + } else { + bgTrend.setText(""); + } + } else { + bgTrend.setText(""); + } + bgTrendInsulin.setText(DecimalFormatter.to2Decimal(wizard.insulinFromTrend) + "U"); + + // COB + if (cobAvailable && cobCheckbox.isChecked()) { + cob.setText(DecimalFormatter.to2Decimal(c_cob) + "g IC: " + DecimalFormatter.to1Decimal(wizard.ic)); + cobInsulin.setText(DecimalFormatter.to2Decimal(wizard.insulinFromCOB) + "U"); + } else { + cob.setText(""); + cobInsulin.setText(""); + } + if (calculatedTotalInsulin > 0d || calculatedCarbs > 0d) { String insulinText = calculatedTotalInsulin > 0d ? (DecimalFormatter.to2Decimal(calculatedTotalInsulin) + "U") : ""; String carbsText = calculatedCarbs > 0d ? (DecimalFormatter.to0Decimal(calculatedCarbs) + "g") : ""; @@ -419,7 +561,11 @@ public class WizardDialog extends DialogFragment implements OnClickListener { boluscalcJSON.put("bgdiff", wizard.bgDiff); boluscalcJSON.put("insulincarbs", wizard.insulinFromCarbs); boluscalcJSON.put("carbs", c_carbs); + boluscalcJSON.put("cob", c_cob); + boluscalcJSON.put("insulincob", wizard.insulinFromCOB); boluscalcJSON.put("othercorrection", corrAfterConstraint); + boluscalcJSON.put("insulinsuperbolus", wizard.insulinFromSuperBolus); + boluscalcJSON.put("insulintrend", wizard.insulinFromTrend); boluscalcJSON.put("insulin", calculatedTotalInsulin); } catch (JSONException e) { e.printStackTrace(); diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java index 56cf041042..5571aa99d4 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Overview/OverviewFragment.java @@ -451,7 +451,7 @@ public class OverviewFragment extends Fragment { quickWizardButton.setVisibility(View.VISIBLE); String text = MainApp.sResources.getString(R.string.bolus) + ": " + quickWizardEntry.buttonText(); BolusWizard wizard = new BolusWizard(); - wizard.doCalc(profile.getDefaultProfile(), quickWizardEntry.carbs(), actualBg.valueToUnits(profile.getUnits()), 0d, true, true); + wizard.doCalc(profile.getDefaultProfile(), quickWizardEntry.carbs(), 0d, actualBg.valueToUnits(profile.getUnits()), 0d, true, true, false, true); final JSONObject boluscalcJSON = new JSONObject(); try { @@ -470,6 +470,7 @@ public class OverviewFragment extends Fragment { boluscalcJSON.put("insulincarbs", wizard.insulinFromCarbs); boluscalcJSON.put("carbs", quickWizardEntry.carbs()); boluscalcJSON.put("othercorrection", 0d); + boluscalcJSON.put("insulintrend", wizard.insulinFromTrend); boluscalcJSON.put("insulin", wizard.calculatedTotalInsulin); } catch (JSONException e) { e.printStackTrace(); @@ -694,7 +695,11 @@ public class OverviewFragment extends Fragment { apsModeView.setBackgroundResource(R.drawable.loopmodeborder); apsModeView.setTextColor(Color.BLACK); final LoopPlugin activeloop = MainApp.getConfigBuilder().getActiveLoop(); - if (activeloop != null && activeloop.isEnabled(activeloop.getType()) && activeloop.isSuspended()) { + if (activeloop != null && activeloop.isEnabled(activeloop.getType()) && activeloop.isSuperBolus()) { + apsModeView.setBackgroundResource(R.drawable.loopmodesuspendedborder); + apsModeView.setText(String.format(MainApp.sResources.getString(R.string.loopsuperbolusfor), activeloop.minutesToEndOfSuspend())); + apsModeView.setTextColor(Color.WHITE); + } else if (activeloop != null && activeloop.isEnabled(activeloop.getType()) && activeloop.isSuspended()) { apsModeView.setBackgroundResource(R.drawable.loopmodesuspendedborder); apsModeView.setText(String.format(MainApp.sResources.getString(R.string.loopsuspendedfor), activeloop.minutesToEndOfSuspend())); apsModeView.setTextColor(Color.WHITE); @@ -820,7 +825,7 @@ public class OverviewFragment extends Fragment { quickWizardButton.setVisibility(View.VISIBLE); String text = MainApp.sResources.getString(R.string.bolus) + ": " + quickWizardEntry.buttonText() + " " + DecimalFormatter.to0Decimal(quickWizardEntry.carbs()) + "g"; BolusWizard wizard = new BolusWizard(); - wizard.doCalc(profile.getDefaultProfile(), quickWizardEntry.carbs(), lastBG.valueToUnits(profile.getUnits()), 0d, true, true); + wizard.doCalc(profile.getDefaultProfile(), quickWizardEntry.carbs(), 0d, lastBG.valueToUnits(profile.getUnits()), 0d, true, true, false, true); text += " " + DecimalFormatter.to2Decimal(wizard.calculatedTotalInsulin) + "U"; quickWizardButton.setText(text); if (wizard.calculatedTotalInsulin <= 0) diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java index 6afb51c5c6..ba93968e78 100644 --- a/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java +++ b/app/src/main/java/info/nightscout/androidaps/plugins/Wear/ActionStringHandler.java @@ -192,7 +192,7 @@ public class ActionStringHandler { } DecimalFormat format = new DecimalFormat("0.00"); BolusWizard bolusWizard = new BolusWizard(); - bolusWizard.doCalc(profile.getDefaultProfile(), carbsAfterConstraints, useBG?bgReading.valueToUnits(profile.getUnits()):0d, 0d, useBolusIOB, useBasalIOB); + bolusWizard.doCalc(profile.getDefaultProfile(), carbsAfterConstraints, 0d, useBG?bgReading.valueToUnits(profile.getUnits()):0d, 0d, useBolusIOB, useBasalIOB, false, false); Double insulinAfterConstraints = MainApp.getConfigBuilder().applyBolusConstraints(bolusWizard.calculatedTotalInsulin); if(insulinAfterConstraints - bolusWizard.calculatedTotalInsulin !=0){ diff --git a/app/src/main/java/info/nightscout/utils/BolusWizard.java b/app/src/main/java/info/nightscout/utils/BolusWizard.java index 308da980e8..848263ebc5 100644 --- a/app/src/main/java/info/nightscout/utils/BolusWizard.java +++ b/app/src/main/java/info/nightscout/utils/BolusWizard.java @@ -5,6 +5,7 @@ import org.json.JSONObject; import java.util.Date; import info.nightscout.androidaps.MainApp; +import info.nightscout.androidaps.data.GlucoseStatus; import info.nightscout.androidaps.interfaces.TempBasalsInterface; import info.nightscout.androidaps.interfaces.TreatmentsInterface; import info.nightscout.androidaps.data.IobTotal; @@ -23,11 +24,15 @@ public class BolusWizard { Double correction; Boolean includeBolusIOB = true; Boolean includeBasalIOB = true; + Boolean superBolus = false; + Boolean trend = false; // Intermediate public Double sens = 0d; public Double ic = 0d; + public GlucoseStatus glucoseStatus; + public Double targetBGLow = 0d; public Double targetBGHigh = 0d; public Double bgDiff = 0d; @@ -40,16 +45,21 @@ public class BolusWizard { public Double insulingFromBolusIOB = 0d; public Double insulingFromBasalsIOB = 0d; public Double insulinFromCorrection = 0d; + public Double insulinFromSuperBolus = 0d; + public Double insulinFromCOB = 0d; + public Double insulinFromTrend = 0d; // Result public Double calculatedTotalInsulin = 0d; public Double carbsEquivalent = 0d; - public Double doCalc(JSONObject specificProfile, Integer carbs, Double bg, Double correction, Boolean includeBolusIOB, Boolean includeBasalIOB) { + public Double doCalc(JSONObject specificProfile, Integer carbs, Double cob, Double bg, Double correction, Boolean includeBolusIOB, Boolean includeBasalIOB, Boolean superBolus, Boolean trend) { this.specificProfile = specificProfile; this.carbs = carbs; this.bg = bg; this.correction = correction; + this.superBolus = superBolus; + this.trend = trend; NSProfile profile = ConfigBuilderPlugin.getActiveProfile().getProfile(); @@ -64,9 +74,16 @@ public class BolusWizard { } insulinFromBG = bg != 0d ? bgDiff / sens : 0d; + // Insulin from 15 min trend + glucoseStatus = GlucoseStatus.getGlucoseStatusData(); + if (glucoseStatus != null) { + insulinFromTrend = (NSProfile.fromMgdlToUnits(glucoseStatus.short_avgdelta, profile.getUnits()) * 3) / sens; + } + // Insuling from carbs ic = profile.getIc(specificProfile, NSProfile.secondsFromMidnight()); insulinFromCarbs = carbs / ic; + insulinFromCOB = -cob / ic; // Insulin from IOB // IOB calculation @@ -86,8 +103,16 @@ public class BolusWizard { // Insulin from correction insulinFromCorrection = correction; + // Insulin from superbolus for 2h. Get basal rate now and after 1h + if (superBolus) { + insulinFromSuperBolus = profile.getBasal(NSProfile.secondsFromMidnight()); + long timeAfter1h = new Date().getTime(); + timeAfter1h += 60L * 60 * 1000; + insulinFromSuperBolus += profile.getBasal(NSProfile.secondsFromMidnight(new Date(timeAfter1h))); + } + // Total - calculatedTotalInsulin = insulinFromBG + insulinFromCarbs + insulingFromBolusIOB + insulingFromBasalsIOB + insulinFromCorrection; + calculatedTotalInsulin = insulinFromBG + insulinFromTrend + insulinFromCarbs + insulingFromBolusIOB + insulingFromBasalsIOB + insulinFromCorrection + insulinFromSuperBolus + insulinFromCOB; if (calculatedTotalInsulin < 0) { carbsEquivalent = -calculatedTotalInsulin * ic; diff --git a/app/src/main/res/layout/overview_wizard_dialog.xml b/app/src/main/res/layout/overview_wizard_dialog.xml index 00b0df9e2a..caeee2b270 100644 --- a/app/src/main/res/layout/overview_wizard_dialog.xml +++ b/app/src/main/res/layout/overview_wizard_dialog.xml @@ -253,7 +253,7 @@ @@ -269,9 +269,42 @@ + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:layout_weight="0.5" /> + + + + + + +